ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
ilDclCache Class Reference

Class ilDclCache. More...

+ Collaboration diagram for ilDclCache:

Static Public Member Functions

static setCloneOf ($old, $new, $type)
 
static getCloneOf ($id, $type)
 
static getTableCache ($table_id=0)
 
static getFieldCache ($field_id=0)
 
static getRecordCache ($record_id=0)
 
static getRecordFieldCache ($record, $field)
 
static getFieldRepresentation (ilDclBaseFieldModel $field)
 
static getRecordRepresentation (ilDclBaseRecordFieldModel $record_field)
 Returns a record representation. More...
 
static getFieldProperties ($field_id)
 Cache Field properties. More...
 
static preloadFieldProperties (array $fields)
 Preloads field properties. More...
 
static getDatatype ($datatyp_id)
 Get cached datatypes. More...
 
static buildFieldFromRecord ($rec)
 
static resetCache ()
 Resets all the cache fields. More...
 

Data Fields

const TYPE_DATACOLLECTION = 'dcl'
 
const TYPE_TABLE = 'table'
 
const TYPE_FIELD = 'field'
 
const TYPE_RECORD = 'record'
 
const TYPE_TABLEVIEW = 'tableview'
 

Static Protected Member Functions

static initCloneMapping ()
 

Static Protected Attributes

static $tables_cache
 
static $fields_cache
 
static $records_cache
 
static $record_field_cache
 
static $field_representation_cache
 
static $record_representation_cache
 
static $field_properties_cache
 
static $datatype_cache
 
static $clone_mapping
 

Detailed Description

Member Function Documentation

◆ buildFieldFromRecord()

static ilDclCache::buildFieldFromRecord (   $rec)
static
Parameters
$rec
Returns
ilDclBaseFieldModel

Definition at line 303 of file class.ilDclCache.php.

References $fields_cache, and ilDclFieldFactory\getFieldModelInstanceByClass().

Referenced by ilDclTable\getFieldIds().

304  {
305  $fields_cache = &self::$fields_cache;
306  if (isset($fields_cache[$rec["id"]])) {
307  return $fields_cache[$rec["id"]];
308  }
310  $field->setId($rec["id"]);
311  $field->setTableId($rec["table_id"]);
312  $field->setTitle($rec["title"]);
313  $field->setDescription($rec["description"]);
314  $field->setDatatypeId($rec["datatype_id"]);
315  $field->setRequired($rec["required"]);
316  $field->setUnique($rec["is_unique"]);
317  $field->setLocked($rec["is_locked"]);
318  $fields_cache[$rec["id"]] = $field;
319 
320  return $field;
321  }
Class ilDclBaseFieldModel.
static getFieldModelInstanceByClass(ilDclBaseFieldModel $field, $field_id=null)
Gets the correct instance of a fieldModel class Checks if a field is a plugin a replaces the fieldMod...
static $fields_cache
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getCloneOf()

static ilDclCache::getCloneOf (   $id,
  $type 
)
static

Definition at line 89 of file class.ilDclCache.php.

References $id, $key, and $type.

Referenced by ilDclFileuploadRecordFieldModel\afterClone(), ilDclReferenceRecordFieldModel\afterClone(), ilDclMobRecordFieldModel\afterClone(), and ilDclReferenceFieldModel\getFieldRef().

90  {
91  $type_cache = self::$clone_mapping[$type];
92  if (!is_array($type_cache)) {
93  return false;
94  }
95 
96  if (isset($type_cache[$id])) {
97  $clone_id = $type_cache[$id];
98  } else {
99  foreach ($type_cache as $key => $mapping) {
100  if ($mapping == $id) {
101  $clone_id = $key;
102  }
103  }
104  }
105 
106  if (!$clone_id) {
107  return false;
108  }
109 
110 
111  switch ($type) {
112  case self::TYPE_DATACOLLECTION:
113  return new ilObjDataCollection($clone_id);
114  case self::TYPE_FIELD:
115  return self::getFieldCache($clone_id);
116  case self::TYPE_TABLE:
117  return self::getTableCache($clone_id);
118  case self::TYPE_RECORD:
119  return self::getRecordCache($clone_id);
120  }
121  }
$type
if(!array_key_exists('StateId', $_REQUEST)) $id
$key
Definition: croninfo.php:18
Class ilObjDataCollection.
+ Here is the caller graph for this function:

