Prestashop - 从模块内部实用地创建后台选项卡

时间:2012-10-03 17:42:26

标签: php content-management-system e-commerce prestashop

我正在写一个prestashop模块。在安装功能中,我想创建一个后台选项卡来管理我的模块操作。是否可以使用Prestashop类并且不直接在数据库中创建错误?

4 个答案:

答案 0 :(得分: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();

答案 1 :(得分:4)

您无需在admin / tab中创建admintap文件

仅下载此模块并查看其工作原理 Prestashop Autoupgrade module

它是一个标准的prestashop模块,为自己创建新标签

答案 2 :(得分:1)

是的,您可以为您的模块提供自己的标签或子标签,请查看以下文档:

唯一的问题是您必须在模块文件夹外添加文件,并在后台手动添加标签...

答案 3 :(得分: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功能。您可以修改模块。