首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有自己模板的Prestashop自定义页面

问带有自己模板的Prestashop自定义页面
EN

Stack Overflow用户
提问于 2018-09-11 14:53:23
回答 2查看 6K关注 0票数 3

我正在运行我自己的prestashop主题,并希望添加一个没有css的新页面。因此,我添加了三个文件php,控制器和模板。我将php放置在我的预prestashop的根目录中,将控制器添加到root / controller /前台,并将模板放置在root/themes/ my中。

如果我调用http://localhost/prestashop/?page=custom-page,我会看到索引起始页,如果我调用localhost/prestashop/定制页面,我将得到一个HTTP404。

有人能帮我把我的页面显示出来吗?

PHP:

代码语言:javascript
复制
<?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');

主计长:

代码语言:javascript
复制
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');
//}

}

模板:

代码语言:javascript
复制
<div>
 HELLO PAGE
</div>

{literal}
  <style type="text/css">
  </style>
{/literal}

<script type="text/javascript">
  {literal}
  {/literal}
</script>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-11 17:17:48

对于PS1.7,按照下面的步骤创建一个新页面:

创建控制器:/controllers/front/MyPageController.php

代码语言:javascript
复制
<?php

class MyPageControllerCore extends FrontController
{
    public $php_self = 'mypage';
    public $ssl = true;

    public function initContent()
    {
        parent::initContent();

        $this->setTemplate('mypage');
    }
}

在主题:/themes/YOUR_THEME/templates/mypage.tpl中创建tpl文件

代码语言:javascript
复制
{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

如何访问it:http://your-site.com/index.php?controller=mypage

终于

如果您想要处理此页面的友好URL,只需在Shop Parameters > Traffic & SEO中添加该页面即可。

票数 10
EN

Stack Overflow用户

发布于 2018-09-12 06:00:41

我认为最好的做法是用自定义页面创建一个模块。因为使用您的方法,您可能会遇到麻烦后,商店前更新,而且您的商店的行为可能是不可预测的,有不同的属性。

下面是关于如何在模块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中创建自己的页面的一些信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52278754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档