◆ getDatatype()

static ilDclCache::getDatatype (   $datatyp_id)
static

Get cached datatypes.

Parameters
$datatyp_id
Returns
mixed
Exceptions
ilDclException

Definition at line 285 of file class.ilDclCache.php.

References ilDclDatatype\getAllDatatype().

Referenced by ilDclBaseFieldModel\loadDatatype().

286  {
287  if (self::$datatype_cache == null) {
288  self::$datatype_cache = ilDclDatatype::getAllDatatype();
289  }
290 
291  if (!isset(self::$datatype_cache[$datatyp_id])) {
292  return new ilDclDatatype();
293  }
294  return self::$datatype_cache[$datatyp_id];
295  }
static getAllDatatype()
Get all possible Datatypes.
Class ilDclDatatype.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getFieldCache()

◆ getFieldProperties()

static ilDclCache::getFieldProperties (   $field_id)
static

Cache Field properties.

Parameters
$field_id
Returns
ilDclFieldProperty

Definition at line 236 of file class.ilDclCache.php.

References $result, array, and ActiveRecord\where().

Referenced by ilDclBaseFieldModel\loadProperties().

237  {
238  if (!isset(self::$field_properties_cache[$field_id])) {
239  self::$field_properties_cache[$field_id] = array();
240  $result = ilDclFieldProperty::where(array('field_id'=>$field_id))->get();
241  foreach ($result as $prop) {
242  self::$field_properties_cache[$field_id][$prop->getName()] = $prop;
243  }
244  }
245  return self::$field_properties_cache[$field_id];
246  }
$result
static where($where, $operator=null)
Create styles array
The data for the language used.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getFieldRepresentation()

static ilDclCache::getFieldRepresentation ( ilDclBaseFieldModel  $field)
static
Parameters
ilDclBaseFieldModel$field
Returns
ilDclBaseFieldRepresentation
Exceptions
ilDclException

Definition at line 201 of file class.ilDclCache.php.

References ilDclFieldFactory\getFieldRepresentationInstance(), and ilDclBaseFieldModel\getId().

Referenced by ilDclRecordListTableGUI\initFilter(), ilDclRecordListTableGUI\initFilterFromTableView(), ilDclRecordEditGUI\initForm(), and ilDclBaseRecordModel\passThroughFilter().

202  {
203  if (!isset(self::$field_representation_cache[$field->getId()])) {
204  self::$field_representation_cache[$field->getId()] = ilDclFieldFactory::getFieldRepresentationInstance($field);
205  }
206  return self::$field_representation_cache[$field->getId()];
207  }
static getFieldRepresentationInstance(ilDclBaseFieldModel $field)
Returns FieldRepresentation from BaseFieldModel.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getRecordCache()

static ilDclCache::getRecordCache (   $record_id = 0)
static
Parameters
int$record_id
Returns
ilDclBaseRecordModel

Definition at line 163 of file class.ilDclCache.php.

References $records_cache, and ilDclFieldFactory\getRecordModelInstance().

