2009年3月の投稿

2009-03-01
雨時々止む

iPotch テーマを修正

ゆりこ による 17:50:50 の投稿
カテゴリー: WordPressハック
タグ: , ,

iPotch テーマ画面

先日配布開始した iPotch テーマですが、固定ページ (静的ページ) を表示できない不具合がありました。さっそく修正版を配布いたします。同時に最近のコメント一覧でもコメント数を表示するよう改善を図りました。

iPotch テーマ: ipotch101.zip (14.7KB)

当該テーマをご利用の方は、お手数ですが、差し替えをお願いいたします。今後は、テーマの更新について、通知できる仕組みを考えないといけませんね……。

Ktai Style 1.48 附属の Redportal テーマも、ナビゲーション部分が日本語にならず英語のままという不具合を見つけたんですが、これは Ktai Style 1.49 の配布まで待つか、テーマファイルだけ差し替え配布すべきでしょうか。1.4x 系統の利用者は少なそうなんですが、困っている方がおられれば、別途配布も検討します。

余談ですが、この投稿に「Ktai Style, テンプレート, iPotch, 最新版」というタグを付与して「iPotch+最新版」という複合検索で探せるようにしたら、「Ktai Style+最新版」にもマッチしてしまいました。やむなく「最新版」は外しました。「Ktai Style の最新バージョン」にマッチするには「Ktai Style+プラグイン+リリース+最新版」とかにした方がよさそうですね。過去の投稿を修正しなければ……。

2009-03-02

ポップアップ式ページ遷移メニューの間引き

ゆりこ による 00:34:49 の投稿
カテゴリー: WordPressハック
タグ: , ,

Ktai Style の附属テンプレートでは、各種アーカイブ (月別/カテゴリー別/タグ別など) では、分割されたページに簡単に遷移できるよう、ポップアップ式 (プルダウン式) メニューを装備しています。これは ks_posts_nav_dropdown() テンプレートで実現しています。本当は最新記事でも表示させたいですが、全ページが100ページとかあると、100ページ分のメニューが入ってしまって選ぶのが煩雑であり、HTML が数KBに渡るためパケット料金も嵩むという問題があるため、やっていません。

しかし、ふと、phpMyAdmin のように、ページ数表示を間引きすればいいのではないかと思いました。phpMyAdmin もポップアップ式のページ遷移メニューがありますが、数が多い場合は適宜間引きされています。前後 ±1, ±2, ±3, ±4, ±5, ±10, ±20, ±50, ±100, ±200, ±500, ±1000,… だけに絞れば、もし1500ページあっても、最大25個で済みます。これならば、携帯電話でも選べるでしょう。

間引きしたメニュー

試しに実装してみたところ、全741 ページある Yuriko.Net 旅行記でも実用になりそうですね。24ページでメニューを出すと、1, 4, 14, 19,…, 29, 34, 44, 74, 124, 224, 524, 741 となって、いい感じです。複数ページへのリンクを並べる形式のナビゲーションメニュー (*)は、携帯電話ではすべてのリンクがカーソル移動の対象になるため、選択が面倒です。ポップアップ式のメニューであれば、メニューを開かない限りメニュー自体をスキップできるので、携帯電話では使いやすいインターフェースなのです。Ktai Style の次のバージョンではこれを実装してみる予定です。

(*) いちおう、こういう形式のメニューもテンプレートタグ ks_posts_nav_multi() として準備していますが、附属テンプレートでは使っていません。

2009-03-03
雨

スラド風テーマも作ってみる

ゆりこ による 02:48:24 の投稿
カテゴリー: WordPressハック
タグ: , ,

Masayan さんところで、WordPress ユーザーの携帯サイト画面を載せてみるという企画がされていたんですが、をかもとさんの「ウチのところは、元々 Livedoor blog だったので、なんとなく Redportal テーマがしっくりくるのです」という発言には感銘を受けました。Redportal テーマは、附属ドキュメントにも書いてある通り、Livedoor ブログの携帯版に似せて作ったもです。はっきり言ってシャレで作ったのですが、なぜか人気があって、採用例が多いです。

