suin.io

コピーだけで複製できるモジュール

suin2005年2月16日

TinyD、myAlbum-Pなどこれらはご存知、コピーするだけで複製できるモジュールです。GIJOEさんが去年の今頃に始められたプロジェクトです。

実験と称して始まったモジュールですが、今日どちらのモジュールも自由な複製が可能になるほどの強力な機能を備えています。

仕組みはソースを読む限りでは、任意の文字+数字がディレクトリ名であることが条件で、その数字の番号をもとに予め用意してある該当番号のファイル(テンプレートなど)を読み込むと言う形です。

これはこれですばらしい(複製可能という自体が革命的)発想です。しかし、唯一の欠点があるとしたら、例えばtinycontent0_index.html、tinycontent1_index.html、tinycontent2_index.html...のように同じファイルを複数用意する必要が有る点です。

結果的にモジュール全体のサイズを肥大化させてしまっています。(これは不要なファイルを削除することで解決できるが、これでは「コピーするだけ」というキャッチフレーズに反してしまう)

そこで、何かうまい方法はないだろうかと考えた末に、いくつか使えそうなアイディアを思いつきました。その一つがonInstallの時に手を加えて、モジュールをだましてしまう方法です。聞こえは悪いですが、このアイディアでいくとsqlは簡単に騙せますのでsqlファイルは1つで済みます。しかし、テンプレートだけはうまく騙せません。これはテンプレートマネージャとの関わりがあるためです。インストール時に騙せても、テンプレートマネージャで矛盾が発生してしまいます。もしXOOPSが俺的XOOPSの様にDBベースではなくファイルベースだったら騙す必要もなく簡単なのですが…。

テンプレートさえ上手く対処できれば「任意の文字+数字」というディレクトリ名からも離脱できそうです。良いアイディアはそのうち思いつきますから、果報は寝て待てです^ー^

RELATED POSTS