ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
All Data Structures Namespaces Files Functions Variables Modules Pages
ilAdvancedMDFieldDefinitionSelect Class Reference

AMD field type select. More...

+ Inheritance diagram for ilAdvancedMDFieldDefinitionSelect:
+ Collaboration diagram for ilAdvancedMDFieldDefinitionSelect:

Public Member Functions

 getType ()
 
 setOptions (array $a_values=null)
 Set options. More...
 
 getOptions ()
 Get options. More...
 
 getFieldDefinitionForTableGUI ()
 
 addCustomFieldToDefinitionForm (ilPropertyFormGUI $a_form, $a_disabled=false)
 Add input elements to definition form. More...
 
 importCustomDefinitionFormPostValues (ilPropertyFormGUI $a_form)
 Import custom post values from definition form. More...
 
 importDefinitionFormPostValuesNeedsConfirmation ()
 
 prepareCustomDefinitionFormConfirmation (ilPropertyFormGUI $a_form)
 
 update ()
 
 importXMLProperty ($a_key, $a_value)
 
 getValueForXML (ilADT $element)
 
 importValueFromXML ($a_cdata)
 
- Public Member Functions inherited from ilAdvancedMDFieldDefinition
 __construct ($a_field_id=null)
 Constructor. More...
 
 getType ()
 Get type. More...
 
 getTypeTitle ()
 Get type title (lang id) More...
 
 getADTDefinition ()
 Get ADT definition instance. More...
 
 getADT ()
 Get ADT instance. More...
 
 getFieldId ()
 Get field_id. More...
 
 setRecordId ($a_id)
 Set record id. More...
 
 getRecordId ()
 Get record id. More...
 
 setImportId ($a_id_string)
 Set import id. More...
 
 getImportId ()
 Get import id. More...
 
 setPosition ($a_pos)
 Set position. More...
 
 getPosition ()
 Get position. More...
 
 setTitle ($a_title)
 Get title. More...
 
 getTitle ()
 Get title. More...
 
 setDescription ($a_desc)
 Set description. More...
 
 getDescription ()
 Get description. More...
 
 setSearchable ($a_status)
 Toggle searchable. More...
 
 isSearchable ()
 Is searchable. More...
 
 setRequired ($a_status)
 Toggle required. More...
 
 isRequired ()
 Is required field. More...
 
 getFieldDefinitionForTableGUI ()
 Parse properties for table gui. More...
 
 addToFieldDefinitionForm (ilPropertyFormGUI $a_form, ilAdvancedMDPermissionHelper $a_permissions)
 Add input elements to definition form. More...
 
 importCustomDefinitionFormPostValues (ilPropertyFormGUI $a_form)
 Import custom post values from definition form. More...
 
 importDefinitionFormPostValues (ilPropertyFormGUI $a_form, ilAdvancedMDPermissionHelper $a_permissions)
 Import post values from definition form. More...
 
 importDefinitionFormPostValuesNeedsConfirmation ()
 
 prepareCustomDefinitionFormConfirmation (ilPropertyFormGUI $a_form)
 
 prepareDefinitionFormConfirmation (ilPropertyFormGUI $a_form)
 
 save ()
 Create new field entry. More...
 
 update ()
 Update field entry. More...
 
 delete ()
 Delete field entry. More...
 
 toXML (ilXmlWriter $a_writer)
 To Xml. More...
 
 importXMLProperty ($a_key, $a_value)
 Import property from XML. More...
 
 getValueForXML (ilADT $element)
 Parse ADT value for xml (export) More...
 
 importValueFromXML ($a_cdata)
 Import value from xml. More...
 
 importFromECS ($a_ecs_type, $a_value, $a_sub_id)
 Import meta data from ECS. More...
 
 prepareElementForEditor (ilADTFormBridge $a_bridge)
 Prepare editor form elements. More...
 
 getSearchQueryParserValue (ilADTSearchBridge $a_adt_search)
 Get value for search query parser. More...
 
 getSearchValueSerialized (ilADTSearchBridge $a_adt_search)
 Get value for search persistence. More...
 
 setSearchValueSerialized (ilADTSearchBridge $a_adt_search, $a_value)
 Set value from search persistence. More...
 
 searchSubObjects (ilADTSearchBridge $a_adt_search, $a_obj_id, $sub_obj_type)
 
 searchObjects (ilADTSearchBridge $a_adt_search, ilQueryParser $a_parser, array $a_object_types, $a_locate, $a_search_type)
 Search objects. More...
 
 getLuceneSearchString ($a_value)
 Get search string in lucene syntax. More...
 
 prepareElementForSearch (ilADTSearchBridge $a_bridge)
 Prepare search form elements. More...
 

