Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 14 Ответов
  • 9870 Просмотров
*

ipugach

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
Всем привет!
После перехода на PHP 7.1 не могу открыть компонент Unite Revolution Slider 2 в админке. Пишет "0 [] operator not supported for strings".
Модуль открывается, слайдер на сайте работает нормально, а компонент не хочет.
Обновил с 4.3.8 до 4.6.97 не помогло.
Может у кого были такие проблемы, посоветуйте что поправить.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
очевидно, надо обновить до последней на данный момент версии? 4.7.1 вроде бы, судя по JED
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ipugach

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
Поставил 4.7.3 - не помогло. На локалке перевожу на php5.6 - все работает, а на 7.1 нет.
*

prostoy

  • Захожу иногда
  • 392
  • 6 / 1
  • Истина где то рядом.
Та же самая история.
Приходится переводить сайт на PHP5.6 потом редактирую слайдер и снова перевожу PHP7.1
Ну это не дело.
Подскажите пож как можно исправить ошибку? *ОХ-Х-Х*
*

NewUsers

  • Живу я здесь
  • 2307
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Та же самая история.
Приходится переводить сайт на PHP5.6 потом редактирую слайдер и снова перевожу PHP7.1
Ну это не дело.
Подскажите пож как можно исправить ошибку? *ОХ-Х-Х*
Включи отладку системы в общих настройках сайта
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

prostoy

  • Захожу иногда
  • 392
  • 6 / 1
  • Истина где то рядом.
Вот ошибка.
https://yadi.sk/i/WiHCvdHvwrPnxA
Первая ошибка:

0 [] operator not supported for strings   
/home/o/obeliskkam/new/public_html/administrator/components/com_uniterevolution2/inc_php/framework/base_admin.class.php:70
На эту строчку ругается
Код
/**
*
* add some meta box
* return metabox handle
*/
public static function addMetaBox($title,$content = null, $customDrawFunction = null,$location="post"){

$box = array();
$box["title"] = $title;
$box["location"] = $location;
$box["content"] = $content;
$box["draw_function"] = $customDrawFunction;

self::$arrMetaBoxes[] = $box;
}
Код
<?php
 
 class UniteBaseAdminClassRev extends UniteBaseClassRev{
 
const ACTION_ADMIN_MENU = "admin_menu";
const ACTION_ADMIN_INIT = "admin_init";
const ACTION_ADD_SCRIPTS = "admin_enqueue_scripts";
const ACTION_ADD_METABOXES = "add_meta_boxes";
const ACTION_SAVE_POST = "save_post";

const ROLE_ADMIN = "admin";
const ROLE_EDITOR = "editor";
const ROLE_AUTHOR = "author";

protected static $master_view;
protected static $view;

private static $arrSettings = array();
private static $arrMenuPages = array();
private static $tempVars = array();
private static $startupError = "";
private static $menuRole = self::ROLE_ADMIN;
private static $arrMetaBoxes = ""; //option boxes that will be added to post


/**
*
* main constructor
*/
public function __construct($mainFile,$t,$defaultView){

parent::__construct($mainFile,$t);

//set view
self::$view = self::getGetVar("view");
if(empty(self::$view))
self::$view = $defaultView;

//add internal hook for adding a menu in arrMenus
self::addAction(self::ACTION_ADMIN_MENU, "addAdminMenu");
self::addAction(self::ACTION_ADD_METABOXES, "onAddMetaboxes");
self::addAction(self::ACTION_SAVE_POST, "onSavePost");

//if not inside plugin don't continue
if($this->isInsidePlugin() == true){
self::addAction(self::ACTION_ADD_SCRIPTS, "addCommonScripts");
self::addAction(self::ACTION_ADD_SCRIPTS, "onAddScripts");
}

//a must event for any admin. call onActivate function.
$this->addEvent_onActivate();
self::addActionAjax("show_image", "onShowImage");

self::addCommonScripts();
}

/**
*
* add some meta box
* return metabox handle
*/
public static function addMetaBox($title,$content = null, $customDrawFunction = null,$location="post"){

$box = array();
$box["title"] = $title;
$box["location"] = $location;
$box["content"] = $content;
$box["draw_function"] = $customDrawFunction;

self::$arrMetaBoxes[] = $box;
}


/**
*
* on add metaboxes
*/
public static function onAddMetaboxes(){

foreach(self::$arrMetaBoxes as $index=>$box){

$title = $box["title"];
$location = $box["location"];

$boxID = "mymetabox_".self::$dir_plugin.'_'.$index;
$function = array(self::$t, "onAddMetaBoxContent");

if(is_array($location)){
foreach($location as $loc)
add_meta_box($boxID,$title,$function,$loc,'normal','default');
}else
    add_meta_box($boxID,$title,$function,$location,'normal','default');
}
}

/**
*
* on save post meta. Update metaboxes data from post, add it to the post meta
*/
public static function onSavePost(){

//protection against autosave
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ){
$postID = UniteFunctionsRev::getPostVariable("ID");
        return $postID;
}

$postID = UniteFunctionsRev::getPostVariable("ID");
if(empty($postID))
return(false);


foreach(self::$arrMetaBoxes as $box){
$content = UniteFunctionsRev::getVal($box, "content");
if(gettype($content) != "object")
continue;

$arrSettingNames = $content->getArrSettingNames();
foreach($arrSettingNames as $name){
$value = UniteFunctionsRev::getPostVariable($name);
update_post_meta( $postID, $name, $value );
} //end foreach settings

} //end foreach meta

}

