aoepeople/aoe_extendedfilter

此包的最新版本(v3.0.0)没有可用的许可信息。

支持Magento可扩展模板过滤器指令

安装: 566

依赖者: 1

建议者: 0

安全性: 0

星标: 6

关注者: 41

分支: 5

开放问题: 0

类型:magento-module

v3.0.0 2015-08-24 14:53 UTC

This package is not auto-updated.

Last update: 2024-09-14 17:32:09 UTC


README

AOE

Aoe_ExtendedFilter Magento模块

许可

OSL v3.0

贡献者

兼容性

  • 模型重写
    • 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';