2008年10月 2日(木)

MovableType 4を始める前に設定しておきたい10の項目

MT4を始める前と言わず、テンプレートを変更する時など、運用中にも確認しておいた方が良い項目も含まれていますね。とりあえずTipsということで。

このエントリーは、バージョン3 の時代に投稿した「Movable Type を始める前に設定しておきたい 10 の項目」のMovable Type 4 版です。今でもそちらのエントリーにトラックバックやブックマークが寄せられ、大変嬉しいのですが、バージョン3 から Movable Type の機能が大幅に拡張・改善され、画面構成も変更されており、以前の記事では対応できなくなってしまったので、全ての記述をこのエントリーで見直すことにしました。Movable Type 4 を利用する場合の参考になれば幸いです。

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati


2008年4月25日(金)

MovableType4でカテゴリー別にデザインを切り替える

小粋空間さんのblogでカテゴリー別にアーカイブのデザインを切り替える方法が載っていました。

小粋空間: Movable Type 4 でカテゴリー別にブログ記事ページのデザインを切り替える方法(その1)

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati


2008年2月 2日(土)

HatenaBookmarkerプラグイン

HatenaBookmarkerプラグイン、MT4対応、というかMT4専用だそうです。
で、MT4.1で動くかなぁと思いつつインストールしてみましたが、うまく動きませんでした・・・orz
単にこのblogの環境が変なのか、はたまたMT4.1だとダメなのか。。。

Movable Typeのブログ記事やウェブページをはてなブックマークにポストするプラグイン。MT4専用。はてなのアカウントが必要です。

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati


2008年1月13日(日)

MT3.xとMT4.0でエントリーアーカイブのファイル名が異なる

年末年始にテンプレートをMT3.x時代のものからMT4.0流のものに入れ替えたのですが、MT4.0のテンプレートではデフォルトでMT3.xとエントリーアーカイブのファイル名が異なるように設定されてしまいます。
具体的には、MT3.xで「xx_yy_zz.html」となっていたファイル名が、MT4.0では「xx-yy-zz.html」となります。
※要するにファイル名の「_」が「-」に入れ替わってしまうということです。

で、それは設定で変えることができて、ブログ記事のアーカイブパスを「yyyy/mm/entry-basename.html」ではなくて、「yyyy/mm/entry_basename.html」の指定にすれば良いのですが、そんなことに気がついたのも後の祭りで新しいブログ記事名に対してトラックバックが付いている状態。
当然以前のブログ記事名のものにもトラックバックとかリンクとかが張られているものがあるはずで、どっちも置いておかないといけない状態になってしまいました。

仕方ないので古いファイル名でアクセスされたら新しいファイル名にリダイレクトするようにhtmlをしこしこ作ることにしました。数えてみたら1158件あってかなりめんどくさい・・・
まぁファイル名に「_」が付いているより、「-」の方がgoogleにちゃんと拾われる傾向にあるらしいので、よしとすることにします。

昨日、古ーいファイルで"_"つきファイルがあるのに気づきました。
MT3.xのどこかのバージョンアップ時に、ファイル名中"_"が"-"になった模様。

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati


2008年1月 8日(火)

MT3.xのテンプレートをMT4.0のテンプレートに初期化するには

MT3.xからMT4.0にアップグレードすると、MT3.xのテンプレートがそのまま引き継がれます。
これを、「テンプレートの初期化」(Template Backup and Refresh)でMT4.0のものに初期化しようとしても、
『カスタムテンプレートと思われるため、~をスキップします』なんて出て初期化されないテンプレートが出てくるのでちょっと工夫をする必要がある。
このblogをMT4.0のテンプレートに切り替える際にやったのは、新規にテンプレートを追加し、中身は空で良いのでデフォルトテンプレートと同じ名前で保存してテンプレートの初期化を行う、というものです。
そうすると /default_templates に保存されているデフォルトテンプレートのファイルからデータがコピーされます。

例えばスタイルシートであれば、インデックステンプレートを作成で新規テンプレートを作成し、テンプレート名を「スタイルシート(メイン)」、出力ファイル名を「styles-site.css」として保存し、テンプレートの初期化を行うわけです。

デフォルトのテンプレート名一覧は下記を参考にしてください。

インデックステンプレート

テンプレート名出力ファイル名
Atomatom.xml
JavaScriptmt.js
RSDrsd.xml
RSSrss.xml
アーカイブインデックスarchives.html
スタイルシート(ベーステーマ)base_theme.css
スタイルシート(メイン)styles.css
メインページindex.html

アーカイブテンプレート

テンプレート名出力ファイル名
ウェブページ-
ブログ記事-
ブログ記事リスト-

モジュールテンプレート