Protected Member Functions

 initADTDefinition ()
 
 importFieldDefinition (array $a_def)
 
 getFieldDefinition ()
 
 buildConfirmedObjects (ilPropertyFormGUI $a_form)
 Process custom post values from definition form. More...
 
 addPropertiesToXML (ilXmlWriter $a_writer)
 
- Protected Member Functions inherited from ilAdvancedMDFieldDefinition
 init ()
 Init properties. More...
 
 initADTDefinition ()
 Init adt instance. More...
 
 setADT (ilADT $a_adt)
 Set ADT instance. More...
 
 setFieldId ($a_id)
 Set field_id. More...
 
 importFieldDefinition (array $a_def)
 Import (type-specific) field definition from DB. More...
 
 getFieldDefinition ()
 Get (type-specific) field definition. More...
 
 addCustomFieldToDefinitionForm (ilPropertyFormGUI $a_form, $a_disabled=false)
 Add custom input elements to definition form. More...
 
 getLastPosition ()
 Get last position of record. More...
 
 generateImportId ($a_field_id)
 Generate unique record id. More...
 
 getDBProperties ()
 Get all definition properties for DB. More...
 
 import (array $a_data)
 Import from DB. More...
 
 read ($a_field_id)
 Read field definition. More...
 
 addPropertiesToXML (ilXmlWriter $a_writer)
 Add (type-specific) properties to xml export. More...
 
 parseSearchObjects (array $a_records, array $a_object_types)
 Add object-data needed for global search to AMD search results. More...
 

Protected Attributes

 $options = array()
 
 $confirm_objects
 
 $confirmed_objects
 
- Protected Attributes inherited from ilAdvancedMDFieldDefinition
 $field_id
 
 $record_id
 
 $import_id
 
 $position
 
 $title
 
 $description
 
 $searchable
 
 $required
 
 $adt_def
 
 $adt
 

Additional Inherited Members

- Static Public Member Functions inherited from ilAdvancedMDFieldDefinition
static getInstance ($a_field_id, $a_type=null)
 Get definition instance by type. More...
 
static getInstanceByTypeString ($a_type)
 Get instance by type string (used by import) More...
 
static getInstancesByRecordId ($a_record_id, $a_only_searchable=false)
 Get definitions by record id. More...
 
static getInstancesByObjType ($a_obj_type, $a_active_only=true)
 
static getInstanceByImportId ($a_import_id)
 Get definition instance by import id. More...
 
static getSearchableDefinitionIds ()
 Get searchable definition ids (performance is key) More...
 
static getADTGroupForDefinitions (array $a_defs)
 Init ADTGroup for definitions. More...
 
static getValidTypes ()
 Get all valid types. More...
 
static isValidType ($a_type)
 Is given type valid. More...
 
- Data Fields inherited from ilAdvancedMDFieldDefinition
const TYPE_SELECT = 1
 
const TYPE_TEXT = 2
 
const TYPE_DATE = 3
 
const TYPE_DATETIME = 4
 
const TYPE_INTEGER = 5
 
const TYPE_FLOAT = 6
 
const TYPE_LOCATION = 7
 
const TYPE_SELECT_MULTI = 8
 
- Static Protected Member Functions inherited from ilAdvancedMDFieldDefinition
static getTypeString ($a_type)
 Get type string. More...
 

Detailed Description

AMD field type select.

Author
Jörg Lützenkirchen luetz.nosp@m.enki.nosp@m.rchen.nosp@m.@lei.nosp@m.fos.c.nosp@m.om
Version
$Id$

