待辦事項 #3043

ヘッドライン、アポストロフィ(')対策
啟用日期: 2003-09-20 16:18 最後更新: 2003-10-04 17:36

回報者:
負責人:
(無)
類型:
狀態:
關閉
元件:
(無)
里程碑:
(無)
優先權:
5 - 中
嚴重程度:
5 - 中
處理結果:
修正
檔案:

細節

ヘッドラインモジュールでアポストロフィ(')がサイトタイトル
などに入ると、それ以前の文字が表示されない

item内では発生しない。
アポストロフィを '(&は実際には半角)などと記述し
てあると発生するが、そのまま'で出力されてる場合は正常に表示
される。

原因
ヘッドラインの表示がおかしい (XOOPS日本公式サイト - フォー
ラム)のonokazuさんのコメントより
http://jp.xoops.org/modules/newbb/viewtopic.php?
viewmode=flat&topic_id=1649&forum=12

原因はrssparserの中のchannelタグ処理用のtaghandlerクラス
に問題があることだと思います。

「'」があるとそれを一つの個別データとみなして、例えば
「hogehoge's page」の場合、parserは「hogehoge」、「'」、
「s page」の順番にデータを処理していくので、channelタグ処
理用のtaghandlerがこれを処理できるようになっていないため最
後に渡された「s page」が前のデータを上書きしてしまうためだ
と思います。itemタグ処理用のtaghandlerクラス郡はこれらを処
理できるようにはなっているので<item>内では大丈夫だと思いま
す。

対処法
class/xml/rss/xmlrss2parser.php の71行目にある
setChannelDataを下記のように書き換えてやったら、正常に表示
されるようになりました。

function setChannelData($name, &$value)
{
if(!isset($this->_channelData[$name])){
$this->_channelData[$name] =&
$value;
}else{
$this->_channelData[$name] .=
$value;
}
}

Ticket History (1/1 Histories)

2003-10-04 17:36 Updated by: onokazu
  • Ticket Close date is changed to 2003-10-04 17:36
  • 處理結果 Update from to 修正
  • 狀態 Update from 開啟 to 關閉
評語
Logged In: YES
user_id=754

ありがとうございます。CVSへと反映しておきました。

Attachment File List

No attachments

編輯

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » 登入