ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ilDclSelectionFieldModel Class Reference

Class ilDclSelectionFieldModel. More...

+ Inheritance diagram for ilDclSelectionFieldModel:
+ Collaboration diagram for ilDclSelectionFieldModel:

Public Member Functions

 getValidFieldProperties ()
 @inheritDoc More...
 
 getRecordQueryFilterObject ($filter_value="", ilDclBaseFieldModel $sort_field=null)
 Returns a query-object for building the record-loader-sql-query. More...
 
 isMulti ()
 
 storePropertiesFromForm (ilPropertyFormGUI $form)
 called when saving the 'edit field' form More...
 
 fillPropertiesForm (ilPropertyFormGUI &$form)
 
 setProperty ($key, $value)
 
 reorderExistingValues ()
 sorts record field values by the new order More...
 
 getProperty ($key)
 
 getRecordQuerySortObject ($direction="asc", $sort_by_status=false)
 
 cloneProperties (ilDclBaseFieldModel $originalField)
 
 doDelete ()
 Remove field and properties. More...
 
 isConfirmationRequired (ilPropertyFormGUI $form)
 called by ilDclFieldEditGUI when updating field properties if you overwrite this method, remember to also overwrite getConfirmationGUI
Parameters
ilPropertyFormGUI$form
Returns
bool
More...
 
 getConfirmationGUI (ilPropertyFormGUI $form)
 called by ilDclFieldEditGUI if isConfirmationRequired returns true
Parameters
ilPropertyFormGUI$form
Returns
ilConfirmationGUI
More...
 
- Public Member Functions inherited from ilDclBaseFieldModel
 __construct ($a_id=0)
 
 setId ($a_id)
 Set field id. More...
 
 getId ()
 Get field id. More...
 
 setTableId ($a_id)
 Set table id. More...
 
 getTableId ()
 Get table id. More...
 
 setTitle ($a_title)
 Set title. More...
 
 getTitle ()
 Get title. More...
 
 setDescription ($a_desc)
 Set description. More...
 
 getDescription ()
 Get description. More...
 
 setDatatypeId ($a_id)
 Set datatype id. More...
 
 getDatatypeId ()
 Get datatype_id. More...
 
 setRequired ($a_required)
 Set Required. More...
 
 getRequired ()
 Get Required Required. More...
 
 isUnique ()
 
 setUnique ($unique)
 
 getDatatype ()
 
 getDatatypeTitle ()
 
 getStorageLocation ()
 Get storage location for the model. More...
 
 getExportable ()
 
 toArray ()
 
 isStandardField ()
 
 doRead ()
 Read field. More...
 
 buildFromDBRecord ($rec)
 Builds model from db record. More...
 
 doCreate ()
 Create new field. More...
 
 doUpdate ()
 Update field. More...
 
 updateProperties ()
 Update properties of this field in Database. More...
 
 doDelete ()
 Remove field and properties. More...
 
 getFieldSettings ()
 
 getOrder ()
 
 setOrder ($order)
 
 hasProperty ($key)
 Checks if a certain property for a field is set. More...
 
 getProperty ($key)
 Returns a certain property of a field. More...
 
 getPropertyInstance ($key)
 Return ActiveRecord of property. More...
 
 setProperty ($key, $value)
 Set a property for a field (does not save) More...
 
 getValidFieldProperties ()
 Returns all valid properties for a field-type. More...
 
 setLocked ($locked)
 
 getLocked ()
 
 checkValidityFromForm (ilPropertyFormGUI &$form, $record_id=null)
 
 checkValidity ($value, $record_id=null)
 Check if input is valid. More...
 
 cloneStructure ($original_id)
 
 afterClone ($records)
 
 cloneProperties (ilDclBaseFieldModel $originalField)
 
 setExportable ($exportable)
 
 allowFilterInListView ()
 
 getRecordQuerySortObject ($direction="asc", $sort_by_status=false)
 Returns a query-object for building the record-loader-sql-query. More...
 
 getRecordQueryFilterObject ($filter_value="", ilDclBaseFieldModel $sort_field=null)
 Returns a query-object for building the record-loader-sql-query. More...
 
 getSortField ()
 Returns the sort-field id. More...
 
 hasNumericSorting ()
 Set to true, when the sorting should be handled numerical. More...
 
 checkFieldCreationInput (ilPropertyFormGUI $form)
 Checks input of specific fields befor saving. More...
 
 getStorageLocationOverride ()
 
 setStorageLocationOverride ($storage_location_override)
 
 fillHeaderExcel (ilExcel $worksheet, &$row, &$col)
 
 checkTitlesForImport (array &$titles, array &$import_fields)
 
 storePropertiesFromForm (ilPropertyFormGUI $form)
 called when saving the 'edit field' form More...
 
 fillPropertiesForm (ilPropertyFormGUI &$form)
 called to fill the 'edit field' form More...
 
 isConfirmationRequired (ilPropertyFormGUI $form)
 called by ilDclFieldEditGUI when updating field properties if you overwrite this method, remember to also overwrite getConfirmationGUI More...
 
 getConfirmationGUI (ilPropertyFormGUI $form)
 called by ilDclFieldEditGUI if isConfirmationRequired returns true More...
 

