DMSGuestbook の日本語対応

2008年1月29日

WordPress で簡単にゲストブックを設置できるプラグイン、DMSGuestbook を導入してみました。

設置の手順は簡単で、Exec-PHPrunPHP が導入されているなら、プラグインを有効化して、指示された手順に従えばすぐに使えるようになります。

具体的には、

  1. ゲストブック用のページを作成し、PHP を実行できる状態で、<?php DMSGuestbook(); ?> と記述
  2. ゲストブック用のページIDを管理画面の DMSGuestbook Option → Basic settings 内 のPage ID に記入
  3. お好みで設定を変更(表示部分のテキストを日本語にする / スパム対策のために CAPTCHA や 計算問題を使う など)

といった感じですね。

日付部分の文字化け

が、なぜか Date / Time format / Time offset: の項目で、ロケールを ja_JP.UTF8 にしても、日本語が混じると化け化けになってしまいます。ロケールの指定自体は合っていて、メッセージの管理画面では正常に表示されるのに、設定画面とゲストブック本体では化けるというのは奇妙な感じ。

ということで、ソースを読んでみると、化けている場所の表示部分は、

<?php echo htmlentities(strftime(get_option('DMSGuestbook_dateformat'), $offset), ENT_QUOTES); ?>

となっていて、htmlentities 文字化けでググると、htmlentities()による文字化け という情報がヒット。

ひとまず、admin.php および dmsguestbook.php 内にある、htmlentitieshtmlspecialchars に置換してみると、良い感じなのでこれで様子見。