Definition at line 14 of file class.ilAdvancedMDFieldDefinitionSelect.php.

Member Function Documentation

◆ addCustomFieldToDefinitionForm()

ilAdvancedMDFieldDefinitionSelect::addCustomFieldToDefinitionForm ( ilPropertyFormGUI  $a_form,
  $a_disabled = false 
)

Add input elements to definition form.

Parameters
ilPropertyFormGUI$a_form
bool$a_disabled

Definition at line 112 of file class.ilAdvancedMDFieldDefinitionSelect.php.

References $lng, $options, ilPropertyFormGUI\addItem(), getOptions(), and ilFormPropertyGUI\setRequired().

113  {
114  global $lng;
115 
116  $field = new ilTextInputGUI($lng->txt("options"), "opts");
117  $field->setRequired(true);
118  $field->setMulti(true);
119  $field->setMaxLength(255); // :TODO:
120  $a_form->addItem($field);
121 
122  $options = $this->getOptions();
123  if($options)
124  {
125  $field->setMultiValues($options);
126  $field->setValue(array_shift($options));
127  }
128 
129  if($a_disabled)
130  {
131  $field->setDisabled(true);
132  }
133  }
addItem($a_item)
Add Item (Property, SectionHeader).
This class represents a text property in a property form.
global $lng
Definition: privfeed.php:40
setRequired($a_required)
Set Required.
+ Here is the call graph for this function:

◆ addPropertiesToXML()

ilAdvancedMDFieldDefinitionSelect::addPropertiesToXML ( ilXmlWriter  $a_writer)
protected

Definition at line 357 of file class.ilAdvancedMDFieldDefinitionSelect.php.

References getOptions(), and ilXmlWriter\xmlElement().

358  {
359  foreach($this->getOptions() as $value)
360  {
361  $a_writer->xmlElement('FieldValue',null,$value);
362  }
363  }
xmlElement($tag, $attrs=NULL, $data=Null, $encode=TRUE, $escape=TRUE)
Writes a basic element (no children, just textual content)
+ Here is the call graph for this function:

◆ buildConfirmedObjects()

ilAdvancedMDFieldDefinitionSelect::buildConfirmedObjects ( ilPropertyFormGUI  $a_form)
protected

Process custom post values from definition form.

Parameters
ilPropertyFormGUI$a_form

Definition at line 140 of file class.ilAdvancedMDFieldDefinitionSelect.php.

References $res, ilAdvancedMDFieldDefinition\getFieldId(), and ilPropertyFormGUI\getInput().

Referenced by ilAdvancedMDFieldDefinitionSelectMulti\importCustomDefinitionFormPostValues(), and importCustomDefinitionFormPostValues().

141  {
142  // #15719
143  $recipes = $a_form->getInput("conf_det");
144  if(is_array($recipes[$this->getFieldId()]))
145  {
146  $recipes = $recipes[$this->getFieldId()];
147  $sum = $a_form->getInput("conf_det_act");
148  $sum = $sum[$this->getFieldId()];
149  $sgl = $a_form->getInput("conf");
150  $sgl = $sgl[$this->getFieldId()];
151 
152  $res = array();
153  foreach($recipes as $old_option => $recipe)
154  {
155  $sum_act = $sum[$old_option];
156  $sgl_act = $sgl[$old_option];
157 
158  if($recipe == "sum")
159  {
160  foreach(array_keys($sgl_act) as $obj_idx)
161  {
162  $res[$old_option][$obj_idx] = $sum_act;
163  }
164  }
165  else
166  {
167  $res[$old_option] = $sgl_act;
168  }
169  }
170 
171  return $res;
172  }
173  }
getInput($a_post_var, $ensureValidation=true)
Returns the value of a HTTP-POST variable, identified by the passed id.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getFieldDefinition()

ilAdvancedMDFieldDefinitionSelect::getFieldDefinition ( )
protected

◆ getFieldDefinitionForTableGUI()

ilAdvancedMDFieldDefinitionSelect::getFieldDefinitionForTableGUI ( )

Definition at line 99 of file class.ilAdvancedMDFieldDefinitionSelect.php.

References $lng, and getOptions().