Data Fields

const SELECTION_TYPE_SINGLE = 'selection_type_single'
 
const SELECTION_TYPE_MULTI = 'selection_type_multi'
 
const SELECTION_TYPE_COMBOBOX = 'selection_type_combobox'
 
const PROP_SELECTION_TYPE = ''
 
const PROP_SELECTION_OPTIONS = ''
 
- Data Fields inherited from ilDclBaseFieldModel
const PROP_LENGTH = "lenght"
 General properties. More...
 
const PROP_REGEX = "regex"
 
const PROP_REFERENCE = "table_id"
 
const PROP_URL = "url"
 
const PROP_TEXTAREA = "text_area"
 
const PROP_REFERENCE_LINK = "reference_link"
 
const PROP_WIDTH = "width"
 
const PROP_HEIGHT = "height"
 
const PROP_LEARNING_PROGRESS = "learning_progress"
 
const PROP_ILIAS_REFERENCE_LINK = "ILIAS_reference_link"
 
const PROP_N_REFERENCE = "multiple_selection"
 
const PROP_FORMULA_EXPRESSION = "expression"
 
const PROP_DISPLAY_COPY_LINK_ACTION_MENU = "display_action_menu"
 
const PROP_LINK_DETAIL_PAGE_TEXT = "link_detail_page"
 
const PROP_SUPPORTED_FILE_TYPES = "supported_file_types"
 
const PROP_PLUGIN_HOOK_NAME = "plugin_hook_name"
 
const PROP_TEXT_SELECTION_OPTIONS = "text_selection_options"
 
const PROP_TEXT_SELECTION_TYPE = "text_selection_type"
 
const PROP_DATE_SELECTION_OPTIONS = "date_selection_options"
 
const PROP_DATE_SELECTION_TYPE = "date_selection_type"
 
const EDIT_VIEW = 2
 
const EXPORTABLE_VIEW = 4
 

Protected Member Functions

 multiPropertyChanged ($is_multi_now)
 changes the values of all record fields, since the property "multi" has changed More...
 
- Protected Member Functions inherited from ilDclBaseFieldModel
 loadDatatype ()
 Load datatype for model. More...
 
 loadTableFieldSetting ()
 loadTableFieldSetting More...
 
 addToTableViews ()
 create ilDclTableViewFieldSettings for this field in each tableview More...
 
 updateTableFieldSetting ()
 update exportable and fieldorder More...
 
 loadProperties ()
 Get all properties of a field. More...
 
 normalizeValue ($value)
 

Additional Inherited Members

- Static Public Member Functions inherited from ilDclBaseFieldModel
static _getTitleInvalidChars ($a_as_regex=true)
 All valid chars for filed titles. More...
 
static _getFieldIdByTitle ($title, $table_id)
 
- Protected Attributes inherited from ilDclBaseFieldModel
 $id
 
 $table_id
 
 $title
 
 $description
 
 $datatypeId
 
 $required
 
 $order
 
 $unique
 
 $locked
 
 $property = array()
 
 $exportable
 
 $datatype
 
 $storage_location_override = null
 

Detailed Description

Member Function Documentation

◆ cloneProperties()

ilDclSelectionFieldModel::cloneProperties ( ilDclBaseFieldModel  $originalField)
Parameters
ilDclBaseFieldModel$originalField

Reimplemented from ilDclBaseFieldModel.

Definition at line 295 of file class.ilDclSelectionFieldModel.php.

296 {
297 parent::cloneProperties($originalField);
298 $options = ilDclSelectionOption::getAllForField($originalField->getId());
299 foreach ($options as $opt) {
300 $new_opt = new ilDclSelectionOption();
301 $new_opt->cloneOption($opt);
302 $new_opt->setFieldId($this->getId());
303 $new_opt->store();
304 }
305 }
Class ilDclSelectionOption.

