Php 不带CMS的Prestashop 1.6中的自定义页面

Php 不带CMS的Prestashop 1.6中的自定义页面,php,controller,prestashop-1.6,Php,Controller,Prestashop 1.6,我目前正在创建一个基于引导的定制页面,因此我无法通过CMS 我创建了一个文件Mypage.php,我把它放在包含以下代码的Prestahop根目录下: <?php require(dirname(__FILE__).'/config/config.inc.php'); ControllerFactory::getController('MypageController')->run(); ?> 最后,我把一个Mypage.tpl文件和我的HTML代码放在我的主

我目前正在创建一个基于引导的定制页面,因此我无法通过CMS

我创建了一个文件
Mypage.php
,我把它放在包含以下代码的Prestahop根目录下:

<?php
    require(dirname(__FILE__).'/config/config.inc.php');
    ControllerFactory::getController('MypageController')->run();
?>
最后,我把一个
Mypage.tpl
文件和我的HTML代码放在我的主题目录中


我自然地删除了
cache/class_index.php
,但仍然得到一个404错误。有什么想法吗?

不确定你的代码,因为我没有测试它,但你应该去搜索引擎优化和URL创建新页面,选择你的新页面Mypage、页面标题、友好URL元标记和关键字

  • MypageController.php
    移动到
    root/controllers/front
  • 更改
    public$php_self='mypage'
  • 转到
    BO>Preferences>SEO&url
    并添加新页面,在页面字段中选择
    mypage

根目录中不需要
Mypage.php
,您可以通过链接
yoururl/index.php?controller=Mypage
访问控制器。但如果您想使用它,请编写
Controller::getController('MypageController')->run()

您可以为自定义页面创建新模块


“我没有测试它”不是“回答”某人问题的好方法。仅链接的答案对社区不好。请编辑您的答案。您希望我将上述链接中的代码复制到此处。我不认为这是必要的。不管怎样,谢谢你下次给我的建议,我将正确回答,而不仅仅是一个链接。你救了我的命。小心点,不是displayContent()而是initContent()
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');
    }
}