MT5へのアップグレード - MONO*LOG

MT5へのアップグレード

管理ブログを MT-4.261 から MT-5.02 にアップグレードしたのだが、テスト環境で気づかなかったポイントを含む、本番環境への移行メモ。

・mt-config.cgi には "DefaultLanguage ja" を追記。
・同じく "PublishCharset" を定義しているときは "SQLSetNames 1" を追記。
・ただし、このサイトの場合はDBが元々UTF-8環境なので "PublishCharset" を定義せずに "SQLSetNames 0" とした。
・MT-5.02 は古いMT4パッケージを上書きインストールしないこと。個人的には毎回
# mv mt mt_old; ln -s [DocumentRoot]/MT-5.02-ja -> mt
とするような運用がおすすめ。
・アップグレードが終わったら、「システム」→「デザイン」→「テンプレート」より右にある「テンプレート初期化」アクションでグローバルテンプレートの初期化を行う。
・ダイナミックパブリッシング設定の場合、mtview.php が再構築されずに空白ページになてしまう場合があるようだ。その場合、「設定」→「全般」より「ダイナミックパブリッシング設定」の「条件付き取得を有効にする」にチェックを入れ、再構築をするとうまくいった。


ところで、当サイトではタグクラウドの表示はよくつけられているタグ上位20件を名前順に表示し、頻度が高いものを大きなフォントで表示している。巷では頻度順に表示する人が多いみたいなのだが、MT-5.02 では名前順に表示できなくなったしまった。
Six Apart のドキュメント によると、『top モディファイアの値を 20 と設定した場合、以下の設定と同じ働きをします。』
<MTTags limit="20" sort_by="rank"></MTTags>
とある。sort_by モディファイアを "name" や "id" としても強制的に "rank" となってしまうのだそうだ。
これって明らかに仕様バグではないだろうか。頻度が高いものに限って名前順に表示したっていいじゃないか。実際、MT4ではそういう動作をしていた。

というわけで、「タグクラウド」ウィジェットテンプレートに少し手を入れて、表示件数は指定できないまでもある程度頻度の高いタグを "名前順" で表示できるようにした。

<MTTags sort_by="name" sort_order="ascend">
<MTSetVarBlock name="rank"><$MTTagRank max="10"$></MTSetVarBlock>
<MTIf name="__first__">
<div class="widget-tag-cloud widget">
<h3 class="widget-header">タグクラウド</h3>
<div class="widget-content">
<ul>
</MTIf>
<MTIf name="rank" lt="9">
<li class="rank-<$MTVar name="rank"$>"><a href="javascript:void(0)" onclick="location.href='/tag/<MTTagName encode_url="1">/';return false;" rel="tag"><$MTTagName$></a></li>
</MTIf>
<MTIf name="__last__">
</ul>
</div>
</div>
</MTIf>
</MTTags>


太字の箇所がオリジナルと違うところ。これで、表示頻度を10段階に分けて、上位9位のタグのみを名前順に表示する。

コメントする

アーカイブ