我想在不使用CMS的情况下在Prestashop 1.5.3中创建自定义页面.
不幸的是我找不到任何与1.5.3一起使用的教程.
到目前为止,我已在stores根目录中创建了一个test.php文件,其中包含以下内容:
<?php
include(dirname(__FILE__).'/config/config.inc.php');
include(dirname(__FILE__).'/header.php');
$smarty->display(_PS_THEME_DIR_.'test.tpl');
?>
Run Code Online (Sandbox Code Playgroud)
我将相应的test.tpl放在我的主题basefolder中.它只包含'你好世界'.
我更改了blockmenu.php并创建了一个指向我页面的自定义链接:
$this->_menu .= '<li><a href="test.php">TEST</a></li>'.PHP_EOL;
Run Code Online (Sandbox Code Playgroud)
如果我点击链接页面显示,但HTML是某种腐败.页面的body-id设置为pagenotfound,左列生成但未显示.有没有办法为我的自定义页面设置$ page_name,以便我可以检查我的自定义页面是否已加载并抑制左右列的生成?
有没有其他方法可以创建没有CMS的功能自定义页面?
我目前正在创建一个基于Bootstrap的自定义页面,因此我无法通过CMS.
我创建了一个文件Mypage.php,我放在包含此代码的Prestahop根目录中:
<?php
require(dirname(__FILE__).'/config/config.inc.php');
ControllerFactory::getController('MypageController')->run();
?>
Run Code Online (Sandbox Code Playgroud)
然后我MypageController.php在override/controllers/front中创建了一个包含此代码的控制器:
class MypageControllerCore extends FrontController
{
public $php_self = 'Mypage.php';
public $ssl = true;
public function preProcess()
{
parent::preProcess();
}
public function setMedia()
{
parent::setMedia();
Tools::addCSS(_THEME_CSS_DIR_.'Mypage.css');
}
public function displayContent()
{
$_POST = array_merge($_POST, $_GET);
parent::displayContent();
self::$smarty->display(_PS_THEME_DIR_.'Mypage.tpl');
}
}
Run Code Online (Sandbox Code Playgroud)
最后我Mypage.tpl用我的HTML代码在我的主题目录中放了一个文件.
我自然删除cache/class_index.php但仍然遇到404错误.有任何想法吗?