在 prestashop 中为 CMS 页面创建新模板
Create new template for CMS pages in prestashop
我在“首选项”->“CMS”下创建了几个页面,这些都可以。现在我需要创建更多具有不同外观的页面,有没有办法添加不同的模板并使用相同的 CMS 界面来完成它?。
我在想类似的东西:
步骤 1. 创建新的 cms-2.tpl
第二步,修改数据库,增加一个新的"template"字段
Step 3. 修改后台在CMS页面增加一个额外的字段来选择要与CMS页面一起使用的模板
到目前为止,我一直在阅读有关 "Creating pages without CMS" 的文章,例如 link:Custom page in Prestashop 1.6 without CMS or this other link: Create custom page in Prestashop 1.5.3,但其中 none 似乎正是我要找的。
谢谢
这适用于 Prestashop 16.0.14:
将/controllers/front/CmsController.php
复制到/override/controllers/front/CmsController.php
,找到class的最后一个方法,即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 页面的后备。
prestashop 1.7 更新
您不再需要覆盖 cms 控制器。这个函数默认已经写好了
您只需在 themes/your-theme/templates/cms
文件夹中创建一个 page-ID.tpl
。其中 ID 是 cms 页面 ID。
我在“首选项”->“CMS”下创建了几个页面,这些都可以。现在我需要创建更多具有不同外观的页面,有没有办法添加不同的模板并使用相同的 CMS 界面来完成它?。 我在想类似的东西:
步骤 1. 创建新的 cms-2.tpl 第二步,修改数据库,增加一个新的"template"字段 Step 3. 修改后台在CMS页面增加一个额外的字段来选择要与CMS页面一起使用的模板
到目前为止,我一直在阅读有关 "Creating pages without CMS" 的文章,例如 link:Custom page in Prestashop 1.6 without CMS or this other link: Create custom page in Prestashop 1.5.3,但其中 none 似乎正是我要找的。
谢谢
这适用于 Prestashop 16.0.14:
将/controllers/front/CmsController.php
复制到/override/controllers/front/CmsController.php
,找到class的最后一个方法,即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 页面的后备。
prestashop 1.7 更新
您不再需要覆盖 cms 控制器。这个函数默认已经写好了
您只需在 themes/your-theme/templates/cms
文件夹中创建一个 page-ID.tpl
。其中 ID 是 cms 页面 ID。