Referenced by ilDclDetailedViewGUI\__construct(), ilDclTable\_hasFieldByTitle(), ilDclNReferenceFieldGUI\buildTemplate(), ilDclBaseRecordModel\cloneStructure(), ilDclRecordEditGUI\confirmDelete(), ilDclRecordEditGUI\delete(), ilDclDetailedViewGUI\doExtReplace(), ilObjDataCollection\doUpdate(), ilDclReferenceRecordFieldModel\getExportValue(), ilDclNReferenceRecordFieldModel\getExportValue(), ilDclReferenceRecordRepresentation\getHTML(), ilDclNReferenceFieldGUI\getHTML(), ilDclReferenceRecordRepresentation\getLinkHTML(), ilDclRecordEditGUI\getRecord(), ilDclRecordEditGUI\getRecordData(), ilDataCollectionDataSet\getXmlNamespace(), ilDclTable\loadRecords(), ilDclFileuploadFieldRepresentation\requiredWorkaroundForInputField(), ilDclRecordEditGUI\save(), ilDclRecordListGUI\sendFile(), and ilDclRecordEditGUI\setFormValues().

164  {
165  $records_cache = &self::$records_cache;
166  if (!isset($records_cache[$record_id])) {
168  }
169 
170  return $records_cache[$record_id];
171  }
static $records_cache
static getRecordModelInstance($record_id)
Creates a RecordModel instance.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getRecordFieldCache()

static ilDclCache::getRecordFieldCache (   $record,
  $field 
)
static
Parameters
$fieldilDclBaseFieldModel
$recordilDclBaseRecordModel
Returns
ilDclBaseRecordFieldModel

Definition at line 180 of file class.ilDclCache.php.

References array, and ilDclFieldFactory\getRecordFieldInstance().

Referenced by ilDclFileuploadRecordFieldModel\afterClone(), ilDclReferenceRecordFieldModel\afterClone(), ilDclMobRecordFieldModel\afterClone(), ilDclBaseFieldModel\afterClone(), ilDclFormulaRecordQueryObject\applyCustomSorting(), ilDclTextRecordQueryObject\applyCustomSorting(), ilDclBaseRecordModel\cloneStructure(), ilDclRecordEditGUI\confirmDelete(), ilDclRecordListTableGUI\getStatus(), ilDclBaseRecordModel\loadRecordFields(), and ilDclRecordListGUI\sendFile().

181  {
182  $fid = $field->getId();
183  $rid = $record->getId();
184  if (!isset(self::$record_field_cache[$rid])) {
185  self::$record_field_cache[$rid] = array();
186  self::$record_field_cache[$rid][$fid] = ilDclFieldFactory::getRecordFieldInstance($field, $record);
187  } elseif (!isset(self::$record_field_cache[$rid][$fid])) {
188  self::$record_field_cache[$rid][$fid] = ilDclFieldFactory::getRecordFieldInstance($field, $record);
189  }
190 
191  return self::$record_field_cache[$rid][$fid];
192  }
static getRecordFieldInstance(ilDclBaseFieldModel $field, ilDclBaseRecordModel $record)
Creates a RecordField instance and loads the field and record representation.
Create styles array
The data for the language used.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getRecordRepresentation()

static ilDclCache::getRecordRepresentation ( ilDclBaseRecordFieldModel  $record_field)
static

Returns a record representation.

Parameters
ilDclBaseRecordFieldModel$record_field
Returns
ilDclBaseRecordRepresentation
Exceptions
ilDclException

Definition at line 217 of file class.ilDclCache.php.

References ilDclBaseRecordFieldModel\getId(), and ilDclFieldFactory\getRecordRepresentationInstance().

Referenced by ilDclRecordEditGUI\confirmDelete(), and ilDclRecordListGUI\sendFile().

218  {
219  if ($record_field == null) {
220  throw new ilDclException("Cannot get Representation of null object!");
221  }
222 
223  if (!isset(self::$record_representation_cache[$record_field->getId()])) {
224  self::$record_representation_cache[$record_field->getId()] = ilDclFieldFactory::getRecordRepresentationInstance($record_field);
225  }
226  return self::$record_representation_cache[$record_field->getId()];
227  }
static getRecordRepresentationInstance(ilDclBaseRecordFieldModel $record_field)
Get RecordRepresentation from RecordFieldModel.
Class ilDclException.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getTableCache()

static ilDclCache::getTableCache (   $table_id = 0)
static
Parameters
int$table_id
Returns
ilDclTable

