Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@datafarm-katsuamta

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

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だけで変数の設定と受け渡しを完了する

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

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  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
datafarm
「設計で問題を解決する」をモットーに、システム・ウェブサイトの導入・運用をサポートします。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?