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; } } }