References ilDclSelectionOption\getAllForField(), and ilDclBaseFieldModel\getId().

+ Here is the call graph for this function:

◆ doDelete()

ilDclSelectionFieldModel::doDelete ( )

Remove field and properties.

Reimplemented from ilDclBaseFieldModel.

Definition at line 311 of file class.ilDclSelectionFieldModel.php.

312 {
313 foreach (ilDclSelectionOption::getAllForField($this->getId()) as $option) {
314 $option->delete();
315 }
316 parent::doDelete();
317 }

References ilDclSelectionOption\getAllForField(), and ilDclBaseFieldModel\getId().

+ Here is the call graph for this function:

◆ fillPropertiesForm()

ilDclSelectionFieldModel::fillPropertiesForm ( ilPropertyFormGUI $form)
Parameters
ilPropertyFormGUI$form
Returns
bool

Reimplemented from ilDclBaseFieldModel.

Definition at line 122 of file class.ilDclSelectionFieldModel.php.

123 {
124 $values = array(
125 'table_id' => $this->getTableId(),
126 'field_id' => $this->getId(),
127 'title' => $this->getTitle(),
128 'datatype' => $this->getDatatypeId(),
129 'description' => $this->getDescription(),
130 'required' => $this->getRequired(),
131 'unique' => $this->isUnique(),
132 );
133
134 $properties = $this->getValidFieldProperties();
135 foreach ($properties as $prop) {
136 if ($prop == static::PROP_SELECTION_OPTIONS) {
137 $options = ilDclSelectionOption::getAllForField($this->getId());
138 $prop_values = array();
139 foreach ($options as $option) {
140 // the 'selection_value' is for a correct input
141 $prop_values[$option->getOptId()] = array('selection_value' => $option->getValue());
142 }
143
144 $values['prop_' . $prop] = $prop_values;
145 } else {
146 $values['prop_' . $prop] = $this->getProperty($prop);
147 }
148 }
149
150 $form->setValuesByArray($values);
151
152 return true;
153 }
getRequired()
Get Required Required.
setValuesByArray($a_values, $a_restrict_to_value_keys=false)
Set form values from an array.

References ilDclSelectionOption\getAllForField(), ilDclBaseFieldModel\getDatatypeId(), ilDclBaseFieldModel\getDescription(), ilDclBaseFieldModel\getId(), getProperty(), ilDclBaseFieldModel\getRequired(), ilDclBaseFieldModel\getTableId(), ilDclBaseFieldModel\getTitle(), getValidFieldProperties(), ilDclBaseFieldModel\isUnique(), and ilPropertyFormGUI\setValuesByArray().

+ Here is the call graph for this function:

◆ getConfirmationGUI()

ilDclSelectionFieldModel::getConfirmationGUI ( ilPropertyFormGUI  $form)

called by ilDclFieldEditGUI if isConfirmationRequired returns true

Parameters
ilPropertyFormGUI$form
Returns
ilConfirmationGUI

Reimplemented from ilDclBaseFieldModel.

Definition at line 334 of file class.ilDclSelectionFieldModel.php.

335 {
336 global $DIC;
338 $prop_selection_options = $representation->getPropertyInputFieldId(static::PROP_SELECTION_OPTIONS);
339 $prop_selection_type = $representation->getPropertyInputFieldId(static::PROP_SELECTION_TYPE);
340
341 $ilConfirmationGUI = parent::getConfirmationGUI($form);
342 $ilConfirmationGUI->setHeaderText($DIC->language()->txt('dcl_msg_mc_to_sc_confirmation'));
343 $ilConfirmationGUI->addHiddenItem($prop_selection_type, $form->getInput($prop_selection_type));
344 foreach ($form->getInput($prop_selection_options) as $key => $option) {
345 $ilConfirmationGUI->addHiddenItem($prop_selection_options . "[$key][selection_value]", $option['selection_value']);
346 }
347
348 return $ilConfirmationGUI;
349 }
static getFieldRepresentationInstance(ilDclBaseFieldModel $field)
Returns FieldRepresentation from BaseFieldModel.
getInput($a_post_var, $ensureValidation=true)
Returns the value of a HTTP-POST variable, identified by the passed id.
$DIC
Definition: xapitoken.php:46

References $DIC, ilDclFieldFactory\getFieldRepresentationInstance(), and ilPropertyFormGUI\getInput().

+ Here is the call graph for this function:

◆ getProperty()

