FlickrPublicPhotos Plugin
FlickrのPublic Photosをリストアップするプラグインを公開します。
FlickrPublicPhotos Plugin.ja JP - Ogawa Code
FlickrのPhotosetsをリストアップするプラグインとしてはFlickrPhotosets Pluginがよく知られていますが、私の知る限り、単純にして最も有用と思われる、自分の公開している写真(Public Photos)をリストアップするプラグインはありませんでした。
FlickrPublicPhotos Pluginは、指定したユーザー(username、メールアドレス、NSIDのいずれかで指定できます)のPublic Photosをリストアップする機能を提供します。リストアップ時に最新のN件だけ、もしくはランダムに選んだN件だけを表示することもできます。
また、Flickr APIのアクセスを抑制するために前回の取得結果をキャッシュし、一定期間内は再利用するようにしたり、イメージファイルを自動的にローカルサイトにキャッシュしたりする機能もあります。これらの機能により、再構築時が高速化されるだけでなく、Flickr Serviceが停止している場合やFlickrの負荷が高い場合にもストレスなく、プラグインが機能します。
論より証拠、ユーザー名「Hirotaka Ogawa」さんの最新の5件のPublic PhotoをSquareサイズで表示するにはテンプレートに以下のように記述します。
<p class="image"> <MTFlickrPublicPhotos user="Hirotaka Ogawa" lastn="5"> <a href="<$MTFlickrPublicPhotoURL$>" title="<$MTFlickrPublicPhotoTitle encode_html="1"$>"> <img src="<$MTFlickrPublicPhotoImgURL size="sq"$>" /> </a> </MTFlickrPublicPhotos> </p>
出力結果は以下のようになります。
このエントリーのトラックバックURL: http://as-is.net/mt/mt-tb.cgi/270





プラグインを、pluginsフォルダにアップしたのですが、なぜか、インメニューの「利用可能なプラグインの設定」にFlickrPublicPhotos Pluginが表示されません。したがって、タグも正常に動作していません。MTのバージョンは、3.15ですが、何か特殊な手続き等が必要なのでしょうか。よろしくお願いいたします。
「利用可能なプラグインの設定」に正常に表示されるためには、Storableモジュールが必要です。また、MTFlickrPublicPhotosタグを動作させるためには、エントリー中に書いてあるPerl Moduleがインストールされている必要があります。
MySQLのmt_plugindataにFlickrPublicPhotosデータがあると再構築時に
Can't call method "url" on unblessed reference at /usr/home/***/mt/plugins/FlickrPublicPhotos.pl line 111.
というエラーが出ます。
データベースから該当データを消すと初回の再構築には成功しますが、次はまた失敗します。
インデックステンプレートに下記のように書いています。
<MTFlickrPublicPhotos user="yosshi" random="10">
<a href="<$MTFlickrPublicPhotoURL$>" title="<$MTFlickrPublicPhotoTitle encode_html="1"$>">
<img src="<$MTFlickrPublicPhotoImgURL size="t"$>" />
</a>
</MTFlickrPublicPhotos>
よろしくお願いします。
じ・つ・は、気が付いていました。そのうち直したいと思います。
w
お願いいたします。
MT3.2では動作しないということですが,3.3にバージョンアップすると動作しますでしょうか??
分かりまへん。試してみてください。
MT3.33-ja で試してみたところ3のyosshiさんと同じ症状で2回目の再構築以降"Can't call method "url" on unblessed reference at /usr/home/***/mt/plugins/FlickrPublicPhotos.pl line 111. "がでました。
ご報告まで。
MT-3.35-jpで、SQLiteを使っています。
yosshiさんやTOMOEwさんと同じようなエラーがでましたが、refreshの値を1にして、とにかく読み込みにいかせるようにしたところ、毎回再構築がうまくいくようになりました。