diff --git a/modules/blockcmsinfo/blockcmsinfo.php b/modules/blockcmsinfo/blockcmsinfo.php new file mode 100644 index 000000000..e8ce8fbb9 --- /dev/null +++ b/modules/blockcmsinfo/blockcmsinfo.php @@ -0,0 +1,315 @@ + +* @copyright 2007-2013 PrestaShop SA + +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +if (!defined('_PS_VERSION_')) + exit; + +include_once _PS_MODULE_DIR_.'blockcmsinfo/infoClass.php'; + +class Blockcmsinfo extends Module +{ + public function __construct() + { + $this->name = 'blockcmsinfo'; + $this->tab = 'front_office_features'; + $this->version = '1.0'; + $this->bootstrap = true; + $this->need_instance = 0; + parent::__construct(); + $this->displayName = $this->l('Customer cms information block'); + $this->description = $this->l('Adds an information block customers in your store.'); + } + + public function install() + { + return parent::install() && + $this->installDB() && + Configuration::updateValue('blockcmsinfo_nbblocks', 2) && + $this->registerHook('home') && $this->installFixtures(); + } + + public function installDB() + { + $return = true; + $return &= Db::getInstance()->execute(' + CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'info` ( + `id_info` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `id_shop` int(10) unsigned NOT NULL , + PRIMARY KEY (`id_info`) + ) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8 ;'); + + $return &= Db::getInstance()->execute(' + CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'info_lang` ( + `id_info` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `id_lang` int(10) unsigned NOT NULL , + `text` text NOT NULL, + PRIMARY KEY (`id_info`, `id_lang`) + ) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8 ;'); + + return $return; + } + + public function uninstall() + { + // Delete configuration + return Configuration::deleteByName('blockcmsinfo_nbblocks') && + $this->uninstallDB() && + parent::uninstall(); + } + + public function uninstallDB() + { + return Db::getInstance()->execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'info`') && Db::getInstance()->execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'info_lang`'); + } + + public function addToDB() + { + if (isset($_POST['nbblocks'])) + { + for ($i = 1; $i <= (int)$_POST['nbblocks']; $i++) + { + + Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'info` (`text`) + VALUES ("'.((isset($_POST['info'.$i.'_text']) && $_POST['info'.$i.'_text'] != '') ? pSQL($_POST['info'.$i.'_text']) : '').'")'); + } + return true; + } else + return false; + } + + public function removeFromDB() + { + return Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'info`'); + } + + public function getContent() + { + $html = ''; + $id_info = (int)Tools::getValue('id_info'); + + if (Tools::isSubmit('saveblockcmsinfo')) + { + if ($id_info = Tools::getValue('id_info')) + $info = new infoClass((int)$id_info); + else + $info = new infoClass(); + $info->copyFromPost(); + $info->id_shop = $this->context->shop->id; + + if ($info->validateFields(false) && $info->validateFieldsLang(false)) + { + $info->save(); + $this->_clearCache('blockcmsinfo.tpl'); + } + else + $html .= '
'.$this->l('An error occurred while attempting to save.').'
{$lang.name}