ilDclSelectionFieldModel::getProperty (   $key)
Parameters
$key
Returns
ilDclSelectionOption[]|null

Reimplemented from ilDclBaseFieldModel.

Definition at line 246 of file class.ilDclSelectionFieldModel.php.

247 {
248 switch ($key) {
249 case static::PROP_SELECTION_OPTIONS:
251 break;
252 default:
253 return parent::getProperty($key);
254 }
255 }

References ilDclSelectionOption\getAllForField(), and ilDclBaseFieldModel\getId().

Referenced by fillPropertiesForm(), isMulti(), and setProperty().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getRecordQueryFilterObject()

ilDclSelectionFieldModel::getRecordQueryFilterObject (   $filter_value = "",
ilDclBaseFieldModel  $sort_field = null 
)

Returns a query-object for building the record-loader-sql-query.

Parameters
string$filter_value
Returns
null|ilDclRecordQueryObject

Reimplemented from ilDclBaseFieldModel.

Definition at line 35 of file class.ilDclSelectionFieldModel.php.

36 {
37 global $DIC;
38 $ilDB = $DIC['ilDB'];
39
40 $join_str
41 = " LEFT JOIN il_dcl_record_field AS filter_record_field_{$this->getId()} ON (filter_record_field_{$this->getId()}.record_id = record.id AND filter_record_field_{$this->getId()}.field_id = "
42 . $ilDB->quote($this->getId(), 'integer') . ") ";
43
44 $join_str .= " LEFT JOIN il_dcl_stloc{$this->getStorageLocation()}_value AS filter_stloc_{$this->getId()} ON (filter_stloc_{$this->getId()}.record_field_id = filter_record_field_{$this->getId()}.id";
45
46 $where_str = " AND ";
47 if ($filter_value == 'none') {
48 $where_str .= "("
49 . "filter_stloc_{$this->getId()}.value IS NULL "
50 . " OR filter_stloc_{$this->getId()}.value = " . $ilDB->quote("", 'text')
51 . " OR filter_stloc_{$this->getId()}.value = " . $ilDB->quote("[]", 'text')
52 . ") ";
53 } else {
54 if ($this->isMulti()) {
55 $where_str .= " (" .
56 "filter_stloc_{$this->getId()}.value = " . $ilDB->quote("[$filter_value]", 'text') . " OR " .
57 "filter_stloc_{$this->getId()}.value LIKE " . $ilDB->quote("%\"$filter_value\"%", 'text') . " OR " .
58 "filter_stloc_{$this->getId()}.value LIKE " . $ilDB->quote("%,$filter_value,%", 'text') . " OR " .
59 "filter_stloc_{$this->getId()}.value LIKE " . $ilDB->quote("%[$filter_value,%", 'text') . " OR " .
60 "filter_stloc_{$this->getId()}.value LIKE " . $ilDB->quote("%,$filter_value]%", 'text') .
61 ") ";;
62 } else {
63 $where_str .= "filter_stloc_{$this->getId()}.value = "
64 . $ilDB->quote($filter_value, 'integer');
65 }
66 }
67
68 $join_str .= ") ";
69
70 $sql_obj = new ilDclRecordQueryObject();
71 $sql_obj->setJoinStatement($join_str);
72 $sql_obj->setWhereStatement($where_str);
73
74 return $sql_obj;
75 }
Class ilDclRecordQueryObject.
global $ilDB

References $DIC, $ilDB, ilDclBaseFieldModel\getId(), and isMulti().

+ Here is the call graph for this function:

◆ getRecordQuerySortObject()

ilDclSelectionFieldModel::getRecordQuerySortObject (   $direction = "asc",
  $sort_by_status = false 
)
Parameters
string$direction
bool$sort_by_status
Returns
ilDclRecordQueryObject

Reimplemented from ilDclBaseFieldModel.

Definition at line 264 of file class.ilDclSelectionFieldModel.php.

