PrestaShop 1.6:在 CMS 页面(中心栏)上显示模块内容
PrestaShop 1.6 : Show module contents on CMS page (center column)
我是 PrestaShop 的新手,正在研究 1.6.0.9 版本。我开发了一个模块来管理新闻。它有 5 个字段——新闻标题、新闻详情、新闻图像、新闻状态和新闻发布日期。该模块在后台完美运行。现在我想在前面显示在这个模块中创建的所有新闻。请看下图:
这是我的 header 菜单。它有最后一个选项 Press 当前是一个 CMS 页面。现在我希望在此页面上显示我的新闻模块的内容,而不是从 CMS 块模块添加的内容。
首先,可能吗?如果是,有什么方法可以做到这一点或有什么建议或修改吗?
如果不是,是否有其他方法可以在单击菜单选项时在单独的页面上显示前台的模块内容?
感谢您花时间阅读问题。任何帮助表示赞赏。
为什么不能,试试在单独的页面而不是cms页面显示,在blocktopmenu中添加一个url link。
您可以通过几个步骤轻松创建首页
步骤一:创建前端控制器
让你的模块名称是Blockexample
你的目录结构是
module/module_name/controllers/front/controller_name.php
即
"module/blockexample/controllers/front/test.php"
class 命名约定必须遵循如下:
class 模块名+控制器名+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/module_name/views/templates/front/file_name.tpl
即 "module/blockexample/views/templates/front/test.tpl"
现在在上面的路径中创建一个 tpl 文件并只添加 "hello world"。
第 3 步:在前端访问您的模块
现在在浏览器中打开link
url格式:
http://domain.com/index.php?fc=module&module=module_name&controller=controller_name
例如:
www.example.com/index.php?fc=module&module=blockexample&controller=test
现在您可以按照上述格式添加您的 link 并在后台的 blocktopmenu 中创建一个新的 link。
我是 PrestaShop 的新手,正在研究 1.6.0.9 版本。我开发了一个模块来管理新闻。它有 5 个字段——新闻标题、新闻详情、新闻图像、新闻状态和新闻发布日期。该模块在后台完美运行。现在我想在前面显示在这个模块中创建的所有新闻。请看下图:
这是我的 header 菜单。它有最后一个选项 Press 当前是一个 CMS 页面。现在我希望在此页面上显示我的新闻模块的内容,而不是从 CMS 块模块添加的内容。
首先,可能吗?如果是,有什么方法可以做到这一点或有什么建议或修改吗?
如果不是,是否有其他方法可以在单击菜单选项时在单独的页面上显示前台的模块内容?
感谢您花时间阅读问题。任何帮助表示赞赏。
为什么不能,试试在单独的页面而不是cms页面显示,在blocktopmenu中添加一个url link。
您可以通过几个步骤轻松创建首页
步骤一:创建前端控制器
让你的模块名称是Blockexample
你的目录结构是 module/module_name/controllers/front/controller_name.php
即 "module/blockexample/controllers/front/test.php"
class 命名约定必须遵循如下:
class 模块名+控制器名+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/module_name/views/templates/front/file_name.tpl
即 "module/blockexample/views/templates/front/test.tpl"
现在在上面的路径中创建一个 tpl 文件并只添加 "hello world"。
第 3 步:在前端访问您的模块
现在在浏览器中打开link
url格式: http://domain.com/index.php?fc=module&module=module_name&controller=controller_name
例如: www.example.com/index.php?fc=module&module=blockexample&controller=test
现在您可以按照上述格式添加您的 link 并在后台的 blocktopmenu 中创建一个新的 link。