tim*_*hka 4 variables templates render magento content-management-system
在magento的哪个地方是{{}} - 变量正好被取代了?文件?
Ala*_*orm 14
这些模板变量称为模板指令.每个人都有一个不同的方法来负责渲染它.例如,widget指令
{{widget ...}}
Run Code Online (Sandbox Code Playgroud)
widgetDirective在Mage_Widget_Model_Template_Filter类上呈现方法.
class Mage_Widget_Model_Template_Filter extends Mage_Cms_Model_Template_Filter
{
...
public function widgetDirective($construction)
{
}
...
}
Run Code Online (Sandbox Code Playgroud)
而var指令
{{var ...}}
Run Code Online (Sandbox Code Playgroud)
由varDirective方法处理
class Mage_Core_Model_Email_Template_Filter extends Varien_Filter_Template
{
public function varDirective($construction)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
这些中的每一个都在不同的类中.每当Magento想要添加指令时,它们就会出现,它们会扩展旧的过滤器类,并添加新的指令方法.然后,用于创建过滤器对象的类是可配置的.据我所知,有四种不同的上下文,Magento需要做一个模板指令变量替换.
目录内容
CMS页面内容
CMS静态阻止内容
通讯内容
Magento将使用的过滤器类别别配置为
global/catalog/content/template_filter
global/cms/page/template_filter
global/cms/block/template_filter
global/newsletter/template_filter
Run Code Online (Sandbox Code Playgroud)
搜索所有config.xml文件<template_filter/>,您可以看到正在使用哪个类别名来实例化过滤器对象.(您可以使用ack-grep -i 'template_filter' --xml $MAGENTO或find $MAGENTO -type f -name '*.xml' -exec grep -Hn 'template_filter' {} \;查找$MAGENTO包含该字符串的所有文件).