在prestashop中为CMS页面创建新模板


Create new template for CMS pages in prestashop

我在Preferences->CMS下创建了几个页面,这些页面都可以。现在我需要创建更多看起来不同的页面,有没有办法像添加不同的模板一样添加,并使用相同的CMS界面来完成?。我想的是:

步骤1。创建新的cms-2.tpl步骤2。修改数据库以添加新的"模板"字段步骤3。修改后台以向CMS页面添加一个额外的字段,以选择与CMS页面一起使用的模板

到目前为止,我一直在阅读关于"创建没有CMS的页面"的文章,比如这个链接:在没有CMS的Prestashop 1.6中的自定义页面,或者这个其他链接:在Prestashop 1.5.3中创建自定义页面,但它们似乎都不是我想要的。

感谢

prestashop 1.7的更新

您不再需要覆盖cms控制器。默认情况下,此函数已经编写完毕。

您只需在themes/your-theme/templates/cms文件夹中创建一个page-ID.tpl即可。其中ID是cms页面ID。

这适用于Prestashop 16.0.14:

/controllers/front/CmsController.php复制到/override/controllers/front/CmsController.php,并找到该类的最后一个方法,即initContent()

最后一行是$this->setTemplate(_PS_THEME_DIR_.'cms.tpl');。更改为:

if(is_file(_PS_THEME_DIR_.'cms-'.$this->cms->id.'.tpl')){
    $this->setTemplate(_PS_THEME_DIR_.'cms-'.$this->cms->id.'.tpl');
}
else{
    $this->setTemplate(_PS_THEME_DIR_.'cms.tpl');
}

然后,您需要删除文件/cache/class_index.php以强制重新创建缓存。

然后,您可以在主题文件夹中创建如下文件:cms-2.tpl,其中2是CMS页面的id(只需复制CMS.tpl并更改文件名)。确保您保留您的cms.tpl作为所有其他cms页面的后备。