category

コンテンツの管理を出来るだけ細分化してみる

2019-04-20

エントリ内の管理を細分化してみた。

Craft CMS をブログで使うならMatrixのフィールドにリッチエディタを入れておくのがよいのかも? #craftcms | mersy note
https://note.mersy418.com/arti...

で書いた内容を管理するために、先日のバースデーエントリーの構成をかえてみた。

データ管理・構成

とりあえずデータの構成としては、別のセクション(shop)としてまず焼肉屋さんのエントリを作成した。

その上で、エントリのデータはマトリックス内のリッチエディタを分けた上で間に、エントリ選択のブロックを追加した。

これで一応見た目上はそこまで大差なく、エントリを選択している、というデータをまぎれこますこともできた。

テンプレート

Matrix にエントリ選択のテンプレートが追加になったので、テンプレートとしてはこんな感じ。

ファイル名: rel_shop.twig

{# フィールドの値を変数にセット #}
{% set block_rel_article = block.rel_article.all() %}

{# 任意のマークアップで出力 #}

{% if block_rel_article|length %}
{# 任意のマークアップで出力 #}
{% if encodeJson is defined and encodeJson == true %}
  {% for rel in block_rel_article %}
    {{ rel.title|json_encode() }}{{ rel.c_text|json_encode() }}
  {% endfor %}
{% else %}
  <blockquote>
    {% for rel in block_rel_article %}
      <p>{{ rel.title }}
<a href="{{ rel.c_url }}">{{ rel.c_url }}</a></p>
      <cite>{{ rel.c_text }}</cite>
    {% endfor %}
  </blockquote>
{% endif %}
{% endif %}

なんかうまくいかないなー、とおもってたら、単にendifが足りてなかった。

とりあえず、こういう管理にすることで、このリレーションの部分の見た目とかの管理はだいぶやりやすくなる気がする。

まぁ、単純な引用レベルでいいんじゃね??というのと何が違うのか?というのが難しいところではある・・・・

参考

Craft CMS の行列(Matrix)フィールドのテンプレートを最適化してみる | BUN:Log
https://bunlog.dreamseeker.dev...

の画像のところとかが参考になります。