/**
*
* on add metabox content
*/
public static function onAddMetaBoxContent($post,$boxData){

$postID = $post->ID;

$boxID = UniteFunctionsRev::getVal($boxData, "id");
$index = str_replace("mymetabox_".self::$dir_plugin.'_',"",$boxID);

$arrMetabox = self::$arrMetaBoxes[$index];

$content = UniteFunctionsRev::getVal($arrMetabox, "content");

$contentType = getType($content);
switch ($contentType){
case "string":
echo $content;
break;
default: //settings object
$output = new UniteSettingsProductSidebarRev();
$output->setDefaultInputClass(UniteSettingsProductSidebarRev::INPUT_CLASS_LONG);
$content->updateValuesFromPostMeta($postID);
$output->init($content);

//draw element
$drawFunction = UniteFunctionsRev::getVal($arrMetabox, "draw_function");
if(!empty($drawFunction))
call_user_func($drawFunction,$output);
else
$output->draw();

break;
}

}



/**
*
* set the menu role - for viewing menus
*/
public static function setMenuRole($menuRole){
self::$menuRole = $menuRole;
}

/**
*
* set startup error to be shown in master view
*/
public static function setStartupError($errorMessage){
self::$startupError = $errorMessage;
}


/**
*
* tells if the the current plugin opened is this plugin or not
* in the admin side.
*/
private function isInsidePlugin(){
$page = self::getGetVar("page");
if($page == self::$dir_plugin)
return(true);
return(false);
}


/**
*
* add common used scripts
*/
public static function addCommonScripts(){

$isJoomla3 = UniteFunctionJoomlaRev::isJoomla3();

$urlJQuery = "https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js";

if($isJoomla3 == false){
self::addScriptAbsoluteUrl($urlJQuery,"jquery");
}
else{
JHtml::_('bootstrap.framework');
}


self::addStyle("jquery-ui.min","jui-smoothness","css/jui/new");

self::addScriptCommon("jquery-ui.min","jquery-ui");

self::addScriptCommon("settings","unite_settings");
self::addScriptCommon("admin","unite_admin");
self::addScriptCommon("jquery.tipsy","tipsy");

//--- add styles
self::addStyleCommon("colors-fresh","wp-colors-fresh");
self::addStyleCommon("buttons","wp-buttons");

self::addStyleCommon("admin","unite_admin");
self::addStyleCommon("admin-joomla","joomla admin additions");

//add tipsy
self::addStyleCommon("tipsy","tipsy");

//include farbtastic
self::addScriptCommon("my-farbtastic","my-farbtastic","js/farbtastic");
self::addStyleCommon("farbtastic","farbtastic","js/farbtastic");

//include codemirror
self::addScriptCommon("codemirror","codemirror_js","js/codemirror");
self::addScriptCommon("css","codemirror_js_css","js/codemirror");
self::addStyleCommon("codemirror","codemirror_css","js/codemirror");

//include fancybox:
self::addScriptCommon("jquery.fancybox-1.3.4.pack","fancybox_js","js/fancybox");
self::addStyleCommon("jquery.fancybox-1.3.4","fancybox_css","js/fancybox");

//include dropdown checklist
//self::addScriptCommon("ui.dropdownchecklist-1.4-min","dropdownchecklist_js","js/dropdownchecklist");
self::addScriptCommon("ui.dropdownchecklist","dropdownchecklist_js","js/dropdownchecklist");
//self::addStyleCommon("ui.dropdownchecklist.standalone","dropdownchecklist_css","js/dropdownchecklist");

}



