private function adminInstall() { // 1.5+ only if (preg_match("/^1.(3|4).*/", _PS_VERSION_)) { return; } // Parent tab requires 2 levels menu in Prestashop 1.5 $parent = new Tab(); $parent->class_name = preg_match("/^1.5.*/", _PS_VERSION_) ? 'AdminFacebookShopMain' : 'AdminFacebookShop'; $parent->id_parent = 0; // Home tab $parent->module = $this->name; $languages = Language::getLanguages(false); foreach ($languages as $lang) { $parent->name[$lang['id_lang']] = $this->l('Facebook Store'); } $parent->save(); /* Prestashop 1.6 does not require a second level tab */ if (preg_match("/^1.5.*/", _PS_VERSION_)) { // Child Tab $tab = new Tab(); $tab->class_name = 'AdminFacebookShop'; $tab->id_parent = $parent->id; $tab->module = $this->name; foreach ($languages as $lang) { $tab->name[$lang['id_lang']] = $this->l('Manage'); } $tab->save(); } }
/** * Installation du module */ public function install() { if (!parent::install() || !$this->registerHook('actionCustomerAccountAdd')) { return false; } //Création d'une tab prestashop $tab = new Tab(); $tab->class_name = 'Rules'; $tab->module = $this->name; $tab->id_parent = Tab::getIdFromClassName('AdminParentCustomer'); $languages = Language::getLanguages(); foreach ($languages as $lang) { $tab->name[$lang['id_lang']] = 'Customer Auto Groups'; } try { $tab->save(); } catch (Exception $e) { echo $e->getMessage(); return false; } if (!$this->_installSql()) { return false; } return true; }
public function install() { /* Before creating a new tab "AdminSelfUpgrade" we need to remove any existing "AdminUpgrade" tab (present in v1.4.4.0 and v1.4.4.1) */ if ($id_tab = Tab::getIdFromClassName('AdminUpgrade')) { $tab = new Tab((int) $id_tab); if (!$tab->delete()) { $this->_errors[] = sprintf($this->l('Unable to delete outdated AdminUpgrade tab %d'), (int) $id_tab); } } /* If the "AdminSelfUpgrade" tab does not exist yet, create it */ if (!($id_tab = Tab::getIdFromClassName('AdminSelfUpgrade'))) { $tab = new Tab(); $tab->class_name = 'AdminSelfUpgrade'; $tab->module = 'autoupgrade'; $tab->id_parent = (int) Tab::getIdFromClassName('AdminTools'); foreach (Language::getLanguages(false) as $lang) { $tab->name[(int) $lang['id_lang']] = '1-Click Upgrade'; } if (!$tab->save()) { return $this->_abortInstall($this->l('Unable to create the "AdminSelfUpgrade" tab')); } if (!@copy(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'logo.gif', _PS_ROOT_DIR_ . DIRECTORY_SEPARATOR . 'img' . DIRECTORY_SEPARATOR . 't' . DIRECTORY_SEPARATOR . 'AdminSelfUpgrade.gif')) { return $this->_abortInstall(sprintf($this->l('Unable to copy logo.gif in %s'), _PS_ROOT_DIR_ . DIRECTORY_SEPARATOR . 'img' . DIRECTORY_SEPARATOR . 't' . DIRECTORY_SEPARATOR)); } } else { $tab = new Tab((int) $id_tab); } /* Update the "AdminSelfUpgrade" tab id in database or exit */ if (Validate::isLoadedObject($tab)) { Configuration::updateValue('PS_AUTOUPDATE_MODULE_IDTAB', (int) $tab->id); } else { return $this->_abortInstall($this->l('Unable to load the "AdminSelfUpgrade" tab')); } /* Check that the 1-click upgrade working directory is existing or create it */ $autoupgrade_dir = _PS_ADMIN_DIR_ . DIRECTORY_SEPARATOR . 'autoupgrade'; if (!file_exists($autoupgrade_dir) && !@mkdir($autoupgrade_dir, 0755)) { return $this->_abortInstall(sprintf($this->l('Unable to create the directory "%s"'), $autoupgrade_dir)); } /* Make sure that the 1-click upgrade working directory is writeable */ if (!is_writable($autoupgrade_dir)) { return $this->_abortInstall(sprintf($this->l('Unable to write in the directory "%s"'), $autoupgrade_dir)); } /* If a previous version of ajax-upgradetab.php exists, delete it */ if (file_exists($autoupgrade_dir . DIRECTORY_SEPARATOR . 'ajax-upgradetab.php')) { @unlink($autoupgrade_dir . DIRECTORY_SEPARATOR . 'ajax-upgradetab.php'); } /* Then, try to copy the newest version from the module's directory */ if (!@copy(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'ajax-upgradetab.php', $autoupgrade_dir . DIRECTORY_SEPARATOR . 'ajax-upgradetab.php')) { return $this->_abortInstall(sprintf($this->l('Unable to copy ajax-upgradetab.php in %s'), $autoupgrade_dir)); } /* Make sure that the XML config directory exists */ if (!file_exists(_PS_ROOT_DIR_ . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'xml') && !@mkdir(_PS_ROOT_DIR_ . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'xml', 0755)) { return $this->_abortInstall(sprintf($this->l('Unable to create the directory "%s"'), _PS_ROOT_DIR_ . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'xml')); } /* Create a dummy index.php file in the XML config directory to avoid directory listing */ if (!file_exists(_PS_ROOT_DIR_ . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'xml' . DIRECTORY_SEPARATOR . 'index.php') && (file_exists(_PS_ROOT_DIR_ . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'index.php') && !@copy(_PS_ROOT_DIR_ . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'index.php', _PS_ROOT_DIR_ . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'xml' . DIRECTORY_SEPARATOR . 'index.php'))) { return $this->_abortInstall(sprintf($this->l('Unable to create the directory "%s"'), _PS_ROOT_DIR_ . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'xml')); } return parent::install(); }
protected function addTab() { $tab = new Tab(); $tab->class_name = 'AdminSampleDataInstall'; $tab->id_parent = 0; $tab->module = $this->name; $tab->position = 100; $languages = Language::getLanguages(false); foreach ($languages as $lang) { $tab->name[$lang['id_lang']] = 'Sample Data Install'; } if (!$tab->save()) { return false; } $tab_id = $tab->id; require_once dirname(__FILE__) . '/install/install_tab.php'; foreach ($tabvalue as $tab) { $newtab = new Tab(); $newtab->class_name = $tab['class_name']; $newtab->id_parent = $tab_id; $newtab->module = $tab['module']; foreach ($languages as $l) { $newtab->name[$l['id_lang']] = $this->l($tab['name']); } if (!$newtab->save()) { return false; } } return true; }
public function install() { if (!parent::install() || !Configuration::updateValue('eicmslinks_admin_path', 0)) { return false; } //Copie des dossier de l'editeur tinyMce $this->copyDir(dirname(__FILE__) . '/tiny_mce/', dirname(__FILE__) . '/../../js/tiny_mce/plugins/'); //Copie de l'override du formulaire cms de l'admin (Normalement devrait fonctionner via prestashop) $this->copyDir(dirname(__FILE__) . '/override/controllers/admin/templates/', dirname(__FILE__) . '/../../override/controllers/admin/templates/'); //Création d'une tab prestashop ( nécessaire pour le controller back office ) $tab = new Tab(); $tab->class_name = 'wysiwyg'; //On va la ranger dans "Préférences comme les pages cms y sont insérée $id_parent = Tab::getIdFromClassName('AdminParentPreferences'); $tab->id_parent = $id_parent; $tab->module = $this->name; $languages = Language::getLanguages(); foreach ($languages as $lang) { $tab->name[$lang['id_lang']] = 'EiCmsLinks'; } try { $tab->save(); } catch (Exception $e) { echo $e->getMessage(); return false; } //Spécifique 1.5 ( on renomme le fichier de surcharge avec le bon nom car ils ne sont pas compatibles entre les versions ) if (_PS_VERSION_ < '1.6') { rename(dirname(__FILE__) . '/../../override/controllers/admin/templates/cms/helpers/form/form.tpl', dirname(__FILE__) . '/../../override/controllers/admin/templates/cms/helpers/form/form16.tpl'); rename(dirname(__FILE__) . '/../../override/controllers/admin/templates/cms/helpers/form/form15.tpl', dirname(__FILE__) . '/../../override/controllers/admin/templates/cms/helpers/form/form.tpl'); } return true; }
public function install() { if (!parent::install() || !$this->registerHook('displayHeader') || !$this->registerHook('displayBackOfficeHeader') || !$this->installDB()) { return false; } if (!$this->backupAllModulesHook('hook_module', 'ovic_backup_hook_module')) { return false; } $result = true; foreach (self::$OptionHookAssign as $hookname) { if (!$this->registerHook($hookname)) { $result &= false; break; } } if (!$result || !$this->registerHook('actionModuleRegisterHookAfter') || !$this->installSampleData()) { return false; } //$defaultfont = htmlentities("<link href='http://fonts.googleapis.com/css?family=Cuprum' rel='stylesheet' type='text/css'>"); // if (is_string($defaultfont) === true) // $defaultfont = urldecode(preg_replace('/((\%5C0+)|(\%00+))/i', '', urlencode($defaultfont))); // $defaultfont = !is_string($defaultfont)? $defaultfont : stripslashes($defaultfont); // Configuration::updateValue('OVIC_FONT_LINK', $defaultfont); // Configuration::updateValue('OVIC_MAIN_COLOR','#fe983d'); // Configuration::updateValue('OVIC_BTN_COLOR','#333'); // Configuration::updateValue('OVIC_BTN_HOVER_COLOR','#000'); // Configuration::updateValue('OVIC_BTN_TEXT_COLOR','#fff'); // Configuration::updateValue('OVIC_BTN_TEXT_HOVER_COLOR','#fff'); $langs = Language::getLanguages(); $tab = new Tab(); $tab->class_name = "AdminThemeConfig"; foreach ($langs as $l) { $tab->name[$l['id_lang']] = $this->l('Ovic Theme config'); } $tab->module = ''; $tab->id_parent = 0; //Root tab $tab->save(); $tab_id = $tab->id; $newtab = new Tab(); $newtab->class_name = "AdminLayoutSetting"; foreach ($langs as $l) { $newtab->name[$l['id_lang']] = $this->l('Layout Control'); } $newtab->module = $this->name; $newtab->id_parent = $tab_id; $newtab->add(); $newtab = new Tab(); $newtab->class_name = "AdminLayoutBuilder"; foreach ($langs as $l) { $newtab->name[$l['id_lang']] = $this->l('Layout Builder'); } $newtab->module = $this->name; $newtab->id_parent = $tab_id; $newtab->add(); return true; }
public function actionAdd() { if (empty($_POST)) { $viewData = array(); $this->render('edit', $viewData); exit; } $res = array('statusCode' => 200, 'message' => '添加成功!'); try { $m = new Tab(); $m->name = $_REQUEST['name']; //谱子名称 $m->class = $_REQUEST['class']; //歌曲名称 $m->scover = $_REQUEST['scover']; //专辑id $m->mcover = $_REQUEST['mcover']; $m->bcover = $_REQUEST['bcover']; $m->content = $_REQUEST['content']; $m->poptab = $_REQUEST['poptab']; $m->solotab = $_REQUEST['solotab']; $m->views = $_REQUEST['views']; //自建分类 $m->downs = $_REQUEST['downs']; $m->replys = $_REQUEST['replys']; $m->date = $_REQUEST['date']; $m->editor = $_REQUEST['editor']; $m->intro = $_REQUEST['intro']; $m->link1 = $_REQUEST['link1']; $m->link2 = $_REQUEST['link2']; $m->link3 = $_REQUEST['link3']; $m->link4 = $_REQUEST['link4']; $m->veditor = $_REQUEST['veditor']; $m->peditor = $_REQUEST['peditor']; $m->team = $_REQUEST['team']; $m->taobaolink = $_REQUEST['taobaolink']; $m->bbslink = $_REQUEST['bbslink']; $m->qita = $_REQUEST['qita']; $m->market_price = $_REQUEST['market_price']; $m->cost_price = $_REQUEST['cost_price']; $m->sell_price = $_REQUEST['sell_price']; $m->quantity = $_REQUEST['quantity']; $m->virtual_price = $_REQUEST['virtual_price']; $flag = $m->save(); if (!$flag) { throw new exception('添加失败'); } } catch (Exception $e) { $res['statusCode'] = 300; $res['message'] = '失败【' . $e->getMessage() . '】'; } $res['navTabId'] = 'zineList'; $res['callbackType'] = 'closeCurrent'; $res['forwardUrl'] = '/manage/zine/index'; $this->ajaxDwzReturn($res); }
public function install() { if (!parent::install() || !$this->installDB()) { return false; } if (!$this->registerHook('displayHeader') || !$this->registerHook('displayBackOfficeHeader') || !$this->registerHook('displayProductListReviews')) { return false; } if (!$this->backupAllModulesHook('hook_module', 'ovic_backup_hook_module')) { return false; } $result = true; foreach (self::$OptionHookAssign as $hookname) { if (!$this->registerHook($hookname)) { $result &= false; break; } } if (!$result || !$this->registerHook('actionModuleRegisterHookAfter')) { return false; } if (!$this->installSampleData()) { return false; } $langs = Language::getLanguages(); $tab = new Tab(); $tab->class_name = "AdminThemeConfig"; foreach ($langs as $l) { $tab->name[$l['id_lang']] = $this->l('Ovic Theme config'); } $tab->module = ''; $tab->id_parent = 0; //Root tab $tab->save(); $tab_id = $tab->id; $newtab = new Tab(); $newtab->class_name = "AdminLayoutSetting"; foreach ($langs as $l) { $newtab->name[$l['id_lang']] = $this->l('Layout Control'); } $newtab->module = $this->name; $newtab->id_parent = $tab_id; $newtab->add(); $newtab = new Tab(); $newtab->class_name = "AdminLayoutBuilder"; foreach ($langs as $l) { $newtab->name[$l['id_lang']] = $this->l('Layout Builder'); } $newtab->module = $this->name; $newtab->id_parent = $tab_id; $newtab->add(); //Theme::getThemeInfo($this->context->shop->id_theme) return true; }
/** * Istallation fcn of admin tables (ps_tab, ps_tab_advice, ps_tab_lang, ps_access) * @param unknown $tabClass * @param unknown $tabName * @param unknown $idTabParent * @return boolean */ private function installModuleTab($tabClass, $tabName, $idTabParent) { $tab = new Tab(); $tab->name = $tabName; $tab->class_name = $tabClass; $tab->module = $this->name; $tab->id_parent = $idTabParent; if (!$tab->save()) { return false; } return true; }
private function installController($controllerName, $name) { $tab_admin_order_id = Tab::getIdFromClassName('AdminTools'); $tab = new Tab(); $tab->class_name = $controllerName; $tab->id_parent = $tab_admin_order_id; $tab->module = $this->name; $languages = Language::getLanguages(false); foreach ($languages as $lang) { $tab->name[$lang['id_lang']] = $name; } $tab->save(); }
private function installModuleTab($tab_class, $tab_name, $id_tab_name) { copy(_PS_MODULE_DIR_ . $this->name . '/img/logo.png', _PS_IMG_DIR_ . 't/' . $tab_class . '.gif'); copy(_PS_MODULE_DIR_ . $this->name . '/img/webform.png', _PS_IMG_DIR_ . 't/Getresponse_webform.gif'); $tab = new Tab(); $tab->name = $tab_name; $tab->class_name = $tab_class; $tab->id_parent = $id_tab_name; if (!$tab->save()) { return false; } return true; }
private function installModuleTab($tabClass, $tabName, $idTabParent) { @copy(_PS_MODULE_DIR_ . $this->name . '/logo.gif', _PS_IMG_DIR_ . 't/' . $tabClass . '.gif'); $tab = new Tab(); $tab->name = $tabName; $tab->class_name = $tabClass; $tab->module = $this->name; $tab->id_parent = $idTabParent; if (!$tab->save()) { return false; } return true; }
private function createAdminTabs() { $langs = Language::getLanguages(); $id_lang = (int) Configuration::get('PS_LANG_DEFAULT'); /* * ** create tab publications *** */ $tab0 = new Tab(); $tab0->class_name = "AdminVideos"; $tab0->module = "myvideo"; $tab0->id_parent = 0; foreach ($langs as $l) { $tab0->name[$l['id_lang']] = $this->l('Videos'); } $tab0->save(); $blog_tab_id = $tab0->id; $tab1 = new Tab(); $tab1->class_name = "AdminVideoCategory"; $tab1->module = "myvideo"; $tab1->id_parent = $blog_tab_id; foreach ($langs as $l) { $tab1->name[$l['id_lang']] = $this->l('Video Categories'); } $tab1->save(); /* * ** create tab categories *** */ $tab2 = new Tab(); $tab2->class_name = "AdminVideo"; $tab2->module = "myvideo"; $tab2->id_parent = $blog_tab_id; foreach ($langs as $l) { $tab2->name[$l['id_lang']] = $this->l('Video'); } $tab2->save(); /* * * RIGHTS MANAGEMENT ** */ Db::getInstance()->Execute('DELETE FROM ' . _DB_PREFIX_ . 'access WHERE `id_tab` = ' . (int) $tab0->id . ' OR `id_tab` = ' . (int) $tab1->id . ' OR `id_tab` = ' . (int) $tab2->id); Db::getInstance()->Execute('DELETE FROM ' . _DB_PREFIX_ . 'module_access WHERE `id_module` = ' . (int) $this->id); $profiles = Profile::getProfiles($id_lang); if (count($profiles)) { foreach ($profiles as $p) { Db::getInstance()->Execute('INSERT IGNORE INTO `' . _DB_PREFIX_ . 'access`(`id_profile`,`id_tab`,`view`,`add`,`edit`,`delete`) VALUES (' . $p['id_profile'] . ', ' . (int) $tab0->id . ',1,1,1,1)'); Db::getInstance()->Execute('INSERT IGNORE INTO `' . _DB_PREFIX_ . 'access`(`id_profile`,`id_tab`,`view`,`add`,`edit`,`delete`) VALUES (' . $p['id_profile'] . ', ' . (int) $tab1->id . ',1,1,1,1)'); Db::getInstance()->Execute('INSERT IGNORE INTO `' . _DB_PREFIX_ . 'access`(`id_profile`,`id_tab`,`view`,`add`,`edit`,`delete`) VALUES (' . $p['id_profile'] . ', ' . (int) $tab2->id . ',1,1,1,1)'); Db::getInstance()->execute('INSERT INTO ' . _DB_PREFIX_ . 'module_access(`id_profile`, `id_module`, `configure`, `view`) VALUES (' . $p['id_profile'] . ',' . (int) $this->id . ',1,1)'); } } }
private function installModuleTab($class, $name) { $sql = ' SELECT `id_tab` FROM `' . _DB_PREFIX_ . 'tab` WHERE `class_name` = "AdminCatalog"'; $tabParent = (int) Db::getInstance()->getValue($sql); if (!is_array($name)) { $name = self::getMultilangField($name); } $tab = new Tab(); $tab->name = $name; $tab->class_name = $class; $tab->module = $this->name; $tab->id_parent = $tabParent; return $tab->save(); }
function upgrade_module_2_1_4($object) { $id_tab = (int) Tab::getIdFromClassName('AdminSmartBlogAjax'); if ($id_tab) { $tab = new Tab($id_tab); $tab->active = 1; $tab->class_name = 'AdminSmartBlogAjax'; $tab->name = array(); foreach (Language::getLanguages(true) as $lang) { $tab->name[$lang['id_lang']] = 'SmartBlogAjax'; } $tab->id_parent = -1; $tab->module = $object->name; $tab->save(); } return true; }
function install() { $res = true; // before adding AdminSelfUpgrade, we should remove AdminUpgrade $idTab = Tab::getIdFromClassName('AdminUpgrade'); if ($idTab) { $tab = new Tab($idTab); $res &= $tab->delete(); } $idTab = Tab::getIdFromClassName('AdminSelfUpgrade'); // Then we add AdminSelfUpgrade only if not exists if (!$idTab) { $tab = new Tab(); $tab->class_name = 'AdminSelfUpgrade'; $tab->module = 'autoupgrade'; $tab->id_parent = 9; $languages = Language::getLanguages(false); foreach ($languages as $lang) { $tab->name[$lang['id_lang']] = 'Upgrade'; } $res &= $tab->save(); } else { $tab = new Tab($idTab); } Configuration::updateValue('PS_AUTOUPDATE_MODULE_IDTAB', $tab->id); $autoupgradeDir = _PS_ADMIN_DIR_ . DIRECTORY_SEPARATOR . 'autoupgrade'; if (!file_exists($autoupgradeDir)) { $res &= @mkdir($autoupgradeDir); } if (file_exists($autoupgradeDir . DIRECTORY_SEPARATOR . 'ajax-upgradetab.php')) { $res &= unlink($autoupgradeDir . DIRECTORY_SEPARATOR . 'ajax-upgradetab.php'); } if (!defined('_PS_MODULE_DIR_')) { define('_PS_MODULE_DIR_', _PS_ROOT_DIR_ . '/modules/'); } $res &= copy(_PS_MODULE_DIR_ . 'autoupgrade/ajax-upgradetab.php', $autoupgradeDir . DIRECTORY_SEPARATOR . 'ajax-upgradetab.php'); $res &= copy(_PS_MODULE_DIR_ . 'autoupgrade/logo.gif', _PS_ROOT_DIR_ . DIRECTORY_SEPARATOR . 'img/t/AdminSelfUpgrade.gif'); if (!$res or !Tab::getIdFromClassName('AdminSelfUpgrade') or !parent::install()) { return false; } return true; }
public function addAdminTab() { $id_parent = Tab::getIdFromClassName('AdminParentOrders'); $adminTab = new Tab(); $languages = Language::getLanguages(true); $adminTab->name = array(); foreach ($languages as $lang) { $adminTab->name[$lang['id_lang']] = 'fr' == $lang['iso_code'] ? 'Carte des commandes' : 'Order map'; } $adminTab->class_name = 'AdminMappa'; $adminTab->module = $this->name; $adminTab->id_parent = $id_parent; $adminTab->active = true; $adminTab->position = Tab::getNbTabs($id_parent); if (!$adminTab->save()) { return false; } Configuration::updateValue('ADMIN_TAB_MODULE_MAPPA', $adminTab->id); return true; }
private function installModuleTab($class, $name) { $sql = ' SELECT `id_tab` FROM `' . _DB_PREFIX_ . 'tab` WHERE `class_name` = "AdminCatalog"'; $tabParent = (int) Db::getInstance()->getValue($sql); if (!is_array($name)) { $name = self::getMultilangField($name); } if (self::fileExistsInModulesDir('logo.gif') && is_writeable(_PS_IMG_DIR_ . 't/')) { $this->copyLogo($class); } $tab = new Tab(); $tab->name = $name; $tab->class_name = $class; $tab->module = $this->name; $tab->id_parent = $tabParent; return $tab->save(); }
static function createTab($id_parent, $module, $name, $class_name) { $Tab = new Tab(); $Tab->module = $module; foreach (Language::getLanguages(true) as $languages) { $Tab->name[$languages["id_lang"]] = $name; } $Tab->id_parent = $id_parent; $Tab->class_name = $class_name; $r = $Tab->save(); if ($r == false) { return false; } return $Tab->id; }
private function CreateSmartBlogTabs() { $langs = Language::getLanguages(); $id_lang = (int) Configuration::get('PS_LANG_DEFAULT'); $smarttab = new Tab(); $smarttab->class_name = "AdminSmartBlog"; $smarttab->module = ""; $smarttab->id_parent = 0; foreach ($langs as $l) { $smarttab->name[$l['id_lang']] = $this->l('Blog'); } $smarttab->save(); $tab_id = $smarttab->id; @copy(dirname(__FILE__) . "/AdminSmartBlog.gif", _PS_ROOT_DIR_ . "/img/t/AdminSmartBlog.gif"); require_once dirname(__FILE__) . '/sql/install_tab.php'; foreach ($tabvalue as $tab) { $newtab = new Tab(); $newtab->class_name = $tab['class_name']; $newtab->id_parent = $tab_id; $newtab->module = $tab['module']; foreach ($langs as $l) { $newtab->name[$l['id_lang']] = $this->l($tab['name']); } $newtab->save(); } return true; }
public function installAdminTab($tab_class, $tab_active, $tab_name, $tab_class_parent) { if (!Tab::getIdFromClassName((string) $tab_class)) { // Get tab parent id // ----------------- if (in_array((string) $tab_class_parent, $this->ids_tabs)) { $id_tab_parent = $this->ids_tabs[(string) $tab_class_parent]; } else { $id_tab_parent = Tab::getIdFromClassName((string) $tab_class_parent); } // Add the new tab // --------------- $tab = new Tab(); $tab->name = array(); foreach (Language::getLanguages() as $language) { $tab->name[$language['id_lang']] = Translate::getAdminTranslation((string) $tab_name, 'expressmailing', false, false); } $tab->class_name = (string) $tab_class; $tab->module = $this->name; $tab->id_parent = (int) $id_tab_parent; $tab->active = (bool) $tab_active ? 1 : 0; if (!$tab->save()) { return false; } $this->ids_tabs[(string) $tab_class] = $tab->id; } // Else, Tab already installed // --------------------------- return true; }
public function install() { $carrier_config = array(0 => array('name' => 'Courier service', 'type' => 'carrier', 'id_tax_rules_group' => 0, 'active' => true, 'deleted' => false, 'shipping_handling' => false, 'range_behavior' => false, 'shipping_external' => true, 'need_range' => true, 'delay' => array('lv' => 'Saņemiet sūtījumu tieši rokās.', 'lt' => 'Gaukite savo siuntą tiesiai į rankas.', Language::getIsoById(Configuration::get('PS_LANG_DEFAULT')) => 'Receive your shipment right in your hands.'), 'id_zone' => 1, 'is_module' => true, 'external_module_name' => self::$module_name, 'is_free' => false, 'grade' => false, 'ranges' => array(array('delimiter1' => 0.0, 'delimiter2' => BalticodeDpdCarrierCourier::$maxWeight, 'price' => 7.99)), 'max_weight' => BalticodeDpdCarrierCourier::$maxWeight, 'max_width' => BalticodeDpdCarrierCourier::$maxLength, 'max_height' => BalticodeDpdCarrierCourier::$maxLength, 'max_depth' => BalticodeDpdCarrierCourier::$maxLength), 1 => array('name' => 'Pickup and delivery points', 'type' => 'pickup', 'id_tax_rules_group' => 0, 'active' => true, 'deleted' => false, 'shipping_handling' => false, 'range_behavior' => false, 'shipping_external' => true, 'need_range' => true, 'delay' => array('lv' => 'Jūs varat izbaudīt sūtījuma saņemšanas tepat aiz stūra ērtību.', 'lt' => 'Jūs galite naudotis patogiu pirkinių atsiėmimu Jums patogioje vietoje.', Language::getIsoById(Configuration::get('PS_LANG_DEFAULT')) => 'You can enjoy the convenience of picking up a parcel just around the corner.'), 'id_zone' => 1, 'is_module' => true, 'external_module_name' => self::$module_name, 'is_free' => false, 'grade' => false, 'ranges' => array(array('delimiter1' => 0.0, 'delimiter2' => BalticodeDpdCarrierPickUp::$maxWeight, 'price' => 2.8)), 'max_weight' => BalticodeDpdCarrierPickUp::$maxWeight, 'max_width' => BalticodeDpdCarrierPickUp::$maxLength, 'max_height' => BalticodeDpdCarrierPickUp::$maxLength, 'max_depth' => BalticodeDpdCarrierPickUp::$maxLength)); if (!DpdCarrierOptions::installDb()) { return false; } $id_carrier1 = $this->installExternalCarrier($carrier_config[0]); $id_carrier2 = $this->installExternalCarrier($carrier_config[1]); Configuration::updateValue('COURIERSERVICE_CARRIER_ID', (int) $id_carrier1); Configuration::updateValue('DELIVERYPOINTS_CARRIER_ID', (int) $id_carrier2); if (!parent::install() || !Configuration::updateValue('COURIERSERVICE_OVERCOST', '') || !Configuration::updateValue('DELIVERYPOINTS_OVERCOST', '') || !$this->registerHook('updateCarrier') || !$this->registerHook('displayCarrierList') || !$this->registerHook('displayBackOfficeHeader') || !$this->registerHook('displayOrderConfirmation') || !DpdDeliveryPoints::installDb() || !DpdOrderOptions::installDb() || !DpdDeliveryPrice::installDb()) { // || !$this->addBulkActionButtons() //Bulk Action buttons // //Using this only if Overwrite using already other model! return false; } $tab = new Tab(); $tab->class_name = 'AdminCallcarrier'; $tab->module = self::$module_name; $tab->name[(int) Configuration::get('PS_LANG_DEFAULT')] = $this->l('AdminCallcarrier'); $tab->id_parent = -1; $tab->position = 1; $tab->save(); return true; }
private function CreateTabs() { $langs = Language::getLanguages(); $id_lang = (int) Configuration::get('PS_LANG_DEFAULT'); $smarttab = new Tab(); $smarttab->class_name = "AdminSuperAbandonedCart"; $smarttab->module = "superabandonedcart"; $smarttab->id_parent = 0; foreach ($langs as $l) { $smarttab->name[$l['id_lang']] = $this->l('Super Abandoned Cart'); } $smarttab->save(); $tab_id = $smarttab->id; return true; }
/** * @description install admin tab. * @param $admin_module_class * @param $parent_class string * AdminCatalog AdminParentOrders AdminParentCustomer AdminPriceRule AdminParentShipping AdminParentLocalization * AdminParentModules AdminParentPreferences AdminTools AdminAdmin AdminParentStats AdminStock * @param $tabTitle string need to $this->l implemented in module * @return bool */ protected function installTab($admin_module_class, $tabTitle = false, $parent_class = 'PstTools') { if ($tabTitle === false || empty($tabTitle)) { $tabTitle = array(); foreach (Language::getLanguages(false) as $lang) { $tabTitle[(int) $lang['id_lang']] = $this->l($this->displayName); } } if (!($id_tab = Tab::getIdFromClassName($admin_module_class))) { $tab = new Tab(); $tab->class_name = $admin_module_class; } else { $tab = new Tab((int) $id_tab); $tab->class_name = $admin_module_class; } if (is_string($tabTitle)) { foreach (Language::getLanguages(false) as $lang) { $tab->name[(int) $lang['id_lang']] = $this->l($tabTitle); } } elseif (is_array($tabTitle)) { $tab->name = $tabTitle; } else { var_dump($tabTitle); die; } $tab->active = true; $tab->module = $this->name; $tab->id_parent = $this->getTabIdParent($parent_class); @copy(_PS_MODULE_DIR_ . $this->name . DIRECTORY_SEPARATOR . 'logo.gif', _PS_ROOT_DIR_ . DIRECTORY_SEPARATOR . 'img' . DIRECTORY_SEPARATOR . 't' . DIRECTORY_SEPARATOR . $admin_module_class . '.gif'); @copy(_PS_MODULE_DIR_ . $this->name . DIRECTORY_SEPARATOR . 'logo.png', _PS_ROOT_DIR_ . DIRECTORY_SEPARATOR . 'img' . DIRECTORY_SEPARATOR . 't' . DIRECTORY_SEPARATOR . $admin_module_class . '.gif'); if (!$tab->save()) { return $this->_abortInstall($this->l('Unable to create the "' . $admin_module_class . '" tab')); } if (!Validate::isLoadedObject($tab)) { return $this->_abortInstall($this->l('Unable to load the "' . $admin_module_class . '" tab')); } return true; }
public function install() { // ID нашей несчастной почты в системе $idCarrier = $this->installCarrier(); $res = false; // Не удалось создать, то и все остальное не уперлось // Хорошо бы Exceptions употреблять. Потом, с ними // еще разбираться надо if (!$idCarrier) { return false; } //Создание перевозчика с наложенным платежом $idCarrierCOD = $this->installCarrier(1); if (!$idCarrierCOD) { return false; } if (!$this->RussianPost->createTable()) { $this->uninstallCarrier($idCarrier); $this->uninstallCarrier($idCarrierCOD); } // Здесь мы создаем пункт вехнего подменю. // Сначала проверим, есть-ли оно уже $idTab = Tab::getIdFromClassName('AdminRussianPost'); // Если нет, создадим // TODO: поработать с этим куском if (!$idTab) { $tab = new Tab(); $tab->class_name = 'AdminRussianPost'; $tab->module = 'russianpostcarrier'; $tab->id_parent = (int) Tab::getIdFromClassName('AdminParentShipping'); $languages = Language::getLanguages(false); foreach ($languages as $lang) { $tab->name[(int) $lang['id_lang']] = 'Russian Post'; } if (!$tab->save()) { // Если что-то пошло не так, удалим перевозчика и закруглимся $this->uninstallCarrier($idCarrier); $this->uninstallCarrier($idCarrierCOD); return $this->_abortInstall($this->l('Unable to create the "Russian Post" tab')); } } else { $tab = new Tab((int) $idTab); } //Обновляем в БД tab id вкладки "Russian Post" или завершаем с ошибкой if (Validate::isLoadedObject($tab)) { Configuration::updateValue('SR_RUSSIAN_POST_TAB_ID', $tab->id); } else { return $this->_abortInstall($this->l('Unable to load the "Russian Post" tab')); } // Если родительский метод не срабатывает, то все удаляем, // и самоустраняемся if (!parent::install() or !$this->registerHook('ActionCarrierUpdate')) { parent::uninstall(); $this->uninstallTab($tab->id); $this->uninstallCarrier($idCarrier); $this->uninstallCarrier($idCarrierCOD); $this->RussianPost->dropTable(); return $this->_abortInstall($this->l('Unable to invoke parent method install or registerHook "ActionCarrierUpdate" failed')); } // Нам будут полезны ID пункта меню и перевозчика // TODO: Некисло и результат этой операции проверять, конечно Configuration::updateValue('SR_RUSSIAN_POST_CARRIER_ID', $idCarrier); Configuration::updateValue('SR_RUSSIAN_POST_CARRIER_COD_ID', $idCarrierCOD); return true; }
public function installModuleTabs() { $this->setAdminControllers(); if (!empty($this->aAdminControllers)) { foreach ($this->aAdminControllers as $controller_name => $params) { @copy(_PS_MODULE_DIR_ . $this->name . '/logo.gif', _PS_IMG_DIR_ . 't/' . $controller_name . '.gif'); // Check if the AdminController isset or not if (!Tab::getIdFromClassName($controller_name)) { $tab = new Tab(); $tab->name[(int) $this->context->language->id] = pSQL($params['name']); $tab->class_name = pSQL($controller_name); $tab->module = pSQL($this->name); $tab->id_parent = (int) Tab::getIdFromClassName($params['parent']); $tab->save(); } } } return true; }
public function installModuleTabs() { // get controllers list $erp_features = ErpFeature::getFeatures($this->context->language->iso_code); if (!empty($erp_features)) { foreach ($erp_features as $feature) { @copy(_PS_MODULE_DIR_ . $this->name . '/logo.gif', _PS_IMG_DIR_ . 't/' . $feature['controller'] . '.gif'); $tab = new Tab(); foreach (Language::getLanguages(false) as $language) { $tab->name[$language['id_lang']] = $feature['name']; } $tab->class_name = $feature['controller']; $tab->module = $this->name; $tab->id_parent = -1; // -1 to not display the tab in BO if (!$tab->save()) { $this->_errors[] = $this->l('Error while installing module tabs !'); return false; } // configuration name is limited to 32 caracteres $controller_status_name = self::getControllerStatusName($feature['controller']); // save feature statut if (!Configuration::updateValue($controller_status_name, $feature['status'])) { return false; } } } return true; }
private function installModuleTab($tab_class, $tab_name, $tab_parent) { if (!($id_tab_parent = Tab::getIdFromClassName($tab_parent))) { return false; } $tab = new Tab(); $languages = Language::getLanguages(true); foreach ($languages as $language) { if (!isset($tab_name[$language['iso_code']])) { $tab->name[$language['id_lang']] = $tab_name['default']; } else { $tab->name[(int) $language['id_lang']] = $tab_name[$language['iso_code']]; } } $tab->class_name = $tab_class; $tab->module = $this->name; $tab->id_parent = $id_tab_parent; $tab->active = 1; if (!$tab->save()) { return false; } return true; }
private function CreateSmartBlogTabs() { $langs = Language::getLanguages(); $smarttab = new Tab(); $smarttab->class_name = "AdminSmartBlog"; $smarttab->module = ""; $smarttab->id_parent = 0; foreach ($langs as $l) { $smarttab->name[$l['id_lang']] = $this->l('Blog'); } $smarttab->save(); $tab_id = $smarttab->id; @copy(dirname(__FILE__) . "/views/img/AdminSmartBlog.gif", _PS_ROOT_DIR_ . "/img/t/AdminSmartBlog.gif"); $tabvalue = array(); // assign tab value from include file require_once dirname(__FILE__) . '/sql/install_tab.php'; foreach ($tabvalue as $tab) { $newtab = new Tab(); $newtab->class_name = $tab['class_name']; if ($tab['id_parent'] == -1) { $newtab->id_parent = $tab['id_parent']; } else { $newtab->id_parent = $tab_id; } $newtab->module = $tab['module']; foreach ($langs as $l) { $newtab->name[$l['id_lang']] = $this->l($tab['name']); } $newtab->save(); } return true; }
private function _installTab() { @copy(_PS_MODULE_DIR_ . $this->name . '/logo.gif', _PS_IMG_DIR_ . 't/' . $this->_tabClass . '.gif'); $tab = new Tab(); foreach (Language::getLanguages() as $language) { $tab->name[$language['id_lang']] = 'Menu'; } $tab->class_name = $this->_tabClass; $tab->module = $this->name; $tab->id_parent = 7; $tab->save(); $fields = array('id_profile' => 1, 'id_tab' => (int) $tab->id, 'view' => 1, 'add' => 1, 'edit' => 1, 'delete' => 1); Db::getInstance()->autoExecute(_DB_PREFIX_ . 'access', $fields, 'INSERT'); return true; }