* @copyright 2007-2010 Prestashop SA * @version Release: $Revision: 1.4 $ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ if (!defined('_CAN_LOAD_FILES_')) exit; class blockreinsurance extends Module { public function __construct() { $this->name = 'blockreinsurance'; if(version_compare(_PS_VERSION_, '1.4.0.0') >= 0) $this->tab = 'front_office_features'; else $this->tab = 'Blocks'; $this->version = '1.0'; parent::__construct(); $this->displayName = $this->l('Bloc reinsurance'); $this->description = $this->l('Add a block to display more infos to reassure your customers'); } public function install() { return (parent::install() AND $this->installDB() AND Configuration::updateValue('blockreinsurance_nbblocks', 5) AND $this->registerHook('footer')); } public function installDB() { return Db::getInstance()->execute(' CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'reinsurance` ( `id_contactinfos` INT UNSIGNED NOT NULL AUTO_INCREMENT, `filename` VARCHAR(100) NOT NULL, `text` VARCHAR(300) NOT NULL, PRIMARY KEY (`id_contactinfos`) ) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8 ;'); } public function uninstall() { //Delete configuration return (Configuration::deleteByName('blockreinsurance_nbblocks') AND $this->uninstallDB() AND parent::uninstall()); } public function uninstallDB() { return Db::getInstance()->execute(' DROP TABLE IF EXISTS `'._DB_PREFIX_.'reinsurance`'); } public function addToDB() { if(isset($_POST['nbblocks'])) { for($i = 1; $i <= (int)$_POST['nbblocks']; $i++) { $filename = explode('.', $_FILES['info'.$i.'_file']['name']); if (isset($_FILES['info'.$i.'_file']) AND isset($_FILES['info'.$i.'_file']['tmp_name']) AND !empty($_FILES['info'.$i.'_file']['tmp_name'])) { if ($error = checkImage($_FILES['info'.$i.'_file'])) return false; elseif (!$tmpName = tempnam(_PS_TMP_IMG_DIR_, 'PS') OR !move_uploaded_file($_FILES['info'.$i.'_file']['tmp_name'], $tmpName)) return false; elseif (!imageResize($tmpName, dirname(__FILE__).'/img/'.$filename[0].'.jpg')) return false; unlink($tmpName); } Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'reinsurance` (`filename`,`text`) VALUES ("'.((isset($filename[0]) AND $filename[0] != '') ? pSQL($filename[0]) : ''). '", "'.((isset($_POST['info'.$i.'_text']) AND $_POST['info'.$i.'_text'] != '') ? pSQL($_POST['info'.$i.'_text']) : '').'")'); } return true; } else return false; } public function removeFromDB() { $dir = opendir(dirname(__FILE__).'/img'); while (false !== ($file = readdir($dir))) { $path = dirname(__FILE__).'/img/'.$file; if ($file != ".." AND $file != "." AND !is_dir($file)) { unlink($path); } } closedir($dir); return Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'reinsurance`'); } public function getAllFromDB() { return Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'reinsurance`'); } public function getContent() { // If we try to update the settings if (isset($_POST['submitModule'])) { Configuration::updateValue('blockreinsurance_nbblocks', ((isset($_POST['nbblocks']) AND $_POST['nbblocks'] != '') ? (int)$_POST['nbblocks'] : '')); if($this->removeFromDB() && $this->addToDB()) echo '
'.$this->l('Configuration updated').'
'.$this->l('An error occurred during the save').'