その理由がよく分からなかったのですが、「以前 Livedoor ブログを使っていた」というのは、その1つとしてありそうです。となると、いろんなブログサービス・ウェブサービスの画面を似せた携帯テーマはウケるかもしれないですね。以前から、「はてなダイアリー」の携帯版テーマに似せたものを作ろうかと思っていますが、人によってかなり見た目が違っていて「似せるモト」が定まっていません……。

Arege テーマ画面

ということで、特徴がはっきりしてて作りやすいものとして、スラッシュドット風の携帯テーマを作ってみました。濃緑と角丸長方形を入れたらしまいという気がしますが、けっこう工夫があります。スラッシュドット・ジャパンはモバイル版もあるんですが、これはスマートフォンに最適化されているようで、通常の携帯電話ではかなり貧弱な表示になってしまいます。ひょっとすると、今回作ったテーマの方が見栄えがよいかも??

しばらくは、当サイトの携帯版をこのテーマとしてみますので、興味ある方はいじってみてください。残念ながら、このテーマを実現するために Ktai Style 本体もいじっていますので、テーマのみの配布はまだできません。Ktai Style 1.71 のベータ版を出すときに同梱してみましょうか。Ktai Style の機能追加ですが、「ページ一覧」のメニューを出すテンプレートタグ ks_pages_menu() が背景が濃い場所での使用を考慮していなかったため、リンク色を指定できる機能を追加して白い色などに変更できるようにしています。

テーマ名称は、当初「VirguleDot」を検討していましたが、なんかいまいちなので素直に「Arege」に変えました。Slash を Virgule と言い換えて、他にない造語「VirguleDot」を作るというやり方はよいのですが、発音しにくくて通りがよくなかったので……。

[追記] Ktai Style 1.71-beta1 に同梱して配布開始しました。

2009-03-04
晴れ

葛西区民館のサイトURL変更

ゆりこ による 02:47:46 の投稿
カテゴリー: WordPressハック,ネットワーク
タグ: , , ,

3月1日に東京都江戸川区がウェブサイトをリニューアルしたため、施設を紹介するページの URL が軒並み変更されてしまいました。来たる4月12日に開催される WordCamp Tokyo 2009 の会場である葛西区民館も例外ではありません。

旧URL:
http://www.city.edogawa.tokyo.jp/institution/01kuyakusyo/kuyakusyo03_02.html
新URL:
http://www.city.edogawa.tokyo.jp/shisetsuguide/bunya/kuyakusho/kuminkan/kasai/

WordCamp Japan の公式サイトは変更ずみです。もし、自身のサイトで WordCamp Tokyo 2009 を告知していて、葛西区民館へのリンクを張っているならば、変更されることをおすすめします。

江戸川区がウェブサイトをリニューアルすることは結構なことですが、URL の変更は避けて欲しかったですね。個人サイトならともかく、地方自治体なのですから「クールな URI は変わらない」を実践してもらわないと……。最悪、URL 体系を変更したならば、旧 URL から新 URL へのリダイレクトを実施してもらいたいものです。江戸川区経営企画部広報課に、リニューアルを担当した業者がどこか質問かなあ?? 利用者に迷惑をかけているわけで、URL の変更を是とした業者はサイテーですね ;-)

[追記 2009-03-18] 江戸川区の広報課に電話で尋ねてみました。全職員がウェブ更新できるよう CMS を導入したため、URL の変更が不可避となったとのことでした。CMS 導入にあたっては外部の業者を利用したそうですが、そのときに URL の維持をする検討は、業者・区役所どちらもしなかったようです。あかんやん!! 古い URL からリダイレクトは、サーバーも変わってしまったためできなかったそうです (そんなことはないので単に技術が低いだけって気が……)。URL は電話番号と同じ性格のもので、できれば100年(!)は維持してもらいたいと要望しておきました。結局のところ、業者・区役所ともに「ヘボ」ということに違いなさそうです ;-)

2009-03-05
晴れ

ポップアップ (プルダウン) 式のアーカイブ・カテゴリー選択

ゆりこ による 17:17:25 の投稿
カテゴリー: WordPressハック
タグ: , ,

