tjtjtjのメモ

自分のためのメモです

yiiext/twig-rendererのビューで独自の書式を使いたい

twig-rendererのfiltersに関数を指定するとtwigのfilter構文でその関数が使えるようになります。twigのfilterとバッティングしたらどうなるんだろ。
こんな感じ。

        'viewRenderer'=>array(
            'class'=>'ext.etwigviewrenderer.ETwigViewRenderer',
            'filters' => array(
                'bold' => 'bold',
            ),
        ),
function bold ($value)
{
    return "<b>".$value."</b>";
}
{% set value = "hogehoge" %}
{{ value |bold}} 
↓
<b>hogehoge</b>

独自の書式を使えると便利

Yiiのビューで独自の書式が欲しいときは CFormatter を拡張するといい | tipshare.infoのMyFormatterのstaticメソッドがフィルター構文で使えると便利ですよね。warekiをfiltersに登録するとこうなります。

        'viewRenderer'=>array(
            'class'=>'ext.etwigviewrenderer.ETwigViewRenderer',
            'filters' => array(
                'wareki' => 'MyFormatter::wareki',
            ),
        ),
<?php echo Yii::app()->format->wareki($date)); ?>
↓↓↓↓
{{ date|wareki }}

これは便利!!