テンプレート名出力ファイル名
ウェブページの詳細-
カテゴリ-
コメント-
コメント入力フォーム-
コメント詳細-
サイドバー (2カラム)-
サイドバー (3カラム)-
タグ-
トラックバック-
フッター-
ブログ記事のメタデータ-
ブログ記事の概要-
ブログ記事の詳細-
ヘッダー-

これ以外にもMT4.0だと以下のシステムテンプレートがありますが、システムテンプレートは新規作成ができません。
MT3.xのテンプレートでも、テンプレート名は違うものの同じ役割のテンプレートがありますので、/default_templates にあるファイルをエディタで開いて貼り付け、保存すれば良いのだと思います。

  • コメントプレビュー

  • コメント完了

  • ダイナミックパブリッシングエラー

  • ポップアップ画像

  • 検索結果

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati


2008年1月 6日(日)

MT4で公開記事を全て出力する方法

Etentriesでallとかlastn=9999とかの指定をする裏技的なやり方ではなく、正当派で攻めるなら以下のように書けば良いそうです。

MT4より実装されたMTSetVarBlockタグを利用し、「entrycount」と言う変数を宣言します。変数「entrycount」に、ブログ内の公開記事数を出力するMTBlogEntryCountタグを宣言すれば、変数「entrycount」に公開記事数が代入されるという仕組みです。

実装すると以下のようになります。

<MTSetVarBlock name="entrycount"><$MTBlogEntryCount$></MTSetVarBlock><MTEntries lastn="$entrycount">~</MTEntries>

なにげに実用性たっぷりのMTSetVar系タグは今まで無かったのが不思議ですなw

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati


2008年1月 6日(日)

プレビュー用の一時ファイルを削除するプラググイン

このblogは定期的にタスクが実行されるわけではないのでプラグインを組み込んでみました。
注)MT4専用だそうです。

MT4からエントリーのプレビューにテンプレートのデザインが適用されるようになった。「確認」ボタンをクリックすると一時的にプレビュー用のファイルを構築した後管理画面内の iframeで表示させるようになっている。 一時ファイルはエントリーを「保存」した際に削除される。
タスクを定期的に実行するように設定されている環境では、remove_temporary_files (Core.pm) というルーチンが定期的に実行されて、一時ファイルは削除される(のだと思う)。
ということは「タスクが定期的に実行されない環境」で、且つ「プレビュー時にボタンクリックで遷移しないでウィンドウを閉じてしまった場合(あるいはバックボタンをクリックしたり他のページへ移動してしまった場合とか、極端な話ブラウザがクラッシュしたとか等)」は、一時ファイルは残るということ。実際にそこそこのボリュームのサイト制作後にディレクトリの中を見ると、結構残ってる。使い方が悪い? って言えばそうなのかもしれないけど「一時ファイル残るかもしれないから気をつけろよ」ってのも何だか違う気がする。

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati


2008年1月 4日(金)

Ajax 月送りカレンダー(MT4版)

以前、MT3.xの時のテンプレートでは、カレンダーのhtmlを生成してiframeで呼び出して表示するようなことをしていましたが、サイドバーパーツと同じく小粋空間でajaxで処理する方法が紹介されていたので取り入れることにしました。
以前と違って祝日が赤で表示されたり、webを見ている当日の日付が四角で囲まれたりして結構分かりやすいです。
で、このblogではスタイルシートでエントリーの投稿があった日はボールドで表示し、そこにマウスカーソルを合わせると日付の文字サイズが大きくなるように細工してみました。

cf)スタイルシートに以下を追加する。
#calendar td a {
font-weight: bold;
}
#calendar td a:hover {
font-size: 150%;
}

Ajax 月送りカレンダーMovable Type 4 版の Ajax 月送りカレンダーのカスタマイズです。リアルタイムカレンダー(本日の日付の装飾)および土・日・休日表示も盛り込まれています。 MT4 では、MT3 で@紹介した「Ajax 月送りカレンダー」とは、アーカイブマッピングの方法が異なっており、「MT4でのカスタマイズ方法が分かりません」というリクエストを頂きましたので、本エントリーにて説明致します。
Ajax 月送りカレンダーの概要は割愛します(「Ajax 月送りカレンダー」をご覧ください)。

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati


2008年1月 3日(木)

Ajax によるサイドバーパーツのモジュール化

MT4.0になってからも、MT3.xの時に作ったテンプレート&スタイルシートでやってたんですが、年末年始の休み中にMT4.0流のテンプレートにしてしまおう、ということで色々調べてみました。
MT4.0のテンプレートでは、アーカイブの種類ごとにテンプレートを書くのではなくて、ヘッダとかサイドバーとかのパーツごとにテンプレートを書いて、アーカイブを吐き出す時に書くパーツを呼び出してhtmlを生成する、なんてやり方になっているようで、そうするとサイドバーに最近のエントリーとか最近のコメント、トラックバックなど、度々データが入れ替わるようなものを付けるとエントリーを投稿するたびに全再構築、なんて羽目になるのでこれが大問題、どうするかと考えてたんですが、小粋空間にPHPでなくてもajaxでパーツを作ってサイドバーに表示させる、なんて方法が書かれていたので、取り入れてみました。なかなか良い感じです。

