Google AJAX Feed API + drupal.org Issues Feed
Google AJAX Feed API + CCK + Contemplate で各モジュールページの最下部にそれぞれの Issues Feed を表示させてみた。
- CCK で Issues Feed の URL を入力するフィールド ( google_feed ) を作成し、そこに入力した URL を google.feeds.Feed クラスのアーギュメントとして指定することで、ページによって異なる URL を指定できるようにする。
- Contemplate には、Issues Feed URL に入力があれば、それを含めた JavaScript コードを XHTML の <head>~<head> 部分に出力し、さらに URL から取得したフィードの内容を本文に出力するという PHP コードを追記する。
というのが、この作業の全体的なイメージだ。コードは以下のもので動作している。
なお、わざわざ Google AJAX Feed API を利用しなくても Aggregator モジュールで実現できそうなことや、コードの記述がまだ未熟であることなどは容赦願いたい。
<?php
foreach ((array)$field_google_feed as $item){
$feed_url = $item['view'];
};
$google_feed_api = <<<EOS
<script type="text/javascript" src="http://www.google.com/jsapi?key=YOUR-KEY"></script>
<script type="text/javascript">
<!--
google.load("feeds", "1");
function initialize() {
var feed = new google.feeds.Feed("{$feed_url}");
feed.setNumEntries(10);
feed.load(function(result) {
if (!result.error) {
var container = document.getElementById("feed");
for (var i = 0; i < result.feed.entries.length; i++) {
var entry = result.feed.entries[i];
var div = document.createElement("div");
div.innerHTML = '<a href="' + entry.link + '">' + entry.title + '<\/a>';
container.appendChild(div);
}
}
});
}
google.setOnLoadCallback(initialize);
//-->
</script>
EOS;
if ($feed_url !== "") {
drupal_set_html_head($google_feed_api . "\n");
print "<div id=\"feed\"><h2>バグや問題点についての情報</h2></div>";
}
?>Google AJAX Feed API が公開されてから Drupal の何かに利用できないかとは考えていたのだが、以下の発言を頼りになんとか 「使えそう」 なものにすることができた。この場を借りてお礼を申し上げたい。
--- amayadori さんdrupal_set_html_head()というのはどうでしょう?本家の Issues フィードをアグリゲートしようかと思ってます。
--- ryo さん
[参考]
Google AJAX Feed API
トラックバック
トラックバックは承認後に表示されます。
URLから "-nospam" を削除してトラックバックを送信してください。