category

変数がセットされてある時だけtrueになるようにif文を書く

2019-04-18

先日書いたこちらのエントリ。

Redactor のフィールドを Matrix の Redactor に変更するためにインポートやらテンプレートの調整をした #craftcms | mersy note
https://note.mersy418.com/arti...

このなかにある「Matrix の取り出し方を汎用的にする」をそのまま使う形で、JSON出力するようにもしてみた。

ただ、その時にはjson_encodeしないといけなかったので、その辺を調整してみた。

json_encode - Documentation - Twig - The flexible, fast, and secure PHP template engine
https://twig.symfony.com/doc/2...

結局のところインクルードしているブロックの方のテンプレートをこんな感じで変数で分岐。

{# フィールドの値を変数にセット #}
{% set block_richeditor = block.richeditor %}

{% if encodeJson is defined %}
{{ block_richeditor|json_encode() }}
{% else %}
{{ block_richeditor }}
{% endif %}

そのうえで必要な時だけencodeされればよいので

{% set encodeJson = true %}

こんな感じのを必要なテンプレートでセットする。

defined - Documentation - Twig - The flexible, fast, and secure PHP template engine
https://twig.symfony.com/doc/2...

「変数が設定されていれば」の分岐のところどう書くのかわからなかったのだけど、is defined なのね。勉強になりました。