Как создать footer.php в PrestaShop 1.7

Автор watsongx, 02 декабря 2019, 21:37:20

« назад - далее »

watsongx

Хочу создать файл footer.php в PrestaShop 1.7. Так как в  PrestaShop 1.6.
В корне сайта создал файл  footer.php

if (isset(Context::getContext()->controller)) {
    $controller = Context::getContext()->controller;
} else {
    $controller = new FrontController();
    $controller->init();
}
Tools::displayFileAsDeprecated();
$controller->displayFooter();


В файле FrontControler.php добавил
public function displayFooter($display = true)
    {
        Tools::displayAsDeprecated();
        $this->smartyOutputContent(_PS_THEME_DIR_.'footer.tpl');
    }


Создал файл themes/classic/templates/footer.tpl

Запускаю footer.php получаю Сайт .......... пока не может обработать этот запрос.
500???

tigran

В prestashop 1.7 такой метод не работает. В корне все запросы на index.php.
Переопределить footer можно через шаблоны или FrontController.php.

watsongx

Цитата: tigran от 02 декабря 2019, 21:44:07
В prestashop 1.7 такой метод не работает. В корне все запросы на index.php.
Переопределить footer можно через шаблоны или FrontController.php.
Как это реализовать через  FrontController.php?

coder

Проще переопределить footer.tpl через дочернюю тему. Создайте файл
/themes/mychildtheme/templates/_partials/header.tpl
И подключите новую тему.

watsongx

Цитата: coder от 03 декабря 2019, 11:44:36
Проще переопределить footer.tpl через дочернюю тему. Создайте файл
/themes/mychildtheme/templates/_partials/header.tpl
И подключите новую тему.
А можно более подробно. Я так понимаю я должен создать новую тему и подключить ее. Как мне отразить в файле php footer?

coder

Создаете папку темы в /themes/
├── config/
│ ├── theme.yml
└── preview.png

в theme.yml
parent: 'название род. темы'
name: 'название новой темы'
display_name: 'Любое название'
version: 1.0.0
assets:
use_parent_assets: true

Последний параметр может быть false, если не хотите использовать css и js оригинальной темы.
Создаете шаблон, который хотите изменить
/themes/classic/templates/_partials/footer.tpl
В файле
{extends file='parent:_partials/footer.tpl'}
{block name='название блока который хотите изменить'}
....
{/block}

watsongx

Цитата: coder от 04 декабря 2019, 16:43:48

Создаете шаблон, который хотите изменить
/themes/classic/templates/_partials/footer.tpl
В файле
{extends file='parent:_partials/footer.tpl'}
{block name='название блока который хотите изменить'}
....
{/block}


Это не совсем понятно? Создал папку mytheme. В ней сделал по вашей инструкции. Шаблон нужно создать в папке mytheme/ templates / footer.tpl? И вызывать его в своем footer.php файле через if (isset(Context::getContext()->controller)) {
    $controller = Context::getContext()->controller;
} else {
    $controller = new FrontController();
    $controller->init();
}
Tools::displayFileAsDeprecated();
$controller->displayFooter();

coder

Какой шаблон заменяете, такой файл и создавайте.
Если footer, то создаете:
/themes/mytheme/templates/_partials/footer.tpl

watsongx

Цитата: coder от 05 декабря 2019, 11:55:36
Какой шаблон заменяете, такой файл и создавайте.
Если footer, то создаете:
/themes/mytheme/templates/_partials/footer.tpl
Как вызвать шаблон в своем footer.php файле?

Adik

Зачем вам footer.php нужен?
Все запросы на index.php. В prestashop 1.7 другая архитектура.

watsongx

Цитата: Adik от 05 декабря 2019, 22:21:07
Зачем вам footer.php нужен?
Все запросы на index.php. В prestashop 1.7 другая архитектура.
У меня есть свой файл php который работает без prestashop 1.7. Мне нужно к нему подключить  footer. Создать модуль мне не подходит. Потому что сайт работает без prestashop 1.7

Adik

Цитата: watsongx от 07 декабря 2019, 22:22:58
Цитата: Adik от 05 декабря 2019, 22:21:07
Зачем вам footer.php нужен?
Все запросы на index.php. В prestashop 1.7 другая архитектура.
У меня есть свой файл php который работает без prestashop 1.7. Мне нужно к нему подключить  footer. Создать модуль мне не подходит. Потому что сайт работает без prestashop 1.7
Если у вас не prestashop, то просто
file_get_contents('путь к файлу'/footer.tpl);