/**
*
* admin pages parent, includes all the admin files by default
*/
public static function adminPages(){
//self::validateAdminPermissions();
}


/**
*
* validate permission that the user is admin, and can manage options.
*/
protected static function isAdminPermissions(){

if( is_admin() &&  current_user_can("manage_options") )
return(true);

return(false);
}

/**
*
* validate admin permissions, if no pemissions - exit
*/
protected static function validateAdminPermissions(){
if(!self::isAdminPermissions()){
echo "access denied";
return(false);
}
}

/**
*
* set view that will be the master
*/
protected static function setMasterView($masterView){
self::$master_view = $masterView;
}

/**
*
* inlcude some view file
*/
protected static function requireView($view){
try{
//require master view file, and
if(!empty(self::$master_view) && !isset(self::$tempVars["is_masterView"]) ){
$masterViewFilepath = self::$path_views.self::$master_view.".php";
UniteFunctionsRev::validateFilepath($masterViewFilepath,"Master View");

self::$tempVars["is_masterView"] = true;
require $masterViewFilepath;
}
else{ //simple require the view file.
$viewFilepath = self::$path_views.$view.".php";

UniteFunctionsRev::validateFilepath($viewFilepath,"View");
require $viewFilepath;
}

}catch (Exception $e){
echo "<br><br>View ($view) Error: <b>".$e->getMessage()."</b>";

if(self::$debugMode == true)
dmp($e->getTraceAsString());
}
}

/**
* require some template from "templates" folder
*/
protected static function getPathTemplate($templateName){

$pathTemplate = self::$path_templates.$templateName.".php";
UniteFunctionsRev::validateFilepath($pathTemplate,"Template");

return($pathTemplate);
}

/**
*
* require settings file, the filename without .php
*/
public static function requireSettings($settingsFile){

try{
require self::$path_plugin."settings/$settingsFile.php";
}catch (Exception $e){
echo "<br><br>Settings ($settingsFile) Error: <b>".$e->getMessage()."</b>";
dmp($e->getTraceAsString());
}
}

/**
*
* get path to settings file
* @param $settingsFile
*/
protected static function getSettingsFilePath($settingsFile){

$filepath = self::$path_plugin."settings/$settingsFile.php";
return($filepath);
}


/**
*
* add all js and css needed for media upload
*/
protected static function addMediaUploadIncludes(){

self::addWPScript("thickbox");
self::addWPStyle("thickbox");
self::addWPScript("media-upload");

}


/**
* add admin menus from the list.
*/
public static function addAdminMenu(){

$role = "manage_options";

switch(self::$menuRole){
case self::ROLE_AUTHOR:
$role = "edit_published_posts";
break;
case self::ROLE_EDITOR:
$role = "edit_pages";
break;
default:
case self::ROLE_ADMIN:
$role = "manage_options";
break;
}

foreach(self::$arrMenuPages as $menu){
$title = $menu["title"];
$pageFunctionName = $menu["pageFunction"];
add_menu_page( $title, $title, $role, self::$dir_plugin, array(self::$t, $pageFunctionName) );
}

}


