Esempio n. 1
0
 public static function readDir($resource)
 {
     if (self::$readDir) {
         return self::$readDir;
     }
     $resource = str_replace("\\", "/", $resource);
     $dirs = scandir($resource);
     unset($dirs[0], $dirs[1]);
     $new = array();
     $ajax = ajax();
     foreach ($dirs as $k => $v) {
         $name = preg_replace("/\\..+\$/", '', $v);
         if (isset($new[$name])) {
             continue;
         }
         $obj = new ext($v);
         $obj->file = "{$v}.js";
         $obj->method = $v;
         if (is_dir($resource . $v)) {
             self::$_dirs[$name] = $resource . $v . '/';
             $dir = self::$_dirs[$name];
             if (file_exists($f = "{$dir}{$v}.php")) {
                 require_once $f;
                 $class = $v;
                 $parent = get_parent_class($class);
                 if (!class_exists($class)) {
                     $class = 'plugin_' . $v;
                 } else {
                     if ($parent != 'plugin') {
                         $class = 'plugin_' . $v;
                     }
                 }
                 if (class_exists($class)) {
                     $vars = get_class_vars($class);
                     if (isset($vars['file'])) {
                         $obj->file = $vars['file'];
                         $obj->method = preg_replace(array("/\\..+\$/", "/\\.js\$/"), '', $obj->file);
                     }
                     self::$_instances_exist[$v] = $class;
                     if (method_exists($class, 'autoload')) {
                         call_user_func(array($class, 'autoload'));
                     }
                     if (!$ajax->isAjaxRequest()) {
                         if (method_exists($class, 'PageAutoload')) {
                             call_user_func(array($class, 'PageAutoload'));
                         }
                     } else {
                         if (method_exists($class, 'AjaxAutoload')) {
                             call_user_func(array($class, 'AjaxAutoload'));
                         }
                     }
                 }
             }
             $obj->file = "{$v}/{$obj->file}";
             $new[$name] = $obj;
         } else {
             self::$_dirs[$name] = $resource;
             $new[$name] = $obj;
             $dir = $resource;
         }
     }
     return self::$readDir = $new;
 }