1

我想在 prestashop 中创建一个自定义模块,但它没有显示在后台的模块选项卡中。

我创建了一个非常基本的测试模块,但即使这样也没有出现在后台。

我在文件夹中有一个 text.php 文件:modules/test 这是文件的代码:

<?php

if (!defined('_PS_VERSION_'))
    exit;

class Test extends Module
{
    public function __construct()
    {
        parent::__construct();  

        $this->name = 'Test';
        $this->tab = 'Test';
        $this->version = 1.0;
        $this->author = 'Test';
        $this->need_instance = 0;

        $this->displayName = 'TEST';
        $this->description = 'TEST';
    }

    public function install()
    {
        return (parent::install());
    }
}

据我了解,这足以让基本模块显示在后台的模块选项卡中。

知道可能出了什么问题吗?

4

3 回答 3

2

在您的测试模块中,可能有几个原因:

  1. 您需要将文件命名为与文件夹相同的名称,以便在 modules/test 文件夹中命名为 test.php

  2. $this->name = '测试'; test 应该是小写的,如Prestashop 官方指南 “名称”属性中所述。用作内部标识符,因此使其唯一,没有特殊字符或空格,并保持小写。

于 2013-02-07T00:16:18.290 回答
0

你用的是什么版本的PS?如果 < 1.5,似乎几天前发布了一个稳定且漏洞较少的 1.4.10。我在我的网站 Panapaná ( http://www.panapana.com.br ) 上使用 1.4.10,并且在使用 1.4.8.2 时遇到了类似的问题。迁移到 1.4.10 后,此问题不再存在。

于 2013-04-07T20:35:45.410 回答
0

注意 parent::__construct() 的位置;

我认为你在设置足够的信息之前打电话给父母。我还建议为您的测试模块使用不同的名称,而不是通用的名称。

<?php

if (!defined('_PS_VERSION_'))
    exit;

class Test extends Module
{
    public function __construct()
    {

        $this->name = 'Test';
        $this->tab = 'Test';
        $this->version = 1.0;
        $this->author = 'Test';
        $this->need_instance = 0;

        parent::__construct();  

        $this->displayName = 'TEST';
        $this->description = 'TEST';
    }

    public function install()
    {
        return (parent::install());
    }
}
于 2013-02-12T13:39:58.060 回答