/**
*
* add menu page
*/
protected static function addMenuPage($title,$pageFunctionName){

self::$arrMenuPages[] = array("title"=>$title,"pageFunction"=>$pageFunctionName);

}

/**
*
* get url to some view.
*/
public static function getViewUrl($viewName,$urlParams=""){
$params = "&view=".$viewName;
if(!empty($urlParams))
$params .= "&".$urlParams;

$link = self::$url_component. "&page=".self::$dir_plugin.$params;

return($link);
}


/**
*
* register the "onActivate" event
*/
protected function addEvent_onActivate($eventFunc = "onActivate"){
register_activation_hook( self::$mainFile, array(self::$t, $eventFunc) );
}

/**
*
* store settings in the object
*/
protected static function storeSettings($key,$settings){
self::$arrSettings[$key] = $settings;
}

/**
*
* get settings object
*/
protected static function getSettings($key){
if(!isset(self::$arrSettings[$key]))
UniteFunctionsRev::throwError("Settings $key not found");
$settings = self::$arrSettings[$key];
return($settings);
}


/**
*
* add ajax back end callback, on some action to some function.
*/
protected static function addActionAjax($ajaxAction,$eventFunction){
self::addAction('wp_ajax_'.self::$dir_plugin."_".$ajaxAction, $eventFunction);
self::addAction('wp_ajax_nopriv_'.self::$dir_plugin."_".$ajaxAction, $eventFunction);
}

/**
*
* echo json ajax response
*/
private static function ajaxResponse($success,$message,$arrData = null){

$response = array();
$response["success"] = $success;
$response["message"] = $message;

if(!empty($arrData)){

if(gettype($arrData) == "string")
$arrData = array("data"=>$arrData);

$response = array_merge($response,$arrData);
}

$json = json_encode($response);

echo $json;
exit();
}

/**
*
* echo json ajax response, without message, only data
*/
protected static function ajaxResponseData($arrData){
if(gettype($arrData) == "string")
$arrData = array("data"=>$arrData);

self::ajaxResponse(true,"",$arrData);
}

/**
*
* echo json ajax response
*/
protected static function ajaxResponseError($message,$arrData = null){

self::ajaxResponse(false,$message,$arrData,true);
}

/**
* echo ajax success response
*/
protected static function ajaxResponseSuccess($message,$arrData = null){

self::ajaxResponse(true,$message,$arrData,true);

}

/**
* echo ajax success response
*/
protected static function ajaxResponseSuccessRedirect($message,$url){
$arrData = array("is_redirect"=>true,"redirect_url"=>$url);

self::ajaxResponse(true,$message,$arrData,true);
}


