Prestashop 1.6中没有CMS的自定义页面

时间:2014-12-09 18:05:31

标签: php controller prestashop-1.6

我目前正在创建基于Bootstrap的自定义页面,因此无法通过CMS。

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

<?php
    require(dirname(__FILE__).'/config/config.inc.php');
    ControllerFactory::getController('MypageController')->run();
?>

然后我在override / controllers / front中创建了一个包含此代码的控制器MypageController.php

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');
    }
}

最后我用我的HTML代码在我的主题目录中放了一个Mypage.tpl文件。

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

3 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分:-1)

不确定你的代码是因为我没有测试它但是你应该去SEO&amp;网址会创建新页面并选择新页面Mypage,页面标题,友好的网址元标记和关键字。

答案 2 :(得分:-2)

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

http://doc.prestashop.com/display/PS16/Creating+a+first+module