* @copyright 2007-2019 Apollotheme * @license http://apollotheme.com - prestashop template provider */ if (!defined('_PS_VERSION_')) { # module validation exit; } class ApSliderLayer extends ApShortCodeBase { public $name = 'ApSliderLayer'; public $for_module = 'manage'; public function getInfo() { return array('label' => $this->l('Slider Layer Module'), 'position' => 3, 'desc' => $this->l('You can group from leosliderlayer module to display'), 'icon_class' => 'icon icon-chevron-right', 'tag' => 'content slider'); } public function getConfigList() { if (Module::isInstalled('leosliderlayer') && Module::isEnabled('leosliderlayer')) { include_once(_PS_MODULE_DIR_.'leosliderlayer/leosliderlayer.php'); $module = new LeoSliderLayer(); $list = $module->getAllSlides(); $controller = 'AdminModules'; $id_lang = Context::getContext()->language->id; $params = array('token' => Tools::getAdminTokenLite($controller), 'configure' => 'leosliderlayer', 'tab_module' => 'front_office_features', 'module_name' => 'leosliderlayer'); $url = dirname($_SERVER['PHP_SELF']).'/'.Dispatcher::getInstance()->createUrl($controller, $id_lang, $params, false); if ($list && count($list) > 0) { $inputs = array( array( 'type' => 'select', 'label' => $this->l('Select a group for slider layer'), 'name' => 'slideshow_group', 'options' => array( 'query' => $this->getListGroup($list), 'id' => 'id', 'name' => 'name' ), 'form_group_class' => 'value_by_categories', 'default' => 'all' ), array( 'type' => 'html', 'name' => 'default_html', 'html_content' => '
'. $this->l('Go to page configuration Slider').'
' ) ); } else { // Go to page setting of the module LeoSlideShow $inputs = array( array( 'type' => 'html', 'name' => 'default_html', 'html_content' => '
'. $this->l('There is no group slide in Leosliderlayer Module.'). '

'. $this->l(' CREATE GROUP SLIDER').'
' ) ); } } else { $inputs = array( array( 'type' => 'html', 'name' => 'default_html', 'html_content' => '
'. $this->l('"Leosliderlayer" Module must be installed and enabled before using.'). '

You can take this module at leo-theme or apollo-theme

' ) ); } return $inputs; } public function getListGroup($list) { $result = array(); foreach ($list as $item) { $status = ' ('.($item['active'] ? $this->l('Active') : $this->l('Deactive')).')'; $result[] = array('id' => $item['id_leosliderlayer_groups'], 'name' => $item['title'].$status); } return $result; } public function prepareFontContent($assign, $module = null) { if (Module::isInstalled('leosliderlayer') && Module::isEnabled('leosliderlayer')) { $id_shop = Context::getContext()->shop->id; $assign['formAtts']['isEnabled'] = true; include_once(_PS_MODULE_DIR_.'leosliderlayer/leosliderlayer.php'); $module = new LeoSliderLayer(); //print_r($assign['slideshow_group']['slideshow_group']); $link_array = explode(',', $assign['formAtts']['slideshow_group']); if ($link_array && !is_numeric($link_array['0'])) { $randkey_title = ''; foreach ($link_array as $val) { // validate module $randkey_title .= ($randkey_title == '') ? "'".pSQL($val)."'" : ",'".pSQL($val)."'"; } $where = ' WHERE title IN ('.$randkey_title.') AND id_shop = ' . (int)$id_shop; $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT id_leoslideshow_groups FROM `'._DB_PREFIX_.'leoslideshow_groups` '.pSQL($where)); $where = ''; foreach ($result as $blog) { // validate module $where .= ($where == '') ? $blog['id_leoslideshow_groups'] : ','.$blog['id_leoslideshow_groups']; } $assign['formAtts']['slideshow_group'] = $where; } $assign['content_slider'] = $module->processHookCallBack($assign['formAtts']['slideshow_group']); //$module->processHookCallBack(); } else { // validate module $assign['formAtts']['isEnabled'] = false; $assign['formAtts']['lib_has_error'] = true; $assign['formAtts']['lib_error'] = 'Can not show LeoSliderLayer via Appagebuilder. Please enable LeoSliderLayer module.'; } return $assign; } }