再構築時の500エラーを解消する
昨日より爆発的(?)に広がってる話題に便乗してご紹介を。
エントリーが増えてくると再構築(エントリーの新規投稿含む)で500エラーが発生する話をよく耳にします。どうやら BerkeleyDB を使用している場合に発生するようで、その原因に db ディレクトリに配置される fileinfo.db の肥大化(10MByte以上とか)が挙げられていました。このファイルにはサイトに配置されているファイル情報等が記録されており再構築時にこのファイルが更新されますが、冗長なファイル情報が残ってしまうみたいです。
肥大化の技術的な原因はogawaさんの言葉を引用させて頂くと、すでにある fileinfo.db を remove してから(データを)追加すべき処理で、
- remove してもその分の BerkeleyDB の空き領域が開放されない
- remove しているがうまく削除できていない
ということで、この両方の相乗効果でサイズが肥大化しているようです。
以下参照および関連記事です。ありがとうございました。
参照記事
Magic White:500エラーと投稿時遅延解消法/500エラーと投稿時遅延解消法その2
我楽:新規エントリー投稿時に500エラー。(泣)
上記から参照している元記事
TITO's Web Page:Movable Type「fileinfo.db」の肥大化
リンクサイトで対処された方々(不足ご容赦ください)
V.J.Catkick@:fileinfo.db を削除する
やむやむ:「fileinfo.db」 のスリム化
体験手記レポート部:エントリー投稿時に500エラーが出るのをどうにかする方法
対処については当初「fileinfo.db を手動削除」という手段(バックアップ要保存)が出回ってましたが、 Ogawa::Memoranda さんが削除用スクリプト(下記)を速攻で作成くださいました。個人的にはこちらのスクリプトを使用されることを推奨します(2004.11.30 プラグイン化されております)。
対処用スクリプト
Ogawa::Memoranda:mt-shrinkfinfo.cgi
追記:fileinfo.db のサイズを管理画面に表示する方法を
に掲載しました。
2004.11.30 追記
プラグインが提供されまして、管理画面からのクリックで実行できるようになりました。設定方法を簡単に記しておきます。詳細は先のリンクまたはMagic White:mt-shrinkfinfo.cgiがプラグインに。を参照ください。
- mt.cfg の DataSource を相対パスから絶対パスに修正。
- ShrinkFInfo.zipをダウンロード、解凍。
- 解凍した「ShrinkFInfo」をフォルダごと plugins フォルダ内に配置(レンタルサーバの場合、パーミッションの設定がありますのでご注意ください)。
設定は以上です。管理画面にを開くとShrinkFInfo Plugin が表示されているはずですので、そこをクリックすればCGIが実行されます。
2004.12.11 追記
fileinfo.db のサイズを表示する方法を追記しました。
コンサートの個人的トピックス
コンサート無事終わりました。ご来場くださった方、ありがとうございました。
以下、個人的なトピックスです(音楽的な内容なし)。
- スラックスの一部がよれよれ クリーニングからそのまま吊るしていたスラックス。前日に確認したらヒザの裏部分がクリーニング店のちゃちなハンガーにきちんとかかってなくてよれてしまってました。きちんと掛けなおして一晩おきましたが元に戻らず。まさしく「もっとえーもん(ハンガーに)掛けぇ!」って感じです。
- 赤いネクタイ調達できず 前からの周知で舞台衣装に「赤(またはエンジ系)ネクタイを持ってきてください」と言われてましたが諸々の事情で調達できず、柄もののネクタイ(一応エンジ系)をしてました。まあ上着を着るので問題ないでしょう。
- カッターシャツの袖ボタンがとれていた クリーニングから戻ってきて開けてなかったので、当日着替えの最中に発覚。まあ上着を着るので問題ないでしょう。
- DATテープ コンサート収録用に使います。で前日に私が持っていく役になっていたのに気がつきました。気がついたのは夜の9時頃で大手電気店は閉店。衰退しつつあるDATテープなど最近見かけるはずもなく、どうしようかと思いましたが運良く家に在庫がありました。備えあれば憂いなし(笑)。
- スコア(1曲分)を忘れた リハーサル中にスコアが1曲分みつからないことが判明。手荷物を探しても見つからず、結局持ってくるのを忘れてしまったようです。なくても指揮にはほとんど問題ない曲でしたが、久々のオオボケでした(笑)。
去年はヒゲソリ持っていくのを忘れて運悪くその前の日も剃ってなかったので、無精ひげで出演した記憶があります。来年も何が起こるか楽しみです(…)。
サーバの不具合
本日午後未明、サーバにアクセスできない状態になっていた模様です(携帯からアクセス不可だったのでそう思ってます)。外出中のため詳細不明ですがただいまアクセス可能です。ご迷惑おかけ致しまして申し訳ございません。
明日は私の所属するマンドリンアンサンブルのコンサートです。集合時間が早いので今日は(多分)早く寝ます。
コメント投稿時のPerlエラーを解消する
私のウェブログは自宅サーバで運用しています。OSは Windows XP です。
で、当初はそれほどでもなかった(というか皆無)Perlのエラーダイアログが、3.11にアップグレードした辺りから画面に5?10枚/日ほど表示されるようになりました。どうもコメント投稿等やエントリー投稿が引き金になっているようです。自分のPCでコメントを投稿しても発生します。またコメント投稿等も正常終了しない(応答が返ってこない)ことがしばしばありました。そのまま放っておくとコメントが二重投稿されてしまうケースもあるようで投稿された方には大変ご迷惑をおかけ致しました。
時間が経過してもいっこうに回復する気配もない(というか待ってて直るはずもない)ので、さすがに困りました。サイトを検索してもそれらしき情報がみつかりません。Perlのバージョンを入れ替えようか、または Movable Type を新規インストールにしようかと策を講じておりました。
が、しつこくサイトを検索していたところようやく下記の記事にたどり着きました。
対処は mt.cfg に下記の1行を追加するというものです。
LaunchBackgroundTasks 0
記事と私の事象は微妙に異なるようですが、「WindowsのPerlでは対応していない機能がある」という文言になんとなくピンときて(笑)、この設定を行ってみることにしました。デフォルトの mt.cfg ではこの値に関する記述はありませんので(追記:記述がないのは 3.0D の mt.cfg です)ファイルの一番下にちょろっと追加。ちなみにこのオプションについては
の下から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)さんから頂いたコメントを参照ください。
個別エントリーアーカイブでの文字化けの原因
個別エントリーアーカイブでのコメント投稿後や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
このサイトは
フレーム利用時に表示がずれる不具合を解消する
対処としてはウェブログを表示する frame タグに scrolling 属性(青色部分)を付与すると解消します。この属性を付与することで解消するということはフレームにした場合、レンダリングでスクロールバーの存在を適正に認識できていないことが原因と考えられます。
<frame src="http://~/" scrolling="yes">
scrolling 属性には
- yes:常に表示
- no:常に非表示
- auto:自動
の3種類があります。「no」は対象外として、正常にレンダリングされるのは「yes」のみです。「auto」はデフォルト値のため、記述しても設定しない場合と同じ効果しか得られません。なお「yes」に設定するためスクロールが不要な場合もスクロールバーエリアが表示されます。予めご容赦ください。
カテゴリーアーカイブで全サブカテゴリーリストを表示
Category:[カテゴリー, テンプレートタグ]
Tag:[Customize, MovableType, MTSubCategories, SubCategory]
Permalink
Movable Type 3.11-ja ではサブカテゴリー機能が追加されました。それに伴いサイドバーメニューのカテゴリーリストにはこれまで通りの表示に加え、サブカテゴリー表示もできるタグ
- <MTSubCategories>~</MTSubCategories>
が追加されました(関連タグは割愛)。
ところが、例えばメインページからカテゴリーアーカイブページにジャンプすると、サイドバーのカテゴリーリストにはそのカテゴリー配下のカテゴリーしか表示されなくなります。配下のカテゴリーが存在しない場合は何も表示されません。
カテゴリーリストの表示サンプルを下図に示します。
・メインページで表示されているカテゴリーリスト。ここでは全カテゴリーが表示されています。視覚的にお分かりになると思いますが、トップカテゴリーに「ウェブログ」「趣味」、「ウェブログ」カテゴリーのサブカテゴリーに「こうさぎ」「カスタマイズ」、「カスタマイズ」カテゴリーのサブカテゴリーに「テンプレート」「折りたたみ」、「趣味」カテゴリーのサブカテゴリーに「映画」「読書」があります。 |
・上のカテゴリーリストより「ウェブログ」をクリックしてジャンプしたページで表示されるカテゴリーリストです。「ウェブログ」カテゴリーに関係するサブカテゴリーだけが表示されます。 |
・上のカテゴリーリストより「カスタマイズ」をクリックしてジャンプしたページで表示されるカテゴリーリストです。「カスタマイズ」カテゴリーに関係するサブカテゴリーだけが表示されます。 |
・上のカテゴリーリストより「折りたたみ」をクリックしてジャンプしたページで表示されるカテゴリーリストです。下位のカテゴリーが存在しないため何も表示されません。 |
上記の振る舞いは場合によっては使い道がありますが、サイドメニューとして相応しいかどうかは個人的に疑問があり、当サイトで公開中のテンプレートは以前のMTCategoriesを使ったメニュー表示にしています。
このエントリーではどのカテゴリーアーカイブページにジャンプしても、サンプルの一番上の画像のようなメニューが表示される方法を紹介します。なお日付アーカイブや個別アーカイブではページ自体に「カテゴリー」という概念がない(つまり先のタグがカテゴリーアーカイブ内のような振る舞いをしない)ので全カテゴリーが表示されます。
全カテゴリーを表示するには MTTopLevelCategories を用いることで実現できます。テンプレートの下記の赤色部分を青色に変更してください。
変更前
<div class="sidetitle">
Categories
</div>
<div class="side">
<div id="categories">
<MTSubCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryLabel></a> [<$MTCategoryCount$>]
<MTElse>
<li><MTCategoryLabel>
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse max_depth="3">
</li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTSubCategories>
</div>
</div>
変更後
<div class="sidetitle">
Categories
</div>
<div class="side">
<div id="categories">
<MTTopLevelCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryLabel></a> [<$MTCategoryCount$>]
<MTElse>
<li><MTCategoryLabel>
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse max_depth="3">
</li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTTopLevelCategories>
</div>
</div>
MTTopLevelCategories についてはMovable Type ユーザマニュアル: テンプレートタグで下記の説明があります。
MTTopLevelCategories
MTSubCategoriesのクローン。ただし、カテゴリー階層の最上位で常に開始します。
上記で全カテゴリーが表示されるようになりますが、カテゴリーリストを独立したインデックステンプレートとして割り充てる方法を併せてご紹介しておきます。これは巷で流行っている(?)「モジュール(部品)化」というものです。
インデックステンプレートはいわゆるメインページや他のアーカイブテンプレートと同じ位置付けで、保存・再構築することで独立したファイルを出力します。モジュール化のメリットはエントリーの再構築時間を短縮と、適用したアーカイブページで常に同じ内容が反映されることです。
以下、カスタマイズ方法です。
1.新しいインデックステンプレートを作成
管理メニューの「テンプレート」をクリックし、次ページの「インデックス・テンプレート」の右端にある「新しいインデックス・テンプレートを作る」をクリック。次ページの各項目に以下の内容を設定してください。
- テンプレートの名前:カテゴリーリスト
- 出力ファイル名:categorylist.html
- このテンプレートにリンクするファイル:(無記入)
- 再構築オプション:チェックをする
- テンプレートの中身:下記をコピー&ペースト(緑色部分は2004.12.01修正箇所)
<div class="sidetitle">
Categories
</div>
<div class="side">
<div id="categories">
<MTTopLevelCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryLabel></a> [<$MTCategoryCount$>]
<MTElse>
<li><MTCategoryLabel>
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse max_depth="3">
</li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTTopLevelCategories>
</div>
</div>
ペーストする内容は公開テンプレート(スタイルシート)を前提にしたものです。異なるテンプレートを使用されている場合は div タグのクラス属性等を適宜修正してください。
修正が終わったら、保存・再構築してください。管理メニューの「ウェブログの設定」→「基本設定」で指定したローカル・サイト・パスに categorylist.html が配置されます。
2.カテゴリー・アーカイブテンプレートの修正
先の categorylist.html をインクルードするためにカテゴリー・アーカイブテンプレートの下記の赤色部分を青色部分に修正します(リストは公開テンプレートを例にしています)。
修正前
<div class="sidetitle">
Categories
</div>
<!-- 全カテゴリー用 -->
<div class="side">
<MTCategories>
<a href="<$MTCategoryArchiveLink$>">
<$MTCategoryLabel$></a> [<$MTCategoryCount$>]<br />
</MTCategories>
</div>
<!-- 全カテゴリー用 -->
修正後
<$MTInclude file="categorylist.html"$>
categorylist.html が正常に読み込めない場合は上記のfile属性指定の部分をルートディレクトリからのフルパス指定に変更してください。
修正が終わったら保存・再構築してください。ここまでの作業が済めばカテゴリーアーカイブページのカテゴリーリストは全カテゴリーが表示されるようになっています。
3.他のアーカイブテンプレートの修正
カテゴリー・アーカイブテンプレートを除いた各テンプレートのカテゴリーリストを、MTCategories から MTSubCategories を用いたものに置き換えます。各テンプレートのカテゴリーリストを前記と同様の作業(MTIncludeタグへの変更)を行ってください。公開テンプレートをご利用の方は、下記のようにカテゴリーリストをコメントアウト(赤色部分を削除)し、コメントアウトされたサブカテゴリー部分を有効(青色部分を追加)にされてもOKです。
修正前
<!-- 全カテゴリー用 -->
<div class="side">
:
</div>
<!-- 全カテゴリー用 -->
<!-- サブカテゴリー用
<div class="side">
<div id="categories">
:
</div>
</div>
サブカテゴリー用 -->
修正後
<!-- 全カテゴリー用
<div class="side">
:
</div>
全カテゴリー用 -->
<!-- サブカテゴリー用 -->
<div class="side">
<div id="categories">
:
</div>
</div>
<!-- サブカテゴリー用 -->
修正が終了したらそれぞれ保存・再構築してください。
作業は以上です。なお3.11-ja用公開テンプレートご利用の方はスタイルシートの設定に冗長な部分がございましたので、下記の赤色部分をばっさり削除してやってください。少なくとも一番下の margin-bottom? を削除しないとメニュー下の空白が相当とられてしまいます。
.side #categories {
font-family: Verdana, Arial, sans-serif;
color: #666666;
background: none;
font-size: 9px;
font-weight:normal;
line-height:150%;
text-align: left;
padding:2px;
margin-bottom:25px;
}
2004.12.01 追記
全カテゴリー表示に MTTopLevelCategories タグを用いた方法がありましたので記述を一部修正致します。Note book :: Hibi no Note さんよりご指摘頂きました。ありがとうございました。
.htaccessによる文字化け対策
TypeKey認証やコメント投稿の後で文字化けが発生するという質問を最近何件か頂いています。TypeKeyの文字化けについてはHTTPリダイレクトを伴っており、ページ直前のHTTPレスポンスで返却されたcharsetを見てしまうのが文字化けの要因と思われます(発生するサイトとしないサイトの違いは不明です)。下記のサイトに解説があります。
ただしコメント投稿後の文字化けは原因不明(リダイレクトではないという認識)です。
上記のサイトにも少し書かれていますが、リダイレクトによる文字化け解消について .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タグの文法エラー等ですが改善性については未知です)ので、申し訳ございませんが「デフォルトのテンプレートから少しずつカスタマイズして動作をチェックしてみてください」という原始的なアドバイスしかできません。併せてご了承願います。
↑一応動作確認できているサイトあります。なお文字化けの原因は「続きを読む」を折りたたむスクリプトにあるようでした。ご利用中の方にはご迷惑おかけして大変申し訳ございません。とり急ぎお詫びまで。
MSNメッセンジャーでブロック
自宅サーバの別のURLでマンドリンアンサンブルの練習音源(MP3)を公開しています。基本的に自分で録音したものをアップするのですが、別の音楽仲間が彼の機材で録音してくれたものも時々アップしています。その友人から音源をもらう時はMSNメッセンジャーを介して送ってもらうのが習慣で、今日も練習で録音したファイルを転送してもらおうとメッセンジャーで通信しようとしたのですが、ブロックされてしまいました。
OSはXPです。そういえば先日WindowsアップデートでSP2にしたので、要因は間違いなくそのせいですね(やるんじゃなかった…)。ファイアウォールは無効にしたのですが相変わらずブロックされっぱなしです。ネットもちらっとしか検索していないので原因は調べきれてません。
こうなったら郵送か?(笑)
残作業
すいません。時間的にいっぱいいっぱいで頂いているコメントの回答ができない状態です。遅くても火曜日夜くらいまでには全てご返事致しますので(本当か?)、少々お待ちになってください。
以下自分用作業メモです。
- テキストの回り込み処理(by aquaさん)
- ジャンプ時の文字化け(by ミッチさん)
- サブカテゴリでの全カテゴリ表示(by ミッチさん)
- その他コメントへのご返事
上3つはエントリーに(できれば)しようと考えてます。
このアメは
このアメは
テンプレートご利用100サイト達成
当サイトで公開しているテンプレートのご利用者(コメント・トラックバック・BlogPeople等の登録で私が知ることができたもの)が100サイトを超えました。前回の50サイト達成は最初のテンプレート公開から4ヶ月でしたが、今回は約20日というスピード達成で激しく驚いてます(笑)。
月並みではございますがご利用くださっている皆様には本当に感謝しております。この場をお借りして改めまして御礼申し上げます。ありがとうございます。m(__)m
調査結果:ウェブログの3分の2は「三日坊主」という記事から換算すると途中で更新が止まるサイトがもっと多くても不思議ではないのですが、おそらく95%以上の方が頻繁に更新されています。私が知る限りで更新が止まってしまったのは2サイトしかありません。そういう意味では「3日坊主になる人は3カラムに到達しない」という意味不明な公式が成り立ちそうです(笑)。
ということで、昨日時点でのご利用サイト様(更新停止またはテスト中と思われるサイトは外してます)を紹介させて頂きます。今回はなんとなくアルファベットおよび五十音順に並べてみました。またタイトルはトップページのタイトルを基本にしておりますが誤り等ございましたらご連絡ください。
- 404
- // A4web //
- Air Blog
- a n i
- @olog
- Argon
- Blogのような日記のような
- bublog
- Carefree Field
- Centree's Blog
- Cherry-Radio
- CHIBI CHICK!
- Ciao*
- COLOR NO.A
- Cool Gaming weBlog
- Daily note
- Daily stlyle*
- DB blog
- Digital Junk
- existence Uhheri Edition
- fickleness
- :: Figaro_express ::
- Fourseasons
- GF*days
- gの徒然Blog
- -h@tezone-
- HONGKONG+fish Hyper×2
- IdeOnline
- kazunoblog
- LOVE SWIMMING Blog
- LUNCH BOX note*
- Magic White
- MAL@BLOG
- Mayutan's blog
- M*C?B Version?
- Mo-jah's Blog
- moon & apple
- MovableType@きりるーむ
- My Sweet Moana
- Nachtigall
- N-blog
- NEOといっしょ
- NO DOUBT
- ++Open My Heart++
- /PEN/
- P's Blog
- RaCCI's ブログ
- R'z Room @ DayTime
- Saloon's Bar :: Weblog
- Search the happy way
- **Silver Heart**
- Slip-on Way
- Slow but Sure*
- ★Starry Sky★
- Stupid excuse!!
- Suzie World
- Sweetly Blog *
- Tales of Eternia ONLINE ?さすらい?
- Treasure
- vanilla_cafe*
- vvhappy-roadvv
- ■□ WAY OF LIFE □■
- WInds of Cemetery
- アイドルの草鞋
- 青い自転車とどこまでも。
- あふなびブログ
- アルの足跡
- うだうだうだ
- えてぽんの部屋
- お気楽草紙
- 我楽
- 喜怒哀楽
- ギャンブル三昧!
- 今日の覚え書き
- 黒鱒 - weblog
- *ココロの天気図*
- 越中のケツ、森嶋の髪。
- 後藤真希 ワオワオ記念日
- 雑貨*Zakka*サーチねっとMEMO
- 社会分析的ブログ
- 秀丞写文庫
- 匠悟録
- 初心者のためのデジカメ活用入門
- 体験手記レポート部
- チップを弾むから勇気を分けてくれないか
- チョコチッブログ
- 月夜の浜辺
- 都会の片隅で
- ドール・ヒステリア
- ナリモノイリ
- 寝言、戯言、独り言。
- 毘沙門天
- 日々一歩-裏-
- 深い雪
- ぼくたび BLOG
- 迷える子うさぎ何処へゆく?
- +みゅみゅうさ+
- 野心と欲望の分家
- やむやむ
- らぐらす♪?うさぎのしっぽ?
- リンゴ庵blog
メルトモと
Sleipnir開発停止
リンクさせて頂いているところでは、■□ WAY OF LIFE □■さん、我楽さん、Simple&Smartさん、人生迷い橋さん(取りこぼしご容赦ください)の記事にもある通り、タブブラウザ「Sleipnir」、ペイントソフトウェア「PictBear SE」の開発が中止になったようです(公式サイトのリンクはforbiddenになってます)。以下記事引用。
開発停止のお知らせ
バックアップ用のもう一台のパソコンも盗まれてしまい、Sleipnir/PictBear SE のソースコードがなくなってしまいました。 PictBear SE はもうすぐ正式版公開を予定しており、Sleipnir もユーザーの方々のご期待に応えられるように 1.67 の開発をしていた途中の出来事でしたので大変ショックです。盗難物が帰ってこない限り開発再開は不可能ですので、上記アプリケーションは開発停止だと思っていただいてかまいません。。。
私もSleipnir密かに使っていたので残念です。無事に戻ってくるといいのですが。
サーバ停止のお詫び
本日未明(多分3時頃)より21時頃までサーバへのアクセスができない状態が続いておりました。
原因は、Windows Updateの自動更新(自動インストール)を有効な状態にしていたのですが再起動が必要な更新が行われ、再起動がログイン画面で止まってしまっていたためです。
ということでWindows Updateの自動インストールは行わない設定に変更致しました(ある意味危険ですが)。ご迷惑をおかけ致しまして申し訳ございませんでした!!
取り急ぎご連絡まで。
MTIfNonZeroタグでコメント表示方法を制御する
個別エントリーアーカイブの中で、「トラックバック数が0件でなければトラックバックを表示する」ために利用する
- 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 の条件にマッチしなかった場合のものを有効にするためのタグです。
SPAMメールに
コメントのリンクを新しいウィンドウで表示する
Movable Type のコメントに挿入するHTMLタグはサニタイジングの関係で使用が制限されています。デフォルトで使用可能なタグ(属性含む)は
- a href、b、br、p、strong、em、ul、li、blockquote
です。つまり a タグで許容されている属性は href のみですので、target 属性を付与しても Movable Type が自動的に target 属性を削除するため別ウィンドウで表示することはできません。
下記に target 属性を有効にするための変更方法を記します。なおこの機能を利用する場合の注意事項として、コメントのリンクを有効にする方法は
- http://? を直接コメントとして記述したものに自動的にリンク(=aタグ)を付与する
- <a href="http://?" target="_blank">~</a>を手入力してリンクする
の2通りがありますが、両者は排他的ですのでいずれかの機能しか有効にできません。
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 属性を指定してください。枠線(border)の指定
ご質問を頂きましたので、テンプレートで提供しているサイドメニュータイトルや本文のblockquoteタグで用いている枠線のスタイルシート指定方法を紹介します。
まず指定フォーマットは下記の通りです。
- border: width style color
- border-top: width style color
- border-right: width style color
- border-bottom: width style color
- border-left: width style color
「border:?」は全ての枠線を一括指定、「border-xxx:?」は上下左右の枠線を個別指定します。一括指定か個別指定のいずれかを使用します。斜体の部分に枠線の詳細を指定します。それぞれの意味は
- width:枠線の幅
- style:枠線のスタイル
- color:枠線の色
となっています。
次にスタイルシートを外部ファイル(styles-site.css)に記述する場合のサンプルをいくつか記します。ここではblockquoteタグを直接指定する方法で記しておきます。
【シンプルな指定(幅:1px/スタイル:1本線/色:青)】
- blockquote { border: 1px solid blue; }
hogehoge hogehoge
【このサイトのblockquote指定(幅:2px/スタイル:点線/色:グレー)】
- blockquote { border: 2px dotted 999999; }
hogehoge hogehoge
【付箋紙風(幅:左10px、その他1px/スタイル:1本線/色:緑)】
- blockquote { border-left: 10px solid green; border-top: 1px solid green; border-bottom: 1px solid green; border-right: 1px solid green; }
hogehoge hogehoge
幅・色はなんとなくお分かりになると思いますので、スタイル指定のみ下記に列挙しておきます。それぞれどのように表示されるかはお試しになってください。
none 非表示(デフォルト) hidden 非表示 solid 1本線 double 2本線 groove 窪んだ線 rigde 隆起した線 inset 全体が窪んだように表示 outset 全体が隆起したように表示 dashed 破線 dotted 点線
なお指定内容によってはブラウザによって表示が異なる場合がありますのでご注意ください。
コメント・プレビュー画面の typo 修正
やむやむ:さえらさんから頂いたご質問の対処です(素晴らしい校正スキルに感謝します!)
コメントで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のローカルファイルとしてダウンロードし修正(保存時の文字コードにお気をつけください)、再度アップロードという手順です。再構築は不要です。
日本語化に関する情報はこのファイルに集約されています。
リンク画像の枠線を消す(こうさぎ)
Movable Type スタイル&コンテンツデザインガイド
Movable Typeスタイル&コンテンツデザインガイド―コンテンツ管理システム(CMS)ツールとしてのMovable Type活用術&実践サイトデザイン術 posted with amazlet at 05.04.09 エ・ビスコム・テック・ラボ 毎日コミュニケーションズ (2004/10) 売り上げランキング: 2,039 通常24時間以内に発送 おすすめ度の平均: ![]() 初心者にはお勧めできません 実際にMovable Typeカスタマイズする人ならこれ! MT の非常にマジメな解説書 |
最近本屋でウェブログの書籍をよくみかけるようになりましたが、簡単な利用方法や既知のカスタマイズ方法等、どちらかと言えば初級者向けの内容のものが多く、いまひとつ食指が伸びませんでした。
この本の主旨は、おおざっぱには「Movable Typeを利用してウェブログ以外のサイトを作るためのノウハウ」が掲載されているようですが、各タグや属性の説明、それらの利用方法がかなり詳細に記されており、また文末にも一応3.1の機能も解説されている等、私の嗜好にかなり合った内容なので購入しました(といってもまだ数ページしか目を通してません...)。
Movable Type 付属のドキュメントだけでもかなり理解できると思いますが、こういった類の書籍も1冊手許に置いておきたかったので、リファレンス用として利用し知識を深められればと思います(本当か?)。
コメント欄とトラックバック欄にメッセージ追加
個別アーカイブのコメント投稿欄の下とトラックバックURLの下にメッセージを追加しました。他の方のサイトでもコメント投稿についての説明を結構みかけるので、私もそれに倣ってみました。 メッセージは投稿・送信時の注意点を記してますが、目的は重複に対して「気にしなくていいですよ」という内容です。またトラックバックは「タイムアウト=送信先に届いていない」と思われている方が少なくないので、以前のタイムアウト記事へのリンクも追加してみました。記載内容は運用状況によって適宜変更したいと思います。 批判的なコメントやトラックバックはほとんどゼロで、おかげさまでウェブログを楽しく運営させて頂いてます。そういった意味ではコメントやトラックバックの重複は全く問題でなく、消去するのもたいした手間ではございませんので(投稿者の方は気になるかも知れませんが)、どしどしお送りください。 |
枠線を
リンク画像の枠線を消す
バナー等の画像にリンクを設定すると青い枠が表示されます。これを消去する方法を何通りかご紹介します。
1.スタイルシート(styles-site.css)に設定
まず、タイプセレクタで img 要素に枠線を与えない設定を行います。
img {
border-style:none;
}
または、子孫セレクタで a 要素の子孫要素である img 要素に設定を与える方法です。上記の場合は全ての画像にスタイルが適用されますが、この方法であればリンク画像のみにスタイルの設定を与えることができます。
a img {
border-style:none;
}
さらに、img 要素に class 属性 または id 属性を与えて、クラスセレクタ・一意セレクタで指定すれば画像によってリンクのあり・なしを振り分けることができます。以下はクラスセレクタの例です。
.no_border {
border-style:none;
}
HTMLの img 要素には下記のように class 属性を与えます。
<img src="~" ait="banner" class="no_border" />
2.HTMLタグ内のstyle属性にスタイルシートを設定(やや非推奨)
img 要素に直接 style 要素を設定します。全ての画像に指定する場合はファイルサイズが増えるため、1項を推奨します。
<img src="~" alt="banner" style="border-style:none;" />
3.HTMLタグのborder属性に指定(非推奨)
この属性はHTML4から非推奨となっています(参考として記しました)。<img src="~" ait="banner" border="0" />
表示上の効果はどれも同じです。1項と2項が混在する場合、img 要素の style 属性の設定(2項)が styles-site.css 等の外部ファイル(1項)や、ここでは記しておりませんがHTMLに記述された style 要素の設定より優先されます。
個別エントリーアーカイブにコメント・トラックバックのアンカー追加
当サイトのメインページ記事下にある「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属性を追加しました。ありがとうございました。
新米は
保存したエントリーをすぐに確認する
投稿したエントリーがどのようにページに反映されたか確認する時、私は管理メニューの「サイトの確認」をクリックしてウェブログのトップページにジャンプします(別のブラウザでウェブログを開いておいて更新、という時もあります)。新しいエントリーはそれで問題ないのですが、古い記事を修正した時は該当のページまで辿っていくのが結構大変です。
つまり
- 「エントリーを保存したらすぐに該当ページを表示できないだろうか?」
という不満が常々あったのですが、3.11で改善されてました。
いや?、全く気がついていませんでした…(灯台もと暗し、みたいな)。
Feed Validator警告除去(Onclick属性削除プラグイン)
先の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ヶ月ほど前に公開されておりまして、早速インストールさせて頂きました。ありがとうございました。
このプラグインは指定のタグで挟まれた箇所の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>
:
- 保存・再構築
トラックバックピープル・バナー募集
遅くなってすいません(誰に言ってるんでしょう...)。以前我楽さんよりご提案ありました「ダジャレ・トラックバックピープル」用のバナーをこのエントリーにて募集致します。「バナー」とはこの画像の代わりとなるものを指します。
それで応募内容および応募方法(案ベース)ですが、
- どなたでも応募できます。
- 作成されたバナーをこのエントリーのコメントとして、<img src="~"/>ではりつけてください。画像はこちらのサイトに再アップロードしてsrc属性を適宜書き換える予定ですが、他に良いアイデアありましたらお待ち申し上げます(自サイトで投稿してここにトラックバック等)。
- 一定期間募集し、その後投票等で使用するバナーを決めたいと思います
- トラックバックピープルにはバナーを3つまで登録できるようですので3作品選ぶ予定です。3つまでしか応募がない場合は自動的に採用となります(応募がない場合等はデフォルトバナーを登録します)。
なお個人的な希望としては、
- デフォルトバナー左のマークはそのまま
- 背景色もそのまま
- まったりした感じ
です(自分で作れって?(笑))。
例えばトラックがバックしている絵など「バナーもダジャレかよ!」って感じでいいですね?。
上記に関してご意見・ご要望等ございましたらどしどしコメントください。
小粋なバナーをお待ち申し上げます。
Yahoo!ジオシティーズ移行手続き
随分前から使わせて頂いている無料ホームページの老舗「ジオシティーズ」ですが、Yahoo!と統合された関係でホームページの移行手続きを行わなくてはなりませんでした(連絡は以前メールで受けていたのですが半ば放置状態でした)。
移行手順のサイトを読むとYahoo JAPAN ID(またはニックネーム)がURLの一部になったものが新ジオシティーズのURL(これはサービスによって異なるようです)となり、以前のURLも継続できるようです。
当然後者の形態を選択したいのですがリンクの「旧ジオシティーズのページはどうなるの?」を辿ってもどのような手続きをすれば旧ジオシティーズのURLが引き続き使えるのかすぐに分かりませんでした。実際の移行手続きに関するページ(リンクの「新ジオシティーズへ移行手続きしたい方はこちらから」)を辿っても旧URL継続のことは何も記されていません。「新ジオシティーズのURLだけにして、旧ジオシティーズのURLを削除することも可能」というのは分かりました。
結局、先のジャンプしていったページの最後の方で「移行手続きを(普通に)行えば新旧URLが保持できる」ということが、読み始めて10分くらいたってやっと分かりました。
要するに移行手続きと旧URL継続との関係が分からなくて悩んだ、というボヤキです。「通常の手続きを行えば継続可能です」いうことが先に書かれていてもいいと思うのですが…。
まあそもそも無料ですし、更新も滞ってて文句言える立場ではありません。
ということで久しぶりにウェブログな内容でした。
TypeKeyの使い方
TypeKeyはシックス・アパートのサービスのひとつで、ウェブログにコメントする時に利用するIDです。TypeKeyを利用することでウェブログはコメントスパムを防止することが可能になります(現実にはコメント投稿の利便性を考慮しているサイトが多く、結果的に完全な防止には至らないようです)。
すでにあちこちのサイトで書かれているようですが、このエントリーではTypeKeyについて
- アカウント取得
- TypeKey認証によるコメント投稿が可能なサイトにする
- TypeKey認証によるコメント投稿
の3つの項目に分けて記します。なお機能を完全に把握できている訳ではございませんので認識誤り等ございましたら予めご了承ください。
TypeKeyアカウント取得
TypeKeyを利用する人が共通して行う作業として「TypeKeyアカウントの取得」があります。
TypeKeyウェブサイトのTypeKeyへのよくある質問に「Type Keyアカウントの取得方法」が掲載されておりますので参照ください。TypeKeyの登録は無料です。
TypeKey認証によるコメント投稿が可能なサイトにする
TypeKey認証によるコメント投稿
Movable Typeを用いたウェブログ(注:TypeKeyは他のアプリケーションでも利用可能みたいです)で個別エントリーアーカイブのコメント入力欄の上に
- TypeKey ID を使って サイン・イン してください。
とあるのをよく見かけると思います。これを利用することでTypekey認証によるコメント投稿が可能になります。TypeKey認証を行えば名前・メールアドレスの入力は不要です。この表示がないサイトはTypeKey認証によるコメント投稿を利用していないか、管理画面でTypeKey設定を行っていても(多分)3.0以前のバージョンの個別エントリーアーカイブテンプレートを用いているためページに反映されていない可能性があります。
TypeKeyアカウントを取得されているのであればログイン画面からログインすることでコメント画面に戻り、先の表示が
- サイン・インを確認しました、hogehoge. さん。コメントしてください。 (サイン・アウト)
に変わります。これでTypeKey認証されましたのでコメントを投稿します。投稿したコメントの投稿者欄にはTypeKeyによる投稿を行ったコメンターマーク
が表示されます。TypeKey認証を終了する場合は上記の「サイン・アウト」をクリックします。
|
|
|
|
マウスを
アップグレードと新規インストールの差分について
新規インストールの場合 アップグレードの場合 メインページ Main Index スタイルシート Stylesheet カテゴリー・アーカイブ Category Archive 日付アーカイブ Date-Based Archive 個別エントリーアーカイブ Individual Entry Archive
それから新規インストールでは「Remember Me」というテンプレートモジュールがデフォルトで存在しますが、アップグレードでは存在致しません(これまで新規インストールでしか動作確認をしていなかったので気がつきませんでした)。具体的には個別エントリーアーカイブのJavaScript(cookie関連処理)が
<MTInclude module="Remember Me">というタグに置き換わっており、下記の Remember Me というテンプレートモジュールをインクルードしています。
Remember Me
Movable Type 3.11-ja アップグレード
周囲の方が次々と3.11になる中、しばらくこのままかと思っていましたが手がすべってやっちゃいました。ということで改めて下記参照させて頂きました。
ここでの内容は上記と変わりませんが自宅サーバ用のアップグレード手順ということで。
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関連スクリプト)」が存在しない
以上です。
個別アーカイブに「続きを読む」を導入
Category:[3.01D-ja, 追記]
Tag:[Customize, JavaScript, MovableType, MTEntryMore]
Permalink
エントリー・アーカイブに適用される場合はエントリー・アーカイブの追記文章の折りたたみ(改)を参照ください。
デフォルトテンプレートではメインページは追記部分がリンクで隠されており、他のアーカイブページでは追記を含めて全てを一斉に表示するようになってます。
このサイトでは途中からダジャレのオチを追記に隠すよう各アーカイブページを変更したのですが、修正もれで個別アーカイブにジャンプするとネタが最初から見えてしまっていたので(笑)、こちらも追記を隠すように変更しました。
ということで以下、メインページ以外のアーカイブページで追記を隠すように修正する手順を記します。
なおデフォルト状態でメインページにある「続きを読む」をクリックするとPermalink(デフォルトの設定であれば個別アーカイブ)へジャンプします。これは他のアーカイブページが追記を含め一括表示されることが前提になっているからです。
実は個別アーカイブページ以外の修正方法は以前こちらの記事に記していたのですが、まとめて修正できるよう再掲しておきます。テンプレートの名称は3.11ベースで書いてますので3.01の場合は適宜読み替えてやってください。
まずテンプレート(メインページ/カテゴリー・アーカイブ/個別エントリーアーカイブ/日付アーカイブ/)の <head>~</head> の間に下記を追加します。
<script type="text/javascript">
<!--
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;
}
}
//-->
</script>
3.01や3.11の場合は、直接埋め込むよりもテンプレートモジュールにした方がスッキリすると思います。その場合の手順は、管理メニューの「テンプレート」をクリック→次ページの一番下の右にある「新しいテンプレートモジュールを作る」をクリック→次ページで下記を設定
- テンプレートの名前:ShowHide(←何でもいいです)
- このテンプレートにリンクするファイル:何も設定しない
- モジュールの中身:上記のスクリプトを丸ごとコピー
として保存&再構築。そして各テンプレートの <head>~</head> の間に
<MTInclude module="ShowHide">
を記述すればOKです。
次に同じく、各テンプレートの下記の赤色部分を青色部分に入れ替えます。
メインページ修正前
<MTEntryIfExtended>
<p(またはspan) class="extended"><a href="<$MTEntryPermalink$>#more">続きを読む "<$MTEntryTitle$>"</a></p(またはspan)>
</MTEntryIfExtended>
カテゴリー・アーカイブ/日付アーカイブ修正前
<MTEntryIfExtended>
<$MTEntryMore$>
</MTEntryIfExtended>
個別エントリーアーカイブ修正前
<$MTEntryMore$>
修正後
<MTEntryIfExtended>
<div id="Link<$MTEntryID$>">
<a href="<$MTEntryPermalink$>" name="<$MTEntryID pad="1"$>" onclick="showHide(<$MTEntryID$>,'<$MTEntryPermalink$>',this);return false;">続きを読む ≫</a>
</div>
<div id="Text<$MTEntryID$>" style="display: none">
<$MTEntryMore$>
<a href="<$MTEntryPermalink$>" name="<$MTEntryID pad="1"$>" onclick="showHide(<$MTEntryID$>,0,this);return false;">≪ 続きを隠す</a>
</div>
</MTEntryIfExtended>
以上です。
2006.04.04 追記
リストから language 属性を削除しました(HTML4.01/XHTMLで非推奨あるいは廃止されているため)。
6週目のカレンダー枠が表示されない不具合修正
左上の月送りカレンダーで6週目が本日になる場合、枠線の下の線が表示されていませんでした。設定ミスです。すいません。
(既に修正されていると思いますが)同様の設定をされている方はメインページやカテゴリーアーカイブ等の各テンプレートのカレンダー表示の高さ設定を、下記の赤色から青色に変更後、再構築することで正常に表示されるようになります。表示されない場合はピクセル数を少しずつ増やして再構築してみてください。
修正前
<div align="center" class="side">
<iframe name="cal-iframe" src="<MTBlogURL>archives/calendar/<MTDate format="%Y/%m/index">.php" width="160" height="112" scrolling="NO" frameborder="0" marginwidth="0" marginheight="0"></iframe>
</div>
修正後
<div align="center" class="side">
<iframe name="cal-iframe" src="<MTBlogURL>archives/calendar/<MTDate format="%Y/%m/index">.php" width="160" height="115" scrolling="NO" frameborder="0" marginwidth="0" marginheight="0"></iframe>
</div>
・メインページで表示されているカテゴリーリスト。ここでは全カテゴリーが表示されています。視覚的にお分かりになると思いますが、トップカテゴリーに「ウェブログ」「趣味」、「ウェブログ」カテゴリーのサブカテゴリーに「こうさぎ」「カスタマイズ」、「カスタマイズ」カテゴリーのサブカテゴリーに「テンプレート」「折りたたみ」、「趣味」カテゴリーのサブカテゴリーに「映画」「読書」があります。
・上のカテゴリーリストより「ウェブログ」をクリックしてジャンプしたページで表示されるカテゴリーリストです。「ウェブログ」カテゴリーに関係するサブカテゴリーだけが表示されます。
・上のカテゴリーリストより「カスタマイズ」をクリックしてジャンプしたページで表示されるカテゴリーリストです。「カスタマイズ」カテゴリーに関係するサブカテゴリーだけが表示されます。
・上のカテゴリーリストより「折りたたみ」をクリックしてジャンプしたページで表示されるカテゴリーリストです。下位のカテゴリーが存在しないため何も表示されません。

初心者にはお勧めできません
MT の非常にマジメな解説書

