我创建了一个自定义钩子,以便可以将我的自定义模块包含在任何.tpl文件中,只需一行即可:{hook h='calcSubstrate'}
。
但是,我无法在CMS页中使用它,至少不能通过使用管理面板来使用它-CMS页中的聪明代码将无法呈现,该代码将以文本形式原样显示:{hook h = 'calcSubstrate'}。
另外,如果这样会更容易/更快,那么我该如何选择模块显示在哪些页面上呢?
CMS页面的编辑器无法识别任何Smarty代码。为了在选择的文章/页面中包含钩子,我可以想到两个选择:
cms.tpl
)中,并检查当前页面的ID以有条件地显示该模块。页面ID的列表可以作为模块的配置。CmsController
类,因此必须使用显示内容{$cms->content|module}
。您可以在此处查看简化的代码以获取灵感:https : //gist.github.com/tungd/cef0ca1ac1063c1ee90b。当然,通过仅具有一个do_shortcode
可以完成所有功能的Smarty修饰符(就像Wordpress的do_shortcode
function一样),您可以使其像Wordpress那样更通用。上一次我这样做是因为我的客户希望将幻灯片放到某些CMS页面中,而我选择第二种方法是因为它为模块何时显示以及内容之间的显示位置提供了很大的灵活性。对于其他事物,例如联系表单或地图,这可能会过大,并且第一种方法更好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句