Ktai Style 1.70 で、ポップアップ (プルダウン) 式のカテゴリー選択メニューを表示するテンプレートタグ ks_dropdown_categories() が追加されました。実は、月別アーカイブもポップアップで選べるよう実装を企んでいましたが、実装がかなりアドホックで動作も微妙だったため、1.70 には入れられませんでした。そろそろ 1.71 のベータ版を配布しようと思っていて、ベータ版なら大丈夫だろうということで、実際に組み込んでみました。

ポップアップ式アーカイブ選択メニュー画面 ポップアップ式カテゴリー選択メニュー画面

試しに、旅行記の方に、両方入れてみました。Q & A に書いてある通り、mova, ソフトバンク PDC など表示サイズが厳しい端末で常にページ分割が発生するという不便が出るため、3G 端末・スマートフォン・ウィルコムのみ、そういう表示にしてあります。mova, ソフトバンク PDC では従来通り、アーカイブ一覧・カテゴリー一覧ページへのリンクとなります。

月別アーカイブは30個ぐらいしかないので、まあまあ使い勝手がいいと思いますが、カテゴリーは数が多すぎる (現在87個) ため、見た目も悪く使いにくいですね……。まあ、通常はカテゴリーが30個ぐらい、アーカイブが60位 (5年分) になるパターンが多いでしょう。いずれにせよ、ポップアップ式の選択メニューは数が少ないときしか使いものにならない、ということにご注意ください。このため、附属テンプレートでの採用予定はありません。

以前、ヤプログの携帯版は、月別アーカイブ・カテゴリーアーカイブどちらもこういうインターフェースだった気がするんですが、いつの間にか月別アーカイブがリンクに変更されていました。数が多い人への配慮でしょうか??

Ktai Style 1.71 ベータ1配布

ゆりこ による 21:55:33 の投稿
カテゴリー: WordPressハック
タグ: , ,

Ktai Style 次期バージョン 1.71 のベータ版 (その1) を配布いたします。1.70 からの変更点は以下の通りです。

  • 去年以前の日付表示が UTC (世界標準時) を基準にしていた不具合 (日本時間設定の場合、0時〜8時59分の投稿で日付が1日ずれる) を修正しました。
  • 投稿者別の表示をさせたとき (URL が ?author=1 とか /author/admin/ などの場合)、タイトルに投稿者名が表示されず「による投稿」となっていた不具合を修正しました。
  • EZweb 端末でダッシュボードやコメント管理画面を使用したとき、「返信」リンクに不正な文字 (たいていの場合 ? 表示) が付与していた不具合を修正しました。
  • Default, Classic テーマの「最新コメント」表示で、コメントとトラックバック・ピンバックを混在させて表示しているときでも、「コメント」「トラックバック」など種別表示をやめました。絵文字アイコンが笑顔のときはコメント、家のときはトラックバック・ピンバックで判別可能です。(他のテーマでは種別表示をしていませんので、それに揃えたものです)
  • Green テーマの言語リソースを Ktai Style 本体に移動して、functions.php, ja.po, ja.mo を削除しました。
  • Loving テーマで、フロントページを固定ページにしたとき、「サイトトップ」へのリンクが出てこない不具合を修正しました。「/」を示す言語リソースを Ktai Style 本体に移動しました。(「メニュ〜」が残っているので、言語リソース自体は存続します)
  • Monolith テーマで、archive.php テンプレートと index.php を統合して後者のみにしました。また、言語リソースを Ktai Style 本体に移動して、functions.php, ja.po, ja.mo を削除しました。
  • Redportal テーマで、フロントページのみに適用される home.php テンプレートを新設しました。通常の home.php は2ページ目以降も適用されますが、本 home.php は、2ページ目以降は index.php を使用するよう設定しています。また、パスワード保護された投稿でのコメント閲覧・コメント投稿で、タイトルが表示されるようにしました。
  • HTML タグ前後の1バイトスペースは極力削除しないようにしました。従来、デザイン調整のために空白を入れても、表示時には削除されることがありました。
  • header.php テンプレートで、menu_pages.php テンプレートおよびフッターでページ一覧を表示するときに使う wp_list_pages(), ks_pages_menu() に与えるオプションを $ks_settings['list_pages'] で一括指定できるようにしました。ソート順 (sort_column)、除外するページ ID (exclude) などを指定すると便利でしょう。
  • comments.php テンプレートで、コメント返信用テキスト (reply_text) に絵文字以外の HTML を含めている場合、パスワード保護した投稿でのコメント一覧表示が不自然になる不具合を修正しました (HTML タグを除去するようにしました)。
  • ks_previous_post_link(), ks_next_post_link() の出力が、それぞれ previous_post_link, next_post_link フィルターを通るようにしました。
  • ks_posts_nav_dropdown() を改良して、14 ページ以上ある場合はすべてのページをメニューに入れずに適宜間引くようにしました。これにより、index.php テンプレート等にも ks_posts_nav_dropdown() によるメニューを入れるようにしました (従来は archive.php テンプレートのみ)。
  • 次のテンプレートタグの引数を、配列やクエリー文字列でも可能としました (オプションも増えています): ks_pagenum(), ks_previous_post_link(), ks_next_post_link(), ks_previous_posts_link(), ks_next_posts_link(), ks_posts_nav_link(), ks_posts_navi_multi(), ks_posts_navi_dropdown(), ks_comments_post_link(), ks_back_to_post(), ks_get_recent_comments(), ks_category(), ks_tags(), ks_pages_menu()
  • 次のテンプレートタグを追加しました: ks_post_password_required(), ks_dropdown_archives()
