name = 'postaldeliv'; $this->tab = 'shipping_logistics'; $this->version = '2.1.10'; $this->author = 'ébewè'; $this->need_instance = 0; $this->module_key = 'ccc93a38bc63cb123994eed42f533a5c'; parent::__construct(); $this->displayName = $this->l('Postal Deliv'); $this->description = $this->l('Delivery by postal code'); } /** * Install Module * **/ public function install() { if (!parent::install() || !$this->registerHook('actionCarrierUpdate') || !$this->registerHook('displayBackOfficeHeader') || !$this->installModuleTab( 'AdminPostalDeliv', array((int)Configuration::get('PS_LANG_DEFAULT')=>'Postal Deliv'), 'AdminParentShipping' ) || !$this->__executeSql(self::INSTALL_SQL_FILE)) { return false; } return true; } /** * Uninstall Module * **/ public function uninstall() { if (!parent::uninstall() || !$this->uninstallModuleTab('AdminPostalDeliv') || !$this->__executeSql(self::UNINSTALL_SQL_FILE)) { return false; } return true; } /** * install Tab * * @param mixed $tabClass * @param mixed $tabName * @param mixed $idTabParent * @return bool $pass */ private function installModuleTab($tabClass, $tabName, $idTabParent) { $idTab = Tab::getIdFromClassName($idTabParent); $pass = true; $tab = new Tab(); $tab->name = $tabName; $tab->class_name = $tabClass; $tab->module = $this->name; $tab->id_parent = $idTab; $pass = $tab->save(); return $pass; } /** * uninstall Tab * * @param mixed $tabClass * @return bool $pass */ private function uninstallModuleTab($tabClass) { $pass = true; @unlink(_PS_IMG_DIR_.'t/'.$tabClass.'.gif'); $idTab = Tab::getIdFromClassName($tabClass); if ($idTab != 0) { $tab = new Tab($idTab); $pass = $tab->delete(); } return $pass; } /** * Create / Remove Table */ private function __executeSql($file) { if (!file_exists(dirname(__FILE__) . '/sql/' . $file)) { return false; } elseif (!$sql = Tools::file_get_contents(dirname(__FILE__).'/sql/'.$file)) { return false; } $sql = str_replace(array('PREFIX_', 'ENGINE_TYPE'), array(_DB_PREFIX_, _MYSQL_ENGINE_), $sql); // Insert default template data $sql = str_replace('THE_FIRST_DEFAULT', serialize(array('width' => 1, 'height' => 1)), $sql); $sql = str_replace('FLY_IN_DEFAULT', serialize(array('width' => 1, 'height' => 1)), $sql); $sql = preg_split("/;\s*[\r\n]+/", trim($sql)); foreach ($sql as $query) { if (!Db::getInstance()->execute(trim($query))) { return false; } } return true; } public function hookDisplayBackOfficeHeader() { if (version_compare(_PS_VERSION_, '1.6.0', '>=') === true && Tools::getValue('controller') == 'AdminPostalDeliv') { $this->context->controller->addJquery(); $this->context->controller->addJs($this->_path.'views/js/postaldeliv.js'); $this->context->controller->addCss($this->_path.'views/css/postaldeliv.css'); } } public function hookActionCarrierUpdate($params) { $result = Db::getInstance()->getValue(' SELECT MAX(id_carrier) FROM `'._DB_PREFIX_.'carrier`'); Db::getInstance()->Execute(' UPDATE `'._DB_PREFIX_.'postaldeliv` SET `id_carrier`='.(int)$result.' WHERE `id_carrier`='.(int)$params['id_carrier']); } /** * Admin page */ public function getContent() { Tools::redirectAdmin(Context::getContext()->link->getAdminLink('AdminPostalDeliv')); } }