<%CollapsedContents()%>
社内イントラにてNucleusを使用しておりますが、外部のRSSを取得する際に、旧版のNP_NewsfeedEXで表示させておりました。
ただ、うちの場合proxyサーバがありますので、別途別途RSS取得スクリプトを使用し、RSSを別途ダウンロードしておくというステップを踏む必要がありました。
しかし、サーバ移転もあって(今までは完全管理下のWindowsサーバだったが、移転サーバは管理外のLinux)、スクリプト内で直接外部RSSを取得しなければならなくなりました。
色々調べたところNP_NewsfeedEXの後継であるNP_Simlepieは高機能そうだったので、こいつなら何とかなるのかも…と調べてうまく行った結果をメモ。
とりあえず最新のNP_SimplepieとSimplepieをダウンロードして、サーバにアップロードしてセットアップ(詳細はこちら)
とりあえずローカルのRSSを表示して、NP_Simplepieの動作を確認(この時点でおかしい場合はサーバに必要なライブラリがあるかどうか等の確認が必要)。
ローカルのRSS表示に問題がなければ、proxyの設定を行います。
nucleus/plugins/simplepieフォルダにアップロードしたsimlepie.inc を開き、7613行目(version 1.1.1の場合)、
curl_setopt($fp, CURLOPT_URL, $url);
の上に以下の行を挿入。
curl_setopt($fp, CURLOPT_PROXY, "http://proxy.example.co.jp:8080");
上記"http://proxy.example.co.jp:8080"は使用しているプロキシサーバにあわせて記述を変更してください。
変更したsimlepie.incをアップロードして動作していることを確認。
以上で、プロキシ経由でNP_Simplepieが使用出来ますが、社外のRSSとローカルネットワークのRSSを混在させたい時には、上記の変更内容を
if(!preg_match("/^http:\/\/www\.example.\.co\.jp*/", $url)) { curl_setopt($fp, CURLOPT_PROXY, "http://proxy.example.co.jp:8080"); }
の様に、preg_matchを使ってローカルネットワークのURLではない場合のみproxyをセットするようにする必要があります。
(右クリックからショートカットのコピーを選択)