Пользовательская страница Prestashop с собственным шаблоном
Я запускаю свою собственную тему prestashop и хочу добавить новую страницу без css.
Поэтому я добавил три файла php, контроллер и шаблон. Я разместил PHP в корневом каталоге моего авто, добавил контроллер для корневой/контроллеры/передний и размещен шаблон в корень/темы/мои темы.
Если я позвоню http://localhost/prestashop/?страницы=обычай-страницу, Я вижу указатель на начальную страницу, если я назову имя localhost/покупка/таможня-страницы, я получаю ошибка HTTP 404.
Может кто-нибудь помочь мне получить мою страницу отображается?
РНР:
<?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>
Ответы - Пользовательская страница Prestashop с собственным шаблоном / Prestashop custom page with own template

11.09.2018 08:17:48
Для 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
.


/controller/front/ControllerName.php
вы можете увидеть путь в свойстве $this->setTemplate('path/here');









page_content
, а не вне его, как в моем примере.




12.09.2018 09:00:41
Я думаю, что лучшей практикой было бы создать модуль с вашей пользовательской страницей. Потому что с вашим подходом вы можете получить проблемы после обновления 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



