JSmarty.Pluginオブジェクトついて
JSmartyにはJavaScriptでSmartyする為にJSmarty.SystemやJSmarty.Templatecオブジェクト存在していてその辺の仕様に関するエントリです。一番、便利であろうJSmarty.Pluginの仕様について。
JSmarty.Pluginで扱えるJSファイルについて
これは2パターン存在します。一つ目は、ファイル名が{型名}.{関数名}.js(modifier.foo.jsなど)で関数名が、jsmarty_{型名}_{関数名}で定義されるJSmartyのプラグインです。もう一つ目は、{名前空間}.{関数名}.js(php.sprintf.js)で関数名がファイル名の関数名と同じものとの2つになります。
// 1つ目 : modifier.foo.js function jsmarty_modifier_foo(){} // 2つ目 : php.sprintf.js function sprintf(){}
JSmarty.Pluginのメソッドなど
JSの動的呼出しするのに利用するのは主に以下の関数です。
JSmarty.Plugin.get(プラグイン名, プラグインの保存先のディレクトリ)
第一引数に指定されたプラグインを呼出し結果を返します。
// 変数に別名を付けてあげることも可能 var alias = JSmarty.Plugin.get('php.sprintf','plugins'); alias("%02d","2"); // 以下の呼び出しても可能 JSmarty.Pluguin.get('php.sprintf')("%02d","2");
JSmarty.Plugin.importer
グローバル領域にプラグインをインポートする関数です。
JSmarty.Plugin.importer( 'php.sprintf', 'php.range' ); sprintf("%05d","1"); // 00001 range('a','z'); // a, b, c … x, y, z
補足
グローバル汚染させず
JSmarty.Pluginでロードされたグローバル領域を汚染しません。
JSmarty.Plugin.get('php.strtr'); typeof(strtr); // undefined