TopMovable Type > バージョン別 > 3.11-ja > 2004年11月
2004年11月29日

再構築時の500エラーを解消する

November 29,2004 11:50 AM
Tag:[]
Permalink

昨日より爆発的(?)に広がってる話題に便乗してご紹介を。
エントリーが増えてくると再構築(エントリーの新規投稿含む)で500エラーが発生する話をよく耳にします。どうやら BerkeleyDB を使用している場合に発生するようで、その原因に db ディレクトリに配置される fileinfo.db の肥大化(10MByte以上とか)が挙げられていました。このファイルにはサイトに配置されているファイル情報等が記録されており再構築時にこのファイルが更新されますが、冗長なファイル情報が残ってしまうみたいです。
肥大化の技術的な原因はogawaさんの言葉を引用させて頂くと、すでにある fileinfo.db を remove してから(データを)追加すべき処理で、

  • remove してもその分の BerkeleyDB の空き領域が開放されない
  • remove しているがうまく削除できていない

ということで、この両方の相乗効果でサイズが肥大化しているようです。
以下参照および関連記事です。ありがとうございました。

参照記事
Magic White500エラーと投稿時遅延解消法/500エラーと投稿時遅延解消法その2
我楽新規エントリー投稿時に500エラー。(泣)
 
上記から参照している元記事
TITO's Web PageMovable Type「fileinfo.db」の肥大化
 
リンクサイトで対処された方々(不足ご容赦ください)
V.J.Catkick@fileinfo.db を削除する
やむやむ「fileinfo.db」 のスリム化
体験手記レポート部エントリー投稿時に500エラーが出るのをどうにかする方法

対処については当初「fileinfo.db を手動削除」という手段(バックアップ要保存)が出回ってましたが、 Ogawa::Memoranda さんが削除用スクリプト(下記)を速攻で作成くださいました。個人的にはこちらのスクリプトを使用されることを推奨します(2004.11.30 プラグイン化されております)。

対処用スクリプト
Ogawa::Memorandamt-shrinkfinfo.cgi
mt-shrinkfinfo.cgi詳細は上記サイトを参照ください。なおこのスクリプトを実行し、成功すると下記のような画面が表示され、fileinfo.db のサイズが適正なサイズに縮小されます。 私もありがたく使わせて頂きます。ありがとうございました。

追記:fileinfo.db のサイズを管理画面に表示する方法を

ShrinkFInfo Plugin で fileinfo.db サイズを表示する

に掲載しました。

2004.11.30 追記
プラグインが提供されまして、管理画面からのクリックで実行できるようになりました。設定方法を簡単に記しておきます。詳細は先のリンクまたはMagic Whitemt-shrinkfinfo.cgiがプラグインに。を参照ください。

  • mt.cfg の DataSource を相対パスから絶対パスに修正。
  • ShrinkFInfo.zipをダウンロード、解凍。
  • 解凍した「ShrinkFInfo」をフォルダごと plugins フォルダ内に配置(レンタルサーバの場合、パーミッションの設定がありますのでご注意ください)。

設定は以上です。管理画面にを開くとShrinkFInfo Plugin が表示されているはずですので、そこをクリックすればCGIが実行されます。

2004.12.11 追記
fileinfo.db のサイズを表示する方法を追記しました。

Comments [16] | Trackbacks [5]
2004年11月27日

コメント投稿時のPerlエラーを解消する

November 27,2004 1:17 AM
Tag:[]
Permalink

私のウェブログは自宅サーバで運用しています。OSは Windows XP です。
で、当初はそれほどでもなかった(というか皆無)Perlのエラーダイアログが、3.11にアップグレードした辺りから画面に5?10枚/日ほど表示されるようになりました。どうもコメント投稿等やエントリー投稿が引き金になっているようです。自分のPCでコメントを投稿しても発生します。またコメント投稿等も正常終了しない(応答が返ってこない)ことがしばしばありました。そのまま放っておくとコメントが二重投稿されてしまうケースもあるようで投稿された方には大変ご迷惑をおかけ致しました。

時間が経過してもいっこうに回復する気配もない(というか待ってて直るはずもない)ので、さすがに困りました。サイトを検索してもそれらしき情報がみつかりません。Perlのバージョンを入れ替えようか、または Movable Type を新規インストールにしようかと策を講じておりました。
が、しつこくサイトを検索していたところようやく下記の記事にたどり着きました。

Skip Factory - Blogコメントのエラー修正しました
Movable Type 3.x 導入手順コメントの投稿 未登録許可の27番目のコメント

対処は mt.cfg に下記の1行を追加するというものです。

LaunchBackgroundTasks 0

記事と私の事象は微妙に異なるようですが、「WindowsのPerlでは対応していない機能がある」という文言になんとなくピンときて(笑)、この設定を行ってみることにしました。デフォルトの mt.cfg ではこの値に関する記述はありませんので(追記:記述がないのは 3.0D の mt.cfg です)ファイルの一番下にちょろっと追加。ちなみにこのオプションについては

