Files
bio-concept-pharma/web/modules/cyb_bannieretexte/cyb_bannieretexte.php
2019-11-17 19:14:07 +01:00

431 lines
14 KiB
PHP

<?php
if (!defined('_PS_VERSION_')) {
exit;
}
include_once(_PS_MODULE_DIR_.'cyb_bannieretexte/Bannieretexte.php');
class Cyb_Bannieretexte extends Module
{
protected $_html = '';
public function __construct()
{
$this->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('<br />', $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;
}
}