name = 'cyb_bannieretexte'; $this->tab = ''; $this->version = '1.0'; $this->author = 'Cyberscope Bastien'; $this->bootstrap = true; $this->ps_versions_compliancy = array( 'min' => '1.7', 'max' => _PS_VERSION_, ); // Name of the module $this->displayName = $this->l('Module Cyber Bannière Texte'); // Confirm if uninstall module $this->confirmUninstall = $this->l('Etes vous sûr de vouloir supprimer le module Cyber Bannière Texte ?'); // $this->_orderBy = 'position'; parent::__construct(); } /** * @return bool if install * @since 1.0 */ public function install() { if (! parent::install() || ! Configuration::updateValue('cyb_texte_1', '') || ! Configuration::updateValue('cyb_texte_2', '') // || ! $this->registerHook('displayHeaderBanniereTexte') || ! $this->registerHook('displayFooterBefore') || ! $this->registerHook('header') || ! $this->createTables()) { return false; } return true; } /** * Creates tables * @since 1.0 */ protected function createTables() { return (bool)Db::getInstance()->execute(' CREATE TABLE IF NOT EXISTS '._DB_PREFIX_.'cyb_bannieretexte ( id_cyb int(10) unsigned NOT NULL AUTO_INCREMENT, texte_1_cyb varchar(255) DEFAULT NULL, texte_2_cyb varchar(255) DEFAULT NULL, PRIMARY KEY (id_cyb) ) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=UTF8; '); } /** * @return bool if uninstall * @since 1.0 */ public function uninstall() { if (! parent::uninstall() || ! Configuration::deleteByName('cyb_texte_1') || ! Configuration::deleteByName('cyb_texte_2') || ! $this->deleteTables()) { return false; } return true; } /** * deletes tables * @since 1.0 */ protected function deleteTables() { return Db::getInstance()->execute(' DROP TABLE IF EXISTS `'._DB_PREFIX_.'cyb_bannieretexte`; '); } /** * Get content function * @since 1.0 */ public function getContent() { $this->_html .= $this->headerHTML(); /* Validate & process */ if (Tools::isSubmit('deletecyb_bannieretexte') || Tools::isSubmit('submitConfCybBannieretexte')) { // Submit form or delete $this->postProcess(); $this->_html .= $this->renderList(); } else if (Tools::isSubmit('addcyb_bannieretexte') || (Tools::isSubmit('updatecyb_bannieretexte') && Bannieretexte::bannieretexteExists((int)Tools::getValue('id')))) { // Add or Edit $this->_html .= $this->renderForm(); } else { $this->_html .= $this->renderList(); } return $this->_html; } public function headerHTML() { if (Tools::getValue('controller') != 'AdminModules' && Tools::getValue('configure') != $this->name) { return; } $this->context->controller->addJqueryUI('ui.sortable'); // $this->context->controller->addJqueryUI(array( // 'ui.draggable', // 'ui.droppable' //)); } /** * @return string * @since 1.0 */ public function renderList() { // global $smarty; $bannieretextes = $this->getBannieretexte(); $fields_list = array( 'id' => array( 'title' => 'Id', 'align' => 'center', // Align Col (not header) 'width' => 50, // header search : width 'type' => 'int', 'class' => 'fixed-width-xs', // class css 'search' => false, // header search : display 'orderby' => true, // header search : order ), 'texte_1' => array( 'title' => 'Texte gauche', 'type' => 'string', 'search' => false, ), 'texte_2' => array( 'title' => 'Texte droite', 'type' => 'string', 'search' => false, ), ); // Init toolbar $this->initToolbar(); $helper = new HelperList(); $helper->shopLinkType = ''; $helper->actions = array('edit', 'delete'); $helper->module = $this; $helper->toolbar_btn = $this->toolbar_btn; $helper->listTotal = count($bannieretextes); $helper->show_toolbar = true; $helper->identifier = 'id'; $helper->table = 'cyb_bannieretexte'; $helper->token = Tools::getAdminTokenLite('AdminModules'); $helper->currentIndex = AdminController::$currentIndex.'&configure='.$this->name; return $helper->generateList($bannieretextes, $fields_list); } /** * @since 1.0 */ public function postProcess() { $errors = array(); if (Tools::isSubmit('submitConfCybBannieretexte')) { if (Tools::getValue('id')) { $obj = new Bannieretexte((int)Tools::getValue('id')); if (! $obj->getId()) { $this->_html .= $this->displayError($this->getTranslator()->trans('Invalid slide ID', array(), 'Modules.Imageslider.Admin')); return false; } } else { $obj = new Bannieretexte(); } $obj->setTexte1(Tools::getValue('texte_1')); $obj->setTexte2(Tools::getValue('texte_2')); /* Adds */ if (! Tools::getValue('id')) { $res = $obj->add(); if (! $res) { $errors[] = $this->displayError("Une erreur est survenue lors de l'ajout du bloc bannière-texte"); } else { $this->_html .= $this->displayConfirmation('Bloc bannière-texte ajouté'); } } else { $res = $obj->update(); if (! $res) { $errors[] = $this->displayError("Une erreur est survenue lors de la modification du bloc bannière-texte"); } else { $this->_html .= $this->displayConfirmation('Bloc bannière-texte mis à jour'); } } } else if (Tools::isSubmit('deletecyb_bannieretexte')) { $obj = new Bannieretexte((int)Tools::getValue('id')); $res = $obj->delete(); if (! $res) { $this->_html .= $this->displayError('Could not delete.'); } else { Tools::redirectAdmin($this->context->link->getAdminLink('AdminModules', true) . '&conf=1&configure=' . $this->name . '&tab_module=' . $this->tab . '&module_name=' . $this->name); } } if (count($errors)) { $this->_html .= $this->displayError(implode('
', $errors)); } elseif (Tools::isSubmit('submitConfCybBannieretexte') && Tools::getValue('id')) { Tools::redirectAdmin($this->context->link->getAdminLink('AdminModules', true) . '&conf=4&configure=' . $this->name . '&tab_module=' . $this->tab . '&module_name=' . $this->name); } elseif (Tools::isSubmit('submitConfCybBannieretexte')) { Tools::redirectAdmin($this->context->link->getAdminLink('AdminModules', true) . '&conf=3&configure=' . $this->name . '&tab_module=' . $this->tab . '&module_name=' . $this->name); } } /** * View form * @return string * @since 1.0 */ public function renderForm() { $helper = new HelperForm(); $helper->submit_action = 'submitConfCybBannieretexte'; $helper->token = Tools::getAdminTokenLite('AdminModules'); $helper->module = $this; $fields_form = array( 'form' => array( 'legend' => array( 'title' => "Paramètre du bloc bannière-texte", 'icon' => 'icon-cogs' ), 'input' => array( array( 'type' => 'text', 'label' => 'Texte gauche', 'name' => 'texte_1', 'required' => true, ), array( 'type' => 'text', 'label' => 'Texte droite', 'name' => 'texte_2', 'required' => false, ), ), 'submit' => array( 'title' => 'Valider' ) ), ); if (Tools::isSubmit('id') && Bannieretexte::bannieretexteExists((int)Tools::getValue('id'))) { $obj = new Bannieretexte((int)Tools::getValue('id')); $fields_form['form']['input'][] = array( 'type' => 'hidden', 'name' => 'id' ); } // Set var to helper $helper->tpl_vars = array( 'fields_value' => $this->getAddFieldsValues(), 'image_baseurl' => $this->_path.'views/img/', 'base_url' => $this->context->shop->getBaseURL(), ); return $helper->generateForm(array($fields_form)); } /** * Toolbar */ public function initToolbar() { $this->toolbar_btn['new'] = array( 'short' => 'lorem ipsum', 'href' => AdminController::$currentIndex.'&configure='.$this->name.'&add'.$this->name.'&token='.Tools::getAdminTokenLite('AdminModules'), 'desc' => 'Ajouter' ); } public function getAddFieldsValues() { $fields = array(); $obj = new Bannieretexte(); if (Tools::isSubmit('updatecyb_bannieretexte') && Bannieretexte::bannieretexteExists((int)Tools::getValue('id'))) { $obj = new Bannieretexte((int)Tools::getValue('id')); $fields['id'] = (int)Tools::getValue('id', $obj->id); } $fields['texte_1'] = Tools::getValue('texte_1', $obj->getTexte1()); $fields['texte_2'] = Tools::getValue('texte_2', $obj->getTexte2()); return $fields; } /** * @param $params * @since 1.0 */ public function hookHeader() { //owl $this->context->controller->registerJavascript('js-owl', 'modules/' . $this->name. '/views/js/owl.carousel.min.js', [ 'media' => 'all', 'position' => 'bottom', ] ); $this->context->controller->registerJavascript('js-cyb-bannieretexte', 'modules/' . $this->name. '/views/js/app.js', [ 'media' => 'all', 'position' => 'bottom', ] ); $this->context->controller->registerStylesheet('css-cyb-bannieretexte', 'modules/' . $this->name. '/views/css/styles.css', [ 'media' => 'all', 'priority' => 0, ] ); //owl $this->context->controller->registerStylesheet('css-owlcarousel', 'modules/' . $this->name. '/views/css/owl.carousel.min.css', [ 'media' => 'all', 'priority' => 10, ] ); $this->context->controller->registerStylesheet('css-owltheme', 'modules/' . $this->name. '/views/css/owl.theme.default.min.css', [ 'media' => 'all', 'priority' => 10, ] ); $this->context->controller->registerStylesheet('css-animate', 'modules/' . $this->name. '/views/css/animate.css', [ 'media' => 'all', 'priority' => 10, ] ); } /** * Hook display FooterBefore * @return string template * @since 1.0 */ public function hookdisplayHeaderReassurance() { global $smarty; $a_Bannieretexte = $this->getBannieretexte(); $smarty->assign('liste_Bannieretexte', $a_Bannieretexte); return $this->display(__FILE__, 'cyb_bannieretexte.tpl'); } // public function hookdisplayHeaderBannieretexte() // { // global $smarty; // // // $a_Bannieretexte = $this->getBannieretexte(); // $smarty->assign('liste_Bannieretexte', $a_Bannieretexte); // // return $this->display(__FILE__, 'cyb_bannieretexte.tpl'); // } public function getBannieretexte() { $Bannieretexte = Db::getInstance(_PS_USE_SQL_SLAVE_)->executes(' SELECT id_cyb, texte_1_cyb, texte_2_cyb FROM '._DB_PREFIX_.'cyb_bannieretexte ORDER BY id_cyb' ); // + position $res = array(); foreach ($Bannieretexte as $rea) { $res[] = array( 'id' => $rea['id_cyb'], 'texte_1' => $rea['texte_1_cyb'], 'texte_2' => $rea['texte_2_cyb'], // 'ordre' => $rea['position'], ); } // var_dump($res); // die(); return $res; } }