PrestaShop 1.6:在CMS页面上显示模块内容(中间栏)

时间:2015-10-02 06:16:22

标签: php prestashop-1.6

我是 PrestaShop 的新手 1.6.0.9 版本。我开发了一个模块来管理新闻。它有5个领域 - 新闻标题,新闻详情,新闻图片,新闻状态和新闻发布日期。该模块在后台完美运行。现在我想在正面显示此模块中创建的所有新闻。请参阅下图:

Header Menu

这是我的标题菜单。它的最后一个选项为,这是当前的CMS页面。现在我希望我的新闻模块的内容显示在此页面上,而不是从CMS块模块添加的内容。

首先,有可能吗?如果是,是否有任何方法可以做到这一点或任何建议或修改?

如果不是,是否有其他方法可以在菜单选项单击的单独页面上显示前台办公室的模块内容?

感谢您抽出时间阅读该问题。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

为什么不能,尝试在单独的页面而不是cms页面中显示它,并在blocktopmenu中添加url链接。

您可以通过几个步骤轻松创建首页

步骤1:创建前置控制器

让您的模块名称为 Blockexample

你的目录结构是 模块/ MODULE_NAME /控制器/前/ controller_name.php

即, "模块/ blockexample /控制器/前/ test.php的"

类名约定必须遵循以下内容:

class modulename + controllername + ModuleFrontController扩展ModuleFrontController()

例如:Blockexample + Test + ModuleFrontController

在上述路径中创建一个测试控制器并添加以下代码。

class BlockexampleTestModuleFrontController extends ModuleFrontController
{

public function init()
{
    $this->page_name = 'testpage'; // page_name and body id
    $this->display_column_left = false; // hides left column
    parent::init();
}

public function initContent()
{
     parent::initContent();
     //path for displaying in breadcrumb, use this array to pass values to view file
     $this->context->smarty->assign(array('path'=>'Test')); 
     $this->setTemplate('test.tpl');
}

//for linking your css and javascript    
public function setMedia() 
{
    parent::setMedia();
    $this->addCSS(__PS_BASE_URI__.'modules/'.$this->module->name.'/css/'.$this->module->name.'.css');
    $this->addJS(__PS_BASE_URI__.'modules/'.$this->module->name.'/js/'.$this->module->name.'.js');    
}

}

步骤1:创建视图

您的视图目录结构是

模块/ MODULE_NAME /视图/模板/前/ file_name.tpl

即" module / blockexample / views / templates / front / test.tpl"

现在在上面的路径中创建一个tpl文件并添加" hello world"。

步骤3:访问前端模块

现在在浏览器中打开链接

网址格式: http://domain.com/index.php?fc=module&module=module_name&controller=controller_name

例如:   www.example.com/index.php?fc=module&module=blockexample&controller=test

现在,您可以使用上述格式添加链接,并在后台的blocktopmenu中创建一个新链接。