2012-10-03 64 views

回答

1

是的,它是可能的,你可以給你的模塊自身的選項卡或子選項卡,看看下列文件:

唯一的問題是你必須在你的模塊文件夾外添加文件,並在後臺手動添加標籤...

+0

是的,我已經看到了這一點。這是手動添加我想避免的選項卡。我想從安裝函數中的代碼中完成它。我想他們如何將它們存儲在數據庫中我只是不想直接創建它我想通過prestashop自己的類以更清晰的方式來完成它。 – Ayoub

1

是的,你可以做到這一點。創建表數據庫您的類object model並將您的類插入表數據庫tab

比如我修改模塊mymodule文檔1.4:

 public function install() 

    { 

     if (parent::install() == false OR 

       !$this-registerHook('leftColumn') OR 

       !Db::getInstance()-Execute(' 
        CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'test` (

         `id_test` int(6) NOT NULL AUTO_INCREMENT, 

         `test` varchar(255) NOT NULL, 

         PRIMARY KEY(`id_test`) 

        ) ENGINE='._MYSQL_ENGINE_.' default CHARSET=utf8') OR 

       !$this-setTab() 
      ) 
      return false; 
     return true; 
    } 

    public function setTab() { 
     if (!Db::getInstance()-Execute(
         "INSERT INTO `"._DB_PREFIX_."tab` 
          (`class_name`, `position`, `id_parent`) 
          VALUES ('AdminTest', '10', '1')" 
        )) 
       return false; 

     $id = Db::getInstance()-insert_id(); 
     $count = (int)Db::getInstance()-getValue('SELECT COUNT(*) FROM '._DB_PREFIX_.'lang'); 

     while ($count 0) { 
      if (!Db::getInstance()-Execute(
         "INSERT INTO `"._DB_PREFIX_."tab_lang` 
          (`id_tab`, `id_lang`, `name`) 
          VALUES (".$id.", ". $count.", 'Test Tab')" 
        )) 
       return false; 

      $count--; 
     } 

     if (!TabCore::initAccess($id))    
      return false; 

     return true; 
    } 

嘗試修改install功能,並添加setTab功能。您可以修改您的模塊。

4

你不必創建管理員的admintap文件/標籤

只下載該模塊,看看它是如何工作的 Prestashop Autoupgrade module

那就是爲自己創造新的標籤標準的Prestashop模塊

5

Prestashop爲此做了一個類。
這是Tab類,使用函數add

請參見:

$tab = new Tab(); 
$tab->class_name = 'your_class'; 
$tab->id_parent = 0; 
$tab->module = 'Your module'; 
$tab->name[(int)(Configuration::get('PS_LANG_DEFAULT'))] = $this->l('Module name'); 

return $tab->add();