265 {
266 global $DIC;
267 $ilDB = $DIC['ilDB'];
268
269 if ($this->isMulti()) {
270 return null;
271 }
272
273 $sql_obj = new ilDclRecordQueryObject();
274
275 $select_str = "sel_opts_{$this->getId()}.value AS field_{$this->getId()}";
276 $join_str
277 = "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 = "
278 . $ilDB->quote($this->getId(), 'integer') . ") ";
279 $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) ";
280 //if ($this->isMulti()) {
281 // $join_str .= "LEFT JOIN il_dcl_sel_opts as sel_opts_{$this->getId()} ON (sel_opts_{$this->getId()}.opt_id = sort_stloc_{$this->getId()}.value->'$[0]' AND sel_opts_{$this->getId()}.field_id = " . $ilDB->quote($this->getId(), 'integer') . ") ";
282 //} else {
283 $join_str .= "LEFT JOIN il_dcl_sel_opts as sel_opts_{$this->getId()} ON (sel_opts_{$this->getId()}.opt_id = sort_stloc_{$this->getId()}.value AND sel_opts_{$this->getId()}.field_id = "
284 . $ilDB->quote($this->getId(), 'integer') . ") ";
285 //}
286
287 $sql_obj->setSelectStatement($select_str);
288 $sql_obj->setJoinStatement($join_str);
289 $sql_obj->setOrderStatement("field_{$this->getId()} {$direction}");
290
291 return $sql_obj;
292 }

References $DIC, $ilDB, ilDclBaseFieldModel\getId(), and isMulti().

+ Here is the call graph for this function:

◆ getValidFieldProperties()

ilDclSelectionFieldModel::getValidFieldProperties ( )

@inheritDoc

Reimplemented from ilDclBaseFieldModel.

Definition at line 22 of file class.ilDclSelectionFieldModel.php.

23 {
24 return array(static::PROP_SELECTION_OPTIONS, static::PROP_SELECTION_TYPE);
25 }

Referenced by fillPropertiesForm(), and storePropertiesFromForm().

+ Here is the caller graph for this function:

◆ isConfirmationRequired()

ilDclSelectionFieldModel::isConfirmationRequired ( ilPropertyFormGUI  $form)

called by ilDclFieldEditGUI when updating field properties if you overwrite this method, remember to also overwrite getConfirmationGUI

Parameters
ilPropertyFormGUI$form
Returns
bool

Reimplemented from ilDclBaseFieldModel.

Definition at line 323 of file class.ilDclSelectionFieldModel.php.

324 {
325 $will_be_multi = ($form->getInput('prop_' . static::PROP_SELECTION_TYPE) == self::SELECTION_TYPE_MULTI);
326
327 return $this->isMulti() && !$will_be_multi;
328 }

References ilPropertyFormGUI\getInput(), isMulti(), and SELECTION_TYPE_MULTI.

+ Here is the call graph for this function:

◆ isMulti()

ilDclSelectionFieldModel::isMulti ( )

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

79 {
80 return ($this->getProperty(static::PROP_SELECTION_TYPE) == self::SELECTION_TYPE_MULTI);
81 }

References getProperty().

Referenced by getRecordQueryFilterObject(), getRecordQuerySortObject(), isConfirmationRequired(), and setProperty().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ multiPropertyChanged()

ilDclSelectionFieldModel::multiPropertyChanged (   $is_multi_now)
protected

changes the values of all record fields, since the property "multi" has changed

Parameters
$is_multi_now

Definition at line 222 of file class.ilDclSelectionFieldModel.php.

223 {
224 foreach (ilDclCache::getTableCache($this->getTableId())->getRecords() as $record) {
225 $record_field = $record->getRecordField($this->getId());
226 $record_field_value = $record_field->getValue();
227
228 if ($record_field_value && !is_array($record_field_value) && $is_multi_now) {
229 $record_field->setValue(array($record_field_value));
230 $record_field->doUpdate();
231 } else {
232 if (is_array($record_field_value) && !$is_multi_now) {
233 $record_field->setValue(array_shift($record_field_value));
234 $record_field->doUpdate();
235 }
236 }
237 }
238 }
static getTableCache($table_id=0)

References ilDclBaseFieldModel\getId(), ilDclCache\getTableCache(), and ilDclBaseFieldModel\getTableId().

Referenced by setProperty().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ reorderExistingValues()

ilDclSelectionFieldModel::reorderExistingValues ( )

sorts record field values by the new order

Definition at line 194 of file class.ilDclSelectionFieldModel.php.

195 {
196 $options = ilDclSelectionOption::getAllForField($this->getId());
197 // loop each record(-field)
198 foreach (ilDclCache::getTableCache($this->getTableId())->getRecords() as $record) {
199 $record_field = $record->getRecordField($this->getId());
200 $record_field_value = $record_field->getValue();
201
202 if (is_array($record_field_value) && count($record_field_value) > 1) {
203 $sorted_array = array();
204 // $options has the right order, so loop those
205 foreach ($options as $option) {
206 if (in_array($option->getOptId(), $record_field_value)) {
207 $sorted_array[] = $option->getOptId();
208 }
209 }
210 $record_field->setValue($sorted_array);
211 $record_field->doUpdate();
212 }
213 }
214 }

