やっぱりMovableType4はいろいろダメだと思った本日のニュースとネタをお届けします
今日ほどゲンナリした日はありませんでした。
1時間かけてみっちり書いた文章が水の泡になりました。
そのあと必死に書き直した1時間の文章も危うく電子の海に沈むところでした。
それもこれもMovableType4のせいです。
あいまいなオートセーブ機能をはじめ、
謎のiframe厨仕様。
ちゃんと保存してくれているの?
なんで1世代+1記事+1セーブまでしか保存してくれないの?
なんでiframe使ってるの?
もうヤダー。
そんなこんなで熱い情熱と凍てつく悔恨を胸に書いた記事です。
見てやってください。
→ [MovableType4の検索結果の自作ダイナミックパブリッシング化解説・上]
![]()
唐突ですがTRASH-NEWSの検索結果がすこし見やすくなりました。これまでは検索で引っかかった記事本文の全文を表示していましたが、このたびGoogleやYahoo!などに準じた表示形式(マッチした検索語の前後数十文字をつなげて表示)に切り替えました。またそれに応じて表示件数も4件から10件に。すっきりしました(ex. 『秋葉原』の検索結果)。
TRASH-NEWSではブログ作成ツールとしてMovableTypeを利用しており、このMovableTypeには標準で検索エンジンが付属しています。MovableType4は検索エンジンが3時代より改善されたようですが、かわりに“謎のエラー(検索失敗)”をしょっちゅう起こすようになりました。どうも検索処理に高い負荷がかかる設計であるようです。10件しか記事がないときから既に“謎のエラー”が起きていましたから、これが1,000件単位の記事になったとき果たしてどうなるか ガクブルがとまりません。こんな虚弱な検索エンジンに重荷など背負わせられない!
そこで検索結果をキャッシュする仕組みに作り替えました。以下PHPのプログラムの話です(MovableType4を前提として書いていますが同様のことはMovableType2/3でも可能です)。MovableTypeの改造に興味のある方はどうぞ。
このカスタマイズに際してはいじる場所が多いのですが、MovableTypeの設定自体はほとんど変更しないのでバージョンアップにも柔軟に対応できるのが強みです(すべてダッシュボードで変更できる範囲内)。またプラグインいらずであるため精神衛生上も安心です。
まず最初のステップは検索語を送信するフォームをmt-search.cgiから切り替えること。formのaction先をsearch.php(自作するプログラム)に書き換える、と書けば話が早いでしょうか。ここでこのsearch.phpの役目は大きく3つ。
つまりsearch.phpはキャッシュを作成・管理・表示させるためのゲートウェイプログラムとして使います。このPHPのプログラムを利用するメリットは検索結果がキャッシュされるためmt-search.cgiへのアクセスが減り検索ミスの心配が少なくなること。一度mt-search.cgiを経由して検索結果を取得すれば一定時間はその検索語に対して検索処理が行われません。MovableType風に言えば『検索結果のダイナミックパブリッシング』ですね。
また検索語や検索結果をPHPで自由にいじれるため、検索ランキングコーナーやページ分割機能(Pager)を簡単に作ることが出来ます。いままでプラグインなどを要したものがPHPの外部ファイルをひとつ置くだけで解決してしまう、それがこのsearch.phpの最大の魅力かもしれません。冒頭の“検索結果の表示件数を調整した/表示形式をGoogleライクにした”というのもこの方法なればこそです。
ここでいったんsearch.phpから離れて、システムテンプレートの『検索結果』をカスタマイズします。このテンプレートを以下のように書き換えます。
<MTSearchResults>
<$MTEntryID$><>
<$MTEntryTitle encode_html="1"$><>
<$MTEntryLink encode_html="1"$><>
<$MTEntryBody encode_html="1" convert_breaks="0"$><>
<$MTEntryDate format="%Y%m%d"$><>
<$MTEntryKeywords encode_html="1"$><>
<MTEntryTags glue="," replace='"',""">
<$MTTagLabel$>
</MTEntryTags>
<EOL>
</MTSearchResults>
上記のようにwebアプリでよく用いられる"<>"セパレート形式で加工用データを吐き出すようにします。つまりhttp://(URL)/mt-search.cgi?IncludeBlogs=1&search=(URL変換した検索語)にfile_get_contentsをかければ上記のような書式の文字列がずらずらと取得できる寸法です。
閑話休題、URLにアクセスしてデータを得るくらいなら直にMovableTypeのデータベースにアクセスしてデータを引っ張ってきたほうが早いじゃないか とは思いますが、今後のアップデートでデータベースの仕様が変わらないともいえませんし、データベースの種類に関わらず利用できる手法ということでこのような手法をとっています。URL取得できるということはAjax展開も出来ますしね(と同時にセキュリティ面を考慮してmt-search.cgiは保護/隠蔽するなどすべき)!
さて本論に戻りますが、取得してきたデータはimplodeで配列に分割し、そのデータを適宜加工した後serialize関数でファイルに保存できるように変換、キャッシュ用のディレクトリに保存します。このあたりの作業はシステムテンプレート側でも出来るので、そこはどちらでも。またここでxml形式で保存するようにすれば使い道がいろいろと増しますね。
ここまでの工程で検索結果のデータをPHPで加工しやすいかたちに整形してキャッシュすることが出来ました。あとはこれを表示するだけなのですが、うまくこなすためにはその解説に多くの文章が割かれそうなので以下次回に続きます。
余談。
MovableType4の最悪な点。一度タイムアウトでログアウトしてから(それに気づかず)記事を投稿すると、不明のエラーが起きて書いていた記事がすべて消えてしまう。ログアウトした時点でご自慢のオートセーブもストップしてしまうのでまったくアテにならない。なぜかウチの環境では15分おきにタイムアウトを起こしてしまうようなので実に良い死活問題。無線LANがブチブチ切れるからだとか、そういった理由なのかしら 。なんにせよ非常にやるせなくなります。
ちなみにOperaのもつ便利機能『戻るボタンを押してもフォームの中身を復帰するよ!』も、iframeの中のフォームまでは復帰不能。iframeをわざわざ好んで使うwebツールなど滅びてしまえ。
というわけでこの記事はパトスをたぎらせた1時間と涙にぬれた30分と涙をぬぐった30分をかけて半ばやっつけ気味に書かれました。そういう防衛線。
[ 関連キーワード : (キーワードは登録されていません) ]
毎週ヘタなマンガ編集者よりマンガを講読したり外遊先にまでマンガ雑誌を取り寄せて読書にふけったりするナイスミドルが外務省の大臣になって久しくなりましたが、そんな彼・ローゼン大臣がこのたび第2回国際漫画賞を開催するそうです。もともと国際漫画賞はローゼン大臣の発案により今年創設された賞。7月に行われた第1回は運営側の不手際により対象作品が公募ではなく関係者の推薦によりノミネートされるという、決してオープンとはいえない形態となってしまいました。
アニメ!アニメ!によると第2回となる今回はきちんと“誰でも参加出来る漫画賞”となるようです。以下公式サイトの応募要項(pdf)より抜粋します。
1. 目的
海外での漫画文化の普及2. 応募作品
(1) 日本国外で制作された漫画(MANGA)作品(4ページ以上)とする。(制作時期及び発表・未発表は問わない。)ただし、第1回国際漫画賞受賞作品及び同奨励賞受賞作品を除く。
(2) 応募作品の提出は、紙媒体に限る。
(3) 日本国外の出版社等は、作者に応募の意思を確認の上、本賞に応募することができる。
コレ↑を読めばおわかりいただけると思いますが なんとこの賞は日本のマンガは対象となっていません。日本で開催される賞なのに!
世界でもっとも(おそらくは段違いに)読まれているMANGAは日本のものでしょうし、“国際”なればこそ日本も含めた全世界のマンガが対象となるべきではないでしょうか。日本のマンガがノミネートされれば審査に優勢に働くから、日本のマンガのレベルを考えれば他国のそれと比肩させることなどナンセンスであるから さまざまな考えがあるのかもしれませんが、僕としては日本のマンガが世界の土俵に立つ日を夢見ていますし、おそらくは全世界の人がガチンコの対決を望んでいるのではと思います。
そもそも『漫画』の定義もよくわかりません。シュールな2コママンガ(元日の読売新聞に掲載されているような)のことをさしているのか、ストーリー漫画のことをさしているのか。応募要項には4ページ以上の作品とあるのである程度のストーリーは要求されていますが、逆にそれ以外に規制らしい規制がないためどんな漫画を応募すればよいのかわかりません。作家も困るでしょうし審査員も困ります。マンガ誌の新人賞だって各賞(誌)ごとに性格があるため大体の基準にはなります。国際漫画賞が求めているのはギャグマンガなのかストーリーマンガなのか“魅せる”マンガなのか 部門賞を開設しないと絶対にカオスなことになる! いまから予言しておく!
関連して『萌え』が通じる審査員かどうかも非常に大事。どうにもこのテの賞ではとかく『萌え』がマイナス評価されていそうなので不安になってしまいます。大臣の好きなローゼンメイデンが評価される漫画賞でなければ日本人としてはつまらないものになりそうですよ。全世界10億人(推定)のOTAKUにも不評であること間違いなし。『海外での漫画文化の普及』という目標も薄っぺらい物に思えます。なんだかんだでマンガ(MANGA)のなかで『萌え』は既にはずせない要素になっているはず。『萌え』も美意識のひとつとしてカウントされて然るべきです。
もし本当に『マンガのノーベル賞』を目指すのであれば、もっとしっかりとしたコンセプトをもって、しっかりとした評価体制を整え、しっかりとした応募要項を用意して開催するべきではないでしょうか。日本のマンガはマンガ以外の書籍をはるかにしのぐ売り上げと人気を持っている文化。本国では“カルチャー”としか扱われないマンガが世界のひのき舞台で“文化”として花咲ける日を僕は願ってやみません。
[ 関連キーワード : (キーワードは登録されていません) ]
| 記事タイトル | ||
|---|---|---|
|
2007年12月24日 01時更新 人気記事ランキング |
||
| 1 | メガバカアフター ~ マガジン編集部がトレスを認めて謝罪 | 66 |
| 2 | DS版DQ5に“新たなる人生の選択”が追加されるよう | 36 |
| 3 | FFT-A2のクリア後レビューと感想(ネタバレなし) | 31 |
| 4 | 気になったニュース(12月20日版) | 29 |
| 5 | MovableType4の検索結果の自作ダイナミックパブリッシング化解説・上 | 20 |
| 6 | 外務省、マンガのノーベル賞を目指して第2回国際漫画賞開催 | 19 |
| 7 | Windows XPのSP3は思いのほかスゴいらしい | 18 |
| 8 | コミケ73「I've MANIA Tracks Vol.I」 収録曲が公開 | 13 |
| 9 | DivX Proのシリアルナンバーが期間限定で無償配布 | 12 |
| 10 | Adobe Flash CS3 Video Encoderで動画をエンコしてみました | 10 |
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| « 11月 | - | 01月 » | ||||
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 | |||||
