PageRenderTime 38ms CodeModel.GetById 9ms RepoModel.GetById 0ms app.codeStats 0ms

/wp-content/plugins/revslider/revslider_admin.php

https://gitlab.com/edgarze188/sunrise
PHP | 414 lines | 287 code | 76 blank | 51 comment | 16 complexity | 7b365b83bc5cf59b084a4c70b3c257c1 MD5 | raw file
  1. <?php
  2. class RevSliderAdmin extends UniteBaseAdminClassRev{
  3. const DEFAULT_VIEW = "sliders";
  4. const VIEW_SLIDER = "slider";
  5. const VIEW_SLIDERS = "sliders";
  6. const VIEW_SLIDES = "slides";
  7. const VIEW_SLIDE = "slide";
  8. /**
  9. *
  10. * the constructor
  11. */
  12. public function __construct($mainFilepath){
  13. parent::__construct($mainFilepath,$this,self::DEFAULT_VIEW);
  14. //set table names
  15. GlobalsRevSlider::$table_sliders = self::$table_prefix.GlobalsRevSlider::TABLE_SLIDERS_NAME;
  16. GlobalsRevSlider::$table_slides = self::$table_prefix.GlobalsRevSlider::TABLE_SLIDES_NAME;
  17. GlobalsRevSlider::$table_settings = self::$table_prefix.GlobalsRevSlider::TABLE_SETTINGS_NAME;
  18. GlobalsRevSlider::$filepath_captions = self::$path_plugin."rs-plugin/css/captions.css";
  19. GlobalsRevSlider::$filepath_captions_original = self::$path_plugin."rs-plugin/css/captions-original.css";
  20. GlobalsRevSlider::$urlCaptionsCSS = self::$url_plugin."rs-plugin/css/captions.css";
  21. $this->init();
  22. }
  23. /**
  24. *
  25. * init all actions
  26. */
  27. private function init(){
  28. $this->checkCopyCaptionsCSS();
  29. //self::setDebugMode();
  30. self::createDBTables();
  31. //include general settings
  32. self::requireSettings("general_settings");
  33. //set role
  34. $generalSettings = self::getSettings("general");
  35. $role = $generalSettings->getSettingValue("role",UniteBaseAdminClassRev::ROLE_ADMIN);
  36. self::setMenuRole($role);
  37. self::addMenuPage('Revolution Slider', "adminPages");
  38. //add common scripts there
  39. //self::addAction(self::ACTION_ADMIN_INIT, "onAdminInit");
  40. //ajax response to save slider options.
  41. self::addActionAjax("ajax_action", "onAjaxAction");
  42. }
  43. /**
  44. * a must function. please don't remove it.
  45. * process activate event - install the db (with delta).
  46. */
  47. public static function onActivate(){
  48. self::createDBTables();
  49. }
  50. /**
  51. *
  52. * create db tables
  53. */
  54. public static function createDBTables(){
  55. self::createTable(GlobalsRevSlider::TABLE_SLIDERS_NAME);
  56. self::createTable(GlobalsRevSlider::TABLE_SLIDES_NAME);
  57. self::createTable(GlobalsRevSlider::TABLE_SETTINGS_NAME);
  58. }
  59. /**
  60. * if caption file don't exists - copy it from the original file.
  61. */
  62. public static function checkCopyCaptionsCSS(){
  63. if(file_exists(GlobalsRevSlider::$filepath_captions) == false)
  64. copy(GlobalsRevSlider::$filepath_captions_original,GlobalsRevSlider::$filepath_captions);
  65. if(!file_exists(GlobalsRevSlider::$filepath_captions) == true){
  66. self::setStartupError("Can't copy <b>captions-original.css </b> to <b>captions.css</b> in <b> plugins/revslider/rs-plugin/css </b> folder. Please try to copy the file by hand or turn to support.");
  67. }
  68. }
  69. /**
  70. *
  71. * a must function. adds scripts on the page
  72. * add all page scripts and styles here.
  73. * pelase don't remove this function
  74. * common scripts even if the plugin not load, use this function only if no choise.
  75. */
  76. public static function onAddScripts(){
  77. self::addStyle("edit_layers","edit_layers");
  78. //add google font
  79. //$urlGoogleFont = "http://fonts.googleapis.com/css?family=PT+Sans+Narrow:400,700";
  80. //self::addStyleAbsoluteUrl($urlGoogleFont,"google-font-pt-sans-narrow");
  81. self::addScriptCommon("edit_layers","unite_layers");
  82. self::addScript("rev_admin");
  83. //include all media upload scripts
  84. self::addMediaUploadIncludes();
  85. //add rs css:
  86. self::addStyle("settings","rs-plugin-settings","rs-plugin/css");
  87. self::addStyle("captions","rs-plugin-captions","rs-plugin/css");
  88. }
  89. /**
  90. *
  91. * admin main page function.
  92. */
  93. public static function adminPages(){
  94. parent::adminPages();
  95. //require styles by view
  96. switch(self::$view){
  97. case self::VIEW_SLIDERS:
  98. case self::VIEW_SLIDER:
  99. self::requireSettings("slider_settings");
  100. break;
  101. case self::VIEW_SLIDES:
  102. break;
  103. case self::VIEW_SLIDE:
  104. break;
  105. }
  106. self::setMasterView("master_view");
  107. self::requireView(self::$view);
  108. }
  109. /**
  110. *
  111. * craete tables
  112. */
  113. public static function createTable($tableName){
  114. global $wpdb;
  115. //if table exists - don't create it.
  116. $tableRealName = self::$table_prefix.$tableName;
  117. if(UniteFunctionsWPRev::isDBTableExists($tableRealName))
  118. return(false);
  119. $charset_collate = '';
  120. if(method_exists($wpdb, "get_charset_collate"))
  121. $charset_collate = $wpdb->get_charset_collate();
  122. else{
  123. if ( ! empty($wpdb->charset) )
  124. $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
  125. if ( ! empty($wpdb->collate) )
  126. $charset_collate .= " COLLATE $wpdb->collate";
  127. }
  128. switch($tableName){
  129. case GlobalsRevSlider::TABLE_SLIDERS_NAME:
  130. $sql = "CREATE TABLE " .self::$table_prefix.$tableName ." (
  131. id int(9) NOT NULL AUTO_INCREMENT,
  132. title tinytext NOT NULL,
  133. alias tinytext,
  134. params text NOT NULL,
  135. PRIMARY KEY (id)
  136. )$charset_collate;";
  137. break;
  138. case GlobalsRevSlider::TABLE_SLIDES_NAME:
  139. $sql = "CREATE TABLE " .self::$table_prefix.$tableName ." (
  140. id int(9) NOT NULL AUTO_INCREMENT,
  141. slider_id int(9) NOT NULL,
  142. slide_order int not NULL,
  143. params text NOT NULL,
  144. layers text NOT NULL,
  145. PRIMARY KEY (id)
  146. )$charset_collate;";
  147. break;
  148. case GlobalsRevSlider::TABLE_SETTINGS_NAME:
  149. $sql = "CREATE TABLE " .self::$table_prefix.$tableName ." (
  150. id int(9) NOT NULL AUTO_INCREMENT,
  151. general TEXT NOT NULL,
  152. params TEXT NOT NULL,
  153. PRIMARY KEY (id)
  154. )$charset_collate;";
  155. break;
  156. default:
  157. UniteFunctionsRev::throwError("table: $tableName not found");
  158. break;
  159. }
  160. require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
  161. dbDelta($sql);
  162. }
  163. /**
  164. *
  165. * import slideer handle (not ajax response)
  166. */
  167. private static function importSliderHandle($viewBack = null){
  168. dmp(__("importing slider setings and data...",REVSLIDER_TEXTDOMAIN));
  169. $slider = new RevSlider();
  170. $response = $slider->importSliderFromPost();
  171. $sliderID = $response["sliderID"];
  172. if(empty($viewBack)){
  173. $viewBack = self::getViewUrl(self::VIEW_SLIDER,"id=".$sliderID);
  174. if(empty($sliderID))
  175. $viewBack = self::getViewUrl(self::VIEW_SLIDERS);
  176. }
  177. //handle error
  178. if($response["success"] == false){
  179. $message = $response["error"];
  180. dmp("<b>Error: ".$message."</b>");
  181. echo UniteFunctionsRev::getHtmlLink($viewBack, __("Go Back",REVSLIDER_TEXTDOMAIN));
  182. }
  183. else{ //handle success, js redirect.
  184. dmp(__("Slider Import Success, redirecting...",REVSLIDER_TEXTDOMAIN));
  185. echo "<script>location.href='$viewBack'</script>";
  186. }
  187. exit();
  188. }
  189. /**
  190. *
  191. * onAjax action handler
  192. */
  193. public static function onAjaxAction(){
  194. $slider = new RevSlider();
  195. $slide = new RevSlide();
  196. $operations = new RevOperations();
  197. $action = self::getPostGetVar("client_action");
  198. $data = self::getPostGetVar("data");
  199. try{
  200. switch($action){
  201. case "export_slider":
  202. $sliderID = self::getGetVar("sliderid");
  203. $slider->initByID($sliderID);
  204. $slider->exportSlider();
  205. break;
  206. case "import_slider":
  207. self::importSliderHandle();
  208. break;
  209. case "import_slider_slidersview":
  210. $viewBack = self::getViewUrl(self::VIEW_SLIDERS);
  211. self::importSliderHandle($viewBack);
  212. break;
  213. case "create_slider":
  214. $newSliderID = $slider->createSliderFromOptions($data);
  215. self::ajaxResponseSuccessRedirect(
  216. __("The slider successfully created",REVSLIDER_TEXTDOMAIN),
  217. self::getViewUrl("sliders"));
  218. break;
  219. case "update_slider":
  220. $slider->updateSliderFromOptions($data);
  221. self::ajaxResponseSuccess(__("Slider updated",REVSLIDER_TEXTDOMAIN));
  222. break;
  223. case "delete_slider":
  224. $slider->deleteSliderFromData($data);
  225. self::ajaxResponseSuccessRedirect(
  226. __("The slider deleted",REVSLIDER_TEXTDOMAIN),
  227. self::getViewUrl(self::VIEW_SLIDERS));
  228. break;
  229. case "duplicate_slider":
  230. $slider->duplicateSliderFromData($data);
  231. self::ajaxResponseSuccessRedirect(
  232. __("The duplicate successfully, refreshing page...",REVSLIDER_TEXTDOMAIN),
  233. self::getViewUrl(self::VIEW_SLIDERS));
  234. break;
  235. case "add_slide":
  236. $numSlides = $slider->createSlideFromData($data);
  237. $sliderID = $data["sliderid"];
  238. if($numSlides == 1){
  239. $responseText = __("Slide Created",REVSLIDER_TEXTDOMAIN);
  240. }
  241. else
  242. $responseText = $numSlides . " ".__("Slides Created",REVSLIDER_TEXTDOMAIN);
  243. $urlRedirect = self::getViewUrl(self::VIEW_SLIDES,"id=$sliderID");
  244. self::ajaxResponseSuccessRedirect($responseText,$urlRedirect);
  245. break;
  246. case "add_slide_fromslideview":
  247. $slideID = $slider->createSlideFromData($data,true);
  248. $urlRedirect = self::getViewUrl(self::VIEW_SLIDE,"id=$slideID");
  249. $responseText = __("Slide Created, redirecting...",REVSLIDER_TEXTDOMAIN);
  250. self::ajaxResponseSuccessRedirect($responseText,$urlRedirect);
  251. break;
  252. case "update_slide":
  253. $slide->updateSlideFromData($data);
  254. self::ajaxResponseSuccess(__("Slide updated",REVSLIDER_TEXTDOMAIN));
  255. break;
  256. case "delete_slide":
  257. $slide->deleteSlideFromData($data);
  258. $sliderID = UniteFunctionsRev::getVal($data, "sliderID");
  259. self::ajaxResponseSuccessRedirect(
  260. __("Slide Deleted Successfully",REVSLIDER_TEXTDOMAIN),
  261. self::getViewUrl(self::VIEW_SLIDES,"id=$sliderID"));
  262. break;
  263. case "duplicate_slide":
  264. $sliderID = $slider->duplicateSlideFromData($data);
  265. self::ajaxResponseSuccessRedirect(
  266. __("Slide Duplicated Successfully",REVSLIDER_TEXTDOMAIN),
  267. self::getViewUrl(self::VIEW_SLIDES,"id=$sliderID"));
  268. break;
  269. case "copy_move_slide":
  270. $sliderID = $slider->copyMoveSlideFromData($data);
  271. self::ajaxResponseSuccessRedirect(
  272. __("The operation successfully, refreshing page...",REVSLIDER_TEXTDOMAIN),
  273. self::getViewUrl(self::VIEW_SLIDES,"id=$sliderID"));
  274. break;
  275. case "get_captions_css":
  276. $contentCSS = $operations->getCaptionsContent();
  277. self::ajaxResponseData($contentCSS);
  278. break;
  279. case "update_captions_css":
  280. $arrCaptions = $operations->updateCaptionsContentData($data);
  281. self::ajaxResponseSuccess(__("CSS file saved succesfully!",REVSLIDER_TEXTDOMAIN),array("arrCaptions"=>$arrCaptions));
  282. break;
  283. case "restore_captions_css":
  284. $operations->restoreCaptionsCss();
  285. $contentCSS = $operations->getCaptionsContent();
  286. self::ajaxResponseData($contentCSS);
  287. break;
  288. case "update_slides_order":
  289. $slider->updateSlidesOrderFromData($data);
  290. self::ajaxResponseSuccess(__("Order updated successfully",REVSLIDER_TEXTDOMAIN));
  291. break;
  292. case "change_slide_image":
  293. $slide->updateSlideImageFromData($data);
  294. $sliderID = UniteFunctionsRev::getVal($data, "slider_id");
  295. self::ajaxResponseSuccessRedirect(
  296. __("Slide Changed Successfully",REVSLIDER_TEXTDOMAIN),
  297. self::getViewUrl(self::VIEW_SLIDES,"id=$sliderID"));
  298. break;
  299. case "preview_slide":
  300. $operations->putSlidePreviewByData($data);
  301. break;
  302. case "preview_slider":
  303. $sliderID = UniteFunctionsRev::getPostVariable("sliderid");
  304. $operations->previewOutput($sliderID);
  305. break;
  306. case "toggle_slide_state":
  307. $currentState = $slide->toggleSlideStatFromData($data);
  308. self::ajaxResponseData(array("state"=>$currentState));
  309. break;
  310. case "update_plugin":
  311. self::updatePlugin(self::DEFAULT_VIEW);
  312. break;
  313. case "update_text":
  314. self::updateSettingsText();
  315. self::ajaxResponseSuccess("All files successfully updated");
  316. break;
  317. case "update_general_settings":
  318. $operations->updateGeneralSettings($data);
  319. self::ajaxResponseSuccess(__("General settings updated"));
  320. break;
  321. default:
  322. self::ajaxResponseError("wrong ajax action: $action ");
  323. break;
  324. }
  325. }
  326. catch(Exception $e){
  327. $message = $e->getMessage();
  328. self::ajaxResponseError($message);
  329. }
  330. //it's an ajax action, so exit
  331. self::ajaxResponseError("No response output on <b> $action </b> action. please check with the developer.");
  332. exit();
  333. }
  334. }
  335. ?>