Definition at line 128 of file class.ilDclCache.php.

References $tables_cache.

Referenced by ilDclIliasReferenceRecordFieldModel\__construct(), ilDclRatingRecordFieldModel\__construct(), ilDclFieldListTableGUI\__construct(), ilDclReferenceRecordFieldModel\__construct(), ilDclTableViewGUI\__construct(), ilDclFieldListGUI\__construct(), ilDclTableEditGUI\__construct(), ilDclFieldEditGUI\__construct(), ilDclRecordListGUI\__construct(), ilDclReferenceFieldRepresentation\addFilterInputFieldToTable(), ilDclStandardField\allowFilterInListView(), ilDclFormulaFieldRepresentation\buildFieldCreationInput(), ilDclDatetimeFieldModel\checkValidity(), ilDclTextFieldModel\checkValidity(), ilDclFileuploadFieldModel\checkValidity(), ilDclBaseFieldModel\checkValidity(), ilDclTextFieldModel\checkValidityOfURLField(), ilDclTableListGUI\confirmDeleteTables(), ilDclTableView\createDefaultSettings(), ilDclFieldListGUI\deleteFields(), ilDclTableListGUI\deleteTables(), ilObjDataCollection\doCreate(), ilDclBaseRecordModel\doDelete(), ilObjDataCollection\doUpdate(), ilDclTableEditGUI\edit(), ilObjDataCollectionGUI\emptyInfo(), ilDclDetailedViewDefinition\getAvailablePlaceholders(), ilDclReferenceFieldRepresentation\getInputField(), ilDclRecordEditGUI\getRecord(), ilDclReferenceRecordFieldModel\getReferenceFromValue(), ilDclTableView\getTable(), ilObjDataCollection\getTableById(), ilObjDataCollection\getTables(), ilDataCollectionDataSet\getXmlNamespace(), ilObjDataCollectionAccess\hasAccessToField(), ilObjDataCollectionAccess\hasAccessToFields(), ilObjDataCollectionAccess\hasAccessToTable(), ilObjDataCollectionAccess\hasPermissionToAddRecord(), ilDclBaseRecordModel\loadTable(), ilDclSelectionFieldModel\multiPropertyChanged(), ilDclDetailedViewGUI\renderRecord(), ilDclSelectionFieldModel\reorderExistingValues(), ilObjDataCollection\reorderTables(), ilDclFieldListGUI\save(), ilDclTableListGUI\save(), ilDclTableEditGUI\save(), and ilDclExpressionParser\substituteFieldValues().

129  {
130  if ($table_id == 0) {
131  return new ilDclTable();
132  }
133  $tables_cache = &self::$tables_cache;
134  if (!isset($tables_cache[$table_id])) {
135  $tables_cache[$table_id] = new ilDclTable($table_id);
136  }
137 
138  return $tables_cache[$table_id];
139  }
Class ilDclBaseFieldModel.
static $tables_cache
+ Here is the caller graph for this function:

◆ initCloneMapping()

static ilDclCache::initCloneMapping ( )
staticprotected

Definition at line 78 of file class.ilDclCache.php.

References array.

79  {
80  self::$clone_mapping = array(
81  self::TYPE_DATACOLLECTION => array(),
82  self::TYPE_TABLE => array(),
83  self::TYPE_FIELD => array(),
84  self::TYPE_RECORD => array(),
85  self::TYPE_TABLEVIEW => array(),
86  );
87  }
Create styles array
The data for the language used.

◆ preloadFieldProperties()

static ilDclCache::preloadFieldProperties ( array  $fields)
static

Preloads field properties.

Parameters
ilDclBaseFieldModel[]$fields

Definition at line 253 of file class.ilDclCache.php.

References $result, array, and ActiveRecord\where().

Referenced by ilDclTable\getFieldIds().

