MT3.31にアップグレード

   

ちょっと苦労しましたが、なんとかアップグレードできました。
以下、手順等の覚書き。
まずは、こちらを参考にしながら書いてあるとおりに作業。
ロリポップ MovableTypeのアップグレード
1.サーバーのMT3.2のデータを全てローカルにバックアップ
2.サーバーの「cgi/mt」フォルダ内のファイル等を全て削除
3.MT3.31をダウンロード(ECバイヤーズからのダウンロードになって面倒くさくなってます。)
4.MT3.31のデータをサーバーにアップロード
5.MT3.2で使っていた「config.cgi」とデータベースファイルorフォルダ(『 SQlite 』 を利用している場合は、『 sqlitedb 』 ファイル、『 MySQL 』 もしくは 『 BarkleyDB 』 を利用している場合は、『 db フォルダー 』 )をアップロード
6.全ての「cgi」ファイルのパーミッションを700に変更
7.「cgi/mt/mt-check.cgi」をブラウザで開き、最後の「完了」を確認
8.「mt-check.cgi」をサーバーから削除
9.「cgi/mt/」をブラウザで開きログイン
10.必要に応じてデータベースのアップグレードが始まり完了
以上で、とりあえずアップグレード作業自体は完了。
その後、必要に応じて特別な作業へ移ります。


1.プラグインをアップロード
 過去使っていたプラグインで必要なものを全てアップロード。
2.画像アップロード時のレイアウト変更
lib/MT/App/CMS.pmの

my $link = $thumb ? qq(<img src="$thumb" width="$thumb_width" height="$thumb_height" border="0" />) : "View image";

my $link = $thumb ? qq(<img src="$thumb" width="$thumb_width" height="$thumb_height" border="0" hspace="5" vspace="5" align="left" />) : "View image";

に変更(3カ所)
アップロード先を指定
「tmpl/cms/upload.tmpl」の51行目

</select> / <input name="extra_path" id="extra_path" /> </p> </div>

</select> / <input name="extra_path" id="extra_path" value="images" /> </p> </div>

に変更
3.リンクを別ウインドウで開く処理
「mt-static」フォルダの中の「mt.js」ファイルの

setSelection(e, '<a href="' + my_link + '">' + str + '</a>');

setSelection(e, '<a href="' + my_link + '" target="_blank">' + str + '</a>');

に変更
(注:3.2までは「mt_ja.js」でしたが、3.3から「mt.js」に変更になってます。)
4.スパム対策
 旧mt-config.cgiで設定していた「mt-comments.cgi」と「mt-tb.cgi」のリネームを活かすため、「MT3.2」フォルダからリネーム後のファイルをサーバーにアップロードし、オリジナルの「mt-comments.cgi」と「mt-tb.cgi」は削除。(パーミッション変更を忘れずに。)
 ついでに、下記のプラグインも追加。
 MT BanASCII(英数字またはlatin-1だけで構成されたコメントとトラックバックを拒否)
 さらにこちらも。
 京の路 | MT3.2 トラックバックスパム対策(TrackBack Spam対策)
5.リビルド数変更
 旧mt-config.cgiで設定していたので、そのままリビルド数は40から20に。mt-config.cgiのEntriesPerRebuildです。
6.mt-config.cgiに追加記述
 バージョンアップからの追加機能のため、「mt-config.cgi」に下記を記述。

DeleteFilesAtRebuild 1
AltTemplate feed results_feed.tmpl

上がエントリを削除したときに個別エントリも削除される機能、下は検索の結果のフィードを出力するため
7.MTTagInvoke.plの編集
 3.3で追加された<$MTTagName$>とMTTagInvokeプラグインで使っている<MTTagName>とがバッティングしてエラーになるため、MTTagInvoke.plの25行目のTagNameとMTTagNameをそれぞれ別の名前に変更(私はTagLameとMTTagLameに)。
8.再構築エラー回避パッチbyOgawa::Memoranda
 タグを使っているとかなり再構築が遅くなりエラーが多発するので、Ogawa::Memorandaさんところの下記パッチをあてる。
3.31-ja UO Patch
9.検索結果テンプレートの編集
 検索結果テンプレートが編集できるようになっているので、「MT3.2」の「search_templates」フォルダ内の「default.tmpl」をエディタで開いて、こちらにコピー。
10.タグクラウドの変更
 本棚ブログ(kazunobook)用にTagwireプラグインで作っていたタグクラウドを標準のタグでの表示に変更。まずTagwire.plをサーバーから削除。次にOgawa::Memorandaさんところのこれを実行してキーワードをタグに変更。
mt-keywords2tags
そして、タグページを下記のように編集(カットオフパラメーターはそのまま使用させていただきました)。

<style type="text/css">
ul#tags { border: 1px solid #CCC; padding: 10px; margin: 10px; display: none; line-height: 200%; }
#tags li { display: inline; }
#tags li a { border-width: 0; color: #000; }
#tags li.hot a { color: #00F; }
#tags li.old a { color: #777; }
#tags li.oldest a { color: #CCC; }
#tags li a:active, #tags li a:hover { color: #6C3; }
.coffButton { color: #000; background: #fff; border: 1px solid #ccc;
  padding: 2px; cursor: pointer; }
a.coffButton:hover { color: #000; background: #ccc; }
#coff { font-weight: bold; padding: 2px; }
</style>
<p>
Cutoff Parameter:
<a onclick="decCoff(5)" class="coffButton">-5</a>
<a onclick="decCoff(1)" class="coffButton">-1</a>
<a onclick="incCoff(1)" class="coffButton">+1</a>
<a onclick="incCoff(5)" class="coffButton">+5</a>
<span id="coff">0</span>
</p>
 
<ul id="tags">
<MTTags>
<li title="<$MTTag$>:<$MTTagCount$>:<$MTTagDate format="%Y-%m-%d"$>">
<a href="<$MTTagSearchLink$>"><$MTTagName$></a>
</li>
</MTTags>
</ul>
<script type="text/javascript">
function calcFontSize(count) {
   return count / 6 + 12;
}
var tags = new Array();
var now = (new Date()).getTime();
var tagsNode = document.getElementById('tags');
var childNodes = tagsNode.childNodes;
for (var i = 0; i < childNodes.length; i++) {
  var e = childNodes.item(i);
  if (e.nodeName.match(/li/i)) {
    var s = e.title.split(':');
    e.style.fontSize = calcFontSize(s[1]) + 'px';
    var d = s[2].split('-');
    var diff = (now - (new Date(d[0], d[1] - 1, d[2])).getTime()) / 86400000;
    if (diff < 14) e.className = 'hot';
    else if (diff > 365) e.className = 'oldest';
    else if (diff > 60) e.className = 'old';
    tags.push([ e, s[1] ]);
  }
}
tagsNode.style.display = 'block';
 
var coff = 0;
var coffNode = document.getElementById('coff');
function decCoff(c) {
  if (coff == 0) return;
  coff -= c;
  if (coff < 0) coff = 0;
  coffNode.innerHTML = coff;
  refreshCoff();
}
function incCoff(c) {
  if (coff == 20) return;
  coff += c;
  if (coff > 20) coff = 20;
  coffNode.innerHTML = coff;
  refreshCoff();
}
function refreshCoff() {
  for (var i = 0; i < tags.length; i++) {
    var tag = tags[i];
    tag[0].style.visibility = (tag[1] <= coff) ? "hidden" : "visible";
  }
}
</script>

残念ながら、タグの鮮度について3.3のタグ機能は認識しないため、Tagwireのような濃淡のある綺麗なタグクラウドにはならず、全て同じ濃さで表示されてしまっています(cssは今後のバージョンアップないしはOgawaさんのプラグイン期待でそのまま保持)。
タグをクリックすると検索結果として表示されるので、検索結果テンプレートを調整。
小粋空間さんで3.3用のテンプレートが配布されていますので、そちらの中の「search_results_template.tmpl」を参考に調整しました。
以上です。
後は、本棚ブログ(kazunobook)の右カラムについて、追々、Widget化していこうかと思っています。
(07.25追記)
スパム対策として小粋空間さんが素晴らしいプラグインを作ってくださったので、早速導入しました。
小粋空間:asciiTBPingfilter プラグイ

 - Customize , ,