thelia/smarty-filter-module

安装: 205

依赖: 1

建议: 0

安全: 0

星标: 0

关注者: 9

分支: 1

开放问题: 1

类型:thelia-module

v1.3 2015-06-22 14:40 UTC

This package is auto-updated.

Last update: 2024-09-14 21:51:16 UTC


README

允许你在smarty渲染中添加一些过滤器。请参阅有关Smarty过滤器的文档: prefilter/postfilteroutputfilter

安装

手动

  • 将模块复制到 <thelia_root>/local/modules/ 目录中,并确保模块的名称为SmartyFilter。
  • 在thelia管理面板中激活它

Composer

将其添加到您的main thelia composer.json文件中

composer require thelia/smarty-filter-module:~1.0

用法

激活过滤器

在工具菜单中点击SmartyFilter。您只需激活您想要的过滤器。

激活或停用过滤器后,请勿忘记清理您的缓存。

添加您自己的过滤器

您可以在其他模块中添加您的过滤器并使用此模块来集成它。需要检查3个步骤。

服务

首先创建一个具有名为filter的公共方法的类。将您的过滤器添加到其中。

示例

class EmailFilter
{

    public function filter($tpl_output, $smarty)
    {
        $tpl_output =
            preg_replace('!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!',
                '$1%40$2', $tpl_output);

        return $tpl_output;
    }
}

配置服务

在config.xml中声明您的服务,使用以下标签之一:

  • thelia.parser.register_pre_filter
  • thelia.parser.register_post_filter
  • thelia.parser.register_output_filter

示例

 <service id="smartyfilter.filter.email" class="SmartyFilter\Filter\EmailFilter" >
      <tag name="thelia.parser.register_output_filter"/>
 </service>

配置文件

为了将过滤器添加到数据库中(并激活它),您需要创建一个名为smarty-filter.xml的配置文件,并在其中添加配置,如示例所示。

<?xml version="1.0" encoding="UTF-8" ?>
<smartyfilters xmlns="urn:thelia:module:smarty-filter">
    <smartyfilter code="smartyfilter.filter.email">
        <descriptive locale="fr_FR">
            <title>EmailFilter</title>
            <description>Filtre pour sécurisation des emails</description>
            <type>output</type>
        </descriptive>
    </smartyfilter>
</smartyfilters>

循环

[smarty_filter]

输入参数

输出参数

示例

{loop name="smarty_filter" type="smarty_filter"}
    <tr>
        <td class="object-title">
            {$TITLE}
        </td>
        <td class="object-title">
            {$DESCRIPTION}
        </td>
        <td>
            {$CODE}
        </td>
        <td>
            {$TYPE}
        </td>
        <td class="actions">
            <div class="btn-group">
                <div class="make-switch switch-small module-activation" data-id="{$ID}"
                    data-on="success" data-off="danger"
                    data-on-label="<i class='glyphicon glyphicon-ok-circle'></i>"
                    data-off-label="<i class='glyphicon glyphicon-remove-circle'></i>">
                    <input type="checkbox" {if $ACTIVATE}checked{/if}>
                </div>
            </div>
        </td>
    </tr>
{/loop}