我创建了一个在WAMP服务器上完美运行的Prestashop模块,但在实时服务器上无法正常工作,而是返回"找不到模块的模板"错误信息。如有必要,我会在稍后提供更多细节,但首先可以有人给我建议,为什么会发生这种情况,因为我不知道如何开始修复它。感谢
该模块仅适用于选定的类别 - 它与WAMP和live这些类别一起运行良好,但问题在于未选择的类别是否应返回产品列表文件,即在包含文件中{include file =" ./ product-list.tpl" products = $ products},但我得到了这个"找不到模块的模板"消息。
我的模块中调用该文件的代码是:return $ this-> display( FILE ,' ../../ product-list.tpl') ;
此路径适用于WAMP,但不适用。我已经在不同的文件夹中测试了路径 - 使用默认模板 - 它可以工作,但是只要我将模板放在themes文件夹中就不起作用。
我尝试的另一件事是升级php版本,因为我的WAMP服务器运行了PHP版本5.5.12而我的服务器是5.4所以我将其更改为5.5但仍然没有帮助。谢谢
答案 0 :(得分:2)
您的详细信息仍然不清楚,但以下是$this->display(__FILE__, 'template.tpl')
方法加载模板的方式。它尝试按此顺序查找和加载文件(1.6版本):
/themes/active_theme_name/modules/module_name/template.tpl
/themes/active_theme_name/modules/module_name/views/templates/hook/template.tpl
/themes/active_theme_name/modules/module_name/views/templates/front/template.tpl
/modules/module_name/views/templates/hook/template.tpl
/modules/module_name/views/templates/front/template.tpl
/modules/module_name/template.tpl
如果在这6个步骤中找不到文件,prestashop将抛出No template found for module
错误。
另外,在模板名称之前添加../../
会导致该方法在每个步骤的目录树中的两个文件夹中搜索该文件。
答案 1 :(得分:0)
尝试使用
替换该行以显示模板文件$this->display(_PS_MODULE_DIR_, 'MODULE_NAME/views/templates/product-list.tpl');
例如,如果模块的文件夹名称是超级检查'并且文件存在于
中/modules/supercheckout/views/templates/product-list.tpl
然后代码行将是
$this->display(_PS_MODULE_DIR_, 'supercheckout/views/templates/product-list.tpl');