Please Sign In or Register

Google AJAX Feed API + drupal.org Issues Feed

Google AJAX Feed API + CCK + Contemplate で各モジュールページの最下部にそれぞれの Issues Feed を表示させてみた。

  1. CCK で Issues Feed の URL を入力するフィールド ( google_feed ) を作成し、そこに入力した URL を google.feeds.Feed クラスのアーギュメントとして指定することで、ページによって異なる URL を指定できるようにする。
  2. 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 の何かに利用できないかとは考えていたのだが、以下の発言を頼りになんとか 「使えそう」 なものにすることができた。この場を借りてお礼を申し上げたい。

[参考]
Google AJAX Feed API

トラックバック

トラックバックは承認後に表示されます。

URLから "-nospam" を削除してトラックバックを送信してください。

返信

例えば「あ」と「お」の間の文字を入力してださい。なら、"いうえ"とひらがなで入力します。
このフィールドの内容は非公開にされ、公表されることはありません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • Allowed HTML tags: <a>
  • 行と段落は自動的に折り返されます。

書式オプションに関するさらに詳しい情報...