/**
*
* Enter description here ...
*/
protected static function updatePlugin($viewBack = false){
$linkBack = self::getViewUrl($viewBack);
$htmlLinkBack = UniteFunctionsRev::getHtmlLink($linkBack, "Go Back");

//check if css table exist, if not, we need to verify that the current captions.css can be parsed
if(UniteFunctionsWPRev::isDBTableExists(GlobalsRevSlider::TABLE_CSS_NAME)){
$captions = RevOperations::getCaptionsCssContentArray();
if($captions === false){
$message = "CSS parse error! Please make sure your captions.css is valid CSS before updating the plugin!";
echo "<div style='color:#B80A0A;font-size:18px;'><b>Update Error: </b> $message</div><br>";
echo $htmlLinkBack;
exit();
}
}

$zip = new UniteZipRev();

try{

if(function_exists("unzip_file") == false){
if( UniteZipRev::isZipExists() == false)
UniteFunctionsRev::throwError("The ZipArchive php extension not exists, can't extract the update file. Please turn it on in php ini.");
}

dmp("Update in progress...");

$arrFiles = UniteFunctionsRev::getVal($_FILES, "update_file");
if(empty($arrFiles))
UniteFunctionsRev::throwError("Update file don't found.");

$filename = UniteFunctionsRev::getVal($arrFiles, "name");

if(empty($filename))
UniteFunctionsRev::throwError("Update filename not found.");

$fileType = UniteFunctionsRev::getVal($arrFiles, "type");

/*
$fileType = strtolower($fileType);

if($fileType != "application/zip")
UniteFunctionsRev::throwError("The file uploaded is not zip.");
*/

$filepathTemp = UniteFunctionsRev::getVal($arrFiles, "tmp_name");
if(file_exists($filepathTemp) == false)
UniteFunctionsRev::throwError("Can't find the uploaded file.");

//crate temp folder
UniteFunctionsRev::checkCreateDir(self::$path_temp);

//create the update folder
$pathUpdate = self::$path_temp."update_extract/";
UniteFunctionsRev::checkCreateDir($pathUpdate);

//remove all files in the update folder
if(is_dir($pathUpdate)){
$arrNotDeleted = UniteFunctionsRev::deleteDir($pathUpdate,false);
if(!empty($arrNotDeleted)){
$strNotDeleted = print_r($arrNotDeleted,true);
UniteFunctionsRev::throwError("Could not delete those files from the update folder: $strNotDeleted");
}
}

//copy the zip file.
$filepathZip = $pathUpdate.$filename;

$success = move_uploaded_file($filepathTemp, $filepathZip);
if($success == false)
UniteFunctionsRev::throwError("Can't move the uploaded file here: ".$filepathZip.".");

if(function_exists("unzip_file") == true){
WP_Filesystem();
$response = unzip_file($filepathZip, $pathUpdate);
}
else
$zip->extract($filepathZip, $pathUpdate);

//get extracted folder
$arrFolders = UniteFunctionsRev::getFoldersList($pathUpdate);
if(empty($arrFolders))
UniteFunctionsRev::throwError("The update folder is not extracted");

if(count($arrFolders) > 1)
UniteFunctionsRev::throwError("Extracted folders are more then 1. Please check the update file.");

//get product folder
$productFolder = $arrFolders[0];
if(empty($productFolder))
UniteFunctionsRev::throwError("Wrong product folder.");

if($productFolder != self::$dir_plugin)
UniteFunctionsRev::throwError("The update folder don't match the product folder, please check the update file.");

$pathUpdateProduct = $pathUpdate.$productFolder."/";

//check some file in folder to validate it's the real one:
$checkFilepath = $pathUpdateProduct.$productFolder.".php";
if(file_exists($checkFilepath) == false)
UniteFunctionsRev::throwError("Wrong update extracted folder. The file: ".$checkFilepath." not found.");

//copy the plugin without the captions file.
//$pathOriginalPlugin = $pathUpdate."copy/";
$pathOriginalPlugin = self::$path_plugin;

$arrBlackList = array();
$arrBlackList[] = "rs-plugin/css/captions.css";
$arrBlackList[] = "rs-plugin/css/dynamic-captions.css";
$arrBlackList[] = "rs-plugin/css/static-captions.css";

UniteFunctionsRev::copyDir($pathUpdateProduct, $pathOriginalPlugin,"",$arrBlackList);

//delete the update
UniteFunctionsRev::deleteDir($pathUpdate);

dmp("Updated Successfully, redirecting...");
echo "<script>location.href='$linkBack'</script>";

}catch(Exception $e){
$message = $e->getMessage();
$message .= " <br> Please update the plugin manually via the ftp";
echo "<div style='color:#B80A0A;font-size:18px;'><b>Update Error: </b> $message</div><br>";
echo $htmlLinkBack;
exit();
}

}

 
 }
 
 ?>
« Последнее редактирование: 29.10.2018, 11:27:41 от prostoy »
*

NewUsers

  • Живу я здесь
  • 2307
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Покажи содержимое файла который указан в ошибке
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

prostoy

  • Захожу иногда
  • 392
  • 6 / 1
  • Истина где то рядом.