ダウンロード: ktai_style171-beta1.tar.bz2 (312.5 KB)
正式版を出しました

今回はベータ版ですので、標準6テーマの他に、iPotch, Photolog, Arege の3テーマも添付しています。これらは 1.71 正式版には附属しない予定です。

基本的にはバグ取りおよびテーマの調整です。テーマを自作していない人では、機能アップはありません。逆に、テーマを作っている人にとっては、より作りやすくなっていると思われます。

[追記 2009-03-06 22:00] 同梱したテーマのうち、Photolog は飛行機のアイコンが抜けている不具合がありました。当面は テーマ配布サイトから Photolog テーマをダウンロードして、icon.gif を抜き取ってご利用ください。

2009-03-06
雨

PLIMO 開発者は RFC を知らない

ゆりこ による 03:48:22 の投稿
カテゴリー: ソフトウェア,ネットワーク,モバイル・携帯電話
タグ: , , ,

シックス・アパートと株式会社 GENOVAが「Movable Type」をベースとした携帯電話専用CMS「PLIMO」を共同開発したそうなのですが、そのデモサイトの出来にがっかりしました。

まず、デモサイトの URL は QR コードで提供されているのですが「左のQRコードを読み込むと」と書いてあるのに、QR コードは右にあります (魚拓)。それぐらいはつまらない誤記だと思ったのですが、それは第一歩に過ぎませんでした。その、読み込んだ URL が驚愕でした。なんと「http://plimo_salon2.plimo.jp/」というものだったからです。ホスト名にアンダースコア (_) が入っているという RFC1123 (日本語訳その1その2) 抵触モノです!! ホスト名に使えるのはアンダースコアじゃなくてハイフン (-) なのですが、それを分かってないということですよね……。携帯端末とウェブサーバーの間のネットワークに、アンダースコアを含むホスト名を想定していない機器 (プロキシー等) を通った場合、閲覧できない可能性もあります。

また、デモサイトの HTML も、XML 違反があります。48行目「MENU&PRICE」のアンパサンド記号が「&」という記述ではなく「&」となっていて、これがレンダリングエラーになります (Safari とか Firefox で見てみてください)。リンクの色が薄くて見にくいとか、画像の回り込みをテーブルタグで実現しているとか、スペーサー画像の alt 属性が「alt=”space”」だとか、他にもツッコミどころ満載です ;-)

デモサイトは自社の技術力を示すものですから、もっと丁寧に、かつ、しっかり作ってもらいたいものです。GENOVA の方はベンチャーなので、少々ミスがあっても「そんなもんか」と思われるだけですが、共同開発者であるシックス・アパートがこれを見逃しているのは、「ありえない」ことだと思います。

シックス・アパートと言えば、携帯電話向けコンテンツ表示モジュール「TypeCast」を自社開発しているはずですが、それとは別に CMS を作ってしまうとなると、TypeCast はどう位置付けるんでしょうね?? TypeCast は ISP 向けであって、別物ということでしょうか。

