Help us understand the problem. What is going on with this article?

インクルードで変数を使ってみよう

More than 1 year has passed since last update.

a-blog cmsのインクルードが新しくなり、変数が受け渡しができるようになりました。
「へー」って思っていても、実際に使いどころがないと、なかなか実感がわきません。
先日実装でちょっと悩んでるところに

「あ、これインクルード変数でいけそう」

ってのがあったので、ご紹介します。

静的なページでのパンくず(トピックパス)の扱いについて

a-blog cmsにはトピックパスというモジュールがあり、これがパンくずリストを作ってくれます。
ブログ、カテゴリ、エントリーと上から順番に綺麗にパンくずリストを吐き出してくれます。
それぞれのカスタムフィールドの表示も可能なので「ブログ名と違った名前を出したい」という時にもカスタムフィールドの表示を出させることで、柔軟な対応が可能です。

ですが、そのどれにも属さない「静的なファイル」の場合.
パンくずは表示されません。(ブログには必ず属すことになるのでそこまでは表示されます)

例えばですが。
サイトマップみたいなページの場合、エントリーで作ることはなくだいたいが静的(+モジュールの組み合わせ)になると思います。

ということで、こうしてみた。

サイトマップを例にします。

まずはsitemap.htmlにこのような表記をしました。
sitemap01.png

そして呼び出されるtopicpath.html側はこうなりました。
sitemap02.png

こうすることで「もしkeyに何か入っていたら、表示する」が可能になります。

静的ファイルの場合、エントリーではないためパンくずの末尾に来るエントリー名が表示されません。
その代わりに変数を表示するよ、みたいな感じです。

何がいいのか

こうすることで、静的用、動的用のパンくず用ファイルを用意せずに、一括で管理できます。
変数で作っているので、表示を変更したい場合も、topicpath.html側を変更すれば、表示が一括で変更できます。

割と静的な部分は「個別のファイルに表記しないといけない」ケースが多い(僕の実装技術では)ので、運用で変更漏れが出やすいんですよね。その解決の一端にはなるのかなーと。

とはいえこれマルチブログとか細かい部分は考慮してないです。
今回のサイトの運用はこれでいけたー!って話です。

インクルード変数は、a-blog cmsの作法としては特殊な形

a-blog cmsのカスタマイズですと、通常は以下のような作業が多いです。

MVCの切り分けが厳密にできているから、と私は解釈しています
(a-blog cmsのとっても良い部分です)

0001.001.png
0001.002.png

a-blog cmsの管理画面×htmlって形ですね。
まあ、おなじみのってやつです。

これがインクルード変数に限っては
0001.003.png

となります。
htmlだけで全部完結しちゃう、っていう。

モジュールを上書きできるctxあたりから、この流れはあったと思っているのですが
(ctxはもともとあるモジュールの設定を上書きする)

完全にhtmlだけで変数の設定と受け渡しを完了する

ってのは、インクルード変数が最初かなぁ?って思いました。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away