Tips 動的にチャンクの内容を書き換えるとか

使う人がいるかどうか・・・っていうぐらいにレアなTIPSかも・・・・。

どんな場面で使えるかは、皆さんの判断で・・・なんですけど、どんなときに使えるのかを架空のたとえ話で書いてみます。

個人でやってる美容店のHPで予約フォームがあると思ってください。
メニューもカットからパーマの種類とかいろいろありますよね?
もちろん、流行のなんとかとかメニューも季節や流行で増えたり減ったり・・もちろん、その説明ページもあるとします。
メニューごとに1ドキュメントが割り当てられている状態です。
もちろん、ビューは1ページごと見せる必要はないのでDittoを使って1ページにまとめちゃうという手を使うかも知れません。
が、ここで1つのメニュー=1つのドキュメントとして扱うのがミソです。
なぜなら、予約フォームにはお客さんにメニューも選択してもらうからなんです。

普通に考えれば、予約フォームのHTMLはテンプレート用チャンクにベタでメニュー項目を書くわけですが、メニューの増減の度にテンプレート用チャンクも書き換える必要があるのがわずらわしいわけです。

そこで、メニューに該当する部分を動的に作り上げたいなという欲求がでてきます。
先ほど、1つのメニュー=1つのドキュメントという形にすれば、アクティブな子ドキュメントの一覧を引っ張り出すのはMODxのAPIを使えばすぐです。
これで、引っ張ってきたpagetitleとかをSELECTのOPTIONパラメタとして動的に生成してしまえば、テンプレートの書き換えもせずに済むことになります。

このように、利用したいスニペットがチャンクでテンプレートなどを利用する場合で、かつ、このテンプレートを動的に書き換えたいっていう場合に使えるテクなわけです。

ということで、そのチャンクの書き換えは至ってシンプル。

  1. $modx->chunkCache['チャンク名'] =データ;

ほかにどんな利用法があるのか思い浮かばないのが悔しいですけど・・・・、そんなレアなTIPSでしたぁ

プッシュ通知を