遅ればせながらMT5.1について
リリースされてからもう3週間ぐらい経っているんですかね?.先週にはセキュリティアップデート版の5.11も登場していたりしますが,MT5.1でちょこっとだけ機能が追加されたMTML,つまり「MTタグ」の関係について書いてみようと思います.
MT5以降,ウェブサイトというものがブログその他を含有するものとしてできたわけですけど,日頃MTを使っている人は分かっていると思いますが,ウェブサイトも他のブログ等と同じようにテンプレートを使ってトップページやウェブページを作ることが出来るようになっています.確か出来ないのはブログ記事を作ることだけだと思いました.まぁブログ記事を作るならウェブサイトの中にブログを作ってしまえば管理もしやすいので,何ら問題ないはずです.事実当サイトもウェブサイトの中にブログを3つ...いや掲示板も入れると4つも含有させていますが,不自由なく運営できていますし(^^;
MTが5になって以降「ウェブサイトのテンプレートをどう使って他のブログのテンプレートに使用していくか」が結構話題に上がることが多くなりました.基本は以前ここでも書いた一部のモジュールを統一化してみたに書いているとおりだったりするんですが,5.1以降ではもっとシンプルに書けるようになったので,そのへんを改めて詳しく書いておこうと思います.
まぁ,くどくど説明するよりも,今までのソースと現在のテンプレートで使っているソースを比較して見てもらったほうが早いと思うので,まずそちらを見てみましょうか.
あ,一応書いておくと,ブログのテンプレート上でウェブサイトのモジュールテンプレートを使うケースで書いていますのでそのつもりで(^^;
- MT5.0でのソース
<MTBlogParentWebsite> <$MTWebsiteID setvar="wsid"$> <$MTInclude blog_id="$wsid" module="ヘッダー"$> </MTBlogParentWebsite>
- MT5.1以降でのソース
<MTBlogParentWebsite> <$MTInclude module="ヘッダー" parent="1"$> </MTBlogParentWebsite>
まぁ,強調しているので分かりやすいとは思うんですけど,5.1 リリースノート | Movable Type 5 ドキュメントでは,たった1行,このように書いてあります.
104159 MTInclude に parent モディファイアを追加する。
そんなわけで,MTIncludeにparentというモディファイアが追加されました.parentは「親」の意味ですので,このモディファイアを指定しているMTIncludeについては,親ウェブサイトのテンプレートの中から該当するモジュールやウィジェットを探してインクルードしてくれます.
「これなら,逆にMTBlogParentWebsiteなんていらないんでない?」と思う人が多いのでしょうが,ここで一つ落とし穴があるんですよね.それは,「インクルード先のウェブサイトのテンプレートで,MTWebsite系のファンクションタグを使っていたらどうなるのか?」ということ.この場合,MTWebsite系のファンクションタグは,ウェブサイトのコンテキストでしか使えないので,結果としてMTBlogParentWebsiteを使ってウェブサイトのコンテキストを発生させなければならないのです.逆に,インクルード先でMTWebsite系のファンクションタグを使っていないのであれば,コンテキストを気にする必要もないことになるので<$MTInclude module="フッター" parent="1"$>
と書いておけばインクルード出来るということになります.
これで何が変わったの?と思うのでしょうけど,ウェブサイトのコンテキストに入る時って,そのウェブサイトのIDを取得して,インクルード時にIDを指定していたんですよね.勿論これが確実な方法ではあったんだけど,インクルード時に「これは親ウェブサイトのテンプレート」って指定できることになったので,変数を設定しなくても良くなります.
また,5.1以降は,インクルードしているテンプレートがそのブログのモジュールなのか,親ウェブサイトのモジュールなのか,グローバルテンプレートのモジュールなのかを区別してくれるようになった(画像で表示されます)のですが,これにもきちんと反映されるようになります(変数では速度の関係上「不明」と表示されていた).
あと,コミュニティ掲示板系で発生していた以下の不具合が5.1で修正されています.
104230 コミュニティソリューションで、コミュニティ掲示板にコメントを投稿したときに、entry_modified_on が正しく更新されない。
うちの掲示板でもそうなんですが,エントリーにコメント書かれたときに,5.0以前の場合は「コメントの投稿」としてしか反映されず,エントリーの更新とはされなかったのですが,これが修正され,コメントの投稿があった場合にも「エントリーの更新」とみなされたということです.
これにより,うちの掲示板のように「コメントが有った場合にトピック(エントリー)が先頭に上がる」ということがMTEntriesのみで出来るようになったということです.早速うちの掲示板で試してみましたが,問題なく動作しているように見えます.尤も,最近トピックへの返信がないので,以前と何ら変わらないんですけどね(ぉぃ
Comments:0