Prestashop 1.6中不使用CMS创建自定义页面

4

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

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

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

然后我创建了一个控制器 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');
    }
}

最后,我在我的主题目录中放置了一个名为Mypage.tpl的文件,其中包含我的HTML代码。
我自然地删除了cache/class_index.php,但仍然遇到404错误。有什么建议吗?

小心,不是 displayContent() 而是 initContent()。 - HRoux
3个回答

10
  • 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

我不确定你的代码是否正确,因为我没有测试过,但你应该前往SEO和URLs创建新页面,并选择你的新页面Mypage、页面标题、友好的URLs元标签和关键字。


4
“我没有测试过”不是一个好的“回答”别人的问题的方式。 - Tim Lewis

-2

6
仅提供链接的回答不利于社区,请编辑您的回答。 - Prafulla Kumar Sahu
你想让我从上面的链接复制代码到这里。我认为这不是必要的。无论如何,感谢您的建议,下次我会适当回答而不仅仅是一个链接。 - Jogendra Yadav

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接