PageRenderTime 23ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/theme WP a cương/test_wp/wp-content/plugins/revslider/revslider_admin.php

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