/**
  * 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');
 }