首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Magento cms页面渲染{{ }}个变量

Magento cms页面渲染{{ }}个变量
EN

Stack Overflow用户
提问于 2011-02-16 22:45:07
回答 2查看 4.6K关注 0票数 4

在magento中,{{ }}-variables被准确地替换了吗?文件?

EN

回答 2

Stack Overflow用户

发布于 2011-02-16 23:58:32

这些模板变量称为模板指令。每种方法都有不同的方法来渲染它。例如,widget指令

代码语言:javascript
复制
{{widget ...}}

Mage_Widget_Model_Template_Filter类上呈现widgetDirective方法。

代码语言:javascript
复制
class Mage_Widget_Model_Template_Filter extends Mage_Cms_Model_Template_Filter
{
    ...
    public function widgetDirective($construction)
    {
    }
    ...
}

而var指令

代码语言:javascript
复制
{{var ...}}

是由varDirective方法处理的

代码语言:javascript
复制
class Mage_Core_Model_Email_Template_Filter extends Varien_Filter_Template
{
    public function varDirective($construction)
    {
        ...
    }
}   

其中每一个都在不同的类中。每当Magento想要添加一个指令时,它就会出现,它们扩展了旧的filter类,并添加了新的指令方法。然后,用于创建过滤器对象的类是可配置的。据我所知,Magento需要在四个不同的上下文中进行模板指令变量替换。

  1. Catalog Content
  2. CMS页面Content
  3. CMS Static Block Content

将用于此目的的过滤器类别名Magento的配置位置为

代码语言:javascript
复制
global/catalog/content/template_filter
global/cms/page/template_filter
global/cms/block/template_filter
global/newsletter/template_filter

在您的所有config.xml文件中搜索<template_filter/>,您可以看到哪个类别名正用于实例化filter对象。(您可以使用ack-grep -i 'template_filter' --xml $MAGENTOfind $MAGENTO -type f -name '*.xml' -exec grep -Hn 'template_filter' {} \;$MAGENTO中查找包含该字符串的所有文件)。

票数 14
EN

Stack Overflow用户

发布于 2011-02-16 23:07:51

看起来Mage_Cms_Block_Page::_toHtml()Mage_Cms_Block_Block::_toHtml()调用了Mage_Cms_Model_Template_Filter::filter(string)。这个类和多个级别的父类通过几个函数解析字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5017826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档