PLIMO は、携帯シミュレーターを内蔵してプレビュー時に携帯出力を確認できるなど、斬新な機能があるんですが、根幹の部分がいまいちだと先行きが不安ですね……。せめて、ウィルコムとイー・モバイル音声端末にも対応して「5キャリア対応!!」とかやってくれれば、応援する気にもなりますが。

WordPress の携帯表示を Smarty で行う実装

ゆりこ による 19:47:10 の投稿
カテゴリー: WordPressハック
タグ: , , , , ,

ガイドミーというサイトの管理者ブログで、「Smarty を使って WordPress の携帯表示を行う実装」を披露されているのを見かけました (ソースは未公開)。Ktai Style を使わない理由は「PC と携帯で URL が同一だと Google に嫌われる(と作者が思い込んでいる)」からだと思われます(*)。

ウェブログの DB に直接アクセスして携帯表示を作るのは、MT4iwp-ktai.php の手法ですね。はっきり言うと、第1世代の携帯対応のやり方です。Mobile Eye, Mobile Eye+, MobilePressNEO, Ktai Style は、WordPress のテンプレート機構を乗っ取るというやり方で、第2世代と呼べるでしょう。これは単に設計手法の新旧の違いであって、実装の優劣を述べているのではないことに注意してください。優劣があるとすれば、携帯向けサイトの URL が永続的であるかどうか、です (第1世代は携帯閲覧ツールの寿命に左右されるが、第2世代は左右されず永続的です)。

とはいえ、2009年になって、第1世代の実装方法を新規に行うというのは、大胆です ;-) まあ、Smarty を使っているという点を加味すると 1.5 世代と言えるでしょうし、単純な XSS 脆弱性を起こしにくくなるという面ではよい方法だと言えるでしょう。(WordPress のテンプレートタグを XSS を起こさないように使うのはちょっとコツがいる)

ただ、作者の PHP スキルが、「データ中に??などの文字(バイナリデータ?)が存在するのですが、よく分からないので全部削りました」とか「PHP5.2.6 で date("Y年n月j日 H:i"); の『年』が化けるのは PHP のバグ」と言っているレベルなのが不安です。正解は、「年」を Shift_JIS で書くと2バイト目が「N」なので、PHP 5.1.0 で導入された曜日フォーマット文字「N」と解釈されるため、「年」の1バイトが浮いてしまって化けるためなのです。バグというより、date() 関数の仕様ですね。date 関数で文字エンコーディングを指定できるようになるのがあるべき姿だと思いますが、PHP コードを Shift_JIS ではなく、EUC-JP や UTF-8 で書けば回避できるので、仕様変更の必然性は低いでしょう。PHP コードを Shift_JIS で書くこと自体、あまり好ましくないことですし。

あと、au, ソフトバンク向けにも <!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/2.1) 1.0//EN" "i-xhtml_4ja_10.dtd"> という DTD を出力したり、XHTML なのに <HR size="0.5" color="#ccccff"> とか <br> というマークアップがある (大文字だったり閉じタグがない) のもイマイチでしょうか……。今後はこのへんが修正されることに期待ですね。

(*) 作者は「事実だ」と書いていますが、ログから推測される事項はあくまで「意見」であって事実ではありません。いついつにどういうアクセスがあった/いついつの間のアクセス件数はxxだったというのが事実であって、減った/増えたは統計による推論となるからです。

[追記 5月9日] 作者の翌日のエントリーで「サイトを作る目的は多くの人に見てもらうため」と書いておられました。わたしの考えでは、それに必要なことは、まずウェブ標準/各社の規約に従うこと、次にクールな URI を守ること、そして訪問者の立場でデザイン (見栄え・設計両方の意味) をすることでしょう。Ktai Style はそのような方針で作られています。

他人のフレームワークに左右されたくないという下りは実は同感で、わたしの自作プラグインは、「他人のプラグインが信用できない/挙動が来に食わない」から作ったものがほとんどです。PEAR の Net_UserAgent_Mobileなどを使わないのもその理屈です。

2009-03-08
晴れ

ケータイ大喜利入れ替え戦第2回も敗退

