19 declare(strict_types=1);
    75     public static function setCloneOf(
int $old, 
int $new, 
string $type): void
    77         if (!self::$clone_mapping) {
    78             self::initCloneMapping();
    80         self::$clone_mapping[$type][$old] = $new;
    85         self::$clone_mapping = [
    86             self::TYPE_DATACOLLECTION => [],
    87             self::TYPE_TABLE => [],
    88             self::TYPE_FIELD => [],
    89             self::TYPE_RECORD => [],
    90             self::TYPE_TABLEVIEW => [],
    96         $type_cache = self::$clone_mapping[$type];
    99         if (!is_array($type_cache)) {
   103         if (isset($type_cache[$id])) {
   104             $clone_id = $type_cache[
$id];
   106             foreach ($type_cache as $key => $mapping) {
   107                 if ($mapping == $id) {
   118             case self::TYPE_DATACOLLECTION:
   120             case self::TYPE_FIELD:
   121                 return self::getFieldCache($clone_id);
   122             case self::TYPE_TABLE:
   123                 return self::getTableCache($clone_id);
   124             case self::TYPE_RECORD:
   125                 return self::getRecordCache($clone_id);
   133         if (is_null($table_id) === 
true || $table_id === 0) {
   136         $tables_cache = &self::$tables_cache;
   137         if (!isset($tables_cache[$table_id])) {
   138             $tables_cache[$table_id] = 
new ilDclTable($table_id);
   141         return $tables_cache[$table_id];
   146         $fields_cache = &self::$fields_cache;
   147         if (!isset($fields_cache[$field_id])) {
   151         return $fields_cache[$field_id];
   156         $records_cache = &self::$records_cache;
   157         if (!$record_id || !isset($records_cache[$record_id])) {
   161         return $records_cache[$record_id];
   168         $fid = $field->
getId();
   169         $rid = $record->getId();
   170         if (!isset(self::$record_field_cache[$rid])) {
   171             self::$record_field_cache[$rid] = [];
   173         } elseif (!isset(self::$record_field_cache[$rid][$fid])) {
   177         return self::$record_field_cache[$rid][$fid];
   185         if (!isset(self::$field_representation_cache[$field->
getId()])) {
   189         return self::$field_representation_cache[$field->
getId()];
   200         if (!isset(self::$record_representation_cache[$record_field->
getId()])) {
   204         return self::$record_representation_cache[$record_field->
getId()];
   213         if (!isset(self::$field_properties_cache[$field_id])) {
   214             self::$field_properties_cache[$field_id] = [];
   216             foreach ($result as $prop) {
   217                 self::$field_properties_cache[$field_id][$prop->getName()] = $prop;
   221         return self::$field_properties_cache[$field_id];
   230         foreach ($fields as $field_key => $field) {
   231             if (isset(self::$field_properties_cache[$field->getId()])) {
   232                 unset($fields[$field_key]);
   236         if (count($fields) > 0) {
   238             foreach ($fields as $field) {
   239                 $field_ids[] = $field->getId();
   242             foreach ($result as $prop) {
   243                 if (!isset(self::$field_properties_cache[$prop->getFieldId()])) {
   244                     self::$field_properties_cache[$prop->getFieldId()] = [];
   246                 self::$field_properties_cache[$prop->getFieldId()][$prop->getName()] = $prop;
   257         if (self::$datatype_cache == null) {
   261         if (!isset(self::$datatype_cache[$datatyp_id])) {
   264                 $unknown->setTitle(
'unknown_plugin');
   269         return self::$datatype_cache[$datatyp_id];
   274         $fields_cache = &self::$fields_cache;
   275         if (isset($fields_cache[$rec[
"id"]])) {
   276             return $fields_cache[$rec[
"id"]];
   279         $field->setId($rec[
"id"]);
   280         $field->setTableId($rec[
"table_id"]);
   281         if (null !== $rec[
"title"]) {
   282             $field->setTitle($rec[
"title"]);
   284         if (null !== $rec[
"description"]) {
   285             $field->setDescription($rec[
"description"]);
   287         $field->setDatatypeId($rec[
"datatype_id"]);
   288         $field->setUnique((
bool) $rec[
"is_unique"]);
   289         $fields_cache[$rec[
"id"]] = $field;
   299         self::$fields_cache = [];
   300         self::$record_field_cache = [];
   301         self::$records_cache = [];
 
const TYPE_DATACOLLECTION
 
static array $records_cache
 
static preloadFieldProperties(array $fields)
Preloads field properties. 
 
static getFieldRepresentationInstance(ilDclBaseFieldModel $field)
 
static array $record_field_cache
 
static initCloneMapping()
 
static getFieldCache(int $field_id=0)
 
static array $tables_cache
 
static getRecordModelInstance(?int $record_id)
 
static array $field_properties_cache
 
static array $field_representation_cache
 
static where($where, $operator=null)
 
static array $fields_cache
 
static resetCache()
Resets all the cache fields. 
 
static getFieldRepresentation(ilDclBaseFieldModel $field)
 
static getDatatype(int $datatyp_id)
Get cached datatypes. 
 
static getFieldModelInstanceByClass(ilDclBaseFieldModel $field, ?int $field_id=null)
Gets the correct instance of a fieldModel class Checks if a field is a plugin a replaces the fieldMod...
 
static getTableCache(int $table_id=null)
 
static getFieldModelInstance(int $field_id, ?int $datatype=null)
Get FieldModel from field-id and datatype. 
 
static getAllDatatype(bool $force=false)
Get all possible Datatypes. 
 
static getRecordRepresentation(ilDclBaseRecordFieldModel $record_field)
Returns a record representation. 
 
static setCloneOf(int $old, int $new, string $type)
 
static getRecordFieldInstance(object $field, object $record)
Creates a RecordField instance and loads the field and record representation. 
 
static array $clone_mapping
 
static getRecordRepresentationInstance(ilDclBaseRecordFieldModel $record_field)
Get RecordRepresentation from RecordFieldModel. 
 
static getRecordCache(?int $record_id)
 
static array $datatype_cache
 
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins 
 
static buildFieldFromRecord(array $rec)
 
static getCloneOf(int $id, string $type)
 
static getRecordFieldCache(object $record, object $field)
 
static getFieldProperties(string $field_id)
Cache Field properties. 
 
static array $record_representation_cache