class IPF_Admin_Model
{
static $models = array();
+ static $handlers = array();
public static function register($classModel, $classAdmin)
{
- IPF_Admin_Model::$models[$classModel] = new $classAdmin($classModel);
+ $ma = new $classAdmin($classModel);
+ self::$models[$classModel] = $ma;
+ foreach (ArrayTools::get(self::$handlers, $classModel, array()) as $action) {
+ call_user_func($action, $ma);
+ }
+ unset(self::$handlers[$classModel]);
}
public static function isModelRegister($classModel)
{
- return array_key_exists($classModel, IPF_Admin_Model::$models);
+ return array_key_exists($classModel, self::$models);
}
public static function getModelAdmin($classModel)
{
- if (array_key_exists($classModel, IPF_Admin_Model::$models)) {
- $ma = IPF_Admin_Model::$models[$classModel];
+ if (array_key_exists($classModel, self::$models)) {
+ $ma = self::$models[$classModel];
$ma->setUp();
return $ma;
}
return null;
}
+ public static function on($classModel, $action)
+ {
+ if (array_key_exists($classModel, self::$models)) {
+ call_user_func($action, self::$models[$classModel]);
+ } else {
+ ArrayTools::pushToKey(self::$handlers, $classModel, $action);
+ }
+ }
+
var $modelName = null;
var $model = null;
var $inlineInstances = array();