ゆりこ による 01:17:17 の投稿
カテゴリー: テレビ・メディア
タグ: ,

ケータイ大喜利の入れ替え戦第2回となる今回の放送も読まれませんでした。今回はお題1つで20分の放送だったのですが、ルーキーの採用が目立ちました。メジャー・オオギリーガーは、お題が事前に通知されて先に投稿できるのですが、その事前投稿ネタが奮わなかったのだと思われます。そのためか、お題が微調整されてしまいました。それにより、余計にメジャーのネタが減ったのだと予想されます。

わたしの没ネタをさらしておきましょう。「衛星から」は「魚群探知機で見るサバ特集!」(うなぎのぼりさん) に似てるので、ちょっと惜しいなあ。最終回ネタに固まってしまったのもよくなかったかも。あらゆる方向から作ろうとしましたが、なかなか出てこないものですし。

ドキュメンタリー『動物大王国』テレビ欄の見出し
  • ナマケモノをスローモーションで追う
  • 亀は本当に万年生きられるか?死ぬまで生中継
  • 衛星から激写!アリの大群
  • 牛丼の材料、大集合!
  • 暗視カメラが壊れた!夜のサファリパーク生中継
  • 珍獣ハンターがセーラー服を脱ぐ!
  • 最終回!お金がないので全編CMです
  • 最終回!いままでの動物が亡骸で登場
  • 突然ですが最終回!スタッフが猛獣に……
  • 最終回!いままでの全100回を早回しで一挙放送
  • アマゾンの決闘!出会った他局スタッフと密林でじゃんけん (放送中に投稿)

さあ、残留戦の最終ラウンドに向けて投稿かーー。

2009-03-11
晴れ

Ktai Style 1.71 ベータ2配布

ゆりこ による 20:26:59 の投稿
カテゴリー: WordPressハック
タグ: , ,

Ktai Style 次期バージョン 1.71 のベータ版 (その2) を配布いたします。1.71-beta1 からの変更点は以下の通りです。

  • HTML タグを含む投稿・ページ・コメントの編集が正しく行えない (編集フォームが乱れてしまう) 不具合を修正しました。(投稿・ページが編集できない不具合については Ktai Style 1.70 のみ発生)
  • ブログで文字列検索した結果を ks_posts_nav_dropdown() によるポップアップ (プルダウン) 式ナビゲーションで移動したとき、検索文字列が化ける不具合を修正しました。(例えば、「携帯」で検索させて他のページに移動すると「g」という文字列による検索になってしまう)
  • 投稿一覧・ページ一覧・コメント一覧画面で、ポップアップ (プルダウン) 式のページナビゲーションを上部に設置しました。かわりに、下部にあった複数ページのナビゲーションは前後ページのナビゲーションにしました。
  • 投稿一覧・ページ一覧・コメント一覧画面で検索させたとき、ページ数を1ページ目に戻るようにしました。検索前のページ数が10ページで、検索結果が8ページしかない場合は「見つかりませんでした」になる現象が回避されます。
  • HTML タグ前後の1バイトスペースは極力削除しないようにしました。従来、デザイン調整のために空白を入れても、表示時には削除されることがありました。
  • ks_in_network() が EZweb の IP アドレス削減に対応しました。
ダウンロード: ktai_style171-beta2.tar.bz2 (314.0 KB)
正式版を出しました

基本的にはバグ取りですが、Ktai Style 1.70 に作り込んでしまった「HTML タグを含む投稿・ページの編集ができない」という不具合への対応を行なっています。実質的に、編集機能が使えないわけで、とんでもないバグでした……。(でも、報告がなかったということは、編集機能はさっぱり使われてない??) 1.70 で、編集フォームの HTML エスケープの方法を変更しましたが、それがうまく機能していなかったのが理由です。事前テストでは、実機を使わずに Firefox + User Agent Switcher/FireMobileSimulator を使いましたが、これだと HTML エスケープが不十分でもうまく表示されてしまって、発見できなかったのでした。今回は実機確認を行なっているので大丈夫です。

今回も、標準6テーマの他にiPotch, Photolog, Arege の3テーマも添付しています。ベータ版その1から微妙に変更されています。