モジュールに外部コンテキストを挿入する

モジュールで表示する情報を制御するには、モジュールIDを作成して管理画面から情報を制御することが可能ですが、テンプレート側から指定することも可能です。

<!-- BEGIN_MODULE Entry_List ctx="bid/1/cid/2" -->
...省略
<!-- END_MODULE Entry_List -->

上記のようにBEGIN_MODULEを記述時にctx="bid/1/cid/2"と記述することで、モジュールのURLコンテキストを指定できます。この場合、bid1内のcid2のエントリーデータを表示します。

指定の仕方はURLコンテキストと同じで、bid/1/cid/2/eid/3のように指定できます。

有効なコンテキスト

  • bid
  • cid
  • eid
  • uid
  • page
  • keyword
  • tag
  • field
  • order
  • start
  • end

startとendの使い方

記述の仕方としては、下記のようにします。

<!-- BEGIN_MODULE Entry_List ctx="/(開始日時)/-/(終了日時)/" -->
...
<!-- END_MODULE Entry_List -->

たとえば、2020年6月23日10時から開始し、終了を際限なく指定する場合は下記のように記述します。

<!-- BEGIN_MODULE Entry_List ctx="/2020-06-2310:00:00/-/9999-12-3123:59:59/" -->
...
<!-- END_MODULE Entry_List -->

たとえば、過去を際限なく遡り、終了をEntry_Bodyの投稿日付に調整する場合は下記のように記述することが可能です。(※Entry_Bodyの変数を使用するため、Entry_Listのモジュールを「\(バックスラッシュ)」を使ってエスケープしています)

<!-- BEGIN_MODULE\ Entry_List ctx="/1000-01-01/-/{date#Y}-{date#m}-{date#d}{date#H}:{date#i}:{date#s}/" -->
...
<!-- END_MODULE\ Entry_List -->

外部コンテキスト(ctx)とモジュールIDの優先度について

もちろんモジュールに id="" をつけてモジュールID化したものに外部コンテキスト(ctx)を併用して設定することも可能です。ただモジュールIDの設定でもURLコンテキストの設定が可能なので、設定が重複してしまう可能性があります。設定が重複して問題が起きないように、コンテキストの適用には優先度が存在しますのでご注意ください。

コンテキストの優先度

  1. モジュールIDの設定に、URLコンテキストのチェックが入っていて、現在表示しているページでURLコンテキストが指定されている状態
  2. モジュールIDの設定に、引数が固定値で指定されている状態
  3. テンプレートで外部コンテキスト(ctx)を設定した状態