|
|
|
@ -7,24 +7,59 @@
|
|
|
|
|
* @author Qiang Xue <qiang.xue@gmail.com> |
|
|
|
|
* @since 2.0 |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* yii is the root module for all Yii JavaScript modules. |
|
|
|
|
* It implements a mechanism of organizing JavaScript code in modules through the function "yii.initModule()". |
|
|
|
|
* |
|
|
|
|
* Each module should be named as "x.y.z", where "x" stands for the root module (for the Yii core code, this is "yii"). |
|
|
|
|
* |
|
|
|
|
* A module may be structured as follows: |
|
|
|
|
* |
|
|
|
|
* ~~~ |
|
|
|
|
* yii.sample = (function($) { |
|
|
|
|
* var pub = { |
|
|
|
|
* // whether this module is currently active. If false, init() will not be called for this module
|
|
|
|
|
* // it will also not be called for all its child modules. If this property is undefined, it means true.
|
|
|
|
|
* isActive: true, |
|
|
|
|
* init: function() { |
|
|
|
|
* // ... module initialization code go here ...
|
|
|
|
|
* }, |
|
|
|
|
* |
|
|
|
|
* // ... other public functions and properties go here ...
|
|
|
|
|
* }; |
|
|
|
|
* |
|
|
|
|
* // ... private functions and properties go here ...
|
|
|
|
|
* |
|
|
|
|
* return pub; |
|
|
|
|
* }); |
|
|
|
|
* ~~~ |
|
|
|
|
* |
|
|
|
|
* Using this structure, you can define public and private functions/properties for a module. |
|
|
|
|
* Private functions/properties are only visible within the module, while public functions/properties |
|
|
|
|
* may be accessed outside of the module. For example, you can access "yii.sample.init()". |
|
|
|
|
* |
|
|
|
|
* You must call "yii.initModule()" once for the root module of all your modules. |
|
|
|
|
*/ |
|
|
|
|
yii = (function ($) { |
|
|
|
|
var pub = { |
|
|
|
|
version: '2.0' |
|
|
|
|
}; |
|
|
|
|
return pub; |
|
|
|
|
})(jQuery); |
|
|
|
|
|
|
|
|
|
jQuery(document).ready(function ($) { |
|
|
|
|
// call the init() method of every module
|
|
|
|
|
var init = function (module) { |
|
|
|
|
if ($.isFunction(module.init) && (module.trigger == undefined || $(module.trigger).length)) { |
|
|
|
|
version: '2.0', |
|
|
|
|
initModule: function (module) { |
|
|
|
|
if (module.isActive === undefined || module.isActive) { |
|
|
|
|
if ($.isFunction(module.init)) { |
|
|
|
|
module.init(); |
|
|
|
|
} |
|
|
|
|
$.each(module, function () { |
|
|
|
|
if ($.isPlainObject(this)) { |
|
|
|
|
init(this); |
|
|
|
|
pub.initModule(this); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
init(yii); |
|
|
|
|
return pub; |
|
|
|
|
})(jQuery); |
|
|
|
|
|
|
|
|
|
jQuery(document).ready(function () { |
|
|
|
|
yii.initModule(yii); |
|
|
|
|
}); |
|
|
|
|