示例#1
0
 private static function set_cms_modules()
 {
     if (!isset(self::$cms_modules)) {
         self::$cms_modules = [];
         if (!file_exists(root . '/.cache/.modules.json')) {
             static::rebuild_modules();
         }
         $data = json_decode(file_get_contents(root . '/.cache/.modules.json'));
         self::$cms_modules = new _collection();
         self::$cms_modules_id = new _collection();
         foreach ($data as $module_data) {
             $module = new _cms_module();
             foreach (_cms_module::$default_fields as $field) {
                 $module->{$field} = $module_data->{$field};
             }
             foreach ($module_data->fields as $field_data) {
                 $cms_field = new _cms_field();
                 foreach (_cms_field::$default_fields as $field) {
                     $cms_field->{$field} = $field_data->{$field};
                 }
                 $module->_field_elements[$cms_field->field_name] = $cms_field;
                 $module->_field_elements[$cms_field->field_name] = $cms_field->get_field();
             }
             self::$cms_modules[trim($module->get_class_name(), '\\')] = $module;
             self::$cms_modules_id[$module->mid] = $module;
         }
     }
 }