682 lines
32 KiB
PHP
682 lines
32 KiB
PHP
<?php
|
|
|
|
if (!defined('_PS_VERSION_')) {
|
|
exit;
|
|
}
|
|
|
|
require_once _PS_MODULE_DIR_ . 'revsliderprestashop/rev-loader.php';
|
|
class RevsliderPrestashop extends Module
|
|
{
|
|
public static $Sliders_arr = array(),$rev_current_hook;
|
|
public function __construct()
|
|
{
|
|
$this->name = "revsliderprestashop";
|
|
$this->tab = 'administration';
|
|
$this->version = '6.2.21.5';
|
|
$this->author = 'classydevs';
|
|
$this->need_instance = 0;
|
|
|
|
/**
|
|
* Set $this->bootstrap to true if your module is compliant with bootstrap (PrestaShop 1.6)
|
|
*/
|
|
$this->bootstrap = true;
|
|
$this->displayName = $this->l('Slider Revolution');
|
|
$this->description = $this->l('Slider Revolution - Premium responsive Prestashop slider');
|
|
$this->ps_versions_compliancy = array('min' => '1.7', 'max' => _PS_VERSION_);
|
|
|
|
$this->confirmUninstall = $this->l('Uninstall the module?');
|
|
parent::__construct();
|
|
}
|
|
|
|
/**
|
|
* Don't forget to create update methods if needed:
|
|
* http://doc.prestashop.com/display/PS16/Enabling+the+Auto-Update
|
|
*/
|
|
|
|
public function uninstall() {
|
|
if ( parent::uninstall() ) {
|
|
include dirname( __FILE__ ) . '/sql/uninstall_tables.php';
|
|
// include dirname(__FILE__) . '/sql/uninstall_tab.php';
|
|
// $this->moduleControllerUnRegistration();
|
|
return true;
|
|
}
|
|
|
|
}
|
|
public static function getIsset($var)
|
|
{
|
|
return RevLoader::getIsset($var);
|
|
}
|
|
public function moduleControllerRegistration()
|
|
{
|
|
$tabvalue = array();
|
|
include_once dirname( __FILE__ ) . '/sql/install_tab.php';
|
|
$languages = Language::getLanguages(true);
|
|
if (@RevsliderPrestashop::getIsset($tabvalue) && !empty($tabvalue)) {
|
|
foreach ($tabvalue as $index => $class) {
|
|
|
|
$tabexists = Tab::getIdFromClassName($class['class_name']);
|
|
|
|
if ($tabexists) {
|
|
continue;
|
|
}
|
|
|
|
$tab = new Tab();
|
|
$tab->class_name = $class['class_name'];
|
|
|
|
if (is_string($class['id_parent']) && !empty($class['id_parent'])) {
|
|
$id_parent = Tab::getIdFromClassName($class['id_parent']);
|
|
$tab->id_parent = $id_parent;
|
|
} else {
|
|
$tab->id_parent = $class['id_parent'];
|
|
}
|
|
$tab->module = $class['module'];
|
|
|
|
foreach ($languages as $lang) {
|
|
$tab->name[$lang['id_lang']] = $class['name'];
|
|
}
|
|
|
|
$tab->active = $class['active'];
|
|
$tab->add();
|
|
if (!$tab->id) {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
public static function generateSliderFromShortcode($alias =null){
|
|
|
|
|
|
if ($alias != null) {
|
|
|
|
$rev_slider_front = new RevSliderFront();
|
|
RevLoader::loadAllAddons();
|
|
$content_sliders = '';
|
|
|
|
ob_start();
|
|
RevLoader::do_action( 'wp_head' );
|
|
RevLoader::do_action( 'wp_enqueue_scripts' );
|
|
RevLoader::rev_front_print_styles();
|
|
|
|
RevLoader::rev_front_print_head_scripts();
|
|
|
|
RevLoader::do_action('revslider_slider_init_by_data_post',array());
|
|
$output = new RevSliderOutput();
|
|
|
|
$output->add_slider_to_stage($alias);
|
|
RevLoader::do_action( 'wp_footer' );
|
|
RevLoader::rev_front_print_footer_scripts();
|
|
|
|
$content_sliders = ob_get_contents();
|
|
|
|
ob_get_clean();
|
|
return $content_sliders;
|
|
|
|
}
|
|
}
|
|
public function hookOverrideLayoutTemplate( $params ) {
|
|
|
|
$controller = Tools::getValue( 'controller' );
|
|
|
|
if ( $controller == 'cms' ) {
|
|
if ( isset( $this->context->smarty->tpl_vars['cms']->value['id'] ) ) {
|
|
$id_cms = $this->context->smarty->tpl_vars['cms']->value['id'];
|
|
$content = &$this->context->smarty->tpl_vars['cms']->value['content'];
|
|
|
|
$content = self::handleShortcodes( $content );
|
|
} elseif ( isset( $this->context->controller->cms->id ) ) {
|
|
$id_cms = $this->context->controller->cms->id;
|
|
$content = &$this->context->controller->cms->content;
|
|
|
|
$content = self::handleShortcodes( $content );
|
|
}
|
|
}
|
|
if ( $controller == 'product' ) {
|
|
if ( isset( $this->context->smarty->tpl_vars['product']->value['id'] ) ) {
|
|
$id_product = $this->context->smarty->tpl_vars['product']->value['id'];
|
|
$product_var = $this->context->smarty->tpl_vars['product'];
|
|
$product_var_place = &$this->context->smarty->tpl_vars['product'];
|
|
|
|
|
|
$descriptionChange = self::handleShortcodes( $product_var->value['description'] );
|
|
$product_var->value['description'] = $descriptionChange;
|
|
$product_var_place = $product_var;
|
|
|
|
} elseif ( isset( $this->context->controller->product->id ) ) {
|
|
$id_product = $this->context->smarty->tpl_vars->product->value['id'];
|
|
$product_var = $this->context->smarty->tpl_vars->product;
|
|
$product_var_place = &$this->context->smarty->tpl_vars->product;
|
|
|
|
|
|
$descriptionChange = self::handleShortcodes( $product_var->value->description );
|
|
$product_var->value->description = $descriptionChange;
|
|
$product_var_place = $product_var;
|
|
}
|
|
}
|
|
// below all is for category page---------------------------------------------
|
|
if ( $controller == 'category' ) {
|
|
if ( isset( $this->context->smarty->tpl_vars['category']->value['id'] ) ) {
|
|
$id_category = $this->context->smarty->tpl_vars['category']->value['id'];
|
|
$category_var = $this->context->smarty->tpl_vars['category'];
|
|
$category_var_place = &$this->context->smarty->tpl_vars['category'];
|
|
|
|
|
|
$descriptionChange = self::handleShortcodes( $category_var->value['description'] );
|
|
$category_var->value['description'] = $descriptionChange;
|
|
$category_var_place = $category_var;
|
|
|
|
} elseif ( isset( $this->context->controller->category->id ) ) {
|
|
$id_category = $this->context->smarty->tpl_vars->category->value['id'];
|
|
$category_var = $this->context->smarty->tpl_vars->category;
|
|
$category_var_place = &$this->context->smarty->tpl_vars->category;
|
|
|
|
|
|
$descriptionChange = self::handleShortcodes( $category_var->value->description );
|
|
$category_var->value->description = $descriptionChange;
|
|
$category_var_place = $category_var;
|
|
}
|
|
}
|
|
|
|
// below all is for manufacturer page---------------------------------------------
|
|
|
|
if ( $controller == 'manufacturer' ) {
|
|
if ( isset( $this->context->smarty->tpl_vars['manufacturer']->value['id'] ) ) {
|
|
$id_manufacturer = $this->context->smarty->tpl_vars['manufacturer']->value['id'];
|
|
$manufacturer_var = $this->context->smarty->tpl_vars['manufacturer'];
|
|
$manufacturer_var_place = &$this->context->smarty->tpl_vars['manufacturer'];
|
|
|
|
|
|
$descriptionChange = self::handleShortcodes( $manufacturer_var->value['description'] );
|
|
$manufacturer_var->value['description'] = $descriptionChange;
|
|
$manufacturer_var_place = $manufacturer_var;
|
|
|
|
} elseif ( isset( $this->context->controller->manufacturer->id ) ) {
|
|
$id_manufacturer = $this->context->smarty->tpl_vars->manufacturer->value['id'];
|
|
$manufacturer_var = $this->context->smarty->tpl_vars->manufacturer;
|
|
$manufacturer_var_place = &$this->context->smarty->tpl_vars->manufacturer;
|
|
|
|
|
|
$descriptionChange = self::handleShortcodes( $manufacturer_var->value->description );
|
|
$manufacturer_var->value->description = $descriptionChange;
|
|
$manufacturer_var_place = $manufacturer_var;
|
|
}
|
|
}
|
|
if ( $controller == 'supplier' ) {
|
|
// below all is for supplier single page---------------------------------------------
|
|
|
|
if ( isset( $this->context->smarty->tpl_vars['supplier']->value['id'] ) ) {
|
|
$id_supplier = $this->context->smarty->tpl_vars['supplier']->value['id'];
|
|
$supplier_var = $this->context->smarty->tpl_vars['supplier'];
|
|
$supplier_var_place = &$this->context->smarty->tpl_vars['supplier'];
|
|
|
|
|
|
$descriptionChange = self::handleShortcodes( $supplier_var->value['description'] );
|
|
$supplier_var->value['description'] = $descriptionChange;
|
|
$supplier_var_place = $supplier_var;
|
|
|
|
} elseif ( isset( $this->context->controller->supplier->id ) ) {
|
|
$id_supplier = $this->context->smarty->tpl_vars->supplier->value['id'];
|
|
$supplier_var = $this->context->smarty->tpl_vars->supplier;
|
|
$supplier_var_place = &$this->context->smarty->tpl_vars->supplier;
|
|
|
|
|
|
$descriptionChange = self::handleShortcodes( $supplier_var->value->description );
|
|
$supplier_var->value->description = $descriptionChange;
|
|
$supplier_var_place = $supplier_var;
|
|
}
|
|
|
|
// below all is for supplier list page page---------------------------------------------
|
|
|
|
if ( isset( $this->context->smarty->tpl_vars['brands']->value ) ) {
|
|
$supplier_list = $this->context->smarty->tpl_vars['brands'];
|
|
$supplier_list_place = &$this->context->smarty->tpl_vars['brands'];
|
|
if ( isset( $supplier_list->value[0] ) ) {
|
|
$index_number = 0;
|
|
} else {
|
|
$index_number = 1;
|
|
}
|
|
|
|
$new_supplier_list = array();
|
|
foreach ( $supplier_list->value as $supplier ) {
|
|
$id_supplier = $this->context->smarty->tpl_vars['brands']->value[ $index_number ]['id_supplier'];
|
|
|
|
$supplier_var = $this->context->smarty->tpl_vars['brands']->value[ $index_number ];
|
|
|
|
|
|
$descriptionChange = self::handleShortcodes( $supplier_var['description'] );
|
|
|
|
$supplier_var['description'] = $descriptionChange;
|
|
$new_supplier_list[ $index_number ] = $supplier_var;
|
|
$index_number++;
|
|
}
|
|
$supplier_list->value = $new_supplier_list;
|
|
|
|
$supplier_list_place = $supplier_list;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
public static function handleShortcodes($content){
|
|
$shortcodes = array(
|
|
"rev_slider" => function($data){
|
|
$content = "";
|
|
|
|
if(isset($data["alias"])){
|
|
$alias = $data["alias"];
|
|
|
|
$slider_content = self::generateSliderFromShortcode($alias);
|
|
return $slider_content;
|
|
}
|
|
|
|
return $content;
|
|
}
|
|
);
|
|
|
|
|
|
foreach($shortcodes as $key => $function){
|
|
$dat = array();
|
|
preg_match_all("/\[".$key." (.+?)\]/", $content, $dat);
|
|
if(count($dat) > 0 && $dat[0] != array() && isset($dat[1])){
|
|
$i = 0;
|
|
$actual_string = $dat[0];
|
|
foreach($dat[1] as $temp){
|
|
$temp = explode(" ", $temp);
|
|
$params = array();
|
|
foreach ($temp as $d){
|
|
list($opt, $val) = explode("=", $d);
|
|
$params[$opt] = trim($val, '"');
|
|
}
|
|
$content = str_replace($actual_string[$i], $function($params), $content);
|
|
$i++;
|
|
}
|
|
}
|
|
}
|
|
return $content;
|
|
}
|
|
public function getHooks(){
|
|
return array(
|
|
'' => 'Select Hook',
|
|
'displayBanner' => 'displayBanner',
|
|
'displayTop' => 'displayTop',
|
|
'displayTopColumn' => 'displayTopColumn',
|
|
'displayHome' => 'displayHome',
|
|
'displayLeftColumn' => 'displayLeftColumn',
|
|
'displayRightColumn' => 'displayRightColumn',
|
|
'displayFooter' => 'displayFooter',
|
|
'displayLeftColumnProduct' => 'displayLeftColumnProduct',
|
|
'displayRightColumnProduct' => 'displayRightColumnProduct',
|
|
'displayFooterProduct' => 'displayFooterProduct',
|
|
'displayMyAccountBlock' => 'displayMyAccountBlock',
|
|
'displayMyAccountBlockfooter' => 'displayMyAccountBlockfooter',
|
|
'displayProductButtons' => 'displayProductButtons',
|
|
'displayCarrierList' => 'displayCarrierList',
|
|
'displayBeforeCarrier' => 'displayBeforeCarrier',
|
|
'displayPaymentTop' => 'displayPaymentTop',
|
|
'displayPaymentReturn' => 'displayPaymentReturn',
|
|
'displayOrderConfirmation' => 'displayOrderConfirmation',
|
|
'displayShoppingCart' => 'displayShoppingCart',
|
|
'displayShoppingCartFooter' => 'displayShoppingCartFooter',
|
|
'dislayMyAccountBlock' => 'dislayMyAccountBlock',
|
|
'displayCustomerAccountFormTop' => 'displayCustomerAccountFormTop',
|
|
'customhookname' => 'Custom Hook Name'
|
|
);
|
|
|
|
}
|
|
public function hookdisplayHeader()
|
|
{
|
|
//return;
|
|
$sliders = $this->hookCommonCb();
|
|
self::$Sliders_arr = $sliders;
|
|
$css_url = "{$this->_path}public/assets/";
|
|
$js_url = "{$this->_path}public/assets/";
|
|
$this->context->controller->addCSS($css_url . 'css/rs6.css');
|
|
|
|
$this->context->controller->registerJavascript('modules-revsliderprestashop-tools', 'modules/'.$this->name.'/public/assets/js/rbtools.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
$this->context->controller->registerJavascript('modules-revsliderprestashop-rs6', 'modules/'.$this->name.'/public/assets/js/rs6.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
$this->addonAssets($sliders);
|
|
}
|
|
public function addonAssets($sliders){
|
|
|
|
|
|
if (!empty($sliders)) {
|
|
ob_start();
|
|
foreach ($sliders as $slider){
|
|
$slider = (object)$slider;
|
|
$params = Tools::jsonDecode($slider->params,true);
|
|
if(isset($params['addOns'])){
|
|
$params = $params['addOns'];
|
|
if (@RevsliderPrestashop::getIsset($params->template) && $params->template != 'false') {
|
|
continue;
|
|
} else {
|
|
if (@RevsliderPrestashop::getIsset($params->id_shop) && $params->id_shop != Shop::getContextShopID()) {
|
|
continue;
|
|
} else {
|
|
self::loadAddonAssetsSpeicifically($params, $slider);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
public static function loadAddonAssetsSpeicifically($params,$slider){
|
|
|
|
if(isset($params['revslider-paintbrush-addon']['enable'])){
|
|
if($params['revslider-paintbrush-addon']['enable']== true){
|
|
Context::getContext()->controller->addCSS(RS_PLUGIN_ADDONS_URL . 'revslider-paintbrush-addon/public/assets/css/revolution.addon.paintbrush.css');
|
|
Context::getContext()->controller->registerJavascript('addon-paintbrush', 'modules/'.'revsliderprestashop'.'/addons/revslider-paintbrush-addon/public/assets/js/revolution.addon.paintbrush.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
}
|
|
}
|
|
|
|
if(isset($params['revslider-bubblemorph-addon']['enable'])){
|
|
if($params['revslider-bubblemorph-addon']['enable']== true){
|
|
Context::getContext()->controller->addCSS(RS_PLUGIN_ADDONS_URL . 'revslider-bubblemorph-addon/public/assets/css/revolution.addon.bubblemorph.css');
|
|
Context::getContext()->controller->registerJavascript('addon-bubblemorph', 'modules/'.'revsliderprestashop'.'/addons/revslider-bubblemorph-addon/public/assets/js/revolution.addon.bubblemorph.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
}
|
|
}
|
|
|
|
if(isset($params['revslider-explodinglayers-addon']['enable'])){
|
|
if($params['revslider-explodinglayers-addon']['enable']== true){
|
|
Context::getContext()->controller->addCSS(RS_PLUGIN_ADDONS_URL . 'revslider-explodinglayers-addon/public/assets/css/revolution.addon.explodinglayers.css');
|
|
Context::getContext()->controller->registerJavascript('addon-explodinglayers', 'modules/'.'revsliderprestashop'.'/addons/revslider-explodinglayers-addon/public/assets/js/revolution.addon.explodinglayers.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
}
|
|
}
|
|
|
|
if(isset($params['revslider-liquideffect-addon']['enable'])){
|
|
if($params['revslider-liquideffect-addon']['enable']== true){
|
|
Context::getContext()->controller->addCSS(RS_PLUGIN_ADDONS_URL . 'revslider-liquideffect-addon/public/assets/css/revolution.addon.liquideffect.css');
|
|
Context::getContext()->controller->registerJavascript('addon-liquideffect', 'modules/'.'revsliderprestashop'.'/addons/revslider-liquideffect-addon/public/assets/js/pixi.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
Context::getContext()->controller->registerJavascript('addon-liquideffect', 'modules/'.'revsliderprestashop'.'/addons/revslider-liquideffect-addon/public/assets/js/revolution.addon.liquideffect.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
}
|
|
}
|
|
|
|
if(isset($params['revslider-particles-addon']['enable'])){
|
|
if($params['revslider-particles-addon']['enable']== true){
|
|
Context::getContext()->controller->addCSS(RS_PLUGIN_ADDONS_URL . 'revslider-particles-addon/public/assets/css/revolution.addon.particles.css');
|
|
Context::getContext()->controller->registerJavascript('addon-particles', 'modules/'.'revsliderprestashop'.'/addons/revslider-particles-addon/public/assets/js/revolution.addon.particles.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
}
|
|
}
|
|
|
|
if(isset($params['revslider-beforeafter-addon']['enable'])){
|
|
if($params['revslider-beforeafter-addon']['enable']== true){
|
|
Context::getContext()->controller->addCSS(RS_PLUGIN_ADDONS_URL . 'revslider-beforeafter-addon/public/assets/css/revolution.addon.beforeafter.css');
|
|
Context::getContext()->controller->registerJavascript('addon-beforeafter', 'modules/'.'revsliderprestashop'.'/addons/revslider-beforeafter-addon/public/assets/js/revolution.addon.beforeafter.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
}
|
|
}
|
|
|
|
if(isset($params['revslider-revealer-addon']['enable'])){
|
|
if($params['revslider-revealer-addon']['enable']== true){
|
|
//have 1 extra js
|
|
Context::getContext()->controller->addCSS(RS_PLUGIN_ADDONS_URL . 'revslider-revealer-addon/public/assets/css/revolution.addon.revealer.css');
|
|
Context::getContext()->controller->registerJavascript('addon-revealer', 'modules/'.'revsliderprestashop'.'/addons/revslider-revealer-addon/public/assets/js/revolution.addon.revealer.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
}
|
|
}
|
|
|
|
if(isset($params['revslider-weather-addon']['enable'])){
|
|
if($params['revslider-weather-addon']['enable']== true){
|
|
//Context::getContext()->controller->addCSS(RS_PLUGIN_ADDONS_URL . 'revslider-weather-addon/public/assets/css/revolution.addon.weather.css');
|
|
//Context::getContext()->controller->registerJavascript('addon-weather', 'modules/'.'revsliderprestashop'.'/addons/revslider-weather-addon/public/assets/js/revolution.addon.weather.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
}
|
|
}
|
|
|
|
if(isset($params['revslider-filmstrip-addon']['enable'])){
|
|
if($params['revslider-filmstrip-addon']['enable']== true){
|
|
Context::getContext()->controller->addCSS(RS_PLUGIN_ADDONS_URL . 'revslider-filmstrip-addon/public/assets/css/revolution.addon.filmstrip.css');
|
|
Context::getContext()->controller->registerJavascript('addon-filmstrip', 'modules/'.'revsliderprestashop'.'/addons/revslider-filmstrip-addon/public/assets/js/revolution.addon.filmstrip.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
}
|
|
}
|
|
|
|
if(isset($params['revslider-typewriter-addon']['enable'])){
|
|
if($params['revslider-typewriter-addon']['enable']== true){
|
|
Context::getContext()->controller->addCSS(RS_PLUGIN_ADDONS_URL . 'revslider-typewriter-addon/public/assets/css/typewriter.css');
|
|
Context::getContext()->controller->registerJavascript('addon-typewriter', 'modules/'.'revsliderprestashop'.'/addons/revslider-typewriter-addon/public/assets/js/revolution.addon.typewriter.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
}
|
|
}
|
|
if(isset($params['revslider-polyfold-addon']['enable'])){
|
|
if($params['revslider-polyfold-addon']['enable']== true){
|
|
Context::getContext()->controller->addCSS(RS_PLUGIN_ADDONS_URL . 'revslider-polyfold-addon/public/assets/css/revolution.addon.polyfold.css');
|
|
Context::getContext()->controller->registerJavascript('addon-polyfold', 'modules/'.'revsliderprestashop'.'/addons/revslider-polyfold-addon/public/assets/js/revolution.addon.polyfold.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
}
|
|
}
|
|
|
|
if(isset($params['revslider-slicey-addon']['enable'])){
|
|
if($params['revslider-slicey-addon']['enable']== true){
|
|
//Context::getContext()->controller->addCSS(RS_PLUGIN_ADDONS_URL . 'revslider-slicey-addon/public/assets/css/revolution.addon.slicey.css');
|
|
Context::getContext()->controller->registerJavascript('addon-slicey', 'modules/'.'revsliderprestashop'.'/addons/revslider-bubblemorph-addon/public/assets/js/revolution.addon.slicey.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
}
|
|
}
|
|
|
|
if(isset($params['revslider-maintenance-addon']['enable'])){
|
|
if($params['revslider-maintenance-addon']['enable']== true){
|
|
//Context::getContext()->controller->addCSS(RS_PLUGIN_ADDONS_URL . 'revslider-maintenance-addon/public/assets/css/revolution.addon.maintenance.css');
|
|
//Context::getContext()->controller->registerJavascript('addon-maintenance', 'modules/'.'revsliderprestashop'.'/addons/revslider-maintenance-addon/public/assets/js/revolution.addon.maintenance.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
}
|
|
}
|
|
if(isset($params['revslider-snow-addon']['enable'])){
|
|
if($params['revslider-snow-addon']['enable']== true){
|
|
//Context::getContext()->controller->addCSS(RS_PLUGIN_ADDONS_URL . 'revslider-maintenance-addon/public/assets/css/revolution.addon.snow.css');
|
|
Context::getContext()->controller->registerJavascript('addon-snow', 'modules/'.'revsliderprestashop'.'/addons/revslider-snow-addon/public/assets/js/revolution.addon.snow.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
}
|
|
}
|
|
|
|
if(isset($params['revslider-duotonefilters-addon']['enable'])){
|
|
if($params['revslider-duotonefilters-addon']['enable']== true){
|
|
Context::getContext()->controller->addCSS(RS_PLUGIN_ADDONS_URL . 'revslider-duotonefilters-addon/public/assets/css/revolution.addon.duotonefilters.css');
|
|
Context::getContext()->controller->registerJavascript('addon-duotonefilters', 'modules/'.'revsliderprestashop'.'/addons/revslider-duotonefilters-addon/public/assets/js/revolution.addon.duotonefilters.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
}
|
|
}
|
|
|
|
if(isset($params['revslider-panorama-addon']['enable'])){
|
|
if($params['revslider-panorama-addon']['enable']== true){
|
|
//need one js file
|
|
Context::getContext()->controller->addCSS(RS_PLUGIN_ADDONS_URL . 'revslider-panorama-addon/public/assets/css/revolution.addon.panorama.css');
|
|
Context::getContext()->controller->registerJavascript('addon-panorama', 'modules/'.'revsliderprestashop'.'/addons/revslider-panorama-addon/public/assets/js/revolution.addon.panorama.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
}
|
|
}
|
|
|
|
if(isset($params['revslider-whiteboard-addon']['enable'])){
|
|
if($params['revslider-whiteboard-addon']['enable']== true){
|
|
//Context::getContext()->controller->addCSS(RS_PLUGIN_ADDONS_URL . 'revslider-whiteboard-addon/public/assets/css/revolution.addon.whiteboard.css');
|
|
Context::getContext()->controller->registerJavascript('addon-whiteboard', 'modules/'.'revsliderprestashop'.'/addons/revslider-whiteboard-addon/public/assets/js/revolution.addon.whiteboard.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
}
|
|
}
|
|
|
|
if(isset($params['revslider-refresh-addon']['enable'])){
|
|
if($params['revslider-refresh-addon']['enable']== true){
|
|
//Context::getContext()->controller->addCSS(RS_PLUGIN_ADDONS_URL . 'revslider-refresh-addon/public/assets/css/revolution.addon.refresh.css');
|
|
Context::getContext()->controller->registerJavascript('addon-refresh', 'modules/'.'revsliderprestashop'.'/addons/revslider-refresh-addon/public/assets/js/revolution.addon.refresh.min.js', ['position' => 'bottom', 'priority' => 1500]);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
public function install()
|
|
{
|
|
|
|
include_once dirname( __FILE__ ) . '/sql/install_tables.php';
|
|
$langs = Language::getLanguages();
|
|
$tabvalue = array(
|
|
array(
|
|
'class_name' => 'AdminRevslider',
|
|
'id_parent' => '',
|
|
'module' => 'revsliderprestashop',
|
|
'name' => 'Slider Revolution',
|
|
'active' => 1,
|
|
),
|
|
);
|
|
foreach ( $tabvalue as $tab ) {
|
|
$newtab = new Tab();
|
|
$newtab->class_name = $tab['class_name'];
|
|
$newtab->module = $tab['module'];
|
|
$newtab->id_parent = $tab['id_parent'];
|
|
foreach ( $langs as $l ) {
|
|
$newtab->name[ $l['id_lang'] ] = $this->l( $tab['name'] );
|
|
}
|
|
$newtab->add( true, false );
|
|
// Db::getInstance()->execute(' UPDATE `'._DB_PREFIX_.'tab` SET `icon` = "create" WHERE `id_tab` = "'.(int)$newtab->id.'"');
|
|
|
|
}
|
|
|
|
|
|
$tabvalue = array(
|
|
array(
|
|
'class_name' => 'AdminRevsliderSliders',
|
|
'id_parent' => Tab::getIdFromClassName('AdminRevslider'),
|
|
'module' => 'revsliderprestashop',
|
|
'name' => 'Slider Revolution',
|
|
'active' => 1,
|
|
),
|
|
array(
|
|
'class_name' => 'AdminRevolutionsliderAjax',
|
|
'id_parent' => -1,
|
|
'module' => 'revsliderprestashop',
|
|
'name' => 'Revolution Ajax Controller',
|
|
'active' => 0,
|
|
),
|
|
array(
|
|
'class_name' => 'AdminRevolutionsliderFmanager',
|
|
'id_parent' => -1,
|
|
'module' => 'revsliderprestashop',
|
|
'name' => 'Revolution File Manager',
|
|
'active' => 0,
|
|
),
|
|
);
|
|
foreach ( $tabvalue as $tab ) {
|
|
$newtab = new Tab();
|
|
$newtab->class_name = $tab['class_name'];
|
|
$newtab->module = $tab['module'];
|
|
$newtab->id_parent = $tab['id_parent'];
|
|
foreach ( $langs as $l ) {
|
|
$newtab->name[ $l['id_lang'] ] = $this->l( $tab['name'] );
|
|
}
|
|
$newtab->add( true, false );
|
|
// Db::getInstance()->execute(' UPDATE `'._DB_PREFIX_.'tab` SET `icon` = "create" WHERE `id_tab` = "'.(int)$newtab->id.'"');
|
|
|
|
}
|
|
|
|
if (parent::install() && $this->registerHook('displayHeader') && $this->registerHook('displayBackOfficeHeader') && $this->registerHook('overrideLayoutTemplate') && $this->registerHook('displayRevSlider') && $this->registerHook('actionShopDataDuplication')) {
|
|
|
|
$gethooks = $this->getHooks();
|
|
foreach (array_keys($gethooks) as $hook) {
|
|
if ($hook != '') {
|
|
$this->registerHook($hook);
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
public function hookCommonCb()
|
|
{
|
|
global $wpdb;
|
|
|
|
$sliders = $wpdb->getResults("SELECT * FROM " . $wpdb->prefix . RevSliderGlobals::TABLE_SLIDERS_NAME);
|
|
return $sliders;
|
|
}
|
|
public function generateSlider($hookPosition = 'displayHome')
|
|
{
|
|
|
|
if(RevLoader::is_admin()){
|
|
return;
|
|
}
|
|
|
|
$cache_id = 'revslider_front_' . $hookPosition;
|
|
if (!Cache::isStored($cache_id)) {
|
|
$sliders = self::$Sliders_arr;
|
|
|
|
|
|
if (!empty($sliders)) {
|
|
$rev_slider_front = new RevSliderFront();
|
|
RevLoader::loadAllAddons();
|
|
$content_sliders = '';
|
|
|
|
ob_start();
|
|
RevLoader::do_action( 'wp_head' );
|
|
RevLoader::do_action( 'wp_enqueue_scripts' );
|
|
RevLoader::rev_front_print_styles();
|
|
|
|
RevLoader::rev_front_print_head_scripts();
|
|
|
|
RevLoader::do_action('revslider_slider_init_by_data_post',array());
|
|
|
|
|
|
|
|
foreach ($sliders as $slider){
|
|
$slider = (object)$slider;
|
|
$params = Tools::jsonDecode($slider->params, true);
|
|
|
|
if (@RevsliderPrestashop::getIsset($params['layout']['id_shop']) && $params['layout']['id_shop'] != Shop::getContextShopID()) {
|
|
continue;
|
|
}
|
|
|
|
if (isset($params['layout']['displayhook'])) {
|
|
|
|
if ($params['layout']['displayhook'] === $hookPosition) {
|
|
|
|
|
|
|
|
|
|
$output = new RevSliderOutput();
|
|
$slider_alias = $slider->alias;
|
|
|
|
$output->add_slider_to_stage($slider_alias);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
RevLoader::do_action( 'wp_footer' );
|
|
RevLoader::rev_front_print_footer_scripts();
|
|
|
|
$content_sliders = ob_get_contents();
|
|
|
|
ob_get_clean();
|
|
Cache::store($cache_id, $content_sliders);
|
|
}
|
|
}
|
|
|
|
|
|
return Cache::retrieve($cache_id);
|
|
|
|
}
|
|
function GetInner($content,$start,$end){
|
|
$r = explode($start, $content);
|
|
if (isset($r[1])){
|
|
$r = explode($end, $r[1]);
|
|
return $r[0];
|
|
}
|
|
return '';
|
|
}
|
|
|
|
|
|
public function __call($function, $args)
|
|
{
|
|
|
|
|
|
$hook = Tools::substr($function, 0, 4);
|
|
|
|
|
|
if ($hook == 'hook') {
|
|
$hook_name = Tools::substr($function, 4);
|
|
|
|
$hook_name = lcfirst($hook_name);
|
|
return $this->generateSlider($hook_name);
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public function hookHeader() {
|
|
return $this->hookDisplayHeader();
|
|
}
|
|
|
|
|
|
}
|
|
|