Movable Type のサイドバーの各リストを、Ajax でモジュール化を行う方法を紹介します。 1.PHP モジュール化と Ajax モジュール化の違い Movable Type における PHP モジュール化には次のようなメリットがあります。
  1. 再構築時間の削減
  2. アーカイブに依存しないリストの生成(今回はここに言及しません)
ただし PHP モジュール化は、ユーザがブラウザからインクルード元のページにアクセスした時、インクルード元のページはインクルード先の各モジュールを読み込んだコンテンツを生成・返却するため、サイドバーに多くの情報をインクルードしていると、PHP でページを生成する分、表示が遅延します。 本題とはそれますが、WordPress で表示までに若干のタイムラグが生じるのは、この PHP によるページ生成が行われるためです(キャッシュや条件付きGETが機能していればこの限りではありません)。 Ajax モジュール化を利用すれば、サイドバーの情報は非同期で表示させられるので、ユーザはページをストレスなく閲覧することが可能になります。
再構築時間は PHPモジュール化と同じ効果があります。

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati


2007年9月19日(水)

Movable Type 4.01リリース

MovableType4.01がリリースされました。
バグフィックスとのこと。

Movable Type 4.01 のバージョンアップ内容は以下の通りです。

アップグレードの種類
バグ・フィックスおよび、XSS の修正 (1カ所)。

アップグレードの必要性
強く推奨。すべての 4.0 ユーザーは、4.01 へアップグレードをすることが強く推奨されます。

パフォーマンスの改善
MT4 の管理画面の操作、および再構築に関連する、重要な修正がおこなわれています。MT4.01 にアップグレードすることで、パフォーマンスの改善が期待されます。

プラグインへの影響
影響は想定しておりません。ただし、Movable Type Perl API のバグ修正がおこなわれているため、なんらかの影響がでる可能性はあります。

デザインテンプレートへの影響
影響は想定しておりません。サーチ結果を表示するページのデフォルトテンプレートが、XHTML1.0 Transitional の仕様に則るために若干の修正がされています。

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati


2007年9月14日(金)

goo RSSリーダーで日時がずれる

goo RSSリーダーで自分のblogのフィードを見ていたら、時間が9時間ずれてる。。。
これってどっちのもんだいなんだろうか・・・

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati


2007年9月10日(月)

QuickPlugins for MT

QUICK-SOLUTION.COMが、Movable Type4のプラグインとして動作するオールインワンパッケージ『QuickPlugins for MT』を発表。3.3xでも動作するようで、これを使えばwebショップの構築が比較的簡単にできそう。

QuickPlugins for MTとは ネットショップに必要な機能を盛り込んだ、簡単で便利なFlashショピングカートシステム『QUICK CART』とFlashベースのお問い合わせフォーム『QUICK FORM』Flashベースの簡易投票システム『QUICK VOTE』をMovable Typeの管理画面内で簡単に設定できるプラグインです。Movable Type4に完全対応しており、バージョン3.3xでも動作いたします。

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati


2007年8月29日(水)

MT4.0とSQLite3

