389 lines
13 KiB
PHP
389 lines
13 KiB
PHP
<?php
|
|
/**
|
|
* 2007-2015 PrestaShop
|
|
*
|
|
* NOTICE OF LICENSE
|
|
*
|
|
* This source file is subject to the Academic Free License (AFL 3.0)
|
|
* that is bundled with this package in the file LICENSE.txt.
|
|
* It is also available through the world-wide-web at this URL:
|
|
* http://opensource.org/licenses/afl-3.0.php
|
|
* If you did not receive a copy of the license and are unable to
|
|
* obtain it through the world-wide-web, please send an email
|
|
* to license@prestashop.com so we can send you a copy immediately.
|
|
*
|
|
* DISCLAIMER
|
|
*
|
|
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
|
* versions in the future. If you wish to customize PrestaShop for your
|
|
* needs please refer to http://www.prestashop.com for more information.
|
|
*
|
|
* @author PrestaPatron
|
|
* @copyright 2017-2019 Presta Patron
|
|
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License
|
|
*/
|
|
|
|
|
|
if (!defined('_PS_VERSION_')) {
|
|
exit;
|
|
}
|
|
|
|
|
|
class Ppbrandslider extends Module {
|
|
public function __construct() {
|
|
$this->name = 'ppbrandslider';
|
|
$this->tab = 'advertising_marketing';
|
|
$this->version = '1.0.0';
|
|
$this->author = 'Presta Patron';
|
|
$this->need_instance = 0;
|
|
$this->ps_versions_compliancy = array('min' => '1.7.0.0', 'max' => _PS_VERSION_);
|
|
$this->bootstrap = true;
|
|
|
|
parent::__construct();
|
|
|
|
$this->displayName = $this->l('Brand Logo Slider');
|
|
$this->description = $this->l('This module add a gallery or slider with Brand Logos in your shop, with link on the image to directly go to manufacturer\'s page.');
|
|
$this->confirmUninstall = $this->l('Are you sure you want to uninstall?');
|
|
}
|
|
|
|
public function install(){
|
|
|
|
if (Shop::isFeatureActive()) {
|
|
Shop::setContext(Shop::CONTEXT_ALL);
|
|
}
|
|
|
|
$slidersettings = $this->getModulesliderSettings();
|
|
|
|
foreach ($slidersettings as $name => $value) {
|
|
Configuration::updateValue($name, $value);
|
|
}
|
|
|
|
return parent::install() &&
|
|
$this->registerHook('displayHome') &&
|
|
$this->registerHook('displayAfterProductThumbs') &&
|
|
$this->registerHook('displayProductListReviews') &&
|
|
$this->registerHook('header');
|
|
}
|
|
|
|
public function uninstall() {
|
|
$slidersettings = $this->getModulesliderSettings();
|
|
|
|
foreach (array_keys($slidersettings) as $name) {
|
|
Configuration::deleteByName($name);
|
|
}
|
|
// All went well!
|
|
return parent::uninstall();
|
|
}
|
|
|
|
protected function getModulesliderSettings() {
|
|
$slidersettings = array(
|
|
'ENABLE_BRAND_SLIDER' => 1,
|
|
'VISIBLE_ITEMS' => '4',
|
|
'SCROLL_ITEMS' => '1',
|
|
'ANIMATION_SPEED' => '1500',
|
|
'AUTOPLAY_SLIDER' => 1,
|
|
'SHOW_ARROWS' => 1,
|
|
'MOUSE_HOVER' => 1,
|
|
);
|
|
return $slidersettings;
|
|
}
|
|
|
|
|
|
public function getContent() {
|
|
|
|
return $this->renderForm();
|
|
}
|
|
|
|
public function renderForm() {
|
|
|
|
// Get default language
|
|
$default_lang = (int)Configuration::get('PS_LANG_DEFAULT');
|
|
$this->processConfiguration();
|
|
$this->assignConfiguration();
|
|
$fields_form = null;
|
|
// Init Fields form array
|
|
$fields_form[0]['form'] = array(
|
|
'legend' => array(
|
|
'title' => $this->l('Brand Logo SLider Settings'),
|
|
),
|
|
'input' => array(
|
|
array(
|
|
'type' => 'switch',
|
|
'label' => $this->l('Enable Brand Slider:'),
|
|
'hint' => $this->l('Enable to add logo slider on home page'),
|
|
'name' => 'ENABLE_BRAND_SLIDER',
|
|
'values' => array(
|
|
array(
|
|
'id' => 'active_on',
|
|
'value' => 1,
|
|
'label' => $this->l('Enabled')
|
|
),
|
|
array(
|
|
'id' => 'active_off',
|
|
'value' => 0,
|
|
'label' => $this->l('Disabled')
|
|
)
|
|
),
|
|
),
|
|
|
|
array(
|
|
'type' => 'text',
|
|
'label' => $this->l('Visible Items:'),
|
|
'hint' => $this->l('The number of visible Items'),
|
|
'class' => 'sm',
|
|
'name' => 'VISIBLE_ITEMS',
|
|
),
|
|
|
|
array(
|
|
'type' => 'text',
|
|
'label' => $this->l('Scroll Items:'),
|
|
'hint' => $this->l('The number of scroll Items'),
|
|
'class' => 'sm',
|
|
'name' => 'SCROLL_ITEMS',
|
|
),
|
|
|
|
array(
|
|
'type' => 'text',
|
|
'label' => $this->l('Animation Speed:'),
|
|
'hint' => $this->l('The speed of animation'),
|
|
'class' => 'sm',
|
|
'name' => 'ANIMATION_SPEED',
|
|
),
|
|
|
|
array(
|
|
'type' => 'switch',
|
|
'label' => $this->l('Autoplay Slider:'),
|
|
'hint' => $this->l('Autoplay Slider'),
|
|
'name' => 'AUTOPLAY_SLIDER',
|
|
'values' => array(
|
|
array(
|
|
'id' => 'active_on',
|
|
'value' => 1,
|
|
'label' => $this->l('Enabled')
|
|
),
|
|
array(
|
|
'id' => 'active_off',
|
|
'value' => 0,
|
|
'label' => $this->l('Disabled')
|
|
)
|
|
),
|
|
),
|
|
|
|
|
|
array(
|
|
'type' => 'switch',
|
|
'label' => $this->l('Show Arrows:'),
|
|
'hint' => $this->l('The left/right arrows will be added to the slider.'),
|
|
'name' => 'SHOW_ARROWS',
|
|
'values' => array(
|
|
array(
|
|
'id' => 'active_on',
|
|
'value' => 1,
|
|
'label' => $this->l('Enabled')
|
|
),
|
|
array(
|
|
'id' => 'active_off',
|
|
'value' => 0,
|
|
'label' => $this->l('Disabled')
|
|
)
|
|
),
|
|
),
|
|
|
|
array(
|
|
'type' => 'switch',
|
|
'label' => $this->l('Pause on Mouse Hover:'),
|
|
'hint' => $this->l('Show slider on left or right column on category pages.'),
|
|
'name' => 'MOUSE_HOVER',
|
|
'values' => array(
|
|
array(
|
|
'id' => 'active_on',
|
|
'value' => 1,
|
|
'label' => $this->l('Enabled')
|
|
),
|
|
array(
|
|
'id' => 'active_off',
|
|
'value' => 0,
|
|
'label' => $this->l('Disabled')
|
|
)
|
|
),
|
|
),
|
|
|
|
|
|
|
|
|
|
),
|
|
'submit' => array(
|
|
'title' => $this->l('Save'),
|
|
'class' => 'btn btn-default pull-right'
|
|
)
|
|
);
|
|
|
|
|
|
|
|
$helper = new HelperForm();
|
|
|
|
// Module, token and currentIndex
|
|
$helper->module = $this;
|
|
$helper->name_controller = $this->name;
|
|
$helper->token = Tools::getAdminTokenLite('AdminModules');
|
|
$helper->currentIndex = AdminController::$currentIndex.'&configure='.$this->name;
|
|
|
|
// Language
|
|
$helper->default_form_language = $default_lang;
|
|
$helper->allow_employee_form_lang = $default_lang;
|
|
|
|
// Title and toolbar
|
|
$helper->title = $this->displayName;
|
|
$helper->show_toolbar = true; // false -> remove toolbar
|
|
$helper->toolbar_scroll = true; // yes - > Toolbar is always visible on the top of the screen.
|
|
$helper->submit_action = 'submit'.$this->name;
|
|
$helper->toolbar_btn = array(
|
|
'save' =>
|
|
array(
|
|
'desc' => $this->l('Save'),
|
|
'href' => AdminController::$currentIndex.'&configure='.$this->name.'&save'.$this->name.
|
|
'&token='.Tools::getAdminTokenLite('AdminModules'),
|
|
),
|
|
'back' => array(
|
|
'href' => AdminController::$currentIndex.'&token='.Tools::getAdminTokenLite('AdminModules'),
|
|
'desc' => $this->l('Back to list')
|
|
)
|
|
);
|
|
|
|
// Load current value
|
|
$helper->fields_value['ENABLE_BRAND_SLIDER'] = Configuration::get('ENABLE_BRAND_SLIDER');
|
|
$helper->fields_value['VISIBLE_ITEMS'] = Configuration::get('VISIBLE_ITEMS');
|
|
$helper->fields_value['SCROLL_ITEMS'] = Configuration::get('SCROLL_ITEMS');
|
|
$helper->fields_value['ANIMATION_SPEED'] = Configuration::get('ANIMATION_SPEED');
|
|
$helper->fields_value['AUTOPLAY_SLIDER'] = Configuration::get('AUTOPLAY_SLIDER');
|
|
$helper->fields_value['SHOW_ARROWS'] = Configuration::get('SHOW_ARROWS');
|
|
$helper->fields_value['MOUSE_HOVER'] = Configuration::get('MOUSE_HOVER');
|
|
|
|
return $helper->generateForm($fields_form);
|
|
}
|
|
|
|
|
|
public function processConfiguration(){
|
|
$output = null;
|
|
if (Tools::isSubmit('submit'.$this->name)) {
|
|
|
|
$enable_brand_slider = Tools::getValue('ENABLE_BRAND_SLIDER');
|
|
Configuration::updateValue('ENABLE_BRAND_SLIDER', $enable_brand_slider);
|
|
|
|
$visible_items = Tools::getValue('VISIBLE_ITEMS');
|
|
Configuration::updateValue('VISIBLE_ITEMS', $visible_items);
|
|
|
|
$scroll_items = Tools::getValue('SCROLL_ITEMS');
|
|
Configuration::updateValue('SCROLL_ITEMS', $scroll_items);
|
|
|
|
$animation_speed = Tools::getValue('ANIMATION_SPEED');
|
|
Configuration::updateValue('ANIMATION_SPEED', $animation_speed);
|
|
|
|
$autoplay_slider = Tools::getValue('AUTOPLAY_SLIDER');
|
|
Configuration::updateValue('AUTOPLAY_SLIDER', $autoplay_slider);
|
|
|
|
$show_arrows = Tools::getValue('SHOW_ARROWS');
|
|
Configuration::updateValue('SHOW_ARROWS', $show_arrows);
|
|
|
|
$mouse_hover = Tools::getValue('MOUSE_HOVER');
|
|
Configuration::updateValue('MOUSE_HOVER', $mouse_hover);
|
|
|
|
|
|
$output .= $this->displayConfirmation($this->l(' Settings Updated'));
|
|
|
|
}
|
|
}
|
|
|
|
public function assignConfiguration() {
|
|
$enable_brand_slider = Configuration::get('ENABLE_BRAND_SLIDER');
|
|
$this->context->smarty->assign('enable_brand_slider', $enable_brand_slider);
|
|
|
|
|
|
$visible_items = Configuration::get('VISIBLE_ITEMS');
|
|
$this->context->smarty->assign('visible_items', $visible_items);
|
|
|
|
$scroll_items = Configuration::get('SCROLL_ITEMS');
|
|
$this->context->smarty->assign('scroll_items', $scroll_items);
|
|
|
|
$animation_speed = Configuration::get('ANIMATION_SPEED');
|
|
$this->context->smarty->assign('animation_speed', $animation_speed);
|
|
|
|
$autoplay_slider = Configuration::get('AUTOPLAY_SLIDER');
|
|
$this->context->smarty->assign('autoplay_slider', $autoplay_slider);
|
|
|
|
$show_arrows = Configuration::get('SHOW_ARROWS');
|
|
$this->context->smarty->assign('show_arrows', $show_arrows);
|
|
|
|
$mouse_hover = Configuration::get('MOUSE_HOVER');
|
|
$this->context->smarty->assign('mouse_hover', $mouse_hover);
|
|
|
|
|
|
Media::addJsDef(array(
|
|
'visible_items' => $visible_items,
|
|
'scroll_items' => $scroll_items,
|
|
'animation_speed' => $animation_speed,
|
|
'autoplay_slider' => $autoplay_slider,
|
|
'show_arrows' => $show_arrows,
|
|
'mouse_hover' => $mouse_hover,
|
|
));
|
|
}
|
|
|
|
public function hookDisplayHeader() {
|
|
|
|
$this->context->controller->addCSS($this->_path.'views/css/ppbrandslider.css');
|
|
|
|
$this->context->controller->addJS($this->_path.'views/js/jquery.flexisel.js');
|
|
|
|
$this->context->controller->addJS($this->_path.'views/js/ppbrandslider.js');
|
|
|
|
}
|
|
|
|
public function hookDisplayHome($params) {
|
|
|
|
$this->processConfiguration();
|
|
$this->assignConfiguration();
|
|
|
|
$this->smarty->assign(array(
|
|
'manufacturers' => Manufacturer::getManufacturers(),
|
|
'link' => $this->context->link,
|
|
));
|
|
|
|
|
|
return $this->display(__FILE__, 'displayHome.tpl');
|
|
}
|
|
|
|
|
|
public function hookLeftColumn($params){
|
|
|
|
$this->processConfiguration();
|
|
$this->assignConfiguration();
|
|
|
|
$this->smarty->assign(array(
|
|
'manufacturers' => Manufacturer::getManufacturers(),
|
|
'link' => $this->context->link,
|
|
));
|
|
|
|
return $this->display(__FILE__, 'leftColumn.tpl');
|
|
}
|
|
|
|
|
|
public function hookDisplayAfterProductThumbs($params){
|
|
|
|
return $this->display(__FILE__, 'displayAfterProductThumbs.tpl');
|
|
}
|
|
|
|
public function hookDisplayProductListReviews($params){
|
|
|
|
$id_product = (int)$params['product']['id_product'];
|
|
|
|
$id_manufacturer = Db::getInstance()->getValue(' select `id_manufacturer` FROM ' ._DB_PREFIX_.'product where `id_product` =' . $id_product);
|
|
|
|
$this->smarty->assign(array(
|
|
'id_manufacturer' => $id_manufacturer,
|
|
|
|
));
|
|
|
|
return $this->display(__FILE__, 'displayProductListReviews.tpl');
|
|
}
|
|
|
|
} |