Home > Internet > Movabletype > アーカイブ表示をAjaxで(紹介編)

アーカイブ表示をAjaxで(紹介編)

最近取り上げてないAjaxネタですが、Movalog: Making Movable Type Jump Through Hoops で見つけたネタを、チョット試してみたので紹介します。

とりあえず、元のまま設置したページがあるので、そちらを見てください。
オラオラ - Archives
カテゴリーと月別のプルダウンがあると思います。これを選択するする事で、該当するアーカイブが表示されます。

*注意 カテゴリーはアルファベット・オンリーの物しか表示しません。月別は有ある理由によりエラーになります。

元情報は「Ajax Archive Drop Downs | Archiving Archives | Movalog: Movable Type Tips & Tricks」のエントリーです。

全体の仕組みと動きを言うと、ヘッダ部にAjaxコードを定義し、表示するテンプレート内にselectリストを作成、onchangeでAjax関数を呼び出し、その中で該当エントリーをリストするPHPスクリプトへと処理を渡してます。
つまり、実際のリスト表示がPHPスクリプトで行われてるんですが、これの面白い部分はこのスクリプトがダイナミック・パブリッシングにより処理される事なんです。

つまり、このPHPはSQL文でデータベースから読み出すのではなく、MTEntriesタグ内に記述したMTのテンプレートタグにより、内容を表示してるんです。

これは、面白いですよ。Ajax+ダイナミック・パブリッシングのこういう使い方って、考えたこともありませんでした。2年半前の記事ですけど、まだまだ面白い情報出てきますね、ダイナミック・パブリッシングは。というか、取り上げられなさすぎたんですよ、今までは。

ちょっと、現状で何が問題なのか説明します。

一番はやっぱり、文字コードの問題。
Ajax は UTF-8 に自動的に変換してポストされるってやつ。
逆に言えば UTF-8 サイトなら問題なく使えるんじゃないでしょうか。

うちで日本語カテゴリーが表示されないのは、これが理由です。つまり、ポストした結果が UTF-8 になって、別な文字になってしまい、そのカテゴリーマッチするエントリーが存在しないのです。

ただし、今までのものと違い、今回データを送っている相手はPHPスクリプトです。出力の文字化けと併せて、PHPスクリプト内で対処できるんじゃないかと思ってます。

もう一つ、月別アーカイブなのですが、これは単純な理由です。カテゴリーの指定が無い状態で、PHPスクリプトを呼び出しているから。結果として category="" となってしまっているのが、エラーの原因です。

試しにこの部分を削除すれば、ちゃんと表示されるようになります。
ここら辺は UI の練り方なんでしょうが、カテゴリーと期間を指定して表示させるとかの UI の方が、良いような気もしますし、ここは修正するべきでしょうね。

新デザインには、このアーカイブ・ページを付けれたらと思っていますので、EUC版はしばらくお待ちください。

ping a Trackback

TrackBack URL for this entry.(1)

Please! leave a Comment.

スクリプトの読み込みが完了していません。

Sign in Sign in Sign in

メールフォーム(Javascriptを使用していません)や、twitter.pngTwitter経由のCommentでもReplyいたします。ただし返信はブログのコメントとして行う事もあります。

Comment Form

QuickTagsHere

EmoticonHere

(入力しない場合「Anonymous」で代替されます)
(公開はされませんが、Gravatarアイコンの取得や、Comment Subscribeの送信先アドレスとして使われます)
(入力すると、コメント表示でユーザー名にリンクが貼られます)
(この情報は、JavascriptによりCookieに保存されます。)

NotifyMail Powered by Comment Subscribe

はてブコメント:

Home > Internet > Movabletype > アーカイブ表示をAjaxで(紹介編)

MT5Techniques

MT5Techniques

2冊目の共著「Movable Type 5 実践テクニック」(シックスアパート監修)が出版されました。(ソフトバンク クリエイティブ刊)

検索
(5)
(6)

別ページに遷移します。

Powered by Hyper Estraier

Feeds
Link Status
In One

なかのひと

位置情報ブログパーツ「なかのひと」

Links
Powered By

Return to page top