254  {
255  foreach ($fields as $field_key => $field) {
256  if (isset(self::$field_properties_cache[$field->getId()])) {
257  unset($fields[$field_key]);
258  }
259  }
260 
261  if (count($fields) > 0) {
262  $field_ids = array();
263  foreach ($fields as $field) {
264  $field_ids[] = $field->getId();
265  }
266  $result = ilDclFieldProperty::where(array('field_id'=>$field_ids), 'IN')->get();
267  foreach ($result as $prop) {
268  if (!isset(self::$field_properties_cache[$prop->getFieldId()])) {
269  self::$field_properties_cache[$prop->getFieldId()] = array();
270  }
271  self::$field_properties_cache[$prop->getFieldId()][$prop->getName()] = $prop;
272  }
273  }
274  }
$result
static where($where, $operator=null)
Create styles array
The data for the language used.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ resetCache()

static ilDclCache::resetCache ( )
static

Resets all the cache fields.

Definition at line 327 of file class.ilDclCache.php.

References array.

Referenced by ilDclContentExporter\export().

328  {
329  self::$fields_cache = array();
330  self::$record_field_cache = array();
331  self::$records_cache = array();
332  }
Create styles array
The data for the language used.
+ Here is the caller graph for this function:

◆ setCloneOf()

static ilDclCache::setCloneOf (   $old,
  $new,
  $type 
)
static

Definition at line 70 of file class.ilDclCache.php.

References $new, $old, and $type.

Referenced by ilObjDataCollection\cloneStructure(), ilDclTableView\cloneStructure(), ilDclBaseFieldModel\cloneStructure(), ilDclBaseRecordModel\cloneStructure(), and ilDclTable\cloneStructure().

71  {
72  if (!self::$clone_mapping) {
73  self::initCloneMapping();
74  }
75  self::$clone_mapping[$type][$old] = $new;
76  }
$type
$old
+ Here is the caller graph for this function:

Field Documentation

◆ $clone_mapping

ilDclCache::$clone_mapping
staticprotected

Definition at line 68 of file class.ilDclCache.php.

◆ $datatype_cache

ilDclCache::$datatype_cache
staticprotected

Definition at line 53 of file class.ilDclCache.php.

◆ $field_properties_cache

ilDclCache::$field_properties_cache
staticprotected

Definition at line 48 of file class.ilDclCache.php.

◆ $field_representation_cache

ilDclCache::$field_representation_cache
staticprotected

Definition at line 39 of file class.ilDclCache.php.

◆ $fields_cache

ilDclCache::$fields_cache
staticprotected

Definition at line 24 of file class.ilDclCache.php.

Referenced by buildFieldFromRecord(), and getFieldCache().

◆ $record_field_cache

ilDclCache::$record_field_cache
staticprotected

Definition at line 34 of file class.ilDclCache.php.

◆ $record_representation_cache

ilDclCache::$record_representation_cache
staticprotected

Definition at line 44 of file class.ilDclCache.php.

◆ $records_cache

ilDclCache::$records_cache
staticprotected

Definition at line 28 of file class.ilDclCache.php.

Referenced by getRecordCache().

◆ $tables_cache

ilDclCache::$tables_cache
staticprotected

Definition at line 20 of file class.ilDclCache.php.

Referenced by getTableCache().

◆ TYPE_DATACOLLECTION

const ilDclCache::TYPE_DATACOLLECTION = 'dcl'

Definition at line 11 of file class.ilDclCache.php.

Referenced by ilObjDataCollection\cloneStructure().

◆ TYPE_FIELD

◆ TYPE_RECORD

◆ TYPE_TABLE

const ilDclCache::TYPE_TABLE = 'table'

Definition at line 12 of file class.ilDclCache.php.

Referenced by ilDclTable\cloneStructure().

◆ TYPE_TABLEVIEW

const ilDclCache::TYPE_TABLEVIEW = 'tableview'

Definition at line 15 of file class.ilDclCache.php.

Referenced by ilDclTableView\cloneStructure().


The documentation for this class was generated from the following file: