<< April 2024 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 >>

<< うへぇ | main | 涼宮ハルヒの逆転 >>

May 25, 2006

[sb2] Addrel v0.02
May 25, 2006 03:15 PM written by 兼乃

Lightboxを利用する際にアンカータグに必要な「rel="lightbox"」属性を自動的に付加するプラグインです。

Lightbox関連
Lightbox JS
Lightbox Plus (SimpleBoxes)
lightboxで拡大画像 (ボムガール)

インストール・アップデート
・Addrel.pmをPluginフォルダにアップロード(上書き)してください。
・アップロード後に環境設定>プラグインからプラグイン利用のチェックを入れてください。

前バージョンから変更事項
「プラグイン利用」のチェックの有無にかかわらず動作していたものを、チェックに準じるように修正。

■DOWNLOAD■
事の流れとか。

SereneBachプラグインメモ4
(this calm night)
Addrel では、メイン処理のサブルーチンが sub sb::Data::Image::get_as_tag{ ... } という感じで定義されています。Perl に造詣が深い人にとっては常識なのかもしれませんけど、個人的には驚きでした。「パッケージ込みでサブルーチンを定義すると override されるのかー!!!!!!!!!!」という感じで。己の無知を噛み締めた瞬間でした。

「直接指定すれば上書きされんじゃね?」
ってくらいの安易な考えでの元から作成されたものですので、そんな大それたことでも・・・。
そもそもああいう定義の仕方ってオブジェクト指向的にはどうなのよ?ってトコロもありますし;;

ただ、この override の方法で気になることもあります。この方法で処理を実装した場合に、override される前のサブルーチンを明示的に呼び出すことは可能なのか? ということなのですが、どうなんでしょう。何か方法があるのかもしれませんが、思いつかず。もし仮に不可能ということであれば、override というよりも overwrite 的な扱いでしょうか。だとすると安易に多用するとどこかで問題が起こりそうです。

あと、この方法のみを使って SB のプラグインを作成する場合は、ファイルを plugin ディレクトリに置いた時点で有効になってしまうという問題(?)もありますね。Addrel もそうなのですが、利用するにチェックが入っていようがいまいがプラグインは動作します。

そうなんですよねぇ。
将来本体がバージョンアップしたときにオーバーライトした部分に変更があったときに不都合が出そうですしね。

少なくともプラグインの利用チェックが外れているときは本体の機能をそのまま利用するようにしたいのですが、本体の機能をプラグイン内で再度定義するのはなんとも不格好なのでなんとかしようとあれこれ試行錯誤していたのですが、しょんぼり技研さんの「サムネイル画質設定プラグイン」で考えたものより数段スマートな実装をされていましたのでその手法を拝借させていただきました。

なんかこう、ある程度まとまった「SereneBachのPluginの作り方」みたいなものの体系が出来てくれば予想外の面白いPluginが出てくるかも!?