как переопределить модуль tpl в prestashop 1.7.1.1

Я пытаюсь переопределить tpl модуля ps_categorytree, но это не сработало, я попытался переопределить файл следующим образом:

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

-im с помощью prestashop 1.7.1.1 и купил тему.

Помоги пожалуйста!


person a.brahmi    schedule 04.09.2017    source источник


Ответы (2)


вам не нужно помещать это в папку переопределения, просто используйте папку модулей, которая находится в активной теме. Правильный способ разместить файл tpl:

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

Надеюсь, это поможет тебе, пока.

person Addis    schedule 04.09.2017
comment
да, помогите, большое спасибо за ваш ответ. но у меня есть модуль Marketplace, а у него нет папки с темами, так как я могу переопределить его файлы tpl, пожалуйста! - person a.brahmi; 06.09.2017
comment
Вам необходимо создать эти папки. В / themes / laber_ethan_home5 / modules / вам нужно создать эту структуру папок - ›/ ps_categorytree / views / templates / hook /, а затем создать этот файл -› ps_categorytree.tpl. - person Addis; 07.09.2017

Я хотел добавить 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;

аналогично вы можете это сделать.

person Shobhit Verma    schedule 31.01.2019