MT4.0はSQLite2には対応していますが、SQLite3には対応していません。
対応させられないこともないようですが、著作権云々を考えるとバージョンアップして対応するのを待った方が良さそうな感じ。
で、ついでなのでMS-SQLに対応してもらえないかなぁ、とか(笑

Movable Type 4.0のダイナミックパブリッシングは、MySQL、Postgresと、SQLite version 2に対応しているが、SQLite version 3には対応していない。これにはちょっとした面倒な事情があって、phpではMySQL、Postgres、SQLite2の拡張モジュールはあるのだが、SQLite3の拡張モジュールは標準的には存在しない。PDO (PHP Data Objects)という拡張モジュールを経由すればSQLite3を利用することができるが、MT4はそれには対応していない。
だから、SQLite3を使ってセットアップすると、MT4 CMSではダイナミックパブリッシングに変更するためのオプションすら表示されないはず。
[これはうざい]
のでMT4をpdo_sqliteに対応させてみた。
大した改造ではないのだが、ここにその詳細を示すのは派生著作物をpublishすることになるのでやめておく。ただし変更内容はSixApartに送付してあり、4.0xでは反映されるかもしれない。仮に反映されなかったとしても、さらにもう少し待てばMTOSがリリースされ、その時には公明正大にGPLで公開するつもり。

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati


2007年8月29日(水)

MovableType4.0 on IIS

このblogはIIS上でやっているのですが、アーカイブフォルダを生成する時にUnixとは異なり、パーミッションを777でフォルダを生成するって作り方ではないので、デフォルトのままにしておくとエラーを吐くことがあります。(下記参照)
過去に自分で書いておいて忘れていたので対処しました。MT4.0だと107行目にあたります。

lib>MT>FileMgrとフォルダを順に開いていくと、 「Local.pm」と言うファイルがあります。このファイルの104行目に「File::Path::mkpath([$path], 0, 0777);」と言う記述をがあるので、「File::Path::mkpath([$path], 0);」に変更しておきます。 「0777」は、アーカイブにフォルダを自動生成する際に、パーミッションを「777」にして生成する と言うオプションですが、 IISでこのオプションを付けているとエラーが出る場合があるようです。

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati


2007年8月28日(火)

MT4.0でクイックポスト

MT4.0でクイックポストをどうやって仕込むのかがよく分からなかったわけですが、FireFoxだとエントリーの投稿画面にある
Hori's Weblogへクイックポスト - このリンクをブラウザのツールバーにドラッグすれば、興味のあるウェブページを見つけたときにいつでもブログを書くことができます。
って書いてあるそのまんまをやればブラウザのツールバーにクイックポストのリンクが出来上がります。
FireFoxだとそうやって素直にできる訳ですが、Internet Explorer 7.0 だと同じようにやってもリンクを作ることができない。いつも使っているVistaマシンはちょっと動きが怪しいところもあるので、もう1台あるXPで試してみたわけですがやっぱりダメ。
とりあえずFireFoxでやれば事は足りるので良いと言えば良いのですが、なんか間が抜けているというか何というか・・・
それと本来は、MT3系列の時と同じように、マウスの右クリックメニューにクイックポストを仕込みたいわけですが、どうもそういうような仕掛けはデフォルトで用意されていないようで、、、

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati


2007年8月28日(火)

MT 4.0のMTEntriesでsort_orderがきかない

MT4.0でバグがあるらしいです。
ContextHandlers.pmの2917~2929行目を書き換えると良いらしいんですが、このblogの環境だとmt.cgiが動かなくなり、うまくないらしい。。。

MT 4.0 に上げてから、月別アーカイブなどで使用している MTEntriesタグでsort_order="ascend"が効かなくなった。
いろいろ調べてみたら、sort_byとか言う属性もあるようなので指定してみたけど変わらず。
結局、ソースを追いかけたらどうもMTのバグらしい。
lib/MT/Template/ContextHandlers.pm に以下のパッチをあてたら、無事にsort_order="ascend"が効くようになった。

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati


2007年8月28日(火)

BMQuoteがMT4に対応

BMQuoteがバージョンアップしてMT4対応になりました。
前のバージョンだとMT4では使えないそうなので早めにアップデートしましょう。

MovableType用BMQuote Plugin が、MovableType 4に対応しました。
MT4をお使いの方は、ぜひ、お試しください。

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati


2007年8月16日(木)

MovableType4.0で右クリックメニューからQuickPost

MovableType4.0になる前は、マウスの右クリックメニューからQuickPostを選択すると、エントリー投稿画面が出てきてたんですが、MovableType4.0で同じ事をするのにどうやって設定するのかが分からない。

普通のエントリー投稿画面の下の方に、「Hori's Weblogへクイックポスト - このリンクをブラウザのツールバーにドラッグすれば、興味のあるウェブページを見つけたときにいつでもブログを書くことができます。 」なんてのがあるんですが、これの使い方も良く分からない。。。orz

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati


2007年8月14日(火)

MovableType4.0にしたのは良いですが

再構築にやたらと時間がかかりますね。10時間近くかかった気がします。かなり異常。。。
サーバがWindowsだからなのかなぁ。perlのバージョンとかで変わるのかしら。情報求む(笑
再構築の負荷が高くて落ちてしまったら色々迷惑をかけるので、当座の処置としてmt-config.cgiでEntriesPerRebuildを10に指定して同時に再構築される数を制限してサーバの負荷を下げてあります。

それと、タグ周りも変わってるはずなのですが、いかんせん情報が少ない。
少なくとも開発元のSixApartには公式なドキュメントの整備を早急にしてもらいたいものです。
また、プラグインに関しても、どれが4.0で使えるものなのかはっきりしません。一覧表が欲しいところです。

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati


2007年8月14日(火)

CAPTCHA機能を有効化

そういえばMT4.0にはCAPTCHA機能が付いてたはず、ということで有効にしてみることにしました。
うまく動くでしょうか。

人気Blogランキングへ   人気Blogサーチ[xoops]   technorati