Prestashop模块控制器访问

时间:2018-02-07 11:30:13

标签: php module prestashop-1.7

我试图用Prestashop 1.7创建一个新的页面模板,我知道我必须使用一个模块。

我遵循了本教程:http://nemops.com/creating-new-pages-in-prestashop/#.WnrWa5OdVGy

不幸的是,当我想查看我使用https://example.com/index.php?fc=module&module=aktest&controller=testindex创建的模块时 我得到404页......

模块(modules / aktest / aktest.php)

<?php
if (!defined('_PS_VERSION_'))
  exit;

class Aktest extends Module
{
  public function __construct()
  {
    $this->name = 'aktest';
    $this->tab = 'front_office_features';
    $this->version = '1.0.0';
    $this->author = 'Me and nobody else';
    $this->need_instance = 0;
    $this->ps_versions_compliancy = array('min' => '1.6', 'max' => _PS_VERSION_); 
    $this->bootstrap = true;

    parent::__construct();

    $this->displayName = $this->l('My Module Name');
    $this->description = $this->l('My Module Description.');

    $this->confirmUninstall = $this->l('Uninstall?');
  }
}

Controller(modules / aktest / controllers / front / testindex.php) - 现在为空白

<?php
class AktestTestindexModuleFrontController extends ModuleFrontController{
    public function init(){
        parent::init();
    }
    public function initContent() {
        parent::initContent();
    }
}

1 个答案:

答案 0 :(得分:0)

这可能只是商店系统告诉您没有什么可显示的。

在PrestaShop 1.7.5安装上尝试代码(并拥有PS_DEV_MODE=1时),我在控制台上收到HTTP 500错误以及以下PHP错误:

[Thu Jan 31 06:29:28.106955 2019] [:error] [pid 39] [client 127.0.0.1:41558] PHP Fatal error:  Uncaught  --> Smarty: 0():Missing '$template' parameter <-- \n  thrown in /var/www/html/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php on line 177
[31/Jan/2019:06:29:27 +0000] "GET /index.php?fc=module&module=aktest&controller=testindex HTTP/1.1" 500 403 "-" "Mozilla/5.0 Agent"

因此,如果您更改了控制器代码

<?php
class AktestTestindexModuleFrontController extends ModuleFrontController{
    public function init(){
        parent::init();
    }

    public function initContent() {
        parent::initContent();
        $this->setTemplate('module:aktest/views/templates/front/testindex.tpl');
    }
}

并在modules/aktest/views/templates/front/testindex.tpl上使用

创建了一个最小的模板
{extends file='page.tpl'}

{block name='page_content'}
    Well hello there
{/block}

然后您的控制器应该显示一些内容。

万一还是有用的话,请Admin Panel -> Configure -> Advanced Settings -> Performance -> Debug Mode中的turn on debug mode并检查日志。