References ilDclSelectionOption\getAllForField(), ilDclBaseFieldModel\getId(), ilDclCache\getTableCache(), and ilDclBaseFieldModel\getTableId().

Referenced by setProperty().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setProperty()

ilDclSelectionFieldModel::setProperty (   $key,
  $value 
)
Parameters
$key
$value

Reimplemented from ilDclBaseFieldModel.

Definition at line 160 of file class.ilDclSelectionFieldModel.php.

161 {
162 $is_update = $this->getProperty($key);
163 switch ($key) {
164 case static::PROP_SELECTION_OPTIONS:
165
167 $sorting = 1;
168 foreach ($value as $id => $val) {
169 ilDclSelectionOption::storeOption($this->getId(), $id, $sorting, $val);
170 $sorting++;
171 }
172 // if the field is not being created reorder the options in the existing record fields
173 if ($is_update) {
174 $this->reorderExistingValues();
175 }
176 break;
177 case static::PROP_SELECTION_TYPE:
178 $will_be_multi = ($value == self::SELECTION_TYPE_MULTI);
179 // if the "Multi" property has changed, adjust the record field values
180 if ($is_update && ($this->isMulti() && !$will_be_multi || !$this->isMulti() && $will_be_multi)) {
181 $this->multiPropertyChanged($will_be_multi);
182 }
183 parent::setProperty($key, $value)->store();
184 break;
185 default:
186 parent::setProperty($key, $value)->store();
187 }
188 }
reorderExistingValues()
sorts record field values by the new order
multiPropertyChanged($is_multi_now)
changes the values of all record fields, since the property "multi" has changed

References ilDclBaseFieldModel\$id, ilDclSelectionOption\flushOptions(), ilDclBaseFieldModel\getId(), getProperty(), isMulti(), multiPropertyChanged(), reorderExistingValues(), and SELECTION_TYPE_MULTI.

Referenced by storePropertiesFromForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ storePropertiesFromForm()

ilDclSelectionFieldModel::storePropertiesFromForm ( ilPropertyFormGUI  $form)

called when saving the 'edit field' form

Parameters
ilPropertyFormGUI$form
Exceptions
ilDclException

Reimplemented from ilDclBaseFieldModel.

Definition at line 91 of file class.ilDclSelectionFieldModel.php.

92 {
94
95 $field_props = $this->getValidFieldProperties();
96 foreach ($field_props as $property) {
97 $value = $form->getInput($representation->getPropertyInputFieldId($property));
98
99 // break down the multidimensional array from the multi input
100 // e.g.: { [0] => { [0] => 'x' }, [1] => { [1] => 'y' } } TO { [0] => 'x', [1] => 'y' }
101 if (is_array($value)) {
102 foreach ($value as $k => $v) {
103 if (is_array($v)) {
104 $value[$k] = array_shift($v);
105 }
106 }
107 }
108
109 // save non empty values and set them to null, when they already exist. Do not override plugin-hook when already set.
110 if (!empty($value) || ($this->getPropertyInstance($property) != null && $property != self::PROP_PLUGIN_HOOK_NAME)) {
111 $this->setProperty($property, $value);
112 }
113 }
114 }
getPropertyInstance($key)
Return ActiveRecord of property.

References ilDclBaseFieldModel\$property, ilDclFieldFactory\getFieldRepresentationInstance(), ilPropertyFormGUI\getInput(), ilDclBaseFieldModel\getPropertyInstance(), getValidFieldProperties(), and setProperty().

+ Here is the call graph for this function:

Field Documentation

◆ PROP_SELECTION_OPTIONS

const ilDclSelectionFieldModel::PROP_SELECTION_OPTIONS = ''

Definition at line 16 of file class.ilDclSelectionFieldModel.php.

◆ PROP_SELECTION_TYPE

const ilDclSelectionFieldModel::PROP_SELECTION_TYPE = ''

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

◆ SELECTION_TYPE_COMBOBOX

const ilDclSelectionFieldModel::SELECTION_TYPE_COMBOBOX = 'selection_type_combobox'

◆ SELECTION_TYPE_MULTI

const ilDclSelectionFieldModel::SELECTION_TYPE_MULTI = 'selection_type_multi'

◆ SELECTION_TYPE_SINGLE

const ilDclSelectionFieldModel::SELECTION_TYPE_SINGLE = 'selection_type_single'

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