Вторая ошибка
JROOT/administrator/components/com_uniterevolution2/revslider_admin.php:79
3   RevSliderAdmin->addSliderMetaBox()   JROOT/administrator/components/com_uniterevolution2/revslider_admin.php:61
4   RevSliderAdmin->init()   JROOT/administrator/components/com_uniterevolution2/revslider_admin.php:31
Вот файл 31 строчка
Код
/**
*
* 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();
}

Ошибка 61
Код
			//$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('Revolution Slider', "adminPages");

$this->addSliderMetaBox('post');

//add common scripts there
//self::addAction(self::ACTION_ADMIN_INIT, "onAdminInit");

//ajax response to save slider options.
self::onAjaxAction();
}

Ошибка 79
Код
/**
*
* add wildcards metabox variables to posts
*/
private function addSliderMetaBox($postTypes = null){ //null = all, post = only posts
try{
$settings = RevOperations::getWildcardsSettings();

self::addMetaBox("Revolution Slider Options",$settings,array("RevSliderAdmin","customPostFieldsOutput"),$postTypes);
}catch(Exception $e){

}
}


Весь файл

Код
<?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('Revolution 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("Revolution 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");

//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 "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");
self::ajaxResponseSuccessRedirect($message, self::getViewUrl(self::VIEW_SLIDES,"id=$sliderID"));
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();
}

}


?>
*

NewUsers

  • Живу я здесь
  • 2307
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Код: php
private static $arrMetaBoxes = array();	//option boxes that will be added to post 
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

prostoy

  • Захожу иногда
  • 392
  • 6 / 1
  • Истина где то рядом.
Код: php
private static $arrMetaBoxes = array();	//option boxes that will be added to post 
Извините за вопрос эту строчку в какой файл вставлять? И на какую строчку?

Я вот так вставил
Код
/**
*
* add some meta box
* return metabox handle
*/
public static function addMetaBox($title,$content = null, $customDrawFunction = null,$location="post"){

$box = array();
$box["title"] = $title;
$box["location"] = $location;
$box["content"] = $content;
$box["draw_function"] = $customDrawFunction;

private static $arrMetaBoxes = array(); //option boxes that will be added to post

/**
self::$arrMetaBoxes[] = $box;
Редактировали выше
*/
}
*

NewUsers

  • Живу я здесь
  • 2307
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Точно не могу скзать, сежу с телефона.
Найди в начале файла
Код: php
private static $arrMetaBoxes = ""
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

prostoy

  • Захожу иногда
  • 392
  • 6 / 1
  • Истина где то рядом.
NewUsers спасибо большое всё получилось.
В файле public_html/administrator/components/com_uniterevolution2/inc_php/framework/base_admin.class.php поменял 23 строчка
Код
private static $arrMetaBoxes = array();	//option boxes that will be added to post
И вуаля.

*

Zeobr

  • Новичок
  • 4
  • 0 / 0
  • Кто был никем, тот станет всем!
Зарегистрировался на этом форуме только для того, чтобы выразить свою искреннюю благодарность людям, помогающим решать проблемы с сайтами. У меня возникла та же проблема, что описана в этой ветке. Почитал, исправил код, всё заработало. Замечательно, что есть люди, глубоко знающие программный продукт, и готовые помогать не опытным коллегам. Низкий вам за это поклон.  *DRINK*
*

triada

  • Новичок
  • 6
  • 0 / 0
NewUsers и prostoy, огромное спасибо вам, мне тоже помогло это решение.
*

anantaya

  • Новичок
  • 3
  • 0 / 0
NewUsers и prostoy, Благодарю за решение! Готовилась делать откат. Как хорошо, что есть решениею Так что очень благодарна!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Работает с глюком Balboa Gallery Pro

Автор Draft

Ответов: 6
Просмотров: 1845
Последний ответ 11.01.2024, 12:50:11
от vanechka954
DJ-Image Slider - слайд-шоу

Автор Семён

Ответов: 172
Просмотров: 100750
Последний ответ 02.11.2022, 18:37:47
от Alex Kop
Не корректно работает галерея Sigplus

Автор 62411

Ответов: 13
Просмотров: 2664
Последний ответ 19.04.2020, 20:59:56
от 62411
smart slider 3

Автор lexxbry

Ответов: 3
Просмотров: 2915
Последний ответ 27.10.2019, 17:55:36
от marya
DJ image slider не отображает миниатюры

Автор dk0929

Ответов: 0
Просмотров: 2090
Последний ответ 22.09.2019, 17:25:22
от dk0929