100  {
101  global $lng;
102 
103  return array($lng->txt("options") => implode(",", $this->getOptions()));
104  }
global $lng
Definition: privfeed.php:40
+ Here is the call graph for this function:

◆ getOptions()

◆ getType()

ilAdvancedMDFieldDefinitionSelect::getType ( )

Definition at line 25 of file class.ilAdvancedMDFieldDefinitionSelect.php.

26  {
27  return self::TYPE_SELECT;
28  }

◆ getValueForXML()

ilAdvancedMDFieldDefinitionSelect::getValueForXML ( ilADT  $element)

Definition at line 375 of file class.ilAdvancedMDFieldDefinitionSelect.php.

376  {
377  return $element->getSelection();
378  }

◆ importCustomDefinitionFormPostValues()

ilAdvancedMDFieldDefinitionSelect::importCustomDefinitionFormPostValues ( ilPropertyFormGUI  $a_form)

Import custom post values from definition form.

Parameters
ilPropertyFormGUI$a_form

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

References buildConfirmedObjects(), ilAdvancedMDFieldDefinition\getFieldId(), ilPropertyFormGUI\getInput(), getOptions(), ilADTFactory\initActiveRecordByType(), ilADTActiveRecordByType\readByPrimary(), setOptions(), and ilADTActiveRecordByType\SINGLE_COLUMN_NAME.

181  {
182  $old = $this->getOptions();
183  $new = $a_form->getInput("opts");
184 
185  $missing = array_diff($old, $new);
186  if(sizeof($missing))
187  {
188  $this->confirmed_objects = $this->buildConfirmedObjects($a_form);
189  if(!is_array($this->confirmed_objects))
190  {
192  $primary = array(
193  "field_id" => array("integer", $this->getFieldId()),
194  ilADTActiveRecordByType::SINGLE_COLUMN_NAME => array("text", $missing)
195  );
196  $in_use = ilADTActiveRecordByType::readByPrimary("adv_md_values", $primary, "Enum");
197  if($in_use)
198  {
199  $this->confirm_objects = array();
200  foreach($in_use as $item)
201  {
202  $this->confirm_objects[$item[ilADTActiveRecordByType::SINGLE_COLUMN_NAME]][] = array($item["obj_id"], $item["sub_type"], $item["sub_id"]);
203  }
204  }
205  }
206  }
207 
208  $this->setOptions($new);
209  }
static initActiveRecordByType()
Init active record by type.
static readByPrimary($a_table, array $a_primary, $a_type=null)
Read directly.
getInput($a_post_var, $ensureValidation=true)
Returns the value of a HTTP-POST variable, identified by the passed id.
buildConfirmedObjects(ilPropertyFormGUI $a_form)
Process custom post values from definition form.
+ Here is the call graph for this function:

◆ importDefinitionFormPostValuesNeedsConfirmation()

ilAdvancedMDFieldDefinitionSelect::importDefinitionFormPostValuesNeedsConfirmation ( )

◆ importFieldDefinition()

ilAdvancedMDFieldDefinitionSelect::importFieldDefinition ( array  $a_def)
protected

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

References setOptions().

90  {
91  $this->setOptions($a_def);
92  }
+ Here is the call graph for this function:

◆ importValueFromXML()

ilAdvancedMDFieldDefinitionSelect::importValueFromXML (   $a_cdata)

Definition at line 380 of file class.ilAdvancedMDFieldDefinitionSelect.php.

References ilAdvancedMDFieldDefinition\getADT().

381  {
382  $this->getADT()->setSelection($a_cdata);
383  }
+ Here is the call graph for this function:

◆ importXMLProperty()

ilAdvancedMDFieldDefinitionSelect::importXMLProperty (   $a_key,
  $a_value 
)

Definition at line 365 of file class.ilAdvancedMDFieldDefinitionSelect.php.

366  {
367  $this->options[] = $a_value;
368  }

◆ initADTDefinition()

ilAdvancedMDFieldDefinitionSelect::initADTDefinition ( )
protected

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

References $options, ilADTFactory\getInstance(), and getOptions().

