我已经遵循了许多教程,但它们要么含糊不清,要么无法正常工作,或者他们希望您使用可怕的CMS块模块,这样可以有限地控制页面的自定义元素。
到目前为止:
我创建了一个名为ProgramsController.php的控制器并将其放入ps_root/controllers/front
class ProgramsControllerCore extends FrontController
{
public $php_self = 'programs';
public function init()
{
parent::init();
}
public function initContent()
{
parent::initContent();
$this->setTemplate(_PS_THEME_DIR_.'programs.tpl');
}
}
我创建了一个名为programs.tpl的模板并将其放入ps_root/themes/mytheme/ folder
然后我使用:localhost/index.php?controller=programs
或使用SEO和链接构建器创建localhost/programs
链接,我收到错误:Fatal error: Class 'ProgramsController' not found in ...\classes\controller\Controller.php on line 135
但是,由于路径应该是../controllers/front
路径,这是不对的,为什么要查看../classes/controller
?我假设调度员应该知道将所有前端控制器挂钩到正确的模板。为什么这不起作用?
基本问题:
在PrestaShop 1.6中,我只想知道如何创建自定义页面,如:http://myshop.com/mycustompage
但它也利用了现有的页眉和页脚。
答案 0 :(得分:0)
要创建新的自定义页面,您必须执行以下步骤:
你必须在prestashop的modules文件夹中创建一个新文件夹,如
C:\wamp\www\prestashop\modules\your_module_name
然后将控制器文件放在模块文件夹中,如:
C:\wamp\www\prestashop\modules\your_module_name\controller\front\your_file.php
你的代码如下:
class ProgramsControllerCore extends FrontController
{
public $php_self = 'programs';
public function init()
{
parent::init();
}
public function initContent()
{
parent::initContent();
$this->setTemplate(_PS_THEME_DIR_.'programs.tpl');
}
}
然后在模块中创建一个新的文件夹视图,如:
C:\wamp\www\prestashop\modules\your_module_name\views
然后你创建另一个名为template的文件夹,另一个文件夹名为front,如:
C:\wamp\www\prestashop\modules\your_module_name\views\templates
C:\wamp\www\prestashop\modules\your_module_name\views\templates\front
然后在该文件中,您必须将您的主题文件设为
C:\wamp\www\prestashop\modules\your_module_name\views\templates\front\programs.tpl
现在渲染你的文件。我希望它会起作用。