Actions
Backport(バックポート) #2732
closedサイドバナーのRSSリーダーでURLに特殊文字が含まれる場合に正しいRSSフィードが得られない
Start date:
2011-09-17
Due date:
% Done:
100%
Estimated time:
Description
概要¶
サイドバナーのRSSリーダーを利用する際,URLに特殊文字が含まれる場合に正しいRSSフィードが得られない.
確認手順¶
- pc_backend.php/design/gadget/type/sideBannerで「RSSリーダー」のガジェットを追加する
- 「RSSリーダー」をクリックして下記URLを登録する
http://video.baidu.jp/api/search?word=バイク&output=rss&start=0&count=12&sort=dt_recent&adult_filter=1
- ログイン画面等のサイドバナーが表示されるページで表示される結果を確認する
- Firefox等の別のRSSリーダーで表示される結果と違う
原因¶
下記コード部において$this->gadgetがGadgetクラスをsfOutputEscaperIteratorDecoratorクラスでラップされているため,特殊文字がエスケープされた文字列が取得されてしまう.
apps/pc_frontend/modules/default/actions/components.class.php
98 try 99 { 100 $fetcher = new opRssFetcher('UTF-8'); 101 $this->result = @$fetcher->fetch($this->gadget->getConfig('url'), true); 102 if ($this->result) 103 { 104 $this->result[1] = array_slice($this->result[1], 0, 5); 105 } 106 }
修正案¶
- $this->gadgetがsfOutputEscaperIteratorDecoratorクラスでラップせずにGadgetクラスでexecuteRssBox()に渡すようにする
- executeRssBox()内で$this->gadgetのsfOutputEscaperIteratorDecoratorのラップを剥がして値を取得する
実装案¶
修正案1の実装方法が確認できなかったため修正案2について実装案を提示.おそらく以下の修正で修正案2に相当すると思われる.
diff --git a/apps/pc_frontend/modules/default/actions/components.class.php b/apps/pc_frontend/modules/default/actions/components.class.php index ad79046..06b97c4 100644 --- a/apps/pc_frontend/modules/default/actions/components.class.php +++ b/apps/pc_frontend/modules/default/actions/components.class.php @@ -98,7 +98,7 @@ class defaultComponents extends sfComponents try { $fetcher = new opRssFetcher('UTF-8'); - $this->result = @$fetcher->fetch($this->gadget->getConfig('url'), true); + $this->result = @$fetcher->fetch(sfOutputEscaper::unescape($this->gadget)->getConfig('url'), true); if ($this->result) { $this->result[1] = array_slice($this->result[1], 0, 5);
確認バージョン¶
OpenPNE 3.7.0-dev, 3.6beta13
実際の修正¶
各アプリケーションのconfig/settings.ymlのescaping_strategy部分を'on'からtrue,'off'からfalseに置換する.
Updated by Yuya Watanabe almost 13 years ago
- Status changed from New(新規) to Accepted(着手)
- Assignee set to Yuya Watanabe
Updated by Yuya Watanabe almost 13 years ago
- Status changed from Accepted(着手) to Pending Review(レビュー待ち)
- % Done changed from 0 to 50
更新履歴 78ea137c16066401b6addee6a92a0535768db323 で適用されました。
Updated by Yuya Watanabe almost 13 years ago
更新履歴 56e3a574ce85c823b53b59c982a2304798cd4fe6 で適用されました。
Updated by Kousuke Ebihara almost 13 years ago
- Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
- % Done changed from 50 to 70
Updated by Yuma Sakata almost 13 years ago
- Status changed from Pending Testing(テスト待ち) to Fixed(完了)
- % Done changed from 70 to 100
テストOKです。
Actions