如何在Prestashop中覆盖tpl模块?

时间:2019-01-15 09:07:08

标签: php override prestashop smarty

我正在做一个prestashop 1.7.4.2项目。 我购买了storelocator模块(https://addons.prestashop.com/en/international-localization/18457-store-locator-with-google-maps.html)。该模块的主模板与我的模型不匹配。 因此,我在项目主题的模块文件夹(/ themes / PRS175_11 / modules / storelocator / views / templates)中创建了一个文件,从而使模块的主模板(/modules/storelocator/views/templates/front/stores_splittheme.tpl)超载。 /front/stores_splittheme.tpl),然后将其修改为具有所需结构的文件。

但是我对显示没有任何更改。我清空了prestashop缓存和服务器清漆,但是没有任何效果。

我忘了做操作或修改吗?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题! 实际上,我意识到该模块已经使用了在主题的子文件夹中移动的文件。

public function moveFiles()
{ 
    Tools::copy(_PS_MODULE_DIR_.'storelocator/locate/AdminStoresController.php', _PS_OVERRIDE_DIR_.'controllers/admin/AdminStoresController.php');
    Tools::copy(_PS_MODULE_DIR_.'storelocator/locate/StoresController.php', _PS_OVERRIDE_DIR_.'controllers/front/StoresController.php');
    @Tools::copy(_PS_MODULE_DIR_.'storelocator/views/templates/front/stores_17.tpl', _PS_ROOT_DIR_.'/themes/'._THEME_NAME_.'/templates/cms/stores_17.tpl');
    @Tools::copy(_PS_MODULE_DIR_.'storelocator/views/templates/front/stores_splittheme_17.tpl', _PS_ROOT_DIR_.'/themes/'._THEME_NAME_.'/templates/cms/stores_splittheme_17.tpl');
    return true;
}

所以我只需要修改这些tpl文件。