我正试着遵循商店前的官方指南,但我面临着两个问题:
g2a.php (主模块文件)
public function hookDisplayLeftColumn($param)
{
$this->context->smarty->assign(
array(
'my_module_name' => configuration::get('G2A_NAME'),
'my_module_link' => $this->context->link->getModuleLink('g2a','display'),
'my_module_message' => $this->l('This is a simple text message')));
return $this->display(__FILE__ , 'g2a.tpl');
}控制器/前台/display.php
class g2adisplayModuleFrontController extends ModuleFrontController
{
public function initContent()
{
parent::initContent();
$this->context->smarty->assign('my_module_message', $this->l('This is a simple text message'));
$this->setTemplate('module:g2a/views/templates/front/display.tpl');
}
}视图/模板/前台/display.tpl
{extends file=$layout}
{block name='content'}
welcome to my shop!
{$my_module_message}
{/block}发布于 2018-05-30 05:57:25
第一个:,您将my_module_message变量传递给mymodule.tpl模板,但不传递给前面呈现的display.tpl。因此,在设置模板之前,需要从控制器类传递该变量。你可以用同样的方式
class mymoduleDisplayModuleFrontController extends ModuleFrontController
{
public function initContent()
{
parent::initContent();
$this->context->smarty->assign('my_module_message', $this->l('This is a simple text message'));
$this->setTemplate('module:mymodule/views/templates/front/display.tpl');
}
}顺便说一句,最好是按照camelcase的惯例来命名你的班级。
第二个:要将代码嵌入到页面中,必须扩展代码并覆盖或填充所需的部分。例如,如果希望代码成为页面的主要内容,则需要在display.tpl中执行下一个操作
{extends file=$layout}
{block name='content'}
welcome to my shop!
{/block}发布于 2018-05-31 14:06:55
代码中的所有内容都是正确的,但是由于我在管理面板中禁用了缓存,所以我不认为这是缓存问题。
管理>配置>高级参数> Performance >Smarty
E 210E 111模板编译E 212重新编译文件的模板。
https://stackoverflow.com/questions/50592338
复制相似问题