ILIAS  release_8 Revision v8.24
class.ilDclBaseFieldModel.php
Go to the documentation of this file.
1<?php
2
20{
21 protected string $id = "";
22 protected int $table_id = 0;
23 protected string $title = "";
24 protected string $description = "";
25 protected int $datatypeId = 0;
26 protected ?int $order = null;
27 protected bool $unique = false;
29 protected array $property = [];
30 protected bool $exportable = false;
31 protected ?ilDclDatatype $datatype = null;
35 protected ?int $storage_location_override = null;
39 public const PROP_LENGTH = "lenght";
40 public const PROP_REGEX = "regex";
41 public const PROP_REFERENCE = "table_id";
42 public const PROP_URL = "url";
43 public const PROP_TEXTAREA = "text_area";
44 public const PROP_REFERENCE_LINK = "reference_link";
45 public const PROP_WIDTH = "width";
46 public const PROP_HEIGHT = "height";
47 public const PROP_LEARNING_PROGRESS = "learning_progress";
48 public const PROP_ILIAS_REFERENCE_LINK = "ILIAS_reference_link";
49 public const PROP_N_REFERENCE = "multiple_selection";
50 public const PROP_FORMULA_EXPRESSION = "expression";
51 public const PROP_DISPLAY_COPY_LINK_ACTION_MENU = "display_action_menu";
52 public const PROP_LINK_DETAIL_PAGE_TEXT = "link_detail_page_text";
53 public const PROP_LINK_DETAIL_PAGE_MOB = "link_detail_page_mob";
54 public const PROP_SUPPORTED_FILE_TYPES = "supported_file_types";
55 public const PROP_PLUGIN_HOOK_NAME = "plugin_hook_name";
56 // type of table il_dcl_view
57 public const EDIT_VIEW = 2;
58 public const EXPORTABLE_VIEW = 4;
59
60 protected ilDBInterface $db;
61 protected ilLanguage $lng;
62
63 public function __construct(int $a_id = 0)
64 {
65 global $DIC;
66 $this->db = $DIC->database();
67 $this->lng = $DIC->language();
68
69 if ($a_id != 0) {
70 $this->id = $a_id;
71 $this->doRead();
72 }
73 }
74
78 public static function _getTitleInvalidChars(bool $a_as_regex = true): string
79 {
80 if ($a_as_regex) {
81 return '/^[^<>\\\\":]*$/i';
82 } else {
83 return '\ < > " :';
84 }
85 }
86
87 public static function _getFieldIdByTitle(string $title, int $table_id): int
88 {
89 global $DIC;
90 $ilDB = $DIC['ilDB'];
91 $result = $ilDB->query(
92 'SELECT id FROM il_dcl_field WHERE title = ' . $ilDB->quote($title, 'text') . ' AND table_id = '
93 . $ilDB->quote($table_id, 'integer')
94 );
95 $id = 0;
96 while ($rec = $ilDB->fetchAssoc($result)) {
97 $id = $rec['id'];
98 }
99
100 return $id;
101 }
102
107 public function setId($a_id): void
108 {
109 $this->id = $a_id;
110 }
111
115 public function getId(): string
116 {
117 return $this->id;
118 }
119
123 public function setTableId(int $a_id): void
124 {
125 $this->table_id = $a_id;
126 }
127
131 public function getTableId(): int
132 {
133 return $this->table_id;
134 }
135
139 public function setTitle(string $a_title): void
140 {
141 //title cannot begin with _ as this is saved for other purposes. make __ instead.
142 if (substr($a_title, 0, 1) == "_" && substr($a_title, 0, 2) != "__") {
143 $a_title = "_" . $a_title;
144 }
145 $this->title = $a_title;
146 }
147
151 public function getTitle(): string
152 {
153 return $this->title;
154 }
155
159 public function setDescription(string $a_desc): void
160 {
161 $this->description = $a_desc;
162 }
163
167 public function getDescription(): string
168 {
169 return $this->description;
170 }
171
175 public function setDatatypeId(int $a_id): void
176 {
177 //unset the cached datatype.
178 $this->datatype = null;
179 $this->datatypeId = $a_id;
180 }
181
185 public function getDatatypeId(): int
186 {
187 if ($this->isStandardField()) {
189 }
190
191 return $this->datatypeId;
192 }
193
194 public function isUnique(): bool
195 {
196 return $this->unique;
197 }
198
199 public function setUnique(?bool $unique): void
200 {
201 $this->unique = $unique ? 1 : 0;
202 }
203
204 public function getDatatype(): ilDclDatatype
205 {
206 $this->loadDatatype();
207
208 return $this->datatype;
209 }
210
211 public function getDatatypeTitle(): string
212 {
213 $this->loadDatatype();
214 return $this->datatype->getTitle();
215 }
216
217 public function getPresentationTitle(): string
218 {
219 return $this->lng->txt('dcl_' . $this->getDatatypeTitle());
220 }
221
222 public function getPresentationDescription(): string
223 {
224 return $this->lng->txt('dcl_' . $this->getDatatypeTitle() . '_desc');
225 }
226
230 public function getStorageLocation(): ?int
231 {
232 if ($this->getStorageLocationOverride() !== null) {
233 return $this->getStorageLocationOverride();
234 }
235
236 $this->loadDatatype();
237
238 return $this->datatype->getStorageLocation();
239 }
240
244 protected function loadDatatype(): void
245 {
246 if ($this->datatype == null) {
247 $this->datatype = ilDclCache::getDatatype($this->datatypeId);
248 }
249 }
250
254 protected function loadTableFieldSetting(): void
255 {
256 $tablefield_setting = ilDclTableFieldSetting::getInstance($this->getTableId(), $this->getId());
257 $this->exportable = $tablefield_setting->isExportable();
258 $this->order = $tablefield_setting->getFieldOrder();
259 }
260
264 public function getExportable(): bool
265 {
266 if (!isset($this->exportable)) {
267 $this->loadExportability();
268 }
269
270 return $this->exportable;
271 }
272
276 private function loadExportability(): void
277 {
278 if ($this->exportable == null) {
279 $this->loadTableFieldSetting();
280 }
281 }
282
283 public function toArray(): array
284 {
285 return (array) $this;
286 }
287
288 public function isStandardField(): bool
289 {
290 return false;
291 }
292
293 public function doRead(): void
294 {
295 //THEN 1 ELSE 0 END AS has_options FROM il_dcl_field f WHERE id = ".$ilDB->quote($this->getId(),"integer");
296 $query = "SELECT * FROM il_dcl_field WHERE id = " . $this->db->quote($this->getId(), "integer");
297 $set = $this->db->query($query);
298 $rec = $this->db->fetchAssoc($set);
299
300 if ($rec) {
301 $this->setTableId($rec["table_id"]);
302 if (null !== $rec["title"]) {
303 $this->setTitle($rec["title"]);
304 }
305 if (null !== $rec["description"]) {
306 $this->setDescription($rec["description"]);
307 }
308 $this->setDatatypeId($rec["datatype_id"]);
309 $this->setUnique($rec["is_unique"]);
310 }
311
312 $this->loadProperties();
313 $this->loadTableFieldSetting();
314 }
315
319 public function buildFromDBRecord(array $rec): void
320 {
321 $this->setId($rec["id"]);
322 $this->setTableId($rec["table_id"]);
323 $this->setTitle($rec["title"]);
324 $this->setDescription($rec["description"]);
325 $this->setDatatypeId($rec["datatype_id"]);
326 $this->setUnique($rec["is_unique"] ?? null);
327 }
328
329 public function doCreate(): void
330 {
331 global $DIC;
332 $ilDB = $DIC['ilDB'];
333
334 if (!ilDclTable::_tableExists($this->getTableId())) {
335 throw new ilException("The field does not have a related table!");
336 }
337
338 $id = $ilDB->nextId("il_dcl_field");
339 $this->setId($id);
340 $query = "INSERT INTO il_dcl_field (" . "id" . ", table_id" . ", datatype_id" . ", title" . ", description" . ", is_unique"
341 . " ) VALUES (" . $ilDB->quote($this->getId(), "integer") . "," . $ilDB->quote(
342 $this->getTableId(),
343 "integer"
344 ) . ","
345 . $ilDB->quote($this->getDatatypeId(), "integer") . "," . $ilDB->quote($this->getTitle(), "text") . ","
346 . $ilDB->quote($this->getDescription(), "text") . "," . $ilDB->quote($this->isUnique(), "integer") . ")";
347 $ilDB->manipulate($query);
348
350
351 $this->addToTableViews();
352 }
353
357 protected function addToTableViews(): void
358 {
359 foreach (ilDclTableView::getAllForTableId($this->table_id) as $tableview) {
360 $tableview->createFieldSetting($this->id);
361 }
362 }
363
364 public function doUpdate(): void
365 {
366 global $DIC;
367 $ilDB = $DIC['ilDB'];
368
369 $ilDB->update(
370 "il_dcl_field",
371 array(
372 "table_id" => array(
373 "integer",
374 $this->getTableId(),
375 ),
376 "datatype_id" => array(
377 "text",
378 $this->getDatatypeId(),
379 ),
380 "title" => array(
381 "text",
382 $this->getTitle(),
383 ),
384 "description" => array(
385 "text",
386 $this->getDescription(),
387 ),
388 "is_unique" => array(
389 "integer",
390 $this->isUnique(),
391 ),
392 ),
393 array(
394 "id" => array(
395 "integer",
396 $this->getId(),
397 ),
398 )
399 );
401 $this->updateProperties();
402 }
403
407 public function updateProperties(): void
408 {
409 foreach ($this->property as $prop) {
410 $prop->store();
411 }
412 }
413
417 protected function updateTableFieldSetting(): void
418 {
419 $tablefield_setting = ilDclTableFieldSetting::getInstance($this->getTableId(), $this->getId());
420 $tablefield_setting->setExportable($this->exportable);
421 $tablefield_setting->setFieldOrder($this->getOrder());
422 $tablefield_setting->store();
423 }
424
428 public function doDelete(): void
429 {
430 global $DIC;
431 $ilDB = $DIC['ilDB'];
432
433 // delete tablefield setting.
434 ilDclTableFieldSetting::getInstance($this->getTableId(), $this->getId())->delete();
435
436 $query = "DELETE FROM il_dcl_field_prop WHERE field_id = " . $ilDB->quote($this->getId(), "text");
437 $ilDB->manipulate($query);
438
439 $query = "DELETE FROM il_dcl_field WHERE id = " . $ilDB->quote($this->getId(), "text");
440 $ilDB->manipulate($query);
441
442 foreach ($this->getViewSettings() as $field_setting) {
443 $field_setting->delete();
444 }
445 }
446
450 public function getViewSettings(): array
451 {
452 return ilDclTableViewFieldSetting::where(array('field' => $this->getId()))->get();
453 }
454
455 public function getViewSetting(int $tableview_id): ilDclTableViewFieldSetting
456 {
458 return ilDclTableViewFieldSetting::getTableViewFieldSetting($this->getId(), $tableview_id);
459 }
460
461 public function getOrder(): int
462 {
463 if ($this->order == null) {
464 $this->loadTableFieldSetting();
465 }
466
467 return !$this->order ? 0 : $this->order;
468 }
469
470 public function setOrder(string $order): void
471 {
472 $this->order = $order;
473 }
474
478 protected function loadProperties(): void
479 {
480 $this->property = ilDclCache::getFieldProperties($this->getId());
481 }
482
486 public function hasProperty(string $key): bool
487 {
488 $this->loadProperties();
489
490 return (isset($this->property[$key]) && $this->property[$key]->getValue() != null);
491 }
492
497 public function getProperty(string $key)
498 {
499 $instance = $this->getPropertyInstance($key);
500
501 return ($instance !== null) ? $instance->getValue() : null;
502 }
503
508 public function getPropertyInstance(string $key)
509 {
510 $this->loadProperties();
511 if ($this->hasProperty($key)) {
512 $value = $this->property[$key];
513
514 return $value;
515 }
516
517 return null;
518 }
519
524 public function setProperty(string $key, $value): ?ilDclFieldProperty
525 {
526 $this->loadProperties();
527 if (isset($this->property[$key])) {
528 $this->property[$key]->setValue($value);
529 } else {
531 $property->setName($key);
532 $property->setFieldId($this->getId());
533 $property->setValue($value);
534
535 $this->property[$key] = $property;
536 }
537
538 return $this->property[$key];
539 }
540
544 public function getValidFieldProperties(): array
545 {
546 return [];
547 }
548
549 public function checkValidityFromForm(ilPropertyFormGUI &$form, ?int $record_id = null): void
550 {
551 $value = $form->getInput('field_' . $this->getId());
552 $this->checkValidity($value, $record_id);
553 }
554
560 public function checkValidity($value, ?int $record_id = null): bool
561 {
562 //Don't check empty values
563 if ($value == null) {
564 return true;
565 }
566
567 if ($this->isUnique()) {
568 $table = ilDclCache::getTableCache($this->getTableId());
569 foreach ($table->getRecords() as $record) {
570 if ($this->normalizeValue($record->getRecordFieldValue($this->getId())) == $this->normalizeValue($value) && ($record->getId() != $record_id || $record_id == 0)) {
572 }
573 }
574 }
575
576 return true;
577 }
578
582 protected function normalizeValue($value)
583 {
584 if (is_string($value)) {
585 $value = trim(preg_replace("/\\s+/uism", " ", $value));
586 }
587
588 return $value;
589 }
590
594 public function cloneStructure(int $original_id): void
595 {
596 $original = ilDclCache::getFieldCache($original_id);
597 $this->setTitle($original->getTitle());
598 $this->setDatatypeId($original->getDatatypeId());
599 $this->setDescription($original->getDescription());
600 $this->setOrder($original->getOrder());
601 $this->setUnique($original->isUnique());
602 $this->setExportable($original->getExportable());
603 $this->doCreate();
604 $this->cloneProperties($original);
605
606 // mandatory for all cloning functions
607 ilDclCache::setCloneOf($original_id, $this->getId(), ilDclCache::TYPE_FIELD);
608 }
609
610 public function afterClone(array $records)
611 {
612 foreach ($records as $rec) {
613 ilDclCache::getRecordFieldCache($rec, $this)->afterClone();
614 }
615 }
616
617 public function cloneProperties(ilDclBaseFieldModel $originalField): void
618 {
619 $orgProps = $originalField->getValidFieldProperties();
620 if (count($orgProps) == 0) {
621 return;
622 }
623 foreach ($orgProps as $prop_name) {
624 $fieldprop_obj = new ilDclFieldProperty();
625 $fieldprop_obj->setFieldId($this->getId());
626 $fieldprop_obj->setName($prop_name);
627
628 $value = $originalField->getProperty($prop_name);
629
630 // If reference field, we must reset the referenced field, otherwise it will point to the old ID
632 $value = null;
633 }
634
635 if ($value) {
636 $fieldprop_obj->setValue($value);
637 $fieldprop_obj->create();
638 }
639 }
640 }
641
642 public function setExportable(bool $exportable): void
643 {
644 $this->exportable = $exportable;
645 }
646
647 public function allowFilterInListView(): bool
648 {
649 return true;
650 }
651
657 string $direction = "asc",
658 bool $sort_by_status = false
660 global $DIC;
661 $ilDB = $DIC['ilDB'];
662
663 $sql_obj = new ilDclRecordQueryObject();
664
665 $select_str = "sort_stloc_{$this->getId()}.value AS field_{$this->getId()}";
666 $join_str
667 = "LEFT JOIN il_dcl_record_field AS sort_record_field_{$this->getId()} ON (sort_record_field_{$this->getId()}.record_id = record.id AND sort_record_field_{$this->getId()}.field_id = "
668 . $ilDB->quote($this->getId(), 'integer') . ") ";
669 $join_str .= "LEFT JOIN il_dcl_stloc{$this->getStorageLocation()}_value AS sort_stloc_{$this->getId()} ON (sort_stloc_{$this->getId()}.record_field_id = sort_record_field_{$this->getId()}.id)";
670
671 $sql_obj->setSelectStatement($select_str);
672 $sql_obj->setJoinStatement($join_str);
673 $sql_obj->setOrderStatement("field_{$this->getId()} {$direction}, ID ASC");
674
675 return $sql_obj;
676 }
677
683 $filter_value = "",
684 ?ilDclBaseFieldModel $sort_field = null
686 return null;
687 }
688
692 public function getSortField(): string
693 {
694 return $this->getTitle();
695 }
696
700 public function hasNumericSorting(): bool
701 {
702 if ($this->getDatatypeId() == ilDclDatatype::INPUTFORMAT_NUMBER) {
703 return true;
704 }
705
706 return false;
707 }
708
714 public function checkFieldCreationInput(ilPropertyFormGUI $form): bool
715 {
716 return true;
717 }
718
722 public function getStorageLocationOverride(): ?int
723 {
724 return $this->storage_location_override;
725 }
726
730 public function setStorageLocationOverride(?int $storage_location_override): void
731 {
732 $this->storage_location_override = $storage_location_override;
733 }
734
735 public function fillHeaderExcel(ilExcel $worksheet, int &$row, int &$col): void
736 {
737 $worksheet->setCell($row, $col, $this->getTitle());
738 $col++;
739 }
740
741 public function checkTitlesForImport(array &$titles, array &$import_fields): void
742 {
743 foreach ($titles as $k => $title) {
744 if (!ilStr::isUtf8($title)) {
745 $title = utf8_encode($title);
746 }
747 if ($title == $this->getTitle()) {
748 $import_fields[$k] = $this;
749 }
750 }
751 }
752
756 public function storePropertiesFromForm(ilPropertyFormGUI $form): void
757 {
758 $field_props = $this->getValidFieldProperties();
759 foreach ($field_props as $property) {
761 $value = $form->getInput($representation->getPropertyInputFieldId($property));
762
763 // save non empty values and set them to null, when they already exist. Do not override plugin-hook when already set.
764 if (!empty($value) || ($this->getPropertyInstance($property) != null && $property != self::PROP_PLUGIN_HOOK_NAME)) {
765 $this->setProperty($property, $value)->store();
766 }
767 }
768 }
769
773 public function fillPropertiesForm(ilPropertyFormGUI &$form): bool
774 {
775 $values = array(
776 'table_id' => $this->getTableId(),
777 'field_id' => $this->getId(),
778 'title' => $this->getTitle(),
779 'datatype' => $this->getDatatypeId(),
780 'description' => $this->getDescription(),
781 'unique' => $this->isUnique(),
782 );
783
784 $properties = $this->getValidFieldProperties();
785 foreach ($properties as $prop) {
786 $values['prop_' . $prop] = $this->getProperty($prop);
787 }
788
789 $form->setValuesByArray($values);
790
791 return true;
792 }
793
798 public function isConfirmationRequired(ilPropertyFormGUI $form): bool
799 {
800 return false;
801 }
802
807 {
808 global $DIC;
809 $ilConfirmationGUI = new ilConfirmationGUI();
810 $ilConfirmationGUI->setFormAction($form->getFormAction());
811 $ilConfirmationGUI->addHiddenItem('confirmed', 1);
812 $ilConfirmationGUI->addHiddenItem('field_id', $form->getInput('field_id'));
813 $ilConfirmationGUI->addHiddenItem('title', $form->getInput('title'));
814 $ilConfirmationGUI->addHiddenItem('description', $form->getInput('description'));
815 $ilConfirmationGUI->addHiddenItem('datatype', $form->getInput('datatype'));
816 $ilConfirmationGUI->addHiddenItem('unique', $form->getInput('unique'));
817 $ilConfirmationGUI->setConfirm($DIC->language()->txt('dcl_update_field'), 'update');
818 $ilConfirmationGUI->setCancel($DIC->language()->txt('cancel'), 'edit');
819
820 return $ilConfirmationGUI;
821 }
822}
static where($where, $operator=null)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setDatatypeId(int $a_id)
Set datatype id.
setTitle(string $a_title)
Set title.
getViewSetting(int $tableview_id)
int $storage_location_override
With this property the datatype-storage-location can be overwritten.
hasProperty(string $key)
Checks if a certain property for a field is set.
doDelete()
Remove field and properties.
getRecordQuerySortObject(string $direction="asc", bool $sort_by_status=false)
Returns a query-object for building the record-loader-sql-query.
updateTableFieldSetting()
update exportable and fieldorder
updateProperties()
Update properties of this field in Database.
setProperty(string $key, $value)
Set a property for a field (does not save)
getProperty(string $key)
Returns a certain property of a field.
getRecordQueryFilterObject( $filter_value="", ?ilDclBaseFieldModel $sort_field=null)
Returns a query-object for building the record-loader-sql-query.
checkValidityFromForm(ilPropertyFormGUI &$form, ?int $record_id=null)
static _getFieldIdByTitle(string $title, int $table_id)
fillPropertiesForm(ilPropertyFormGUI &$form)
called to fill the 'edit field' form
loadTableFieldSetting()
loadTableFieldSetting
loadDatatype()
Load datatype for model.
static _getTitleInvalidChars(bool $a_as_regex=true)
All valid chars for filed titles.
getPropertyInstance(string $key)
Return ActiveRecord of property.
getConfirmationGUI(ilPropertyFormGUI $form)
called by ilDclFieldEditGUI if isConfirmationRequired returns true
addToTableViews()
create ilDclTableViewFieldSettings for this field in each tableview
storePropertiesFromForm(ilPropertyFormGUI $form)
called when saving the 'edit field' form
isConfirmationRequired(ilPropertyFormGUI $form)
called by ilDclFieldEditGUI when updating field properties if you overwrite this method,...
getValidFieldProperties()
Returns all valid properties for a field-type.
cloneProperties(ilDclBaseFieldModel $originalField)
loadProperties()
Get all properties of a field.
getStorageLocation()
Get storage location for the model.
loadExportability()
Load exportability.
setDescription(string $a_desc)
Set description.
buildFromDBRecord(array $rec)
Builds model from db record.
hasNumericSorting()
Set to true, when the sorting should be handled numerical.
setStorageLocationOverride(?int $storage_location_override)
checkTitlesForImport(array &$titles, array &$import_fields)
const PROP_LENGTH
General properties.
getSortField()
Returns the sort-field id.
checkValidity($value, ?int $record_id=null)
Check if input is valid.
setTableId(int $a_id)
Set table id.
fillHeaderExcel(ilExcel $worksheet, int &$row, int &$col)
checkFieldCreationInput(ilPropertyFormGUI $form)
Checks input of specific fields befor saving.
static getRecordFieldCache(object $record, object $field)
static getFieldProperties($field_id)
Cache Field properties.
static getFieldCache(int $field_id=0)
static getTableCache(int $table_id=null)
static setCloneOf(int $old, int $new, string $type)
static getDatatype(int $datatyp_id)
Get cached datatypes.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getFieldRepresentationInstance(ilDclBaseFieldModel $field)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _getDatatypeForId(string $id)
gives you the datatype id of a specified standard field.
static getInstance(int $table_id, string $field)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getTableViewFieldSetting(string $id, int $tableview_id)
static getAllForTableId(int $table_id)
static _tableExists(int $table_id)
setCell(int $a_row, int $a_col, $a_value, ?string $a_datatype=null)
Set cell value.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
language handling
This class represents a property form user interface.
setValuesByArray(array $a_values, bool $a_restrict_to_value_keys=false)
getInput(string $a_post_var, bool $ensureValidation=true)
Returns the input of an item, if item provides getInput method and as fallback the value of the HTTP-...
static isUtf8(string $a_str)
Check whether string is utf-8.
return['3gp', '7z', 'ai', 'aif', 'aifc', 'aiff', 'au', 'arw', 'avi', 'backup', 'bak', 'bas', 'bpmn', 'bpmn2', 'bmp', 'bib', 'bibtex', 'bz', 'bz2', 'c', 'c++', 'cc', 'cct', 'cdf', 'cer', 'class', 'cls', 'conf', 'cpp', 'crt', 'crs', 'crw', 'cr2', 'css', 'cst', 'csv', 'cur', 'db', 'dcr', 'des', 'dng', 'doc', 'docx', 'dot', 'dotx', 'dtd', 'dvi', 'el', 'eps', 'epub', 'f', 'f77', 'f90', 'flv', 'for', 'g3', 'gif', 'gl', 'gan', 'ggb', 'gsd', 'gsm', 'gtar', 'gz', 'gzip', 'h', 'hpp', 'htm', 'html', 'htmls', 'ibooks', 'ico', 'ics', 'ini', 'ipynb', 'java', 'jbf', 'jpeg', 'jpg', 'js', 'jsf', 'jso', 'json', 'latex', 'lang', 'less', 'log', 'lsp', 'ltx', 'm1v', 'm2a', 'm2v', 'm3u', 'm4a', 'm4v', 'markdown', 'm', 'mat', 'md', 'mdl', 'mdown', 'mid', 'min', 'midi', 'mobi', 'mod', 'mov', 'movie', 'mp2', 'mp3', 'mp4', 'mpa', 'mpeg', 'mpg', 'mph', 'mpga', 'mpp', 'mpt', 'mpv', 'mpx', 'mv', 'mw', 'mv4', 'nb', 'nbp', 'nef', 'nif', 'niff', 'obj', 'obm', 'odt', 'ods', 'odp', 'odg', 'odf', 'oga', 'ogg', 'ogv', 'old', 'p', 'pas', 'pbm', 'pcl', 'pct', 'pcx', 'pdf', 'pgm', 'pic', 'pict', 'png', 'por', 'pov', 'project', 'properties', 'ppa', 'ppm', 'pps', 'ppsx', 'ppt', 'pptx', 'ppz', 'ps', 'psd', 'pwz', 'qt', 'qtc', 'qti', 'qtif', 'r', 'ra', 'ram', 'rar', 'rast', 'rda', 'rev', 'rexx', 'ris', 'rf', 'rgb', 'rm', 'rmd', 'rmi', 'rmm', 'rmp', 'rt', 'rtf', 'rtx', 'rv', 's', 's3m', 'sav', 'sbs', 'sec', 'sdml', 'sgm', 'sgml', 'smi', 'smil', 'srt', 'sps', 'spv', 'stl', 'svg', 'swa', 'swf', 'swz', 'tar', 'tex', 'texi', 'texinfo', 'text', 'tgz', 'tif', 'tiff', 'ttf', 'txt', 'tmp', 'uvproj', 'vdf', 'vimeo', 'viv', 'vivo', 'vrml', 'vsdx', 'wav', 'webm', 'wmv', 'wmx', 'wmz', 'woff', 'wwd', 'xhtml', 'xif', 'xls', 'xlsx', 'xmind', 'xml', 'xsl', 'xsd', 'zip']
global $DIC
Definition: feed.php:28
Interface ilDBInterface.
string $key
Consumer key/client ID value.
Definition: System.php:193
getValue()
Get the value that is displayed in the input client side.
Definition: Group.php:47
$query