Movable Type ユーザー・マニュアル:設定ガイド

の下から6番目に説明があります。下記は該当部分の抜粋です。

LaunchBackgroundTasks
タスクの中には、デフォルトで、バックグラウンドで実行されているものもあります。 この仕組みによって、Movable Typeがたとえば再構築など重要なタスクを実行している間、ユーザーや別のソフトウエアはアプリケーションを継続して使うことができます。 ただしこの機能はホスティング環境によっては機能しないこともあります。 効果のない機能がある場合は、LaunchBackgroundTasks 0 を設定してみてください。

具体的な原因は「(Movable Typeが使用する)PerlIS.DLL がfork関数に対応していない(実装されていない)ためにエラーが発生する」ということらしいです。forkというのは簡単に申しますと、いくつかのプログラムを同時に走らせるためのもので、同時に走らせることで処理を早く終わらせられます。ちなみにforkを行っているのは

lib/MT/Util.pm

の1000行目辺りにある、下記関数の青字部分1ヶ所だけです。

sub start_background_task {
    my ($func) = @_;
    if (!launch_background_tasks()) { $func->() }
    else {
        $| = 1;            # Flush open filehandles
        my $pid = fork();
        if (!$pid) {
            # child
            close STDIN; open STDIN, "</dev/null";
            close STDOUT; open STDOUT, ">/dev/null"; 
 
            MT::Object->driver->init();
 
            $func->();
            CORE::exit(0) if defined($pid) && !$pid;
        } else {
            MT::Object->driver->init();
        }
    }
}

この対処を実施してからすでに1週間以上経つのですが、エラーは発生しなくなりました。コメントも(やや時間がかかりますが)正常終了します。その代償として新規エントリーの投稿にえらく時間がかかりようになりました(笑)。おそらく並列処理をやめて直列で処理を行っている分、時間がプラスされたのでしょう。コメント投稿も完了するまでに数十秒ほどかかるようです。申し訳ございませんが気長にお待ちになってやってください。

追記:本事象は3.0Dからのアップグレードによるものでした。動作が変化した原因につきましては(o)さんから頂いたコメントを参照ください。

Comments [2] | Trackbacks [0]
2004年11月26日

個別エントリーアーカイブでの文字化けの原因

November 26,2004 1:38 AM
Tag:[]
Permalink

個別エントリーアーカイブでのコメント投稿後やTypeKey認証後の文字化けを解消する記事をこちらに投稿しましたが、Daily noteさんのアドバイスより「『続きを読む』を折りたたむスクリプトを入れると文字化けする」とのことで(確認&ご連絡ありがとうございました)、早速試験サイトで試してみました。

実験結果は、試験サイトでも「続きを読む」がある記事へコメントを投稿すると100%文字化けしました。さらに続きを読むの部分(HTML/JavaScript)を色々切り分けた結果、JavaScriptの ShowHide 関数

function showHide(entryID, entryLink, htmlObj) {
    extTextDivID = ('Text' + (entryID));
    extLinkDivID = ('Link' + (entryID));
    if( document.getElementById ) {
        if( document.getElementById(extTextDivID).style.display ) {
            if( entryLink != 0 ) {
                document.getElementById(extTextDivID).style.display = "block";
                document.getElementById(extLinkDivID).style.display = "none";
                htmlObj.blur();
            } else { 
                document.getElementById(extTextDivID).style.display = "none";
                document.getElementById(extLinkDivID).style.display = "block";
            }
        } else {
            location.href = entryLink;
            return true;
        }
    } else {
        location.href = entryLink;
        return true;
    }
}

この中の赤色部分

document.getElementById(extTextDivID).style.display

の記述で文字化けが発生しているようです(この行と下の同じような記述を削除すると発生しませんでした)。さらに厳密に言うと、

document.getElementById(extTextDivID).style

で発生します。つまりHTMLのstyle属性を参照するところで文字化けを引き起こしています(getElementById までであれば発生しません)。このJavaScriptは「続きを読む」をクリックしないと起動されない(onclick属性で起動)スクリプトなのですが、投稿後のレンダリング時点で文字化けを発生させます。

なお根本的な解決案は現在のところ見つかっておりません(ということで先の対処が生まれました)。個別アーカイブに「続きを読む」をご利用の方にはご迷惑おかけ致しまして大変申し訳ございません。この場をお借りしてお詫び申し上げます。m(__)m

Comments [12] | Trackbacks [0]
2004年11月25日

フレーム利用時に表示がずれる不具合を解消する

November 25,2004 1:30 AM
Tag:[]
Permalink
フレーム利用時に表示がずれる不具合を解消 可変3カラムの公開テンプレートをフレームに収めると、右サイドバーの各メニューがスクロールバー側に寄った状態で表示されます。またウィンドウをリサイズをするとメニューが中央カラム側にずれてしまい(図)、センタリングされません。なお表示はブラウザやHTMLによって異なるかも知れません。

対処としてはウェブログを表示する frame タグに scrolling 属性(青色部分)を付与すると解消します。この属性を付与することで解消するということはフレームにした場合、レンダリングでスクロールバーの存在を適正に認識できていないことが原因と考えられます。

<frame src="http://~/" scrolling="yes">

scrolling 属性には

  • yes:常に表示
  • no:常に非表示
  • auto:自動

の3種類があります。「no」は対象外として、正常にレンダリングされるのは「yes」のみです。「auto」はデフォルト値のため、記述しても設定しない場合と同じ効果しか得られません。なお「yes」に設定するためスクロールが不要な場合もスクロールバーエリアが表示されます。予めご容赦ください。

Comments [10] | Trackbacks [0]
2004年11月23日

.htaccessによる文字化け対策

November 23,2004 2:25 PM
Tag:[]
Permalink

TypeKey認証やコメント投稿の後で文字化けが発生するという質問を最近何件か頂いています。TypeKeyの文字化けについてはHTTPリダイレクトを伴っており、ページ直前のHTTPレスポンスで返却されたcharsetを見てしまうのが文字化けの要因と思われます(発生するサイトとしないサイトの違いは不明です)。下記のサイトに解説があります。

エンタープライズ:Linux Tipsリダイレクト先で文字化けしてしまう

ただしコメント投稿後の文字化けは原因不明(リダイレクトではないという認識)です。

上記のサイトにも少し書かれていますが、リダイレクトによる文字化け解消について .htaccess を利用する方法がありましたのでご紹介します。

1..htaccess ファイル作成
まず .htaccess というファイルをテキストエディタ等で新たに作成し(既に存在する場合はその中)、そこに下記のいずれかの青字部分を記述します(とりあえず上の方をお試しください)。記述例は文字コードが UTF-8 でファイルの拡張子が .html の場合です。

明示的に文字セットを指定していない応答に追加されるデフォルトの文字セット
AddDefaultCharset UTF-8
ファイル名の拡張子を指定されたコンテントタイプにマップ
AddType "text/html; charset=UTF-8" .html

上の設定はHTTPヘッダで charset が設定されていない時に文字コードを指定するものです。
下の設定は拡張子に対応するコンテントタイプ(MIMEタイプ)の設定が目的です。phpファイルも対象に含む場合は

AddType "text/html; charset=UTF-8" .html .php

としてください(拡張子の間は半角空白、拡張子のピリオドはなくてもいいようです)。
記述した行の最後は改行してください。文字コードの部分は「EUC-JP」「Shift_JIS」等、使用されている文字コードに適宜修正ください。
技術的な話をすると、上記はいずれも Apache ディレクティブですのでHTTPサーバに Apache が使われていることが前提になります(多分この文章は無視されても大丈夫だと思います…)。

2.ファイル配置
.htaccess を配置(アップロード)します。このファイルの内容は、ファイルを配置したディレクトリおよびそのサブディレクトリ全てに適用されますので(サイトのトップディレクトリにあると思われる)index.htmlが配置されているディレクトリに配置します。

以上です。なお上記の対策は動作を確認できてないこともあり、完全な不具合解消を保証するものではありませんので予めご了承ください。また本設定がコメント投稿後のページ表示にも適用されればいいのですが(CGIからの出力は一旦HTTPアクセスが行われると思っているので適用されそう?)、そうでなければカスタマイズされたページのどこかに文字化けの要因が潜んでいると考えられます(感覚的にはHTMLタグの文法エラー等ですが改善性については未知です)ので、申し訳ございませんが「デフォルトのテンプレートから少しずつカスタマイズして動作をチェックしてみてください」という原始的なアドバイスしかできません。併せてご了承願います。
↑一応動作確認できているサイトあります。なお文字化けの原因は「続きを読む」を折りたたむスクリプトにあるようでした。ご利用中の方にはご迷惑おかけして大変申し訳ございません。とり急ぎお詫びまで。

Comments [36] | Trackbacks [8]
2004年11月17日

MTIfNonZeroタグでコメント表示方法を制御する

November 17,2004 1:35 AM
Tag:[]
Permalink

個別エントリーアーカイブの中で、「トラックバック数が0件でなければトラックバックを表示する」ために利用する

MTIfNonZero

というタグが使われています。このタグを使うとちょっとした条件分岐ができ、ページへの表示を制御することができます。
参照サイトは下記です。ありがとうございました。

Magic WhiteMTIfNonZeroタグ利用してみました。
HINAGATAマニュアルに無いMTIfNonZeroタグ

このエントリーでは MTIfNonZero タグを利用して、コメント投稿数が0件の時に

  • 個別エントリーアーカイブの「コメント」タイトルを表示しない
  • 個別エントリーアーカイブの「コメント」タイトル下に「コメントがありません」という表示をする

の2通りの方法を紹介します。私のサイトは下の方法でカスタマイズしてみました。

「コメント」タイトルを表示しない
個別エントリーアーカイブテンプレートの下記の部分に青色のタグを挿入すれば、コメントが0件の場合にコメントのタイトルを非表示にすることができます。</MTIfNonZero> の挿入位置は「コメント」と書かれた次の行でも問題ないと思いますが、コメント表示タグ全体を括らないのはスッキリしないので個人的には下記を推奨します。

        :
<MTEntryIfAllowComments>
<MTIfNonZero tag="MTEntryCommentCount">
<div id="comments" class="comments-head"><a name="comments"></a>コメント</div>
 
<MTComments>
<a name="<$MTCommentID$>"></a>
<div id="c<$MTCommentID$>" class="comments-body">
<$MTCommentBody$>
<div class="comments-post">Posted by <$MTCommentAuthorLink default_name="Anonymous" spam_protect="1"$> <MTCommentAuthorIdentity> at <$MTCommentDate$></div>
</div>
</MTComments>
</MTIfNonZero>
<MTEntryIfCommentsOpen>
        :

意味的には、MTIfNonZero の tag属性 MTEntryCommentCount(=エントリーのコメント数)が0でなければ <MTIfNonZero>~</MTIfNonZero> で囲まれた部分を表示(厳密には有効に)する、というものです。

「コメント」タイトル下に「コメントがありません」という表示をする
上記同様、青色のタグを該当位置に挿入すれば、コメントが0件の場合にコメントのタイトル下に「コメントがありません。」というメッセージを表示することができます。タイトルはいずれの場合も表示するので MTIfNonZero タグの中に入れないようにします。divタグは公開テンプレート用に併せて書いてありますので適宜変更してください。

        :
<MTEntryIfAllowComments>
<div id="comments" class="comments-head"><a name="comments"></a>コメント</div>
<MTIfNonZero tag="MTEntryCommentCount">
<MTComments>
<a name="<$MTCommentID$>"></a>
<div id="c<$MTCommentID$>" class="comments-body">
<$MTCommentBody$>
<div class="comments-post">Posted by <$MTCommentAuthorLink default_name="Anonymous" spam_protect="1"$> <MTCommentAuthorIdentity> at <$MTCommentDate$></div>
</div>
</MTComments>
<MTElse>
<div class="comments-body">コメントはまだありません。</div>
</MTElse>
</MTIfNonZero>
<MTEntryIfCommentsOpen>
        :

この処理をおおざっぱに書くと

<MTIfNonZero tag="MTEntryCommentCount">
            :
  コメントが0件でない時の処理を記述
            :
<MTElse>
            :
  コメントが0件の時の処理を記述
            :
</MTElse>
</MTIfNonZero>

という感じになります。MTElse というタグは MTIfNonZero の条件にマッチしなかった場合のものを有効にするためのタグです。

Comments [4] | Trackbacks [3]
2004年11月16日

コメントのリンクを新しいウィンドウで表示する

November 16,2004 12:15 AM
Tag:[]
Permalink

Movable Type のコメントに挿入するHTMLタグはサニタイジングの関係で使用が制限されています。デフォルトで使用可能なタグ(属性含む)は

a href、b、br、p、strong、em、ul、li、blockquote

です。つまり a タグで許容されている属性は href のみですので、target 属性を付与しても Movable Type が自動的に target 属性を削除するため別ウィンドウで表示することはできません。

下記に target 属性を有効にするための変更方法を記します。なおこの機能を利用する場合の注意事項として、コメントのリンクを有効にする方法は

  1. http://? を直接コメントとして記述したものに自動的にリンク(=aタグ)を付与する
  2. <a href="http://?" target="_blank">~</a>を手入力してリンクする

の2通りがありますが、両者は排他的ですのでいずれかの機能しか有効にできません。

リンク設定左図は管理画面の設定箇所の抜粋です。図のように上の「コメントでのHTMLの利用を許可する」をチェックすればHTMLタグが利用できます。下の「URLを自動的にリンクにする」をチェックすればコメントに記したURLに自動的にリンクが与えられます。上にチェックがついている場合、下のチェックは無効になります。これらを踏まえてどちらのカスタマイズを実施するかを選択ください。

1.の場合

1.1 target 属性を許可する(方法その1)

カスタマイズ先と同じ画面で最初の「一般的な設定」の「除去機能」のラジオボタンより「カスタマイズ」を選択し、ラジオボタンの右側にあるテキストボックスに下記の文字列をそのまま設定し、「保存」をクリックします。再構築は不要です。図のような設定状態になります。
a href,a href target,b,br/,p,strong,em,ul,li,blockquote

1.2 target 属性を許可する(方法その2)

mt.cfgの358行目の下記の部分を変更する

変更前

# GlobalSanitizeSpec br/,p

変更後(先頭の"#"および半角空白を削除)

GlobalSanitizeSpec a href,a href target,b,br/,p,strong,em,ul,li,blockquote

カスタマイズはどちらか一方で大丈夫です。なおいずれの方法も他のタグを事前に追加されている場合は引き継いでください(上記はデフォルトの設定に target 属性を追加しているだけです)。

・リンクに target 属性を自動付与する
上記のいずれかの対処に加え、

lib/MT/Util.pm

の500行目辺りにある下記の関数に青色部分を追加してください。
これでコメント内の http://? と書かれたURLにtarget属性付きのリンクが自動で付与されます。

sub munge_comment {
    my($text, $blog) = @_;
    unless ($blog->allow_comment_html) {
        $text = remove_html($text);
        if ($blog->autolink_urls) {
            $text =~ s!(http://\S+)!<a href="$1" target="_blank">$1</a>!g;
        }
    }
    $text;
}

2.の場合

1項の「target属性を有効にする」のいずれかを実施すれば、コメント内に記述した a タグの target 属性指定が有効になります。なお1の「target 属性を自動付与する」を実施しても自動付与はされませんので、手入力で target 属性を指定してください。
Comments [6] | Trackbacks [4]
2004年11月14日

コメント・プレビュー画面の typo 修正

November 14,2004 11:00 AM
Tag:[]
Permalink

やむやむ:さえらさんから頂いたご質問の対処です(素晴らしい校正スキルに感謝します!)
コメントでHTMLを利用可能にしている場合、個別エントリーアーカイブのコメント欄に

コメント: (書式を変更するような一部のHTMLタグを使うことができます)

と表示されますが、コメント・プレビュー画面およびコメント・エラー画面では

コメント: (スタイル用の HTLM タグが使えます)

と、明らかな typo が存在します。これを修正する方法ですが、

lib/MT/L10N/ja.pm

の1314行目の赤字部分

'(You may use HTML tags for style)' => '(スタイル用の HTLM タグが使えます)',

を(書くまでもありませんが)青色

'(You may use HTML tags for style)' => '(スタイル用の HTML タグが使えます)',

に修正します。いっそ個別エントリーアーカイブと表示内容を揃えた方が良いかも知れません。
レンタルサーバの方は該当ファイルを一旦PCのローカルファイルとしてダウンロードし修正(保存時の文字コードにお気をつけください)、再度アップロードという手順です。再構築は不要です。

日本語化に関する情報はこのファイルに集約されています。

Comments [7] | Trackbacks [2]
2004年11月12日

コメント欄とトラックバック欄にメッセージ追加

November 12,2004 12:25 AM
Tag:[]
Permalink
コメントとトラックバックにメッセージ追加

個別アーカイブのコメント投稿欄の下とトラックバックURLの下にメッセージを追加しました。他の方のサイトでもコメント投稿についての説明を結構みかけるので、私もそれに倣ってみました。

メッセージは投稿・送信時の注意点を記してますが、目的は重複に対して「気にしなくていいですよ」という内容です。またトラックバックは「タイムアウト=送信先に届いていない」と思われている方が少なくないので、以前のタイムアウト記事へのリンクも追加してみました。記載内容は運用状況によって適宜変更したいと思います。

批判的なコメントやトラックバックはほとんどゼロで、おかげさまでウェブログを楽しく運営させて頂いてます。そういった意味ではコメントやトラックバックの重複は全く問題でなく、消去するのもたいした手間ではございませんので(投稿者の方は気になるかも知れませんが)、どしどしお送りください。

Comments [2] | Trackbacks [0]
2004年11月10日

個別エントリーアーカイブにコメント・トラックバックのアンカー追加

November 10,2004 12:50 PM
Tag:[]
Permalink

当サイトのメインページ記事下にある「Comments」「Trackbacks」のリンクに対応する個別エントリーアーカイブ内のアンカータグが欠落していましたので追加しました。

      :
<MTEntryIfAllowPings>
<a id="trackbacks" name="trackbacks"></a>
      :
<MTEntryIfAllowComments>
<div id="comments" class="comments-head">
<a id="comments" name="comments"></a>
コメント
</div>
      :

これで対応する位置へジャンプするようになりました。なお公開テンプレートには影響ありませんは別途修正致します(初期のものを除く)。自分の使っているテンプレートが未整理な証拠です。

(お勉強モード)先のタグはメインページ・カテゴリーアーカイブページ・日付アーカイブページの下記の青色部分に対応しています。

      :
<MTEntryIfAllowComments>
| <a href="<$MTEntryPermalink archive_type="Individual"$>#comments">Comments</a> [<$MTEntryCommentCount$>]
</MTEntryIfAllowComments>
<MTEntryIfAllowPings>
| <a href="<$MTEntryPermalink archive_type="Individual"$>#trackbacks">Trackbacks</a> [<$MTEntryTrackbackCount$>]
</MTEntryIfAllowPings>
      :

期待通りにジャンプしない場合はこの対応が誤っている可能性があります。なおページが指定位置までスクロールできない場合もトップや中途半端な位置にジャンプします。

参考までに、公開テンプレートのメインページ・カテゴリーアーカイブページ・日付アーカイブページからの個別エントリーアーカイブページへの各リンク動作は下記のようになっています(多分)。

メインページ・アーカイブページ(カテゴリー・日別)個別エントリーアーカイブページのジャンプ先
記事下の時間トップへ
記事下のComments「コメント」へ
記事下のTrackbacks「トラックバック」へ
サイドメニュー・RecentCommentsの記事名トップへ
サイドメニュー・RecentCommentsの記事に対する投稿者該当コメント位置へ

追記
我楽さんからのアドバイスでXHTMLの記法に準拠し、id属性を追加しました。ありがとうございました。

Comments [5] | Trackbacks [1]
2004年11月 9日

Movable Typeで保存したエントリーをすぐに確認する方法

November 9,2004 12:43 PM
Tag:[]
Permalink

投稿したエントリーがどのようにページに反映されたか確認する時、私は管理メニューの「サイトの確認」をクリックしてウェブログのトップページにジャンプします(別のブラウザでウェブログを開いておいて更新、という時もあります)。

新しいエントリーはそれで問題ないのですが、古い記事を修正した時は該当のページまで辿っていくのが結構大変です。

つまり、

「エントリーを保存したらすぐに該当ページを表示できないだろうか?」

という不満が常々あったのですが、バージョン3.11で改善されていました。

「エントリーの確認」というリンク

新規エントリーであれば保存後の編集画面右上、投稿済みのエントリーであれば編集画面右上に「エントリーの確認」というリンクが追加されています。

リンクをクリックすると(デフォルトの設定であれば)個別アーカイブにジャンプします。いきなり便利になりました。

「もしかして3.01もあったのか?」と思い、念のため確認したところ何も出てきませんでした。

いや?、全く気がついていませんでした…(灯台もと暗し、みたいな)。

Comments [3] | Trackbacks [2]

Feed Validator警告除去(Onclick属性削除プラグイン)

November 9,2004 12:30 AM
Tag:[]
Permalink
警告表示Atomフィード(atom.xml)を Validationサービスのひとつである Feed Validator for Atom and RSS でValidate(検証)したところ、画像のような onclick に関する警告が表示されました。画像をポップアップして表示する記事のタグでひっかかっているようです。
Atom Congratulations!画面なお単なる「警告」なので一応画面下の方に「Congratulations!」が表示されていました。とはいえスッキリしたものではありません。
RSS Congratulations!画面Movable Typeではメタデータフォーマット(RSS(1.0/2.0)/Atom/RSD)がデフォルトで用意されています(RSDは用途がちょっと異なるようです)。それぞれに対応したテンプレートもあり、他のアーカイブページと同様、エントリーの投稿等を契機に Movable Type のルートフォルダ配下に、RSS/Atom/RSDに対応するXML形式のファイルがそれぞれ更新されます。
先のValidationサービスでRSS1.0(index.rdf)、RSS2.0(index.xml)、Atom(atom.xml)のURLを入力して「Validate」をクリックすれば自動的に正常性を検証してくれます。「RSS」や「Atom」のバナーを貼りつけているサイトは、それぞれのページがValidationサ?ビスでValid(妥当な)となった証として表示されている訳です。
ちなみに同じページのRSSフィード(1.0/2.0)はValidでした。RSSでも同様の事象が発生するらしいのですが、これはMovable Typeが用意しているAtom用テンプレートがcontent要素を用いて記事をCDATAとして全て引き込んでいるためでしょう(RSS用デフォルトテンプレートにはcontent要素が付与されていません)。

話を戻しまして、先の警告について検索すると下記のサイトで対処プラグインを1ヶ月ほど前に公開されておりまして、早速インストールさせて頂きました。ありがとうございました。

nlog(n)Onclick 属性削除プラグイン

このプラグインは指定のタグで挟まれた箇所のonclick属性およびonkeypress属性を削除してくれます。
以下記事を引用させて頂いてのインストールおよび設定手順メモです。詳細につきましては上記サイトを参照ください。

  • 先のサイトより「Onclick 属性削除プラグイン」をダウンロード
  • アーカイブを解凍してその中の removeonclick.pl を plugins フォルダに配置
  • 「Atomフィード」テンプレート(3.01はAtom Index)の編集画面で青色部分のタグを追加
          :
<content type="text/html" mode="escaped" xml:lang="<$MTDefaultLanguage$>" xml:base="<$MTBlogURL encode_xml="1"$>">
<MTCRemoveOnclick>
<$MTEntryBody encode_xml="1"$>
<$MTEntryMore encode_xml="1"$>
</MTCRemoveOnclick>
</content>
          :
  • 保存・再構築
Valid画面これで再度ValidateしたところValidになりました。プラグインの本来の目的はRSSリーダーが正常に取得できるRSSフィードやAtomフィードを提供することです(と勝手に断定していますがRSSリーダーは使っていないので警告による影響は?ですので定かではありません)。 このプラグインはcontent要素(その中に本文が含まれる、つまりonclickやonkeypress属性が含まれる)を用いたフィードに効果的です。
Comments [0] | Trackbacks [0]
2004年11月 5日

TypeKeyの使い方

November 5,2004 1:50 PM
Tag:[]
Permalink

TypeKeyシックス・アパートのサービスのひとつで、ウェブログにコメントする時に利用するIDです。TypeKeyを利用することでウェブログはコメントスパムを防止することが可能になります(現実にはコメント投稿の利便性を考慮しているサイトが多く、結果的に完全な防止には至らないようです)。
すでにあちこちのサイトで書かれているようですが、このエントリーではTypeKeyについて

  • アカウント取得
  • TypeKey認証によるコメント投稿が可能なサイトにする
  • TypeKey認証によるコメント投稿

の3つの項目に分けて記します。なお機能を完全に把握できている訳ではございませんので認識誤り等ございましたら予めご了承ください。

TypeKeyアカウント取得

TypeKeyを利用する人が共通して行う作業として「TypeKeyアカウントの取得」があります。
TypeKeyウェブサイトのTypeKeyへのよくある質問に「Type Keyアカウントの取得方法」が掲載されておりますので参照ください。TypeKeyの登録は無料です。

TypeKey認証によるコメント投稿が可能なサイトにする

TypeKeyウェブサイトまずTypekeyウェブサイトへウェブログのURL登録を行います。 上記で取得したアカウントでTypeKeyウェブサイトにログインし、ログイン画面で「アカウント設定」タブ内の一番下に表示されている「ウェブログの設定」にサイトのURL(注:mt.cfgのCGIPathに設定したURL)を登録して「保存」をクリックしてください。またここに表示されている「TypeKeyトークン(20文字のランダムな半角英数文字)」を次の設定で使いますので画面を閉じる前にコピーしてやってください。 ウェブログは1つのアカウントで同時に5サイトまで登録することができます。
Typekey認証を有効にする設定次にウェブログでTypekey認証を有効にする設定をします。 Movable Type管理メニューの「ウェブログの設定」クリック→次ページ右上の「設定」をクリック→次ページ真中辺りにある「コメントの設定」の「登録されたコメンターのコメントは許可する」をチェックします。 チェックするとサブメニューが開きますので、その中の「TypeKeyトークン」を設定します。ここに先程コピーしたTypeKeyトークンを入力・保存し、サイトの再構築を行ってください。少なくとも個別エントリーアーカイブの再構築をしないと設定が反映されないようです。他のチェック項目は任意です。 なお先のTypeKeyウェブサイト登録との順序性はありませんのでどちらの作業から行っても大丈夫です。

TypeKey認証によるコメント投稿

Movable Typeを用いたウェブログ(注:TypeKeyは他のアプリケーションでも利用可能みたいです)で個別エントリーアーカイブのコメント入力欄の上に

TypeKey ID を使って サイン・イン してください。

とあるのをよく見かけると思います。これを利用することでTypekey認証によるコメント投稿が可能になります。TypeKey認証を行えば名前・メールアドレスの入力は不要です。この表示がないサイトはTypeKey認証によるコメント投稿を利用していないか、管理画面でTypeKey設定を行っていても(多分)3.0以前のバージョンの個別エントリーアーカイブテンプレートを用いているためページに反映されていない可能性があります。

サイン・イン画面サイン・インします。 このリンクをクリックすると左のTypeKeyログイン画面にジャンプします。サイン・インはコメントを入力する前に実施してください。サイン・イン前に入力したコメントはTypeKey認証後反映されません。

TypeKeyアカウントを取得されているのであればログイン画面からログインすることでコメント画面に戻り、先の表示が

サイン・インを確認しました、hogehoge. さん。コメントしてください。 (サイン・アウト)

に変わります。これでTypeKey認証されましたのでコメントを投稿します。投稿したコメントの投稿者欄にはTypeKeyによる投稿を行ったコメンターマークコメンターマークが表示されます。TypeKey認証を終了する場合は上記の「サイン・アウト」をクリックします。

サイン・イン画面(メールアドレス入力要求有)サイト管理者が管理メニューの「ウェブログの設定」の中で「TypeKey からメールアドレスを取得する」をチェックしている場合は、サイン・イン時のTypeKeyログイン時に画面のようにメールアドレスの送信を求められます。「いいえ」を選択するとコメント投稿はできません。
サイン・インNG画面サイトのTypeKey設定が適正に行われていない場合、サイン・イン時のTypeKeyログイン画面の代わりに図のような画面が表示されます。このような場合はサイト管理者に確認ください。
Comments [0] | Trackbacks [5]
2004年11月 4日

アップグレードと新規インストールの差分について

November 4,2004 12:36 PM
Tag:[]
Permalink
たいした話ではありません。Movable Type 3.11-ja アップグレードの最後の方で書きましたが、アップグレードした場合と新規インストールした場合で管理メニュー「テンプレート」の中の「テンプレートの名前」に差分があることに気がつきましたので追記しておきます。なおアップグレードは3.01からの場合のみですので、他のバージョンからのケースについては適用されないという認識です。
新規インストールの場合アップグレードの場合
メインページMain Index
スタイルシートStylesheet
カテゴリー・アーカイブCategory Archive
日付アーカイブDate-Based Archive
個別エントリーアーカイブIndividual Entry Archive
ちなみにこれまで投稿した3.11-ja関連の記事は新規インストールの表示で記述しています。今後も3.11ベースで記述する予定ですのでアップグレードされた方は適宜読み替えて頂ければ幸いです。

それから新規インストールでは「Remember Me」というテンプレートモジュールがデフォルトで存在しますが、アップグレードでは存在致しません(これまで新規インストールでしか動作確認をしていなかったので気がつきませんでした)。具体的には個別エントリーアーカイブのJavaScript(cookie関連処理)が
<MTInclude module="Remember Me">

というタグに置き換わっており、下記の Remember Me というテンプレートモジュールをインクルードしています。
Remember Me

Comments [3] | Trackbacks [0]

Movable Type 3.11-ja アップグレード

November 4,2004 1:38 AM
Tag:[]
Permalink

周囲の方が次々と3.11になる中、しばらくこのままかと思っていましたが手がすべってやっちゃいました。ということで改めて下記参照させて頂きました。

我楽Movable Type 3.11-ja アップグレード。
Stupid excuseMovable type 3.11-ja アップグレード

ここでの内容は上記と変わりませんが自宅サーバ用のアップグレード手順ということで。

1.ダウンロード
Six Apart.よりアップグレード用のパッケージ(ダウンロード画面直前でフルインストールかアップグレードかを決めます)をダウンロードし、解凍します。

2.アップグレード前処理
解凍した中の下記のディレクトリまたはファイルをそれぞれ現在のトップディレクトリにコピーします。大半が上書きされます。なお赤字のものはコピー対象外にしました(配下のファイルを変更または追加しており元の情報が上書きされてしまうため)。

docs/
extlib/
images/
lib/
php/
plugins/
schemas/
search_templates/
tmpl/
tools/
mt.js
styles.css
mt-upgrade31.cgi

他にごちゃごちゃあるファイルはコピーする必要はありません。plugins はプラグインを何も加えていない場合、また search_templates は配下のファイルを変更していなければコピーに加えてください。
上書きにならない、つまり新規ディレクトリおよび新規ファイルは、

php/
mt-upgrade31.cgi

の2つです。なお正規のアップグレード手順は docs 配下の upgrade.html に記載されています。ちなみにここには「extlibディレクトリ内のファイルをアップロードするときは、以前Movable Typeをインストールしたときにインストールしたライブラリをどれも上書きしないよう注意してください。」と書かれてますが、思いきり上書きしてしまいました。

3.アップグレード実行
ブラウザより

http://Blog-URL/mt-upgrade31.cgi

を実行します。
パソコンがガリガリとしばらく動作して、下記の画面が表示されます(画面に"Error"とか出たので一瞬ドキッとしましたが成功のようです)。

アップグレード実行

4.不要ファイルの削除
mt-upgrade31.cgiを削除します。

5.Typekey関連タグの修正
3.11ではTypekey関連のタグが変更されており、これを修正。またTypekey認証がinvalidになる不具合の修正も併せて行いました。具体的には個別エントリーアーカイブのサイン・インおよびサイン・アウト時のリンクをそれぞれ下記のように修正します(各2ヶ所、計4ヶ所)。

サインイン修正前
<a href="<$MTSignOnURL$>&v=1.1&<MTIfNeedEmail>need_email=1&</MTIfNeedEmail>t=<MTTypeKeyToken>&_return=<$MTCGIPath$><MTCommentScript>%3f__mode=handle_sign_in%26static=1%26entry_id=<$MTEntryID$>">サイン・イン</a>
サインイン修正後
<a href="<$MTRemoteSignInLink static="1" encode_html="1"$>">サイン・イン</a>
サインアウト修正前
<a href="<$MTCGIPath$><$MTCommentScript$>?__mode=handle_sign_in&static=1&entry_id=<$MTEntryID$>&logout=1">サイン・アウト</a>
サインアウト修正後
<$MTRemoteSignOutLink static="1" encode_html="1"$>">サイン・アウト</a>

6.再構築
これを行わないと各ページのバージョン表示が変更されませんでした。

7.その他

編集画面をひろげる

これは直接アップグレードとは関係ありません。テンプレート編集画面の横幅は3.01D-jaより改善されたようですのでエントリー入力画面ともに縦幅のみ修正しました。
ちなみに各ファイルの行数は

/tmpl/cms/edit_template.tmpl:86行→128行
/tmpl/cms/edit_entry.tmpl:182行→200行

に変わっていました。

8.アップグレードをして気がついたこと
3.11用にいくつか記事を書いておりますが、新規インストールとアップグレードで管理メニューの表示に差分があることに気がつきましたのでお詫び方々ご紹介しておきます。

  • 既存テンプレートの名称が変更されていない(主要テンプレートは英語のまま)。
  • アップグレードではテンプレートモジュール「Remember Me(コメント時の個人情報のcookie関連スクリプト)」が存在しない

以上です。

Comments [8] | Trackbacks [5]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3