36  {
37  $def = ilADTFactory::getInstance()->getDefinitionInstanceByType("Enum");
38  $def->setNumeric(false);
39 
40  $options = $this->getOptions();
41  $def->setOptions(array_combine($options, $options));
42 
43  return $def;
44  }
static getInstance()
Get singleton.
+ Here is the call graph for this function:

◆ prepareCustomDefinitionFormConfirmation()

ilAdvancedMDFieldDefinitionSelect::prepareCustomDefinitionFormConfirmation ( ilPropertyFormGUI  $a_form)

Definition at line 216 of file class.ilAdvancedMDFieldDefinitionSelect.php.

References $lng, $options, ilAdvancedMDFieldDefinition\$title, ilObject\_lookupType(), ilPropertyFormGUI\addItem(), ilPropertyFormGUI\getInput(), and ilPropertyFormGUI\getItemByPostVar().

217  {
218  global $lng, $objDefinition;
219 
220  $a_form->getItemByPostVar("opts")->setDisabled(true);
221 
222  if(sizeof($this->confirm_objects))
223  {
224  $new_options = $a_form->getInput("opts");
225 
226  $sec = new ilFormSectionHeaderGUI();
227  $sec->setTitle($lng->txt("md_adv_confirm_definition_select_section"));
228  $a_form->addItem($sec);
229 
230  foreach($this->confirm_objects as $old_option => $items)
231  {
232  $details = new ilRadioGroupInputGUI($lng->txt("md_adv_confirm_definition_select_option").': "'.$old_option.'"', "conf_det[".$this->getFieldId()."][".$old_option."]");
233  $details->setRequired(true);
234  $details->setValue("sum");
235  $a_form->addItem($details);
236 
237  $sum = new ilRadioOption($lng->txt("md_adv_confirm_definition_select_option_all"), "sum");
238  $details->addOption($sum);
239 
240  $sel = new ilSelectInputGUI($lng->txt("md_adv_confirm_definition_select_option_all_action"),
241  "conf_det_act[".$this->getFieldId()."][".$old_option."]");
242  $options = array(""=>$lng->txt("md_adv_confirm_definition_select_option_remove"));
243  foreach($new_options as $new_option)
244  {
245  $options[$new_option] = $lng->txt("md_adv_confirm_definition_select_option_overwrite").': "'.$new_option.'"';
246  }
247  $sel->setOptions($options);
248  $sum->addSubItem($sel);
249 
250  $single = new ilRadioOption($lng->txt("md_adv_confirm_definition_select_option_single"), "sgl");
251  $details->addOption($single);
252 
253  foreach($items as $item)
254  {
255  $obj_id = $item[0];
256  $sub_type = $item[1];
257  $sub_id = $item[2];
258 
259  $item_id = $obj_id."_".$sub_type."_".$sub_id;
260 
261  $type = ilObject::_lookupType($obj_id);
262  $type_title = $lng->txt("obj_".$type);
263  $title = ' "'.ilObject::_lookupTitle($obj_id).'"';
264 
265  if($sub_id)
266  {
267  $class = "ilObj".$objDefinition->getClassName($type);
268  $class_path = $objDefinition->getLocation($type);
269  include_once $class_path."/class.".$class.".php";
270  if(class_implements($class, ilAdvancedMetaDataSubItem))
271  {
272  $sub_title = $class::getAdvMDSubItemTitle($obj_id, $sub_type, $sub_id);
273  if($sub_title)
274  {
275  $title .= ' ('.$sub_title.')';
276  }
277  }
278  }
279 
280  $sel = new ilSelectInputGUI($type_title.' '.$title,
281  "conf[".$this->getFieldId()."][".$old_option."][".$item_id."]");
282  $options = array(""=>$lng->txt("md_adv_confirm_definition_select_option_remove"));
283  foreach($new_options as $new_option)
284  {
285  $options[$new_option] = $lng->txt("md_adv_confirm_definition_select_option_overwrite").': "'.$new_option.'"';
286  }
287  $sel->setOptions($options);
288 
289  $single->addSubItem($sel);
290  }
291 
292 
293  }
294  }
295  }
This class represents an option in a radio group.
getItemByPostVar($a_post_var)
Get Item by POST variable.
This class represents a selection list property in a property form.
This class represents a section header in a property form.
addItem($a_item)
Add Item (Property, SectionHeader).
This class represents a property in a property form.
getInput($a_post_var, $ensureValidation=true)
Returns the value of a HTTP-POST variable, identified by the passed id.
static _lookupType($a_id, $a_reference=false)
lookup object type
global $lng
Definition: privfeed.php:40
+ Here is the call graph for this function:

