/** * Install the module * @return boolean false on install error */ public function install() { /* create complete new page tab */ $tab = new Tab(); foreach (Language::getLanguages(false) as $lang) { $tab->name[(int) $lang['id_lang']] = 'Piwik Analytics'; } $tab->module = 'piwikanalyticsjs'; $tab->active = TRUE; if (method_exists('Tab', 'getInstanceFromClassName')) { if (version_compare(_PS_VERSION_, '1.5.0.5', ">=") && version_compare(_PS_VERSION_, '1.5.3.999', "<=")) { $tab->class_name = 'PiwikAnalytics15'; } else { if (version_compare(_PS_VERSION_, '1.5.0.13', "<=")) { $tab->class_name = 'AdminPiwikAnalytics'; } else { $tab->class_name = 'PiwikAnalytics'; } } $AdminParentStats = TabCore::getInstanceFromClassName('AdminStats'); if ($AdminParentStats == null || !($AdminParentStats instanceof Tab || $AdminParentStats instanceof TabCore) || $AdminParentStats->id == 0) { $AdminParentStats = TabCore::getInstanceFromClassName('AdminParentStats'); } } else { if (method_exists('Tab', 'getIdFromClassName')) { if (version_compare(_PS_VERSION_, '1.5.0.5', ">=") && version_compare(_PS_VERSION_, '1.5.3.999', "<=")) { $tab->class_name = 'PiwikAnalytics15'; } else { if (version_compare(_PS_VERSION_, '1.5.0.13', "<=")) { $tab->class_name = 'AdminPiwikAnalytics'; } else { $tab->class_name = 'PiwikAnalytics'; } } $tmpId = TabCore::getIdFromClassName('AdminStats'); if ($tmpId != null && $tmpId > 0) { $AdminParentStats = new Tab($tmpId); } else { $tmpId = TabCore::getIdFromClassName('AdminParentStats'); if ($tmpId != null && $tmpId > 0) { $AdminParentStats = new Tab($tmpId); } } } } $tab->id_parent = isset($AdminParentStats) && ($AdminParentStats instanceof Tab || $AdminParentStats instanceof TabCore) ? $AdminParentStats->id : -1; if ($tab->add()) { Configuration::updateValue(PKHelper::CPREFIX . 'TAPID', (int) $tab->id); } else { $this->_errors[] = sprintf($this->l('Unable to create new tab "Piwik Analytics", Please forward tthe following info to the developer %s'), "<br/>" . (isset($AdminParentStats) ? "isset(\$AdminParentStats): True" : "isset(\$AdminParentStats): False") . "<br/>" . "Type of \$AdminParentStats: " . gettype($AdminParentStats) . "<br/>" . "Class name of \$AdminParentStats: " . get_class($AdminParentStats) . "<br/>" . ($AdminParentStats instanceof Tab || $AdminParentStats instanceof TabCore ? "\$AdminParentStats instanceof Tab: True" : "\$AdminParentStats instanceof Tab: False") . "<br/>" . ($AdminParentStats instanceof Tab || $AdminParentStats instanceof TabCore ? "\$AdminParentStats->id: " . $AdminParentStats->id : "\$AdminParentStats->id: ?0?") . "<br/>" . ($AdminParentStats instanceof Tab || $AdminParentStats instanceof TabCore ? "\$AdminParentStats->name: " . $AdminParentStats->name : "\$AdminParentStats->name: ?0?") . "<br/>" . ($AdminParentStats instanceof Tab || $AdminParentStats instanceof TabCore ? "\$AdminParentStats->class_name: " . $AdminParentStats->class_name : "\$AdminParentStats->class_name: ?0?") . "<br/>" . "Prestashop version: " . _PS_VERSION_ . "<br/>" . "PHP version: " . PHP_VERSION); } /* default values */ foreach ($this->getConfigFields(FALSE) as $key => $value) { Configuration::updateValue($key, $value); } // if (!Db::getInstance()->Execute(' // CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'piwikanalytics` ( // `id_pk_analytics` int(11) NOT NULL AUTO_INCREMENT, // `id_order` int(11) NOT NULL, // `id_customer` int(10) NOT NULL, // `id_shop` int(11) NOT NULL, // `sent` tinyint(1) DEFAULT NULL, // `date_add` datetime DEFAULT NULL, // PRIMARY KEY (`id_google_analytics`), // KEY `id_order` (`id_order`), // KEY `sent` (`sent`) // ) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8 AUTO_INCREMENT=1')) return parent::install() && $this->registerHook('header') && $this->registerHook('footer') && $this->registerHook('actionSearch') && $this->registerHook('displayRightColumnProduct') && $this->registerHook('orderConfirmation') && $this->registerHook('displayMaintenance'); }