因此,我创建了我的第一个自定义模块,并且在显示模板方面遇到问题。我从这里开始(或多或少)遵循了该教程,但是当我启用我的模块时,它显示“没有为模块找到模板”。我的模块名称是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
答案 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中进行更新的更好的方法。