◆ setOptions()

ilAdvancedMDFieldDefinitionSelect::setOptions ( array  $a_values = null)

Set options.

Parameters
array$a_values

Definition at line 56 of file class.ilAdvancedMDFieldDefinitionSelect.php.

Referenced by ilAdvancedMDFieldDefinitionSelectMulti\importCustomDefinitionFormPostValues(), importCustomDefinitionFormPostValues(), and importFieldDefinition().

57  {
58  if($a_values !== null)
59  {
60  foreach($a_values as $idx => $value)
61  {
62  $a_values[$idx] = trim($value);
63  if(!$a_values[$idx])
64  {
65  unset($a_values[$idx]);
66  }
67  }
68  $a_values = array_unique($a_values);
69  // sort($a_values);
70  }
71  $this->options = $a_values;
72  }
+ Here is the caller graph for this function:

◆ update()

ilAdvancedMDFieldDefinitionSelect::update ( )

Definition at line 302 of file class.ilAdvancedMDFieldDefinitionSelect.php.

References ilADTActiveRecordByType\deleteByPrimary(), ilAdvancedMDFieldDefinition\getFieldId(), ilADTFactory\initActiveRecordByType(), ilPCAMDPageList\migrateField(), and ilADTActiveRecordByType\writeByPrimary().

303  {
304  parent::update();
305 
306  if(sizeof($this->confirmed_objects))
307  {
309  foreach($this->confirmed_objects as $old_option => $item_ids)
310  {
311  foreach($item_ids as $item => $new_option)
312  {
313  $item = explode("_", $item);
314  $obj_id = $item[0];
315  $sub_type = $item[1];
316  $sub_id = $item[2];
317 
318  if(!$new_option)
319  {
320  // remove existing value
321  $primary = array(
322  "obj_id" => array("integer", $obj_id),
323  "sub_type" => array("text", $sub_type),
324  "sub_id" => array("integer", $sub_id),
325  "field_id" => array("integer", $this->getFieldId())
326  );
327  ilADTActiveRecordByType::deleteByPrimary("adv_md_values", $primary, "Enum");
328  }
329  else
330  {
331  // update existing value
332  $primary = array(
333  "obj_id" => array("integer", $obj_id),
334  "sub_type" => array("text", $sub_type),
335  "sub_id" => array("integer", $sub_id),
336  "field_id" => array("integer", $this->getFieldId())
337  );
338  ilADTActiveRecordByType::writeByPrimary("adv_md_values", $primary, "Enum", $new_option);
339  }
340 
341  if($sub_type == "wpg")
342  {
343  // #15763 - adapt advmd page lists
344  include_once "Modules/Wiki/classes/class.ilPCAMDPageList.php";
345  ilPCAMDPageList::migrateField($obj_id, $this->getFieldId(), $old_option, $new_option);
346  }
347  }
348  }
349  }
350  }
static initActiveRecordByType()
Init active record by type.
static writeByPrimary($a_table, array $a_primary, $a_type, $a_value)
Write directly.
static deleteByPrimary($a_table, array $a_primary, $a_type=null)
Delete values by (partial) primary key.
static migrateField($a_obj_id, $a_field_id, $old_option, $new_option, $a_is_multi=false)
Migrate search/filter values on advmd change.
+ Here is the call graph for this function:

Field Documentation

◆ $confirm_objects

ilAdvancedMDFieldDefinitionSelect::$confirm_objects
protected

◆ $confirmed_objects

ilAdvancedMDFieldDefinitionSelect::$confirmed_objects
protected

Definition at line 18 of file class.ilAdvancedMDFieldDefinitionSelect.php.

◆ $options


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