init(); } /** * * init all actions */ private function init(){ $this->checkCopyCaptionsCSS(); //self::setDebugMode(); self::createDBTables(); //include general settings self::requireSettings("general_settings"); //set role $generalSettings = self::getSettings("general"); $role = $generalSettings->getSettingValue("role",UniteBaseAdminClassRev::ROLE_ADMIN); self::setMenuRole($role); self::addMenuPage('Revolution Slider', "adminPages"); //add common scripts there //self::addAction(self::ACTION_ADMIN_INIT, "onAdminInit"); //ajax response to save slider options. self::addActionAjax("ajax_action", "onAjaxAction"); } /** * a must function. please don't remove it. * process activate event - install the db (with delta). */ public static function onActivate(){ self::createDBTables(); } /** * * create db tables */ public static function createDBTables(){ self::createTable(GlobalsRevSlider::TABLE_SLIDERS_NAME); self::createTable(GlobalsRevSlider::TABLE_SLIDES_NAME); self::createTable(GlobalsRevSlider::TABLE_SETTINGS_NAME); } /** * if caption file don't exists - copy it from the original file. */ public static function checkCopyCaptionsCSS(){ if(file_exists(GlobalsRevSlider::$filepath_captions) == false) copy(GlobalsRevSlider::$filepath_captions_original,GlobalsRevSlider::$filepath_captions); if(!file_exists(GlobalsRevSlider::$filepath_captions) == true){ self::setStartupError("Can't copy captions-original.css to captions.css in plugins/revslider/rs-plugin/css folder. Please try to copy the file by hand or turn to support."); } } /** * * a must function. adds scripts on the page * add all page scripts and styles here. * pelase don't remove this function * common scripts even if the plugin not load, use this function only if no choise. */ public static function onAddScripts(){ self::addStyle("edit_layers","edit_layers"); //add google font //$urlGoogleFont = "http://fonts.googleapis.com/css?family=PT+Sans+Narrow:400,700"; //self::addStyleAbsoluteUrl($urlGoogleFont,"google-font-pt-sans-narrow"); self::addScriptCommon("edit_layers","unite_layers"); self::addScript("rev_admin"); //include all media upload scripts self::addMediaUploadIncludes(); //add rs css: self::addStyle("settings","rs-plugin-settings","rs-plugin/css"); self::addStyle("captions","rs-plugin-captions","rs-plugin/css"); } /** * * admin main page function. */ public static function adminPages(){ parent::adminPages(); //require styles by view switch(self::$view){ case self::VIEW_SLIDERS: case self::VIEW_SLIDER: self::requireSettings("slider_settings"); break; case self::VIEW_SLIDES: break; case self::VIEW_SLIDE: break; } self::setMasterView("master_view"); self::requireView(self::$view); } /** * * craete tables */ public static function createTable($tableName){ global $wpdb; //if table exists - don't create it. $tableRealName = self::$table_prefix.$tableName; if(UniteFunctionsWPRev::isDBTableExists($tableRealName)) return(false); $charset_collate = ''; if(method_exists($wpdb, "get_charset_collate")) $charset_collate = $wpdb->get_charset_collate(); else{ if ( ! empty($wpdb->charset) ) $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset"; if ( ! empty($wpdb->collate) ) $charset_collate .= " COLLATE $wpdb->collate"; } switch($tableName){ case GlobalsRevSlider::TABLE_SLIDERS_NAME: $sql = "CREATE TABLE " .self::$table_prefix.$tableName ." ( id int(9) NOT NULL AUTO_INCREMENT, title tinytext NOT NULL, alias tinytext, params text NOT NULL, PRIMARY KEY (id) )$charset_collate;"; break; case GlobalsRevSlider::TABLE_SLIDES_NAME: $sql = "CREATE TABLE " .self::$table_prefix.$tableName ." ( id int(9) NOT NULL AUTO_INCREMENT, slider_id int(9) NOT NULL, slide_order int not NULL, params text NOT NULL, layers text NOT NULL, PRIMARY KEY (id) )$charset_collate;"; break; case GlobalsRevSlider::TABLE_SETTINGS_NAME: $sql = "CREATE TABLE " .self::$table_prefix.$tableName ." ( id int(9) NOT NULL AUTO_INCREMENT, general TEXT NOT NULL, params TEXT NOT NULL, PRIMARY KEY (id) )$charset_collate;"; break; default: UniteFunctionsRev::throwError("table: $tableName not found"); break; } require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); } /** * * import slideer handle (not ajax response) */ private static function importSliderHandle($viewBack = null){ dmp(__("importing slider setings and data...",REVSLIDER_TEXTDOMAIN)); $slider = new RevSlider(); $response = $slider->importSliderFromPost(); $sliderID = $response["sliderID"]; if(empty($viewBack)){ $viewBack = self::getViewUrl(self::VIEW_SLIDER,"id=".$sliderID); if(empty($sliderID)) $viewBack = self::getViewUrl(self::VIEW_SLIDERS); } //handle error if($response["success"] == false){ $message = $response["error"]; dmp("Error: ".$message.""); echo UniteFunctionsRev::getHtmlLink($viewBack, __("Go Back",REVSLIDER_TEXTDOMAIN)); } else{ //handle success, js redirect. dmp(__("Slider Import Success, redirecting...",REVSLIDER_TEXTDOMAIN)); echo ""; } exit(); } /** * * onAjax action handler */ public static function onAjaxAction(){ $slider = new RevSlider(); $slide = new RevSlide(); $operations = new RevOperations(); $action = self::getPostGetVar("client_action"); $data = self::getPostGetVar("data"); try{ switch($action){ case "export_slider": $sliderID = self::getGetVar("sliderid"); $slider->initByID($sliderID); $slider->exportSlider(); break; case "import_slider": self::importSliderHandle(); break; case "import_slider_slidersview": $viewBack = self::getViewUrl(self::VIEW_SLIDERS); self::importSliderHandle($viewBack); break; case "create_slider": $newSliderID = $slider->createSliderFromOptions($data); self::ajaxResponseSuccessRedirect( __("The slider successfully created",REVSLIDER_TEXTDOMAIN), self::getViewUrl("sliders")); break; case "update_slider": $slider->updateSliderFromOptions($data); self::ajaxResponseSuccess(__("Slider updated",REVSLIDER_TEXTDOMAIN)); break; case "delete_slider": $slider->deleteSliderFromData($data); self::ajaxResponseSuccessRedirect( __("The slider deleted",REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDERS)); break; case "duplicate_slider": $slider->duplicateSliderFromData($data); self::ajaxResponseSuccessRedirect( __("The duplicate successfully, refreshing page...",REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDERS)); break; case "add_slide": $numSlides = $slider->createSlideFromData($data); $sliderID = $data["sliderid"]; if($numSlides == 1){ $responseText = __("Slide Created",REVSLIDER_TEXTDOMAIN); } else $responseText = $numSlides . " ".__("Slides Created",REVSLIDER_TEXTDOMAIN); $urlRedirect = self::getViewUrl(self::VIEW_SLIDES,"id=$sliderID"); self::ajaxResponseSuccessRedirect($responseText,$urlRedirect); break; case "add_slide_fromslideview": $slideID = $slider->createSlideFromData($data,true); $urlRedirect = self::getViewUrl(self::VIEW_SLIDE,"id=$slideID"); $responseText = __("Slide Created, redirecting...",REVSLIDER_TEXTDOMAIN); self::ajaxResponseSuccessRedirect($responseText,$urlRedirect); break; case "update_slide": $slide->updateSlideFromData($data); self::ajaxResponseSuccess(__("Slide updated",REVSLIDER_TEXTDOMAIN)); break; case "delete_slide": $slide->deleteSlideFromData($data); $sliderID = UniteFunctionsRev::getVal($data, "sliderID"); self::ajaxResponseSuccessRedirect( __("Slide Deleted Successfully",REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES,"id=$sliderID")); break; case "duplicate_slide": $sliderID = $slider->duplicateSlideFromData($data); self::ajaxResponseSuccessRedirect( __("Slide Duplicated Successfully",REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES,"id=$sliderID")); break; case "copy_move_slide": $sliderID = $slider->copyMoveSlideFromData($data); self::ajaxResponseSuccessRedirect( __("The operation successfully, refreshing page...",REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES,"id=$sliderID")); break; case "get_captions_css": $contentCSS = $operations->getCaptionsContent(); self::ajaxResponseData($contentCSS); break; case "update_captions_css": $arrCaptions = $operations->updateCaptionsContentData($data); self::ajaxResponseSuccess(__("CSS file saved succesfully!",REVSLIDER_TEXTDOMAIN),array("arrCaptions"=>$arrCaptions)); break; case "restore_captions_css": $operations->restoreCaptionsCss(); $contentCSS = $operations->getCaptionsContent(); self::ajaxResponseData($contentCSS); break; case "update_slides_order": $slider->updateSlidesOrderFromData($data); self::ajaxResponseSuccess(__("Order updated successfully",REVSLIDER_TEXTDOMAIN)); break; case "change_slide_image": $slide->updateSlideImageFromData($data); $sliderID = UniteFunctionsRev::getVal($data, "slider_id"); self::ajaxResponseSuccessRedirect( __("Slide Changed Successfully",REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES,"id=$sliderID")); break; case "preview_slide": $operations->putSlidePreviewByData($data); break; case "preview_slider": $sliderID = UniteFunctionsRev::getPostVariable("sliderid"); $operations->previewOutput($sliderID); break; case "toggle_slide_state": $currentState = $slide->toggleSlideStatFromData($data); self::ajaxResponseData(array("state"=>$currentState)); break; case "update_plugin": self::updatePlugin(self::DEFAULT_VIEW); break; case "update_text": self::updateSettingsText(); self::ajaxResponseSuccess("All files successfully updated"); break; case "update_general_settings": $operations->updateGeneralSettings($data); self::ajaxResponseSuccess(__("General settings updated")); break; default: self::ajaxResponseError("wrong ajax action: $action "); break; } } catch(Exception $e){ $message = $e->getMessage(); self::ajaxResponseError($message); } //it's an ajax action, so exit self::ajaxResponseError("No response output on $action action. please check with the developer."); exit(); } } ?>