aoepeople/aoe_extendedfilter
此包的最新版本(v3.0.0)没有可用的许可信息。
支持Magento可扩展模板过滤器指令
v3.0.0
2015-08-24 14:53 UTC
Requires
- php: >=5.4
- magento-hackathon/magento-composer-installer: *
This package is not auto-updated.
Last update: 2024-09-14 17:32:09 UTC
README
Aoe_ExtendedFilter Magento模块
许可
贡献者
- Lee Saferite (AOE)
兼容性
- 模型重写
- core/email_template_filter
- cms/template_filter
- widget/template_filter
- 模块依赖
- Mage_Core
- Mage_Cms
- Mage_Widget
用法
此模块扩展了核心、CMS和组件过滤器模型,使得添加新指令变得简单。安装后,您可以通过向模块的config.xml中添加一个简单的指令和一个新的模型类来添加新指令。此模块的config.xml包含了两个新的指令,'config'和'translate',它们是通过新的XML配置添加的。
<config>
<global>
<filter>
<directives>
<translate>Aoe_ExtendedFilter/Directive_Translate</translate>
<config>Aoe_ExtendedFilter/Directive_Config</config>
</directives>
</filter>
</global>
</config>
您的指令元素名称是用于调用指令的名称。注意:指令名称目前限制为10个字符,并且限制为a-z。使用的正则表达式模式是[a-z]{0,10}
。
<translate>...</translate>
{{translate ... }}
新的指令模型类需要实现Aoe_ExtendedFilter_Model_Directive_Interface
接口
class Aoe_ExtendedFilter_Model_Directive_Translate implements Aoe_ExtendedFilter_Model_Directive_Interface
新指令的用法与现有指令相同。
{{translate text="Hello World"}}
{{config path="general/store_information/phone"}}
开发笔记
传递给指令process()方法的$params数组是preg_match_all调用的结果,因此0索引是完整匹配的文本,1是指令名称,2是其他所有内容。在大多数情况下,应该将2索引传递给参数解析器,这将生成作为指令参数传递的数据的键/值对。它还会解析任何模板变量为其最终值。所以,给定模板中的此指令
{{translate text="Hello World"}}
那么传递给process()方法的初始$params数组将是
$params[0] === 'translate text="Hello World"';
$params[1] === 'translate';
$params[2] === ' text="Hello World"';
使用以下代码解析后
// Re-parse the third parameter with the tokenizer and discard original parameters
$params = $filter->getIncludeParameters($params[2]);
您将得到
$params['text'] === 'Hello World';