2007/09/07

音楽ランキングtop5ガジェット作成

一回、一回、音楽のサイトを開いて、ランキングを見るのがメンドクサイと思ったので、iGoogle上で見れるように、音楽ランキングtop5ガジェットを公開しました。

ガジェットの全体像は、下のようになっています。
musictop5_1

このガジェットの元となったのは、オリコンで配布されているブログパーツのソースで、iGoogle上で動作できるように、xmlファイルでインクルードを行いました。

今回のガジェットで工夫したところは、色の選択ができるところ。
musictop5_2
上のセレクトボックスにある色を選択することで、ガジェットの色が変換されます。
ちなみに、色の設定は、保存されて、次回以降にも反映されるようになっています。
(defaultは白で設定)

musictop5_3
(上図は、桃色に変換したガジェット)

また、ランキングは、シングル、アルバム、DVDの3タイトルで、各週間ランキングと、日別のランキングで見ることができます。

ソースは、下のように実装しました。

<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<!-- 処理概要 -->
<ModulePrefs title="音楽ランキングtop5" directory_title="音楽ランキングtop5" title_url="http://www.oricon.co.jp/" description="オリコンのデイリーランキング、ウィークリーランキング、CD情報、トップニュースを表示します。" screenshot="http://ww61.tiki.ne.jp/~yuu-maito/gadget/screenshot_musictop5.png" thumbnail="http://ww61.tiki.ne.jp/~yuu-maito/gadget/thumbnail_musictop5.png" height="300" author_link="http://temping-amagramer.blogspot.com/" author="maito.kuwahara" author_email="mai.musicfactory+gadgetfactory@gmail.com" author_affiliation="programmer" author_location="japan" />
<!-- background-color -->
<UserPref name="background_color" display_name="背景色" default_value="FFFFFF" datatype="enum">
<EnumValue display_value="白" value="FFFFFF" />
<EnumValue display_value="黒" value="000000" />
<EnumValue display_value="水色" value="C6D4FF" />
<EnumValue display_value="バナナ色" value="FFFFA1" />
<EnumValue display_value="桃色" value="FFD0F2" />
<EnumValue display_value="灰色" value="C1C1C1" />
<EnumValue display_value="黄緑色" value="A9DA8C" />
</UserPref>
<Content type="html">
<![CDATA[
<script language="javascript">
  _IG_RegisterOnloadHandler(function lf_get(){

    //userpref全体を取得する
    prefs__MODULE_ID__ = new _IG_Prefs(__MODULE_ID__);
    //userprefのbackground_colorを取得する
    var bg_clr = prefs__MODULE_ID__.getString("background_color");

    //javascriptのURLの生成
    var lf_url = "http://www.oricon.co.jp/blog/tagform/lib/snippet.js?color=";
    lf_url = lf_url + bg_clr;
    lf_url = lf_url + "&amazon=easyofcoldfus-22";

    var lf_char = "<center";
    lf_char = lf_char + ">";
    lf_char = lf_char + '<script type="text/javascript"';
    lf_char = lf_char + ' charset="UTF-8"';
    lf_char = lf_char + ' class="oriconSnippetScript"';
    lf_char = lf_char + ' src="';
    lf_char = lf_char + lf_url;
    lf_char = lf_char + '" >';
    lf_char = lf_char + "</script";
    lf_char = lf_char + ">";
    lf_char = lf_char + "</center";
    lf_char = lf_char + ">";
    document.write(lf_char);
    }
    );
  </script>
]]>
</Content>
</Module>

0 コメント:

コメントを投稿