1月に思いきりでMT3から4に入れ替えたのだが,テンプレートの書き換えやMT4では動かないplug-in(MTTagInvokeだ)への対応に手が回らず,完全にはなっていなかった.おかげでリンク集は更新できなくなっていた.故に,今回,もう一踏ん張りをやったよ.
標準機能で出来る物はなるだけplug-inを使わずに済まそうと確認していって,
- RebulidPreview(標準の管理画面で出来るようになった)
- Compare(テンプレートタグ書き換え)
- FilterCategories(テンプレートタグ書き換え)
- MTTagInvoke
を抜いた.
MT4は,新たに加わった条件タグのMTIfが超強力である.なんせ,tagモディファイアでテンプレートタグが指定でき,likeで正規表現が使えるというのがすごい.例えば,トップページでet alのところにカテゴリを出力しているのだが,
<MTCategories>
<MTIf tag="MTCategoryLabel" like="[^更新情報|フォームお返事]">
<li><a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a></li>
</MTIf>
</MTCategories>
で,ここには「更新情報」と「フォームお返事」のカテゴリが出力されない.tagとlikeでかなりの条件分岐が実現できる.
作業中,記事にコメントを付けようとすると
Can't locate object method "type_handlers" via package "MT::Template::Context"
というエラーが出るようになるというアクシデントがあった.さんざん調べたのだが分からなくて分からなくて,type_handlersでgrepしたら,やっとArchiveDataFooterというplug-inが使っていることが分かった.え!それかよ!!コメントと何も関係ないところだったし,記事ページでのエラーじゃなかったから全然気づかなかった!エラーが何をやっている時に出たか吐いてくれないと困るな,もう.
結局,ArchiveDateFooterを4対応版に入れ替えていたはいいが,旧版の削除を忘れていたせいで,MT4に対応していない旧版を読みに行って定義のない変数にぶつかってエラーが出たようだ.
リンク集ページは切り離した.Movable Typeから出してはいるが別ページ(blog)だ.blog数が無制限になったし,もとから無理のある構成だったからな.ほぼMovable Typeデフォルトデザインのままだということは言わないでください.リンク集の場合は1個1個出ても仕方ないよなと思い,カテゴリアーカイブとメインページ以外はざくざくテンプレートを削除した.よって,1記事ごとのページはないし,RSSも出ない.
カスタムフィールド使って,URIとかリンクバナーとか情報を分類しておこうかなとも思ったのだが,現状,エキスボートではカスタムフィールドが出力されないので,やめておいた.
あとは,長いページの分割にPagenateを使っていたのをPageButeに置き換えた.Pagenateの方が分割ナビゲーションの出力の仕方は細かく制御できるのだが,なんせPageButeはphpにしなくて良い.ページのバックアップ取った時にローカルではphpコードに対応できないのが好きではなかったので,入れ替えてみた.まあ,そんなには困らないだろう.