高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

サイドバーWEB

ふぅ、思ったより手間取ってしまった…。
サイドバーに格納できるツールということで、サイドバーWEBを作成してみました。
Yahooブリーフケースのshared/development/Perl/SidebarWeb.zipに置いてあります、一応家にサーバ環境を置いている人向け(たぶんレンタルサーバに置いても動くでしょうが)。

つかいかた

これはOperaSidebarに入れて使うことを想定されたツールです。HTML+JS側ではAjaxを使ってモジュールを呼び出すだけですので、好きな言語でスクリプト(ウィジェットと呼んでいますが)を作ることができるようになっています。

ブックマーク表示スクリプト

いまのところ、サンプルをかねて、はてなブックマークを表示するスクリプトが入っています。パブリックなところは表示できるようですが、認証がうまくいっていないようで、プライベートなブックマークは表示できません。

必要なモジュール
  • XML::Atom
  • LWP::Authen::Wsse

今のところ下の方は、正常に動作してないようです…。サンプル通りやったんですけどねえ、何か抜けがあるのかな…。

ウィジェットの追加方法

ウィジェットを追加するには、HTMLの中に、以下の文を書きます。
widget('ヘッダ(h2)文字列','HTML上のID', '(HTMLから見た)ウィジェットのファイルパス', 'ウィジェットに渡すパラメータ(GETで渡します)')
渡されたパラメータは、Perlの場合CGI.pmなどを使えば取得できます。
今回はいってるhatenaBookmark.plの場合は以下のようになります。
widget("ブックマーク", "HTML上のID(はてなIDとは無関係でかまいません)", "./modules/hatenaBookmark.pl", "id=IDを入力;pass=パスワードを入力");
アーカイブに入ってるものでは、わたしのブックマークを表示するようになっています。もちろんパスワードは嘘八百です(^^ゞ

ウィジェットの作り方

普通のCGIと同じように作成します。何らかのContent-Typeを返してあげないと、やっぱり500あたりが帰ってきてしまうのでご注意を。

ウィジェット内からウィジェットをリロードする場合

JavaScript関数として、reloadElement(id, path, param)が定義されていますので、それを呼び出させます。フォームから呼び出す場合は、formReloadElement()を。使用方法等はhatenaBookmark.plを見てみてください。

使用素材等

ロード中の画像は、Ajaxload - Ajax loading gif generatorからもらってきました。

感想

Operaでは――にかかわらず、いくら簡単に追加できるはてなブックマークも、いちいちページに行かないと参照できないようでは意味がありません。サイドバーから参照できると便利なのにな と、前々から思っていました。それが今回のようなスクリプトの作成動機です。
パーソナルなブックマークも同時に見られるようにする というのが当初の目的だったので、まだ目的は達成できてないですが…。これ以上自分一人でやっていても時間を浪費するだけですので、いったんここまでとします。
どうせ作るなら、できればGoogleホームのように、簡単に見られるベースページがあるとうれしいですね。そんなわけで、サイドバーにいろんなスクリプトの表示ができる、このようなページを作成したわけです。
Ajaxの練習にもなりましたし、(あんまりきれいではないですが)結構使いやすいスクリプトが作れました。Ajaxサイドはもう編集する必要ないと思いますので、今後も気軽にちょこちょこ編集していければと思います。