首页 > 解决方案 > 如何在模块中显示主题的 .tpl(在钩子中)?

问题描述

我正在制作一个模块,该模块应该使用我的自定义主题中的模板。

问题是我不理解函数Module::display(),它有两个参数“文件”和“模板”,文件是什么?它是干什么用的?如果我这样做:

public function hookDisplayHome{
        return $this->display(__FILE__, '../../templates/my_custom_theme/mb_templates/aboutus.tpl');
    }

它在模块“my_module”中显示错误“未找到模板文件”。当然,如果我将模板路径更改为我的模块的模板之一,那么它就可以工作。但我需要访问主题的模板,而不是我的模块。

有了这个,我还有另一个问题。有没有关于 Prestashop 功能的文档?我真的试图分析函数 $this -> display() 但找不到任何描述这个函数的参数等的地方。有 Prestashop 文档https://devdocs.prestashop.com但它非常通用,没有功能说明。我检查了类 Module.php,该函数没有注释 :( 当您想检查函数的作用、返回和接受哪些参数时,官方的方法是什么?它必须在某个地方,对吧?

标签: modulesmartyprestashop-1.7prestashop-modules

解决方案


因此,对于那些也遇到这个问题的人来说,基于这个答案https://stackoverflow.com/a/53576139/2796533

最简单的解决方案似乎是在 $this -> display() 中使用模块的模板,然后在该模板中包含主题的模板:

{include file='../../../themes/my_custom_theme/mb_templates/aboutus.tpl'}

推荐阅读