OpnePNEにはCMD(小窓)という便利な機能があり、小窓が用意されているサイトであれば、そのURLを日記等に記載するだけで、自動的に画像やサービス、動画が埋め込まれたりする。(Google Map、YouTube、Amazon、kakaku.com、等々)
最近ではオンラインサービスであるflickrを利用している人も増えているので、flickr用に小窓(cmd)を使いたいという案件や、作りたい場面があるはず。
小窓の作成は一定のルールさえ分かっていれば、簡単に小窓を作ることが出来る。
flickrの画像URLには、登録者や状況により
http://farm1.static.flickr.com
http://farm2.static.flickr.com
http://farm3.static.flickr.com
http://farm4.static.flickr.com
と4種類で始まっている
flickr用の小窓を作る場合の問題点は、OpnePNEのCMD(小窓)がサブドメインのワイルドカードに対応していないこと。
つまり作成するJavascriptは、それぞれ決め打ちのファイル名であることが必要条件となる。
つまり、上記4つのサブドメインに対応するCMD(小窓)を用意したければ、4つのJavascriptをcmdフォルダに入れておく必要がある。
farm1.static.flickr.com.js
farm2.static.flickr.com.js
farm3.static.flickr.com.js
farm4.static.flickr.com.js
一見無駄なようだが、ワイドルカードで探させるよりサーバー負荷を考えると効率的でもある。
それぞれのサーバー(farm1、farm2、farm3、farm4)用にスクリプトを書いてもいいが、
今後サブドメインが追加された際に、ファイル名だけ変えてコピーできるようにスクリプトを作っておくと便利。
そのまま使えるサンプルスクリプトはこれ
———————————————————————
function url2cmd(url){
var static_flickr_com = url.match(/^http://farm([0-9]+).static.flickr.com/([0-9]+)/([a-z0-9_]+).(jpg|jpeg|png|gif)/);
if(static_flickr_com){
var pid1 = RegExp.$1;
var pid2 = RegExp.$2;
var pid3 = RegExp.$3;
var pid4 = RegExp.$4;
main(pid1,pid2,pid3,pid4);
}else{
pne_url2a(url);
}
}
function main(pid1,pid2,pid3,pid4){
var html = ‘<img src=”http://farm’ + pid1 + ‘.static.flickr.com/’ + pid2 + ‘/’ + pid3 + ‘.’ + pid4 + ‘”>’;
document.write(html);
}
———————————————————————
念のため、画像ファイル名をjpg、jpeg、png、gifの4種類に限定しているが、flickr.comを信頼して簡略化しても構わない。
上記スクリプトを
farm1.static.flickr.com.js
farm2.static.flickr.com.js
farm3.static.flickr.com.js
farm4.static.flickr.com.js
の名前でそれぞれ作成し、cmdフォルダにアップする。
これでflickr.comに対応したCMD(小窓)となる。