MTのオペレーションに使うブラウザ:GoogleChrome2→1へのダウングレード

メインブラウザはFirefox3なのですが、拡張機能をそれなりに入れているのでパフォーマンスは高いとは言えず・・・。MTのオペレーションには表示が速いGoogleChromeを愛用しています。

ところがこのGoogleChrome、2にバージョンアップしてから、オペレーション中によくクラッシュするようになってしまいました。少なくとも私の環境では。
発生条件はよく分かりませんが()、ページ遷移をきっかけにハングアップするらしく、こうなると、CPU使用率がグングンあがった状態で一切操作を受け付けなくなります。騙し騙し使っていたのですがもう我慢できなくなり、ダウングレードを決意しました。(他のブラウザを使えばいい話かもしれませんが、Chrome1の環境があまりに快適だったので・・・。)

とは言えひどいことに、Googleでは過去のバージョンを配布するページがありません。調べてみると、以下の記事にたどり着きました。

Google Chrome バージョン2 アンインストール – 左脳Script

あー、やはり同じような悩みがある人が、いるのですね。どうやら、FileHippo.comにてアーカイブが配布されているようです

Chrome2をアンインストールして、Chrome1をインストールすると、元の快適な環境に戻りました。めでたしめでたし。

ちなみに、左脳Scriptさんでご報告されているように、Chromeをアンインストールした後に以下のような画面がポップアップしてきて、なんでアンインストールしたのかアンケートを入力するように促してきます。入力は任意のようです。

Chromeをアンインストールした後に表示されるアンケートフォーム

最後に・・・。
最新版じゃないブラウザを使うということはセキュリティホールも開いてるはずなので、普通のネットサーフィン用途には使わない方が良いです。あくまで特定の用途で使う、という割り切りが必要かと思います。
って誰に言ってるんでしょうね私は(笑)

※もしかしたら職場PCのスペックがショボいことが原因の一つかもしれません。自宅のCore2 Duoマシンではハングアップしたことがないので。

[memo]MTEntriesタグのlastnモディファイア

lastn=”N”

出力するブログ記事の件数を制限します。lastn モディファイアは、つねに降順 (新しいものから古いものに並ぶ) で処理します。

<mt:Entries lastn="5" sort_by="title" sort_order="ascend">

サンプルのように、たとえ sort_by モディファイアでタイトル順、かつ、sort_order モディファイアで ascend (昇順) を指定しても、出力する結果は、最新 5 件のブログ記事です。

これは、recently_commented_on モディファイアを同時に設定しているときも同じです。これらは lastn モディファイアと同時に使用しても効果はありません。

MTEntries | テンプレートタグリファレンス

ということだそうで、sort_bysort_orderrecently_commented_onモディファイアはlastnモディファイアと同時に指定しても効果がないそうです。これらのモディファイアを使う場合はlastnモディファイアではなくlimitモディファイアと一緒に使いましょう。

PageButeプラグインで静的ページ分割

明けましておめでとうございます。
本年もこのサイトをどうぞよろしくお願いいたします。
遅ればせながら新年のご挨拶。2009年の初エントリーです。

昨年は転職という大きな転機を迎えましたが無事乗り越え、今に至っております。一昨年に引き続きスクールで講師を務めたり、雑誌に寄稿させてもらうという経験もでき、充実した一年となりました。

さて、年始の挨拶はここまでで・・・ここから本題です。
昨日MTの案件をやっていたのですが、アーカイブページ分割の作業をすることとなり、いろいろと調べていました。

MTが<MTEntries>で書き出すアーカイブ一覧は、lastnモディファイアなどで設定された値を上限に記事を順番に出力します。ただし、上限値を超える数の記事が登録されていた場合、超えた分の記事は表示されないという不親切な仕様となっています。
この上限値を超えた分を「次のページへ」などとして参照できるようにするのがページ分割です。ページ分割を実現するには、専用のプラグインを導入するのが一般的になっています。

MTPaginateプラグインが使えればこのサイトと同じやり方でできるのですが、PHP化はされていないし、商用利用は有料ということでボツに。そこで、PageButeプラグイン(現バージョン:3.2.2)を使うことにしました。

このPageButeプラグイン、PHP化していなくても使えるとあって、静的HTMLとしてページを書き出してくれます。例えば「index.html」を分割設定すると、「index_2.html」、「index_3.html」…というようにページを自動的に増やしてくれるという、素晴らしいプラグインです。

公式ページを見て導入はあっさりできたのですが、シンプルであるが故に任意に設定できる項目が少ない印象を受けました。

このプラグインで書き出す<$MTPageLists$>は、分割後の各ページへのリンク一覧を書き出すMTタグですが、リンクテキストとなるページ番号は必ず昇順(1、2、3…というように1から始まる)になります。今回の案件ではこの番号を降順(10、9、8…というように最後の番号から始まる)としなければならなかったので、プラグインを改変して解決しました。

この改変をすると、リンク一覧に並ぶリンクテキスト(ページ番号)が降順になります。順番が入れ替わるのはリンクテキストのみで、記事の並び順自体は変更されません。動作確認をしたのはMovableType 4.23に、改変したPageBute 3.2.2をインストールした環境です。

改変した点は以下の通りです。

  1. PageBute.pl の182行目?189行目のforループの部分を以下のように変更

    my $temp_page_count = $lists->{max_page};
    for (my $i = $lists->{min_page}; $i <= $lists->{max_page}; $i++) {
    $page_lists .= $i == $lists->{min_page} ? '' : $delim;
    $page_lists .= $pb->{link_start};
    $page_lists .= $i == $page_count
    ? "<span class=\"current_page\">$temp_page_count</span>"
    : &_create_link($i, $site_url . $filename, $file_ext, $temp_page_count, 'link_page');
    $page_lists .= $pb->{link_close};
    $temp_page_count--;
    }

    最大ページ数を格納する変数をもう1個作って、ループの度にデクリメントして、リンクの名前として代入してあげます。

  2. MTテンプレートの<MTPageContents>タグを以下のように変更。

    <MTPageContents count="10" navi_count="999">

    countモディファイアには1ページに表示したい数を書きます。navi_countモディファイアはリンク数の上限を表す値です。公式ページには掲載されていないモディファイアですが、改変後はこの値を与えてあげないと特定の条件でうまくいきません。

あとは改変後のプラグインをインストールしなおして、該当のアーカイブを再構築すれば完了。

仕事初めの日からperlを触ったので、これも何かの縁かと考えて今年はperlを学ぼうかと思います。

MovableType 4.22 がリリース

スクリーンショット:アップグレード完了画面

既存のMTの管理画面においてXSS脆弱性が確認され、この問題に対処したMT4.22がリリースされました。アップデートを強く推奨するそうです。

早速当サイトもアップデートをかけました。アップデートのやり方に関してはMovable Type アップグレードガイド | Movable Type 4 ドキュメントに詳しいです。(アップデートという言葉とアップグレードという言葉は違う気がしますが。。。)
というか、昨今のMTドキュメント充実ぶりは本当に素晴らしいですね!

作業手順は大体こんな感じでした。(MTOS 4.21 → 4.22の場合)

  1. 現状のMT環境のバックアップ。MT管理画面の「システムメニュー」→「ツール」→「バックアップ」
  2. バックアップするブログを選択して「バックアップを作成」ボタンをクリック!→「バックアップはディレクトリ/tmp/に正常に保存されました。」→「tmpディレクトリってどこ!?」
  3. FTPでサーバー内を探ったら、本当にルートの「/tmp/」(共用ディレクトリ)にファイルが。。。ダウンロードした後、これらをサーバーから即行削除。
    # さくらのレンタルサーバの場合です
  4. いろいろ調べたら、バックアップファイルが保存されるディレクトリが変更できることが分かりました。mt-config.cgiに以下の一行を追加。
    TempDir /home/ユーザー名/www/任意のディレクトリ/
    # しつこいようですが、これはさくらのレンタルサーバの場合
    これで自分のユーザーディレクトリにバックアップが作成されるようになりました。
  5. 予めダウンロードしておいたMTOS 4.22をFTPでサーバーにアップロード(新MT)。
  6. 新MTに、必要なファイルを引き継ぎアップロード。mt-config.cgi、追加していたプラグイン、追加していたスタイル(テーマ)、など。
  7. 新MTの、拡張子がcgiのファイルのパーミッションを変更。mt-check.cgiはいらないので削除。
  8. 旧MTアプリケーションディレクトリを削除(削除するのが怖ければ、一旦名前を変更しておいて、新MTが問題なく動くのを確認してから削除します)
  9. 新MTアプリケーションディレクトリを旧MTが使っていた名前に変更
  10. 新MTのindex.htmlにアクセス。「ログイン」ボタンを押すと、冒頭のスクリーンショットのようになってアップデート作業完了。