エントリーの表示には、迷わずエントリーサマリーを使う
a-blog cmsを使い始めた頃の自分に、伝えたい内容です。
一覧ページや、関連エントリーの表示ではエントリーサマリー(Entry_Summary)を使いましょう、というメモです。
エントリー系のモジュール、どれを使おうかなと迷いながら制作してました。
エントリーを表示したいとき、次の5つが候補になるでしょう。
- エントリーボディー
- エントリーリスト
- エントリーフォト
- エントリーヘッドライン
- エントリーサマリー
a-blog cmsを使い始めた頃、この中でどれを使えばいいか、いちいち検討して使っていました。
※ここで言う「エントリーを表示する」とは、詳細ページ以外でエントリを表示することを想定しています。
※エントリーカレンダーとか、位置リストとか、用途が明確なエントリー系モジュールは他にもあります。
エントリーサマリーを最初に使えば良い
今回のメモで言いたいのは、エントリーサマリーを迷わず最初に使えば良いってことです。
エントリーリストや、エントリーヘッドラインなど、モジュールは他にもあるけれど、迷わないで良いよと。
特に自分が手がける規模の案件や、プロトタイピングでは、迷わずエントリーサマリーで良いと思います。
結果はシンプルなのですが、この結論に至るまで、なんやかんやありました。
パフォーマンスの問題は小さかった
エントリーサマリーは、エントリーリストに比べて、表示にかかる時間が長いです。
しかしその差は、多くの場合で気にしなくて良い程度の差でした。
もちろんベストなのはエントリーリストである、という場合もあります。
しかしエントリーサマリーを使っても、それほどパフォーマンスに影響が出ない・・・ということの方が多かったです。
最初からエントリーサマリー使えば変更に強い
次にテンプレートのメンテナンス性についてです。
こちらについては、むしろ最初からエントリーサマリーを使ったほうがいいな・・・ということがあります。
エントリーリストを使った後で、表示する内容を増やしたいためにエントリーサマリーに変更した、ということが過去に何度かありました。
「Q&Aコンテンツで、Qだけ表示させてたけど本文も表示したい」など。
それなら、最初からエントリーサマリーを入れておけば、プロトタイピング中は便利というわけです。
たしかにテンプレートの記述は、無駄に長くなることがあります。でも変更に耐えやすい方がいいなぁというのが、最近思うことです。
「プロトタイピング中はサマリーだったけど、納品時にはリストにしました」みたいな、清書のようにエントリーリストを使うのは丁寧な仕事だと思います。
エントリーボディーと比べたエントリーサマリー
「大は小を兼ねる」という意味では、エントリーサマリーではなくエントリボディーを使えば良い、という考え方もあるかもしれません。
しかしエントリボディーは、他のモジュールと比べて違う点があります。
第一にパフォーマンスが違います。
「エントリサマリーでも、エントリボディーでも問題ない」と言う表示があったとします。
どちらも表示はできるもののエントリーボディーを使うと、実行時間が無視できないくらいかかってしまう、ということがありました。
基本的にエントリーボディーモジュールは、1つの記事を表示するときにだけ使う。
エントリーサマリーで表示できない場合にだけ、使用を検討するという考え方が良いかなって思います。
実行時間はベンチマークモードで確認してました。
モジュールIDの引数が便利なのは、エントリーサマリー
エントリーボディーの引数設定は、他のモジュールとは違い点があります。
それはエントリーIDを指定すると、その他の引数の条件が無視される仕様です。
そのため例えば、エントリーボディーの引数指定では「エントリーID」と「フィールド」のand条件での抽出ができません。
そういうわけでエントリーを表示するときは、迷わずエントリーサマリーを使えば良いのではないか、と思った次第です。
そうすればプロトタイピング→公開→運用と、表示したい内容が変わっても対応しやすく、パフォーマンス的にも問題ないです。
※エントリーボディーの仕様はVer. 2.7.30時点のもの。(2018-02-19)
次のステップとしてはレイアウトモジュールとか、自家製のsetTemplateをこさえて、変更に耐えやすくするのが良さそうなので、やってみたいです。