如何在prestashop 1.7.1.1中覆盖tpl模块

时间:2017-09-04 11:24:48

标签: override prestashop-1.7

我试图覆盖ps_categorytree模块的tpl,但它没有用 我试图将文件置于覆盖下,如下所示:

a /home/store//.snapshot/hourly.0/d2/dd/d5d/f82-1 59K

-im使用 prestashop 1.7.1.1,我买了一个主题。

请帮忙!

2 个答案:

答案 0 :(得分:0)

您不需要将其放在覆盖文件夹中,只需使用活动主题中的modules文件夹即可。放置tpl文件的正确方法是:

/themes/laber_ethan_home5/modules/ps_categorytree/views/templates/hook/ps_categorytree.tpl

希望它可以帮助你,再见。

答案 1 :(得分:0)

我想从我的模块添加TPL和主题让我TPL的版本将覆盖的Prestashop但我发现所有声称是由主题名称,但主题名称可以很容易地使改变模块中创建相同的目录结构用不同的方式做到了

在我的情况下,文件被列入 表单路径

classes\pdf\HTMLTemplate.php

所以从我的模块覆盖它

modules\module_name\override\classes\pdf\HTMLTemplate.php

和覆盖方法

protected function getTemplate($template_name) {
    $template = false;
    $default_template = rtrim(_PS_PDF_DIR_, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . $template_name . '.tpl';
    $overridden_template = _PS_ALL_THEMES_DIR_ . $this->shop->getTheme() . DIRECTORY_SEPARATOR . 'pdf' . DIRECTORY_SEPARATOR . $template_name . '.tpl';
    $module_template = _PS_MODULE_DIR_ . $template_name;
    if (file_exists($module_template)) {
        $template = $module_template;
    } else if (file_exists($overridden_template)) {
        $template = $overridden_template;
    } elseif (file_exists($default_template)) {
        $template = $default_template;
    }
    return $template;
}

请参见

$module_template = _PS_MODULE_DIR_ . $template_name;

同样,你可以做到这一点。