找不到模块的模板-Prestashop

时间:2018-06-29 08:54:38

标签: php templates prestashop prestashop-1.7

因此,我创建了我的第一个自定义模块,并且在显示模板方面遇到问题。我从这里开始(或多或少)遵循了该教程,但是当我启用我的模块时,它显示“没有为模块找到模板”。我的模块名称是kamailchimp,因此在模块文件夹中,我具有带有以下代码的kamailchimp.php

<?php

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


class Kamailchimp extends Module
{
    public function __construct()
    {
        $this->name = 'kamailchimp';
        $this->tab = 'front_office_features';
        $this->version = '1.0.0';
        $this->author = 'Kon Ang';
        $this->ps_versions_compliancy = array(
            'min' => '1.7.0.0',
            'max' => _PS_VERSION_,
        );
        $this->need_instance = 0;
        $this->bootstrap = true;

        parent::__construct();

        $this->displayName = $this->l('KA - Embedded Mailchimp Form');
        $this->description = $this->l('This module will allow you to display your embedded mailchimp form');

        $this->templateFile = 'module:kamailchimp/views/templates/hook/kamailchimp.tpl';
    }

    public function install()
    {
        return parent::install() &&
            $this->registerHook('header') &&
            $this->registerHook('displayHome');
    }

    public function uninstall()
    {
        return parent::uninstall();
    }
    public function hookDisplayHome($params)
    {
      return $this->display(__FILE__, $this->templateFile);
    }
}

,我的kamailchimp.tpl文件也位于modules / kamailchimp / views / templates / hook文件夹中,也位于theme / PRS025 / modules / kamailchimp / views / templates / hook中。

有人可以告诉我我做错了什么吗? PS 1.7

1 个答案:

答案 0 :(得分:0)

您正在混合两种调用模板的方式。
您可以这样做:

public function hookDisplayHome($params)
{
    return $this->display(__FILE__, 'views/templates/hook/kamailchimp.tpl');
}

或类似这样:

public function hookDisplayHome($params)
{
    return $this->fetch('module:kamailchimp/views/templates/hook/kamailchimp.tpl');
    // return $this->fetch($this->templateFile); // Or like this as you set $this->templateFile at the beginning of your file
}

我建议您采用最后一种方法,因为这是在PrestaShop 1.7中进行更新的更好的方法。