Пользовательская страница Prestashop с собственным шаблоном - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть собственная тема prestashop и я хочу добавить новую страницу без CSS. Поэтому я добавил три файла php, controller и template. Я поместил php в корневой каталог моего prestashop, добавил контроллер в root / controllers / front и поместил шаблон в root / themes / my-theme.
Если я звоню http://localhost/prestashop/?page=custom-page,, я вижу стартовую страницу индекса. Если я звоню localhost / prestashop / custom-page, я получаю HTTP 404.
Может ли кто-нибудь помочь мне отобразить мою страницу?

PHP:

<?php
  include(dirname(__FILE__).'/config/config.inc.php');
  Tools::displayFileAsDeprecated();

  include(dirname(__FILE__).'/header.php');

  $smarty->display(_PS_THEME_DIR_.'custom-page.tpl');

  include(dirname(__FILE__).'/footer.php');

Контроллер:

public function init(){
  parent::init();
}

public function initContent(){
  parent::initContent();
  $this->setTemplate(_PS_THEME_DIR_.'custom-page.tpl');
}


//public function setMedia(){
  //parent::setMedia();
  //$this->addCSS(_THEME_CSS_DIR_.'custom-page.css');
  //$this->addJS(_THEME_JS_DIR_.'custom-page.js');
//}

}

Шаблон:

<div>
 HELLO PAGE
</div>

{literal}
  <style type="text/css">
  </style>
{/literal}

<script type="text/javascript">
  {literal}
  {/literal}
</script>

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Я думаю, что лучшей практикой будет создание модуля с вашей пользовательской страницей.Поскольку с вашим подходом у вас могут возникнуть проблемы после обновления до prestashop, а также поведение вашего магазина может быть непредсказуемым с другими свойствами.

Вот некоторая информация о том, как создать собственную страницу в модуле https://belvg.com/blog/creating-frontcontroller-in-the-module-and-customization-of-displaying-page-in-prestashop.htmlи https://belvg.com/blog/how-to-implement-a-controller.html

0 голосов
/ 11 сентября 2018

Для PS 1.7 создайте новую страницу, выполнив следующие действия:

Создайте контроллер : /controllers/front/MyPageController.php

<?php

class MyPageControllerCore extends FrontController
{
    public $php_self = 'mypage';
    public $ssl = true;

    public function initContent()
    {
        parent::initContent();

        $this->setTemplate('mypage');
    }
}

Создайте tplфайл в вашей теме : /themes/YOUR_THEME/templates/mypage.tpl

{extends file='page.tpl'}

{block name='page_header_container'}{/block}

{block name='page_content'}
  PAGE CONTENT HERE
{/block}

Удалить файлы индекса класса : /var/cache/dev/class_index.php и /var/cache/prod/class_index.php

Какдоступ к нему : http://your-site.com/index.php?controller=mypage

Наконец :
Если вы хотите обработать дружественный URL для этой страницы, просто добавьте страницу в Shop Parameters > Traffic & SEO.

...