Kazuhiro's blog
ようこそ! Kazuhiro's blog
金曜日, 11月 22 2024 @ 01:44 午前 JST
   

記事の実体参照が保持されない対策

Geeklog

(2006/12/19 追記) ここに書かれた対策は使用する必要はありません。 フォローの記事を参照して下さい。

Geeklogの記事を書く際に記事に直接実体参照を書き込む事があったのですが、その記事を編集しようとすると実体参照が実体に変化するという不具合に遭遇しました。例えば記事に

&テストです。

のように記入して保存します。記事を表示するとこの部分は「&テストです。」になります。 そして、この次にその記事の編集を行います。 フォームには先程入力した本文が表示されるのですが、入力した文が「&テストです。」から「&テストです。」に変化します。原因はテンプレート(template_name/admin/story/storyeditor.thtml)のコードが

<textarea name="introtext" cols="70" rows="12">{story_introtext}</textarea></td>

等のように、textareaの初期値に、表示に使われる{story_introtext}という変数をそのまま使用している事が原因です。textareaの初期値に使うのであればhtmlspecialchars等で実体参照に使われている&を更に実体参照に変えないといけません。 公開ディレクトリ以下のadmin/story.phpに対して新たなテンプレート用の変数を用意させて対処しました。

直接記入しているタグの<, >もまずい気がしてきましたがどのみちhtmlspecialcharsを使う場合はそっちも変換されてしまうので未追求です。

(2006/12/19 追記) バックスラッシュも消えるという話題がありました。 実体参照が使えれば逃げれなくはないですが、頻繁に使う場合だと厄介ですね。

(2006/12/19 更に追記) そのまんまなエントリもありました。 このままだと永遠に直らなさそうなので日本語サイトに報告しておく事にしました(本家は登録できなかった為)。

タグ:Geeklog

トラックバック

このエントリのトラックバックURL: http://ikazuhiro.s206.xrea.com/trackback.php/20061218094824227

'記事の実体参照が保持されない対策'について他のサイトでは次のように言及されています:

記事の実体参照が保持されない対策 その2 from Kazuhiro's blog
先程の「実体参照が保持されない対策」について、日本語サイトに報告したところ、もっとスマートな解法を教えていただけました。 続きを読む
トラックバック オン 火曜日, 12月 19 2006 @ 10:19 午後 JST

記事の実体参照が保持されない対策 | 0 件のコメント | アカウントの作成
コメントは投稿者の責任においてなされるものであり、サイト管理者は責任を負いません。