メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2009年7月31日金曜日

[Apache Shindig][お勉強][OpenSocial] メモ113 setprefsフィーチャー

ガジェットのユーザ毎の設定(UserPref?)をガジェットから扱える機能を追加するもの。

使えるメソッドは、

  1. gadgets.Prefs.set(key, value)  


  1. gadgets.Prefs.setArray(key,value)  

のみ。
setArrayの方は、valueに文字列か数値の配列を指定する。
指定された配列は'|'によって連結され保存される。

setprefsフィーチャに関係なくgadgets.Prefsの読み込み系は使える。

で、やってみる。
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <Module>  
  3.   <ModulePrefs title="setprefsフィーチャー">  
  4.     <Require feature="opensocial-0.8" />  
  5.     <Require feature="setprefs" />  
  6.     </ModulePrefs>  
  7.   <UserPref name="counter" default_value="0" datatype="hidden"/>  
  8.   <Content type="html" view="canvas,profile,view">  
  9.   <![CDATA[ 
  10.     <div id="content_div" style="height: 100px;"></div> 
  11.     <script type="text/javascript"> 
  12.  
  13.     var prefs = null; 
  14.     var html = ""; 
  15.     var div = ''; 
  16.     function incrementCounter() { 
  17.       var count = prefs.getInt("counter"); 
  18.       div.innerHTML = "The count is " + count + "."; 
  19.       prefs.set("counter", count + 1); 
  20.     } 
  21.     function resetCounter(){ 
  22.       prefs.set("counter", 0); 
  23.       div.innerHTML = "Count reset to " + prefs.getInt("counter") + "."; 
  24.     } 
  25.  
  26.     function init() { 
  27.       prefs = new gadgets.Prefs(); 
  28.       html = ""; 
  29.       div = document.getElementById('content_div'); 
  30.       var count = prefs.getInt("counter"); 
  31.       div.innerHTML = "The count is " + count + "."; 
  32.     } 
  33.     gadgets.util.registerOnLoadHandler(init); 
  34.     </script> 
  35.     <input type=button value="Count" name="count" onClick="incrementCounter()"> 
  36.     <input type=button value="Reset" name="reset" onClick="resetCounter()"> 
  37.   ]]>  
  38.   </Content>  
  39. </Module>  

な感じ。
Googleのgadgets APIリファレンスを参考、というかほぼそのまま使用した。


これは、もう何度もやっているので、動作する。
cookieに保存する場合はサンプルがあるので、コンテナ側で設定する必要あり。

そんだけ。
.

0 コメント: