Current File : /home/pacjaorg/public_html/cop/administrator/components/com_uniterevolution2/revslider_admin.php |
<?php
class RevSliderAdmin extends UniteBaseAdminClassRev
{
const DEFAULT_VIEW = "sliders";
const VIEW_SLIDER = "slider";
const VIEW_SLIDER_TEMPLATE = "slider_template";
const VIEW_SLIDERS = "sliders";
const VIEW_SLIDES = "slides";
const VIEW_SLIDE = "slide";
/**
*
* the constructor
*/
public function __construct($mainFilepath)
{
parent::__construct($mainFilepath, $this, self::DEFAULT_VIEW);
//print globals
/*
$class = new ReflectionClass('GlobalsRevSlider');
$arr = $class->getStaticProperties();
dmp($arr);
*/
$this->init();
self::onAddScripts();
self::adminPages();
}
/**
*
* init all actions
*/
private function init()
{
//$this->checkCopyCaptionsCSS();
//self::setDebugMode();
self::createDBTables(); //update the captions file in db, the install done via sql file.
//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('Unite Slider', "adminPages");
//$this->addSliderMetaBox('post');
//add common scripts there
//self::addAction(self::ACTION_ADMIN_INIT, "onAdminInit");
//ajax response to save slider options.
self::onAjaxAction();
}
/**
*
* add wildcards metabox variables to posts
*/
private function addSliderMetaBox($postTypes = null)
{ //null = all, post = only posts
try {
$settings = RevOperations::getWildcardsSettings();
self::addMetaBox("Unite Slider Options", $settings, array("RevSliderAdmin", "customPostFieldsOutput"), $postTypes);
} catch (Exception $e) {
}
}
/**
* custom output function
*/
public static function customPostFieldsOutput(UniteSettingsProductSidebarRev $output)
{
//$settings = $output->getArrSettingNames();
?>
<ul class="revslider_settings">
<?php
$output->drawSettingsByNames("slide_template");
?>
</ul>
<?php
}
/**
* 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);
self::createTable(GlobalsRevSlider::TABLE_CSS_NAME);
self::createTable(GlobalsRevSlider::TABLE_LAYER_ANIMS_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 <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.");
}
}
/**
*
* 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");
self::addStyle("font-awesome", "font-awesome");
//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::addScriptCommon("css_editor", "unite_css_editor");
self::addScript("rev_admin");
//include themepunch plugins
$urlPlugins = GlobalsRevSlider::$url_item_plugin . "js/jquery.themepunch.tools.min.js";
self::addScriptAbsoluteUrl($urlPlugins, "themepunch_plugins");
//include all media upload scripts
//self::addMediaUploadIncludes();
//add rs css:
self::addStyleAbsoluteUrl(self::$url_item_plugin . "css/settings.css", "rs-plugin-settings");
self::addStyleAbsoluteUrl(GlobalsRevSlider::$urlCaptionsCSSAdmin, "rs-plugin-captions");
self::addStyleAbsoluteUrl(self::$url_item_plugin . "css/static-captions.css", "rs-plugin-static captions");
}
/**
*
* 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:
case self::VIEW_SLIDER_TEMPLATE:
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;
$parseCssToDb = false;
//check if database is empty
$result = $wpdb->get_row("SELECT COUNT( DISTINCT id ) AS NumberOfEntrys FROM " . self::$table_prefix . GlobalsRevSlider::TABLE_CSS_NAME);
if ($result->NumberOfEntrys == 0) $parseCssToDb = true;
if ($parseCssToDb) {
$revOperations = new RevOperations();
$revOperations->importCaptionsCssContentArray();
$revOperations->moveOldCaptionsCss();
$revOperations->updateDynamicCaptions(true);
}
/*
//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;
case GlobalsRevSlider::TABLE_CSS_NAME:
$sql = "CREATE TABLE " .self::$table_prefix.$tableName ." (
id int(9) NOT NULL AUTO_INCREMENT,
handle TEXT NOT NULL,
settings TEXT,
hover TEXT,
params TEXT NOT NULL,
PRIMARY KEY (id)
)$charset_collate;";
$parseCssToDb = true;
break;
case GlobalsRevSlider::TABLE_LAYER_ANIMS_NAME:
$sql = "CREATE TABLE " .self::$table_prefix.$tableName ." (
id int(9) NOT NULL AUTO_INCREMENT,
handle 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, $updateAnim = true, $updateStatic = true)
{
dmp(__ug("importing slider setings and data...", REVSLIDER_TEXTDOMAIN));
$slider = new RevSlider();
$response = $slider->importSliderFromPost($updateAnim, $updateStatic);
$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("<b>Error: " . $message . "</b>");
echo UniteFunctionsRev::getHtmlLink($viewBack, __ug("Go Back", REVSLIDER_TEXTDOMAIN));
} else { //handle success, js redirect.
dmp(__ug("Slider Import Success, redirecting...", REVSLIDER_TEXTDOMAIN));
echo "<script>location.href='$viewBack'</script>";
}
exit();
}
/**
*
* onAjax action handler
*/
public static function onAjaxAction()
{
$actionIndicator = self::getPostGetVar("action");
if ($actionIndicator != "uniterevolution_ajax_action")
return (false);
$action = self::getPostGetVar("client_action");
$data = self::getPostGetVar("data");
$nonce = self::getPostGetVar("nonce");
$slider = new RevSlider();
$slide = new RevSlide();
$operations = new RevOperations();
try {
//verify the nonce
$isVerified = wp_verify_nonce($nonce, "revslider_actions");
if ($isVerified == false)
UniteFunctionsRev::throwError("Wrong request");
switch ($action) {
case "export_slider":
RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDER_OPERATIONS);
$sliderID = self::getGetVar("sliderid");
$dummy = self::getGetVar("dummy");
$nozip = self::getGetVar("nozip");
$nozip = UniteFunctionsRev::strToBool($nozip);
$slider->initByID($sliderID);
$slider->exportSlider($dummy, $nozip);
break;
case "import_slider":
RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDER_OPERATIONS);
$updateAnim = self::getPostGetVar("update_animations");
$updateStatic = self::getPostGetVar("update_static_captions");
self::importSliderHandle(null, $updateAnim, $updateStatic);
break;
case "import_slider_slidersview":
RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDER_OPERATIONS);
$viewBack = self::getViewUrl(self::VIEW_SLIDERS);
$updateAnim = self::getPostGetVar("update_animations");
$updateStatic = self::getPostGetVar("update_static_captions");
self::importSliderHandle($viewBack, $updateAnim, $updateStatic);
break;
case "create_slider":
RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDER_OPERATIONS);
self::requireSettings("slider_settings");
$settingsMain = self::getSettings("slider_main");
$settingsParams = self::getSettings("slider_params");
$data = $operations->modifyCustomSliderParams($data);
$newSliderID = $slider->createSliderFromOptions($data, $settingsMain, $settingsParams);
self::ajaxResponseSuccessRedirect(
__ug("The slider successfully created", REVSLIDER_TEXTDOMAIN),
self::getViewUrl("sliders"));
break;
case "update_slider":
RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDER_SETTINGS);
self::requireSettings("slider_settings");
$settingsMain = self::getSettings("slider_main");
$settingsParams = self::getSettings("slider_params");
$data = $operations->modifyCustomSliderParams($data);
$slider->updateSliderFromOptions($data, $settingsMain, $settingsParams);
self::ajaxResponseSuccess(__ug("Slider updated", REVSLIDER_TEXTDOMAIN));
break;
case "update_slider_title":
RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDER_SETTINGS);
self::requireSettings("slider_settings");
$settingsMain = self::getSettings("slider_main");
$settingsParams = self::getSettings("slider_params");
$data = $operations->modifyCustomSliderParams($data);
//var_dump($data); die;
$slider->updateSliderFromOptions($data, $settingsMain, $settingsParams);
self::ajaxResponseSuccess(__ug("Slider updated", REVSLIDER_TEXTDOMAIN));
break;
case "delete_slider":
RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDER_OPERATIONS);
$isDeleted = $slider->deleteSliderFromData($data);
if (is_array($isDeleted)) {
$isDeleted = implode(', ', $isDeleted);
self::ajaxResponseError("Template can't be deleted, it is still being used by the following Sliders: " . $isDeleted);
} else {
self::ajaxResponseSuccessRedirect(
__ug("The slider deleted", REVSLIDER_TEXTDOMAIN),
self::getViewUrl(self::VIEW_SLIDERS));
}
break;
case "duplicate_slider":
RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDER_OPERATIONS);
$slider->duplicateSliderFromData($data);
self::ajaxResponseSuccessRedirect(
__ug("The duplicate successfully, refreshing page...", REVSLIDER_TEXTDOMAIN),
self::getViewUrl(self::VIEW_SLIDERS));
break;
case "add_slide":
RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDE_OPERATIONS);
$numSlides = $slider->createSlideFromData($data);
$sliderID = $data["sliderid"];
if ($numSlides == 1) {
$responseText = __ug("Slide Created", REVSLIDER_TEXTDOMAIN);
} else
$responseText = $numSlides . " " . __ug("Slides Created", REVSLIDER_TEXTDOMAIN);
$urlRedirect = self::getViewUrl(self::VIEW_SLIDES, "id=$sliderID");
self::ajaxResponseSuccessRedirect($responseText, $urlRedirect);
break;
case "add_slide_fromslideview":
RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDE_OPERATIONS);
$slideID = $slider->createSlideFromData($data, true);
$urlRedirect = self::getViewUrl(self::VIEW_SLIDE, "id=$slideID");
$responseText = __ug("Slide Created, redirecting...", REVSLIDER_TEXTDOMAIN);
self::ajaxResponseSuccessRedirect($responseText, $urlRedirect);
break;
case "update_slide":
RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_EDIT_SLIDE);
require self::getSettingsFilePath("slide_settings");
$slide->updateSlideFromData($data, $slideSettings);
self::ajaxResponseSuccess(__ug("Slide updated", REVSLIDER_TEXTDOMAIN));
break;
case "delete_slide":
RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDE_OPERATIONS);
$isPost = $slide->deleteSlideFromData($data);
if ($isPost)
$message = __ug("Post Deleted Successfully", REVSLIDER_TEXTDOMAIN);
else
$message = __ug("Slide Deleted Successfully", REVSLIDER_TEXTDOMAIN);
$sliderID = UniteFunctionsRev::getVal($data, "sliderID");
$SlideGoNumId = UniteFunctionsRev::getVal($data, "SlideGoNumId");
$SlideViewSlider = UniteFunctionsRev::getVal($data, "SlideViewSlider");
if(empty($SlideGoNumId))
self::ajaxResponseSuccessRedirect($message, self::getViewUrl(self::VIEW_SLIDES, "id=$sliderID"));
else
self::ajaxResponseSuccessRedirect($message, self::getViewUrl($SlideViewSlider, "id=$SlideGoNumId"));
break;
case "update_static_slide":
$slide->updateStaticSlideFromData($data);
self::ajaxResponseSuccess(__ug("Static Global Layers updated", REVSLIDER_TEXTDOMAIN));
break;
case "duplicate_slide":
RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDE_OPERATIONS);
$sliderID = $slider->duplicateSlideFromData($data);
self::ajaxResponseSuccessRedirect(
__ug("Slide Duplicated Successfully", REVSLIDER_TEXTDOMAIN),
self::getViewUrl(self::VIEW_SLIDES, "id=$sliderID"));
break;
case "copy_move_slide":
RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDE_OPERATIONS);
$sliderID = $slider->copyMoveSlideFromData($data);
self::ajaxResponseSuccessRedirect(
__ug("The operation successfully, refreshing page...", REVSLIDER_TEXTDOMAIN),
self::getViewUrl(self::VIEW_SLIDES, "id=$sliderID"));
break;
case "get_static_css":
$contentCSS = $operations->getStaticCss();
self::ajaxResponseData($contentCSS);
break;
case "get_dynamic_css":
$contentCSS = $operations->getDynamicCss();
self::ajaxResponseData($contentCSS);
break;
case "insert_captions_css":
$arrCaptions = $operations->insertCaptionsContentData($data);
self::ajaxResponseSuccess(__ug("CSS saved succesfully!", REVSLIDER_TEXTDOMAIN), array("arrCaptions" => $arrCaptions));
break;
case "update_captions_css":
$arrCaptions = $operations->updateCaptionsContentData($data);
self::ajaxResponseSuccess(__ug("CSS saved succesfully!", REVSLIDER_TEXTDOMAIN), array("arrCaptions" => $arrCaptions));
break;
case "delete_captions_css":
$arrCaptions = $operations->deleteCaptionsContentData($data);
self::ajaxResponseSuccess(__ug("Style deleted succesfully!", REVSLIDER_TEXTDOMAIN), array("arrCaptions" => $arrCaptions));
break;
case "update_static_css":
$staticCss = $operations->updateStaticCss($data);
self::ajaxResponseSuccess(__ug("CSS saved succesfully!", REVSLIDER_TEXTDOMAIN), array("css" => $staticCss));
break;
case "insert_custom_anim":
$arrAnims = $operations->insertCustomAnim($data); //$arrCaptions =
self::ajaxResponseSuccess(__ug("Animation saved succesfully!", REVSLIDER_TEXTDOMAIN), $arrAnims); //,array("arrCaptions"=>$arrCaptions)
break;
case "update_custom_anim":
$arrAnims = $operations->updateCustomAnim($data);
self::ajaxResponseSuccess(__ug("Animation saved succesfully!", REVSLIDER_TEXTDOMAIN), $arrAnims); //,array("arrCaptions"=>$arrCaptions)
break;
case "delete_custom_anim":
$arrAnims = $operations->deleteCustomAnim($data);
self::ajaxResponseSuccess(__ug("Animation saved succesfully!", REVSLIDER_TEXTDOMAIN), $arrAnims); //,array("arrCaptions"=>$arrCaptions)
break;
case "update_slides_order":
RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDE_OPERATIONS);
$slider->updateSlidesOrderFromData($data);
self::ajaxResponseSuccess(__ug("Order updated successfully", REVSLIDER_TEXTDOMAIN));
break;
case "change_slide_image":
RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDE_OPERATIONS);
$slide->updateSlideImageFromData($data);
$sliderID = UniteFunctionsRev::getVal($data, "slider_id");
self::ajaxResponseSuccessRedirect(
__ug("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::getPostGetVariable("sliderid");
$do_markup = UniteFunctionsRev::getPostGetVariable("only_markup");
if ($do_markup == 'true')
$operations->previewOutputMarkup($sliderID);
else
$operations->previewOutput($sliderID);
break;
case "toggle_slide_state":
$currentState = $slide->toggleSlideStatFromData($data);
self::ajaxResponseData(array("state" => $currentState));
break;
case "slide_lang_operation":
$responseData = $slide->doSlideLangOperation($data);
self::ajaxResponseData($responseData);
break;
case "update_plugin":
self::updatePlugin(self::DEFAULT_VIEW);
break;
case "update_text":
self::updateSettingsText();
self::ajaxResponseSuccess(__ug("All files successfully updated", REVSLIDER_TEXTDOMAIN));
break;
case "update_general_settings":
$operations->updateGeneralSettings($data);
self::ajaxResponseSuccess(__ug("General settings updated", REVSLIDER_TEXTDOMAIN));
break;
case "update_posts_sortby":
$slider->updatePostsSortbyFromData($data);
self::ajaxResponseSuccess(__ug("Sortby updated", REVSLIDER_TEXTDOMAIN));
break;
case "replace_image_urls":
RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDER_OPERATIONS);
$slider->replaceImageUrlsFromData($data);
self::ajaxResponseSuccess(__ug("Image urls replaced", REVSLIDER_TEXTDOMAIN));
break;
case "reset_slide_settings":
RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDE_OPERATIONS);
$slider->resetSlideSettings($data);
self::ajaxResponseSuccess(__ug("Settings in all Slides changed", REVSLIDER_TEXTDOMAIN));
break;
default:
self::ajaxResponseError("wrong ajax action: $action ");
break;
}
} catch (Exception $e) {
$message = $e->getMessage();
if ($action == "preview_slide" || $action == "preview_slider") {
echo $message;
exit();
}
self::ajaxResponseError($message);
}
//it's an ajax action, so exit
self::ajaxResponseError("No response output on <b> $action </b> action. please check with the developer.");
exit();
}
}
?>