ILIAS  release_7 Revision v7.30-3-g800a261c036
ilAdvancedMDFieldDefinition Class Reference

AMD field abstract base class. More...

+ Inheritance diagram for ilAdvancedMDFieldDefinition:
+ Collaboration diagram for ilAdvancedMDFieldDefinition:

Public Member Functions

 __construct ($a_field_id=null, string $language='')
 Constructor. More...
 
 getType ()
 Get type. More...
 
 useDefaultLanguageMode (string $language)
 Check if default language mode has to be used: no language given or language equals default language. 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...
 
 isSearchSupported ()
 Is search supported at all. More...
 
 isFilterSupported ()
 Is search by filter supported. More...
 
 setSearchable ($a_status)
 Toggle searchable. More...
 
 isSearchable ()
 Is searchable. More...
 
 setRequired ($a_status)
 Toggle required. More...
 
 isRequired ()
 Is required field. More...
 
 getFieldDefinitionForTableGUI (string $content_language)
 Parse properties for table gui. More...
 
 addToFieldDefinitionForm (ilPropertyFormGUI $a_form, ilAdvancedMDPermissionHelper $a_permissions, string $language='')
 Add input elements to definition form. More...
 
 importCustomDefinitionFormPostValues (ilPropertyFormGUI $a_form, string $language='')
 Import custom post values from definition form. More...
 
 importDefinitionFormPostValues (ilPropertyFormGUI $a_form, ilAdvancedMDPermissionHelper $a_permissions, string $active_language)
 Import post values from definition form. More...
 
 importDefinitionFormPostValuesNeedsConfirmation ()
 
 prepareCustomDefinitionFormConfirmation (ilPropertyFormGUI $a_form)
 
 prepareDefinitionFormConfirmation (ilPropertyFormGUI $a_form)
 
 generateImportId ($a_field_id)
 Generate unique record id. More...
 
 save ($a_keep_pos=false)
 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...
 
 _clone ($a_new_record_id)
 Clone field definition. More...
 
 hasComplexOptions ()
 
 getComplexOptionsOverview ($a_parent_gui, string $parent_cmd)
 

Static Public Member Functions

static getInstance ($a_field_id, $a_type=null, string $language='')
 Get definition instance by type. More...
 
static exists ($a_field_id)
 Check if field exists. More...
 
static getInstanceByTypeString ($a_type)
 Get instance by type string (used by import) More...
 
static getInstancesByRecordId ($a_record_id, $a_only_searchable=false, string $language='')
 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

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
 
const TYPE_ADDRESS = 99
 
const TYPE_EXTERNAL_LINK = 9
 
const TYPE_INTERNAL_LINK = 10
 

Protected Member Functions

 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, string $language='')
 Add custom input elements to definition form. More...
 
 getLastPosition ()
 Get last position of record. 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...
 

Static Protected Member Functions

static getTypeString ($a_type)
 Get type string. More...
 

Protected Attributes

 $field_id
 
 $record_id
 
 $import_id
 
 $position
 
 $title
 
 $description
 
 $searchable
 
 $required
 
 $adt_def
 
 $adt
 
 $language = ''
 
 $logger
 

Detailed Description

AMD field abstract base class.

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.ilAdvancedMDFieldDefinition.php.

Constructor & Destructor Documentation

◆ __construct()

ilAdvancedMDFieldDefinition::__construct (   $a_field_id = null,
string  $language = '' 
)

Constructor.

Parameters
init$a_field_id
Returns
self

Definition at line 55 of file class.ilAdvancedMDFieldDefinition.php.

56 {
57 global $DIC;
58
59 $this->language = $DIC->language()->getLangKey();
60 $this->logger = $DIC->logger()->amet();
61 if ($language) {
62 $this->language = $language;
63 }
64
65 $this->init();
66 $this->read($a_field_id);
67 }
read($a_field_id)
Read field definition.
global $DIC
Definition: goto.php:24
language()
Definition: language.php:2

References $DIC, $language, init(), language(), and read().

+ Here is the call graph for this function:

Member Function Documentation

◆ _clone()

ilAdvancedMDFieldDefinition::_clone (   $a_new_record_id)

Clone field definition.

Parameters
type$a_new_record_id
Returns
self

Reimplemented in ilAdvancedMDFieldDefinitionSelect.

Definition at line 1264 of file class.ilAdvancedMDFieldDefinition.php.

1265 {
1266 $class = get_class($this);
1267 $obj = new $class();
1268 $obj->setRecordId($a_new_record_id);
1269 $obj->setTitle($this->getTitle());
1270 $obj->setDescription($this->getDescription());
1271 $obj->setRequired($this->isRequired());
1272 $obj->setPosition($this->getPosition());
1273 $obj->setSearchable($this->isSearchable());
1274 $obj->importFieldDefinition((array) $this->getFieldDefinition());
1275 $obj->save(true);
1276
1277 return $obj;
1278 }
getFieldDefinition()
Get (type-specific) field definition.

References getDescription(), getFieldDefinition(), getPosition(), getTitle(), isRequired(), and isSearchable().

+ Here is the call graph for this function:

◆ addCustomFieldToDefinitionForm()

ilAdvancedMDFieldDefinition::addCustomFieldToDefinitionForm ( ilPropertyFormGUI  $a_form,
  $a_disabled = false,
string  $language = '' 
)
protected

Add custom input elements to definition form.

Parameters
ilPropertyFormGUI$a_form
bool$a_disabled

Reimplemented in ilAdvancedMDFieldDefinitionFloat, ilAdvancedMDFieldDefinitionGroupBased, ilAdvancedMDFieldDefinitionInteger, ilAdvancedMDFieldDefinitionSelect, and ilAdvancedMDFieldDefinitionText.

Definition at line 664 of file class.ilAdvancedMDFieldDefinition.php.

665 {
666 // type-specific
667 }

Referenced by addToFieldDefinitionForm().

+ Here is the caller graph for this function:

◆ addPropertiesToXML()

ilAdvancedMDFieldDefinition::addPropertiesToXML ( ilXmlWriter  $a_writer)
protected

Add (type-specific) properties to xml export.

Parameters
ilXmlWriter$a_writer

Reimplemented in ilAdvancedMDFieldDefinitionFloat, ilAdvancedMDFieldDefinitionGroupBased, ilAdvancedMDFieldDefinitionInteger, ilAdvancedMDFieldDefinitionSelect, and ilAdvancedMDFieldDefinitionText.

Definition at line 1055 of file class.ilAdvancedMDFieldDefinition.php.

1056 {
1057 // type-specific properties
1058 }

Referenced by toXML().

+ Here is the caller graph for this function:

◆ addToFieldDefinitionForm()

ilAdvancedMDFieldDefinition::addToFieldDefinitionForm ( ilPropertyFormGUI  $a_form,
ilAdvancedMDPermissionHelper  $a_permissions,
string  $language = '' 
)

Add input elements to definition form.

Parameters
ilPropertyFormGUI$a_form
ilAdvancedMDPermissionHelper$a_permissions
string$language

Definition at line 675 of file class.ilAdvancedMDFieldDefinition.php.

676 {
677 global $DIC;
678
679 $lng = $DIC['lng'];
680
681 $perm = $a_permissions->hasPermissions(
683 $this->getFieldId(),
684 array(
693 )
694 );
695
696 // title
698
699 $title = new ilTextInputGUI($lng->txt('title'), 'title');
700 $title->setValue($this->getTitle());
701 $title->setSize(20);
702 $title->setMaxLength(70);
703 $title->setRequired(true);
704 if ($this->getFieldId()) {
705 $translations->modifyTranslationInfoForTitle($this->getFieldId(), $a_form, $title, $language);
706 }
707 else {
708 $title->setValue($this->getTitle());
709 }
710
711
712 $a_form->addItem($title);
713
715 $title->setDisabled(true);
716 }
717
718 // desc
719 $desc = new ilTextAreaInputGUI($lng->txt('description'), 'description');
720 $desc->setValue($this->getDescription());
721 $desc->setRows(3);
722 $desc->setCols(50);
723 if ($this->getFieldId()) {
724 $translations->modifyTranslationInfoForDescription($this->getFieldId(), $a_form, $desc, $language);
725 }
726 else {
727 $desc->setValue($this->getDescription());
728 }
729
730 $a_form->addItem($desc);
731
732
734 $desc->setDisabled(true);
735 }
736
737 // searchable
738 $check = new ilCheckboxInputGUI($lng->txt('md_adv_searchable'), 'searchable');
739 $check->setChecked($this->isSearchable());
740 $check->setValue(1);
741 $a_form->addItem($check);
742
744 !$this->isSearchSupported()) {
745 $check->setDisabled(true);
746 }
747
748 /* required
749 $check = new ilCheckboxInputGUI($lng->txt('md_adv_required'), 'required');
750 $check->setChecked($this->isRequired());
751 $check->setValue(1);
752 $a_form->addItem($check);
753 */
754
756 $a_form,
759 );
760 }
isSearchSupported()
Is search supported at all.
addCustomFieldToDefinitionForm(ilPropertyFormGUI $a_form, $a_disabled=false, string $language='')
Add custom input elements to definition form.
This class represents a checkbox property in a property form.
hasPermissions($a_context_type, $a_context_id, array $a_action_ids)
Check permissions.
addItem($a_item)
Add Item (Property, SectionHeader).
This class represents a text area property in a property form.
This class represents a text property in a property form.
$lng

References $DIC, $language, $lng, $title, ilAdvancedMDPermissionHelper\ACTION_FIELD_EDIT_PROPERTY, addCustomFieldToDefinitionForm(), ilPropertyFormGUI\addItem(), ilAdvancedMDPermissionHelper\CONTEXT_FIELD, getDescription(), getFieldId(), ilAdvancedMDFieldTranslations\getInstanceByRecordId(), getRecordId(), getTitle(), ilClaimingPermissionHelper\hasPermissions(), isSearchable(), isSearchSupported(), ilAdvancedMDPermissionHelper\SUBACTION_FIELD_DESCRIPTION, ilAdvancedMDPermissionHelper\SUBACTION_FIELD_PROPERTIES, ilAdvancedMDPermissionHelper\SUBACTION_FIELD_SEARCHABLE, and ilAdvancedMDPermissionHelper\SUBACTION_FIELD_TITLE.

Referenced by ilAdvancedMDSettingsGUI\initFieldForm().

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

◆ delete()

ilAdvancedMDFieldDefinition::delete ( )

Delete field entry.

Reimplemented in ilAdvancedMDFieldDefinitionSelect.

Definition at line 993 of file class.ilAdvancedMDFieldDefinition.php.

994 {
995 global $DIC;
996
997 $ilDB = $DIC['ilDB'];
998
999 if (!$this->getFieldId()) {
1000 return;
1001 }
1002
1003 // delete all values
1004 include_once("Services/AdvancedMetaData/classes/class.ilAdvancedMDValues.php");
1006
1007 $query = "DELETE FROM adv_mdf_definition" .
1008 " WHERE field_id = " . $ilDB->quote($this->getFieldId(), "integer");
1009 $ilDB->manipulate($query);
1010 }
static _deleteByFieldId($a_field_id, ilADT $a_adt)
Delete values by field_id.
$query
global $ilDB

References $DIC, $ilDB, $query, ilAdvancedMDValues\_deleteByFieldId(), getADT(), and getFieldId().

+ Here is the call graph for this function:

◆ exists()

static ilAdvancedMDFieldDefinition::exists (   $a_field_id)
static

Check if field exists.

Parameters
int$a_field_id
Returns
bool

Definition at line 104 of file class.ilAdvancedMDFieldDefinition.php.

105 {
106 global $DIC;
107
108 $ilDB = $DIC['ilDB'];
109
110 $set = $ilDB->query("SELECT field_type" .
111 " FROM adv_mdf_definition" .
112 " WHERE field_id = " . $ilDB->quote($a_field_id, "integer"));
113 if ($ilDB->fetchAssoc($set)) {
114 return true;
115 }
116 return false;
117 }

References $DIC, and $ilDB.

Referenced by ilContainerFilterFieldData\getFilterSetForRefId().

+ Here is the caller graph for this function:

◆ generateImportId()

ilAdvancedMDFieldDefinition::generateImportId (   $a_field_id)

Generate unique record id.

Parameters
int$a_field_id
Returns
string

Definition at line 862 of file class.ilAdvancedMDFieldDefinition.php.

863 {
864 return 'il_' . IL_INST_ID . '_adv_md_field_' . $a_field_id;
865 }
const IL_INST_ID
Definition: constants.php:38

References IL_INST_ID.

Referenced by save(), and toXML().

+ Here is the caller graph for this function:

◆ getADT()

ilAdvancedMDFieldDefinition::getADT ( )

◆ getADTDefinition()

ilAdvancedMDFieldDefinition::getADTDefinition ( )

Get ADT definition instance.

Returns
ilADTDefinition

Definition at line 393 of file class.ilAdvancedMDFieldDefinition.php.

394 {
395 if (!$this->adt_def instanceof ilADTDefinition) {
396 $this->adt_def = $this->initADTDefinition();
397 }
398 return $this->adt_def;
399 }
ADT definition base class.
initADTDefinition()
Init adt instance.

References $adt_def, and initADTDefinition().

Referenced by getADT(), and ilAdvancedMDFieldDefinitionText\getADTGroup().

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

◆ getADTGroupForDefinitions()

static ilAdvancedMDFieldDefinition::getADTGroupForDefinitions ( array  $a_defs)
static

Init ADTGroup for definitions.

Parameters
array$a_defs
Returns
ilADTGroup

Definition at line 254 of file class.ilAdvancedMDFieldDefinition.php.

255 {
257 $group_def = $factory->getDefinitionInstanceByType("Group");
258 foreach ($a_defs as $def) {
259 $group_def->addElement($def->getFieldId(), $def->getADTDefinition());
260 }
261 $group = $factory->getInstanceByDefinition($group_def);
262
263 // bind adt instances to definition
264 foreach ($group->getElements() as $element_id => $element) {
265 $a_defs[$element_id]->setADT($element);
266 }
267
268 return $group;
269 }
$factory
Definition: metadata.php:58

References $factory, and ilADTFactory\getInstance().

Referenced by ilAdvancedMDValues\getADTGroup(), and ilAdvancedMDValues\queryForRecords().

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

◆ getComplexOptionsOverview()

ilAdvancedMDFieldDefinition::getComplexOptionsOverview (   $a_parent_gui,
string  $parent_cmd 
)
Parameters
$a_parent_gui
string$parent_cmd
Returns
null

Reimplemented in ilAdvancedMDFieldDefinitionGroupBased.

Definition at line 1293 of file class.ilAdvancedMDFieldDefinition.php.

1293 : ?string
1294 {
1295 return null;
1296 }

◆ getDBProperties()

ilAdvancedMDFieldDefinition::getDBProperties ( )
protected

Get all definition properties for DB.

Returns
array

Definition at line 872 of file class.ilAdvancedMDFieldDefinition.php.

873 {
874 $fields = array(
875 "field_type" => array("integer", $this->getType()),
876 "record_id" => array("integer", $this->getRecordId()),
877 "import_id" => array("text", $this->getImportId()),
878 "title" => array("text", $this->getTitle()),
879 "description" => array("text", $this->getDescription()),
880 "position" => array("integer", $this->getPosition()),
881 "searchable" => array("integer", $this->isSearchable()),
882 "required" => array("integer", $this->isRequired())
883 );
884
885 $def = $this->getFieldDefinition();
886 if (is_array($def)) {
887 $fields["field_values"] = array("text", serialize($def));
888 }
889
890 return $fields;
891 }

References getDescription(), getFieldDefinition(), getImportId(), getPosition(), getRecordId(), getTitle(), getType(), isRequired(), and isSearchable().

Referenced by save(), and update().

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

◆ getDescription()

ilAdvancedMDFieldDefinition::getDescription ( )

Get description.

Returns
string

Definition at line 555 of file class.ilAdvancedMDFieldDefinition.php.

References $description.

Referenced by _clone(), addToFieldDefinitionForm(), getDBProperties(), ilAdvancedMDSettingsGUI\initFieldForm(), and toXML().

+ Here is the caller graph for this function:

◆ getFieldDefinition()

ilAdvancedMDFieldDefinition::getFieldDefinition ( )
protected

Get (type-specific) field definition.

Returns
array

Reimplemented in ilAdvancedMDFieldDefinitionFloat, ilAdvancedMDFieldDefinitionGroupBased, ilAdvancedMDFieldDefinitionInteger, ilAdvancedMDFieldDefinitionSelect, and ilAdvancedMDFieldDefinitionText.

Definition at line 643 of file class.ilAdvancedMDFieldDefinition.php.

644 {
645 // type-specific properties
646 }

Referenced by _clone(), and getDBProperties().

+ Here is the caller graph for this function:

◆ getFieldDefinitionForTableGUI()

ilAdvancedMDFieldDefinition::getFieldDefinitionForTableGUI ( string  $content_language)

Parse properties for table gui.

Returns
array

Reimplemented in ilAdvancedMDFieldDefinitionFloat, ilAdvancedMDFieldDefinitionGroupBased, ilAdvancedMDFieldDefinitionInteger, ilAdvancedMDFieldDefinitionSelect, and ilAdvancedMDFieldDefinitionText.

Definition at line 653 of file class.ilAdvancedMDFieldDefinition.php.

654 {
655 // type-specific properties
656 }

◆ getFieldId()

◆ getImportId()

ilAdvancedMDFieldDefinition::getImportId ( )

Get import id.

Returns
string

Definition at line 489 of file class.ilAdvancedMDFieldDefinition.php.

References $import_id.

Referenced by getDBProperties(), and save().

+ Here is the caller graph for this function:

◆ getInstance()

static ilAdvancedMDFieldDefinition::getInstance (   $a_field_id,
  $a_type = null,
string  $language = '' 
)
static

Get definition instance by type.

Parameters
int$a_field_id
int$a_type
Returns
self

Definition at line 76 of file class.ilAdvancedMDFieldDefinition.php.

77 {
78 global $DIC;
79
80 $ilDB = $DIC['ilDB'];
81
82 if (!$a_type) {
83 $set = $ilDB->query("SELECT field_type" .
84 " FROM adv_mdf_definition" .
85 " WHERE field_id = " . $ilDB->quote($a_field_id, "integer"));
86 $a_type = $ilDB->fetchAssoc($set);
87 $a_type = $a_type["field_type"];
88 }
89
90 if (self::isValidType($a_type)) {
91 $class = "ilAdvancedMDFieldDefinition" . self::getTypeString($a_type);
92 require_once "Services/AdvancedMetaData/classes/Types/class." . $class . ".php";
93 return new $class($a_field_id, $language);
94 }
95
96 throw new ilException("unknown type " . $a_type);
97 }
static getTypeString($a_type)
Get type string.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

References $DIC, $ilDB, $language, and getTypeString().

Referenced by ilContainer\applyContainerUserFilter(), ilAdvancedMDSettingsGUI\confirmDeleteFields(), ilAdvancedMDSettingsGUI\createField(), ilAdvancedMDSettingsGUI\deleteFields(), ilAdvancedMDSettingsGUI\editComplexOption(), ilAdvancedMDSettingsGUI\editField(), ilAdvancedMDSettingsGUI\editFields(), ilContainerFilterAdvMDAdapter\getAdvType(), ilContainerFilterUtil\getContainerFieldTitle(), ilLuceneAdvancedSearchFields\getFormElement(), getInstanceByImportId(), getInstanceByTypeString(), getInstancesByObjType(), getInstancesByRecordId(), ilContainerFilterAdvMDAdapter\getOptions(), ilContainerFilterAdvMDAdapter\getTitle(), ilLuceneAdvancedSearchFields\parseFieldQuery(), ilLuceneAdvancedSearchFields\readSections(), ilAdvancedMDSettingsGUI\saveField(), ilAdvancedSearchGUI\searchAdvancedMD(), ilAdvancedMDRecordGUI\showECSStart(), ilAdvancedMDSettingsGUI\updateComplexOption(), and ilAdvancedMDSettingsGUI\updateField().

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

◆ getInstanceByImportId()

static ilAdvancedMDFieldDefinition::getInstanceByImportId (   $a_import_id)
static

Get definition instance by import id.

Parameters
string$a_import_id
Returns
self

Definition at line 209 of file class.ilAdvancedMDFieldDefinition.php.

210 {
211 global $DIC;
212
213 $ilDB = $DIC['ilDB'];
214
215 $query = "SELECT field_id, field_type FROM adv_mdf_definition" .
216 " WHERE import_id = " . $ilDB->quote($a_import_id, 'text');
217 $set = $ilDB->query($query);
218 if ($ilDB->numRows($set)) {
219 $row = $ilDB->fetchAssoc($set);
220 return self::getInstance($row["field_id"], $row["field_type"]);
221 }
222 }
static getInstance($a_field_id, $a_type=null, string $language='')
Get definition instance by type.

References $DIC, $ilDB, $query, and getInstance().

Referenced by ilAdvancedMDParser\initValue().

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

◆ getInstanceByTypeString()

static ilAdvancedMDFieldDefinition::getInstanceByTypeString (   $a_type)
static

Get instance by type string (used by import)

Parameters
string$a_type
Returns
self

Definition at line 125 of file class.ilAdvancedMDFieldDefinition.php.

126 {
127 // see self::getTypeString()
128 $map = array(
129 self::TYPE_TEXT => "Text",
130 self::TYPE_SELECT => "Select",
131 self::TYPE_DATE => "Date",
132 self::TYPE_DATETIME => "DateTime",
133 self::TYPE_FLOAT => "Float",
134 self::TYPE_LOCATION => "Location",
135 self::TYPE_INTEGER => "Integer",
136 self::TYPE_SELECT_MULTI => "SelectMulti" ,
137 self::TYPE_EXTERNAL_LINK => 'ExternalLink',
138 self::TYPE_INTERNAL_LINK => 'InternalLink',
139 self::TYPE_ADDRESS => "Address"
140 );
141 $map = array_flip($map);
142 if (array_key_exists($a_type, $map)) {
143 return self::getInstance(null, $map[$a_type]);
144 }
145 }

References getInstance().

Referenced by ilAdvancedMDRecordParser\initFieldObject().

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

◆ getInstancesByObjType()

static ilAdvancedMDFieldDefinition::getInstancesByObjType (   $a_obj_type,
  $a_active_only = true 
)
static

Definition at line 178 of file class.ilAdvancedMDFieldDefinition.php.

179 {
180 global $DIC;
181
182 $ilDB = $DIC['ilDB'];
183
184 $defs = array();
185
186 $query = "SELECT amf.* FROM adv_md_record_objs aro" .
187 " JOIN adv_md_record amr ON aro.record_id = amr.record_id" .
188 " JOIN adv_mdf_definition amf ON aro.record_id = amf.record_id" .
189 " WHERE obj_type = " . $ilDB->quote($a_obj_type, 'text');
190 if ((bool) $a_active_only) {
191 $query .= " AND active = " . $ilDB->quote(1, "integer");
192 }
193 $query .= " ORDER BY aro.record_id,position";
194 $res = $ilDB->query($query);
195 while ($row = $ilDB->fetchAssoc($res)) {
196 $field = self::getInstance(null, $row["field_type"]);
197 $field->import($row);
198 $defs[$row["field_id"]] = $field;
199 }
200 return $defs;
201 }
foreach($_POST as $key=> $value) $res

References $DIC, $ilDB, $query, $res, and getInstance().

Referenced by ilECSSettingsGUI\exportMappings(), ilECSSettingsGUI\importMappings(), ilAdvancedMDSettingsGUI\initFormSubstitutions(), ilECSSettingsGUI\initMappingsForm(), ilAdvancedMDRecordGUI\parseAppointmentPresentation(), and ilAdvancedMDSettingsGUI\updateSubstitutions().

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

◆ getInstancesByRecordId()

static ilAdvancedMDFieldDefinition::getInstancesByRecordId (   $a_record_id,
  $a_only_searchable = false,
string  $language = '' 
)
static

Get definitions by record id.

Parameters
int$a_record_id
bool$a_only_searchable
Returns
array self

Definition at line 154 of file class.ilAdvancedMDFieldDefinition.php.

155 {
156 global $DIC;
157
158 $ilDB = $DIC['ilDB'];
159
160 $defs = array();
161
162 $query = "SELECT * FROM adv_mdf_definition" .
163 " WHERE record_id = " . $ilDB->quote($a_record_id, "integer");
164 if ($a_only_searchable) {
165 $query .= " AND searchable = " . $ilDB->quote(1, "integer");
166 }
167 $query .= " ORDER BY position";
168 $set = $ilDB->query($query);
169 while ($row = $ilDB->fetchAssoc($set)) {
170 $field = self::getInstance(null, $row["field_type"], $language);
171 $field->import($row);
172 $defs[$row["field_id"]] = $field;
173 }
174
175 return $defs;
176 }

References $DIC, $ilDB, $language, $query, and getInstance().

Referenced by ilAdvancedMDRecord\_clone(), ilGlossaryTerm\_copyTerm(), ilAdvancedMDRecord\_delete(), ilAdvancedMDSettingsGUI\editFields(), ilAdvancedMDRecordTableGUI\fillRow(), ilPCAMDPageList\findPages(), ilObjBookingPool\getAdvancedMDFields(), ilGlossaryAdvMetaDataAdapter\getAllFields(), ilAdvancedMDValues\getDefinitions(), ilLuceneAdvancedSearchFields\getFields(), ilAdvancedMDRecordGUI\parseFilter(), ilAdvancedMDRecordGUI\parseSearch(), ilAdvancedMDRecordGUI\parseTableCells(), ilAdvancedMDRecordGUI\parseTableHead(), ilAdvancedMDValues\queryForRecords(), ilAdvancedMDFieldTranslations\read(), ilAdvancedMDRecord\toXML(), and ilAdvancedMDSettingsGUI\updateFields().

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

◆ getLastPosition()

ilAdvancedMDFieldDefinition::getLastPosition ( )
protected

Get last position of record.

Returns
int

Definition at line 838 of file class.ilAdvancedMDFieldDefinition.php.

839 {
840 global $DIC;
841
842 $ilDB = $DIC['ilDB'];
843
844 $sql = "SELECT max(position) pos" .
845 " FROM adv_mdf_definition" .
846 " WHERE record_id = " . $ilDB->quote($this->getRecordId(), "integer");
847 $set = $ilDB->query($sql);
848 if ($ilDB->numRows($set)) {
849 $pos = $ilDB->fetchAssoc($set);
850 return (int) $pos["pos"];
851 }
852
853 return 0;
854 }

References $DIC, $ilDB, and getRecordId().

Referenced by save().

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

◆ getLuceneSearchString()

ilAdvancedMDFieldDefinition::getLuceneSearchString (   $a_value)

Get search string in lucene syntax.

Parameters
mixed$a_value
Returns
string

Reimplemented in ilAdvancedMDFieldDefinitionDate, ilAdvancedMDFieldDefinitionDateTime, ilAdvancedMDFieldDefinitionInternalLink, and ilAdvancedMDFieldDefinitionLocation.

Definition at line 1243 of file class.ilAdvancedMDFieldDefinition.php.

1244 {
1245 return $a_value;
1246 }

◆ getPosition()

ilAdvancedMDFieldDefinition::getPosition ( )

Get position.

Returns
int

Definition at line 509 of file class.ilAdvancedMDFieldDefinition.php.

References $position.

Referenced by _clone(), getDBProperties(), and toXML().

+ Here is the caller graph for this function:

◆ getRecordId()

ilAdvancedMDFieldDefinition::getRecordId ( )

Get record id.

Returns
int

Definition at line 466 of file class.ilAdvancedMDFieldDefinition.php.

References $record_id.

Referenced by addToFieldDefinitionForm(), getDBProperties(), getLastPosition(), ilAdvancedMDFieldDefinitionText\initADTDefinition(), and toXML().

+ Here is the caller graph for this function:

◆ getSearchableDefinitionIds()

static ilAdvancedMDFieldDefinition::getSearchableDefinitionIds ( )
static

Get searchable definition ids (performance is key)

Returns
array

Definition at line 229 of file class.ilAdvancedMDFieldDefinition.php.

230 {
231 global $DIC;
232
233 $ilDB = $DIC['ilDB'];
234
235 $field_ids = array();
236
237 $query = "SELECT field_id FROM adv_md_record amr" .
238 " JOIN adv_mdf_definition amfd ON (amr.record_id = amfd.record_id)" .
239 " WHERE active = " . $ilDB->quote(1, "integer") .
240 " AND searchable = " . $ilDB->quote(1, "integer");
241 $set = $ilDB->query($query);
242 while ($row = $ilDB->fetchAssoc($set)) {
243 $field_ids[] = $row["field_id"];
244 }
245 return $field_ids;
246 }

References $DIC, $ilDB, and $query.

Referenced by ilAdvancedSearchGUI\setSubTabs().

+ Here is the caller graph for this function:

◆ getSearchQueryParserValue()

ilAdvancedMDFieldDefinition::getSearchQueryParserValue ( ilADTSearchBridge  $a_adt_search)

Get value for search query parser.

Parameters
ilADTSearchBridge$a_adt_search
Returns
mixed

Reimplemented in ilAdvancedMDFieldDefinitionText, ilAdvancedMDFieldDefinitionSelect, and ilAdvancedMDFieldDefinitionSelectMulti.

Definition at line 1124 of file class.ilAdvancedMDFieldDefinition.php.

1125 {
1126 return '';
1127 }

◆ getSearchValueSerialized()

ilAdvancedMDFieldDefinition::getSearchValueSerialized ( ilADTSearchBridge  $a_adt_search)

Get value for search persistence.

Parameters
ilADTSearchBridge$a_adt_search
Returns
string

Definition at line 1135 of file class.ilAdvancedMDFieldDefinition.php.

1136 {
1137 return $a_adt_search->getSerializedValue();
1138 }
getSerializedValue()
Get current value(s) in serialized form (for easy persisting)

References ilADTSearchBridge\getSerializedValue().

+ Here is the call graph for this function:

◆ getTitle()

ilAdvancedMDFieldDefinition::getTitle ( )

Get title.

Returns
string

Definition at line 532 of file class.ilAdvancedMDFieldDefinition.php.

533 {
534 return $this->title;
535 }

References $title.

Referenced by _clone(), addToFieldDefinitionForm(), getDBProperties(), and toXML().

+ Here is the caller graph for this function:

◆ getType()

◆ getTypeString()

static ilAdvancedMDFieldDefinition::getTypeString (   $a_type)
staticprotected

Get type string.

Parameters
string$a_type
Returns
string

Definition at line 331 of file class.ilAdvancedMDFieldDefinition.php.

332 {
333 if (self::isValidType($a_type)) {
334 $map = array(
335 self::TYPE_TEXT => "Text",
336 self::TYPE_SELECT => "Select",
337 self::TYPE_DATE => "Date",
338 self::TYPE_DATETIME => "DateTime",
339 self::TYPE_FLOAT => "Float",
340 self::TYPE_LOCATION => "Location",
341 self::TYPE_INTEGER => "Integer",
342 self::TYPE_SELECT_MULTI => "SelectMulti" ,
343 self::TYPE_EXTERNAL_LINK => 'ExternalLink',
344 self::TYPE_INTERNAL_LINK => 'InternalLink',
345 self::TYPE_ADDRESS => "Address"
346 );
347 return $map[$a_type];
348 }
349 }

Referenced by getInstance().

+ Here is the caller graph for this function:

◆ getTypeTitle()

ilAdvancedMDFieldDefinition::getTypeTitle ( )

Get type title (lang id)

Returns
string

Definition at line 369 of file class.ilAdvancedMDFieldDefinition.php.

370 {
371 // :TODO: reuse udf stuff here ?!
372 return "udf_type_" . strtolower(self::getTypeString($this->getType()));
373 }

References getType().

Referenced by ilAdvancedMDSettingsGUI\initFieldForm().

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

◆ getValidTypes()

static ilAdvancedMDFieldDefinition::getValidTypes ( )
static

Get all valid types.

Returns
array

Definition at line 290 of file class.ilAdvancedMDFieldDefinition.php.

291 {
292 return array(
293 self::TYPE_TEXT,
294 self::TYPE_DATE,
295 self::TYPE_DATETIME,
296 self::TYPE_SELECT,
297 self::TYPE_INTEGER,
298 self::TYPE_FLOAT,
299 self::TYPE_LOCATION,
300 self::TYPE_SELECT_MULTI,
301 self::TYPE_EXTERNAL_LINK,
302 self::TYPE_INTERNAL_LINK,
303 self::TYPE_ADDRESS
304 );
305 }

Referenced by ilAdvancedMDSettingsGUI\editFields().

+ Here is the caller graph for this function:

◆ getValueForXML()

ilAdvancedMDFieldDefinition::getValueForXML ( ilADT  $element)
abstract

◆ hasComplexOptions()

ilAdvancedMDFieldDefinition::hasComplexOptions ( )

Reimplemented in ilAdvancedMDFieldDefinitionGroupBased, and ilAdvancedMDFieldDefinitionText.

Definition at line 1283 of file class.ilAdvancedMDFieldDefinition.php.

1284 {
1285 return false;
1286 }

◆ import()

ilAdvancedMDFieldDefinition::import ( array  $a_data)
protected

Import from DB.

Parameters
array$a_data

Reimplemented in ilAdvancedMDFieldDefinitionSelect.

Definition at line 898 of file class.ilAdvancedMDFieldDefinition.php.

899 {
900 $this->setFieldId($a_data["field_id"]);
901
902 $this->setRecordId($a_data["record_id"]);
903 $this->setImportId($a_data["import_id"]);
904 $this->setTitle($a_data["title"]);
905 $this->setDescription($a_data["description"]);
906 $this->setPosition($a_data["position"]);
907 $this->setSearchable($a_data["searchable"]);
908 $this->setRequired($a_data["required"]);
909 $field_values = unserialize($a_data['field_values']);
910 if ($a_data["field_values"] && is_array($field_values)) {
911 $this->importFieldDefinition($field_values);
912 }
913 }
importFieldDefinition(array $a_def)
Import (type-specific) field definition from DB.

References importFieldDefinition(), setDescription(), setFieldId(), setImportId(), setPosition(), setRecordId(), setRequired(), setSearchable(), and setTitle().

+ Here is the call graph for this function:

◆ importCustomDefinitionFormPostValues()

ilAdvancedMDFieldDefinition::importCustomDefinitionFormPostValues ( ilPropertyFormGUI  $a_form,
string  $language = '' 
)

Import custom post values from definition form.

Parameters
ilPropertyFormGUI$a_form
string$language

Reimplemented in ilAdvancedMDFieldDefinitionFloat, ilAdvancedMDFieldDefinitionGroupBased, ilAdvancedMDFieldDefinitionInteger, ilAdvancedMDFieldDefinitionSelect, ilAdvancedMDFieldDefinitionSelectMulti, and ilAdvancedMDFieldDefinitionText.

Definition at line 767 of file class.ilAdvancedMDFieldDefinition.php.

768 {
769 // type-specific
770 }

Referenced by importDefinitionFormPostValues().

+ Here is the caller graph for this function:

◆ importDefinitionFormPostValues()

ilAdvancedMDFieldDefinition::importDefinitionFormPostValues ( ilPropertyFormGUI  $a_form,
ilAdvancedMDPermissionHelper  $a_permissions,
string  $active_language 
)

Import post values from definition form.

Parameters
ilPropertyFormGUI$a_form
ilAdvancedMDPermissionHelper$a_permissions

Definition at line 778 of file class.ilAdvancedMDFieldDefinition.php.

779 {
780 $record = ilAdvancedMDRecord::_getInstanceByRecordId($this->record_id);
781 $is_translation = (($active_language !== '') && ($active_language != $record->getDefaultLanguage()));
782 if (!$a_form->getItemByPostVar("title")->getDisabled() && !$is_translation) {
783 $this->setTitle($a_form->getInput("title"));
784 }
785 if (!$a_form->getItemByPostVar("description")->getDisabled() && !$is_translation) {
786 $this->setDescription($a_form->getInput("description"));
787 }
788 if (!$a_form->getItemByPostVar("searchable")->getDisabled()) {
789 $this->setSearchable($a_form->getInput("searchable"));
790 }
791
792 if ($a_permissions->hasPermission(
794 $this->getFieldId(),
797 )) {
798 $this->importCustomDefinitionFormPostValues($a_form, $active_language);
799 }
800 }
importCustomDefinitionFormPostValues(ilPropertyFormGUI $a_form, string $language='')
Import custom post values from definition form.
static _getInstanceByRecordId($a_record_id)
Get instance by record id.
hasPermission($a_context_type, $a_context_id, $a_action_id, $a_action_sub_id=null)
Check permission.
getInput($a_post_var, $ensureValidation=true)
Returns the value of a HTTP-POST variable, identified by the passed id.
getItemByPostVar($a_post_var)
Get Item by POST variable.

References ilAdvancedMDRecord\_getInstanceByRecordId(), ilAdvancedMDPermissionHelper\ACTION_FIELD_EDIT_PROPERTY, ilAdvancedMDPermissionHelper\CONTEXT_FIELD, ilPropertyFormGUI\getInput(), ilPropertyFormGUI\getItemByPostVar(), ilClaimingPermissionHelper\hasPermission(), importCustomDefinitionFormPostValues(), setDescription(), setSearchable(), setTitle(), and ilAdvancedMDPermissionHelper\SUBACTION_FIELD_PROPERTIES.

+ Here is the call graph for this function:

◆ importDefinitionFormPostValuesNeedsConfirmation()

ilAdvancedMDFieldDefinition::importDefinitionFormPostValuesNeedsConfirmation ( )

Reimplemented in ilAdvancedMDFieldDefinitionSelect.

Definition at line 802 of file class.ilAdvancedMDFieldDefinition.php.

803 {
804 return false;
805 }

◆ importFieldDefinition()

ilAdvancedMDFieldDefinition::importFieldDefinition ( array  $a_def)
protected

Import (type-specific) field definition from DB.

Parameters
array$a_def

Reimplemented in ilAdvancedMDFieldDefinitionFloat, ilAdvancedMDFieldDefinitionGroupBased, ilAdvancedMDFieldDefinitionInteger, ilAdvancedMDFieldDefinitionSelect, and ilAdvancedMDFieldDefinitionText.

Definition at line 634 of file class.ilAdvancedMDFieldDefinition.php.

635 {
636 }

Referenced by import().

+ Here is the caller graph for this function:

◆ importFromECS()

ilAdvancedMDFieldDefinition::importFromECS (   $a_ecs_type,
  $a_value,
  $a_sub_id 
)

Import meta data from ECS.

Parameters
int$a_ecs_type
mixed$a_value
string$a_sub_id
Returns
bool

Reimplemented in ilAdvancedMDFieldDefinitionDate, ilAdvancedMDFieldDefinitionDateTime, and ilAdvancedMDFieldDefinitionText.

Definition at line 1093 of file class.ilAdvancedMDFieldDefinition.php.

1094 {
1095 return false;
1096 }

◆ importValueFromXML()

◆ importXMLProperty()

ilAdvancedMDFieldDefinition::importXMLProperty (   $a_key,
  $a_value 
)

Import property from XML.

Parameters
string$a_key
string$a_value

Reimplemented in ilAdvancedMDFieldDefinitionFloat, ilAdvancedMDFieldDefinitionGroupBased, ilAdvancedMDFieldDefinitionInteger, ilAdvancedMDFieldDefinitionSelect, and ilAdvancedMDFieldDefinitionText.

Definition at line 1066 of file class.ilAdvancedMDFieldDefinition.php.

1067 {
1068 }

◆ init()

ilAdvancedMDFieldDefinition::init ( )
protected

Init properties.

Reimplemented in ilAdvancedMDFieldDefinitionFloat.

Definition at line 274 of file class.ilAdvancedMDFieldDefinition.php.

275 {
276 $this->setRequired(false);
277 $this->setSearchable(false);
278 }

References setRequired(), and setSearchable().

Referenced by __construct().

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

◆ initADTDefinition()

◆ isFilterSupported()

ilAdvancedMDFieldDefinition::isFilterSupported ( )

Is search by filter supported.

Returns
boolean

Reimplemented in ilAdvancedMDFieldDefinitionFloat, ilAdvancedMDFieldDefinitionInteger, and ilAdvancedMDFieldDefinitionLocation.

Definition at line 575 of file class.ilAdvancedMDFieldDefinition.php.

576 {
577 return true;
578 }

◆ isRequired()

ilAdvancedMDFieldDefinition::isRequired ( )

Is required field.

Returns
bool

Definition at line 619 of file class.ilAdvancedMDFieldDefinition.php.

References $required.

Referenced by _clone(), and getDBProperties().

+ Here is the caller graph for this function:

◆ isSearchable()

ilAdvancedMDFieldDefinition::isSearchable ( )

Is searchable.

Returns
bool

Definition at line 599 of file class.ilAdvancedMDFieldDefinition.php.

References $searchable.

Referenced by _clone(), addToFieldDefinitionForm(), getDBProperties(), and toXML().

+ Here is the caller graph for this function:

◆ isSearchSupported()

ilAdvancedMDFieldDefinition::isSearchSupported ( )

Is search supported at all.

Returns
boolean

Definition at line 565 of file class.ilAdvancedMDFieldDefinition.php.

566 {
567 return true;
568 }

Referenced by addToFieldDefinitionForm(), and setSearchable().

+ Here is the caller graph for this function:

◆ isValidType()

static ilAdvancedMDFieldDefinition::isValidType (   $a_type)
static

Is given type valid.

Parameters
int$a_type
Returns
bool

Definition at line 313 of file class.ilAdvancedMDFieldDefinition.php.

314 {
315 return in_array((int) $a_type, self::getValidTypes());
316 }

◆ parseSearchObjects()

ilAdvancedMDFieldDefinition::parseSearchObjects ( array  $a_records,
array  $a_object_types 
)
protected

Add object-data needed for global search to AMD search results.

Parameters
array$a_records
array$a_object_types
Returns
array

Reimplemented in ilAdvancedMDFieldDefinitionText.

Definition at line 1158 of file class.ilAdvancedMDFieldDefinition.php.

1159 {
1160 global $DIC;
1161
1162 $ilDB = $DIC['ilDB'];
1163
1164 $res = array();
1165
1166 $obj_ids = array();
1167 foreach ($a_records as $record) {
1168 if ($record["sub_type"] == "-") {
1169 $obj_ids[] = $record["obj_id"];
1170 }
1171 }
1172
1173 $sql = "SELECT obj_id,type" .
1174 " FROM object_data" .
1175 " WHERE " . $ilDB->in("obj_id", $obj_ids, "", "integer") .
1176 " AND " . $ilDB->in("type", $a_object_types, "", "text");
1177 $set = $ilDB->query($sql);
1178 while ($row = $ilDB->fetchAssoc($set)) {
1179 $res[] = $row;
1180 }
1181
1182 return $res;
1183 }

References $DIC, $ilDB, and $res.

Referenced by searchObjects(), and ilAdvancedMDFieldDefinitionInternalLink\searchObjects().

+ Here is the caller graph for this function:

◆ prepareCustomDefinitionFormConfirmation()

ilAdvancedMDFieldDefinition::prepareCustomDefinitionFormConfirmation ( ilPropertyFormGUI  $a_form)

Reimplemented in ilAdvancedMDFieldDefinitionSelect.

Definition at line 807 of file class.ilAdvancedMDFieldDefinition.php.

808 {
809 // type-specific
810 }

Referenced by prepareDefinitionFormConfirmation().

+ Here is the caller graph for this function:

◆ prepareDefinitionFormConfirmation()

ilAdvancedMDFieldDefinition::prepareDefinitionFormConfirmation ( ilPropertyFormGUI  $a_form)

Definition at line 812 of file class.ilAdvancedMDFieldDefinition.php.

813 {
814 $a_form->getItemByPostVar("title")->setDisabled(true);
815 $a_form->getItemByPostVar("description")->setDisabled(true);
816 $a_form->getItemByPostVar("searchable")->setDisabled(true);
817
818 // checkboxes have no hidden on disabled
819 if ($a_form->getInput("searchable")) {
820 $hidden = new ilHiddenInputGUI("searchable");
821 $hidden->setValue(1);
822 $a_form->addItem($hidden);
823 }
824
826 }
prepareCustomDefinitionFormConfirmation(ilPropertyFormGUI $a_form)
This class represents a hidden form property in a property form.

References ilPropertyFormGUI\addItem(), ilPropertyFormGUI\getInput(), ilPropertyFormGUI\getItemByPostVar(), and prepareCustomDefinitionFormConfirmation().

+ Here is the call graph for this function:

◆ prepareElementForEditor()

ilAdvancedMDFieldDefinition::prepareElementForEditor ( ilADTFormBridge  $a_bridge)

Prepare editor form elements.

Parameters
ilADTFormBridge$a_bridge

Reimplemented in ilAdvancedMDFieldDefinitionSelect, ilAdvancedMDFieldDefinitionSelectMulti, and ilAdvancedMDFieldDefinitionText.

Definition at line 1108 of file class.ilAdvancedMDFieldDefinition.php.

1109 {
1110 // type-specific
1111 }

◆ prepareElementForSearch()

ilAdvancedMDFieldDefinition::prepareElementForSearch ( ilADTSearchBridge  $a_bridge)

Prepare search form elements.

Parameters
ilADTSearchBridge$a_bridge

Definition at line 1253 of file class.ilAdvancedMDFieldDefinition.php.

1254 {
1255 // type-specific
1256 }

◆ read()

ilAdvancedMDFieldDefinition::read (   $a_field_id)
protected

Read field definition.

Definition at line 918 of file class.ilAdvancedMDFieldDefinition.php.

919 {
920 global $DIC;
921
922 $ilDB = $DIC['ilDB'];
923
924 if (!(int) $a_field_id) {
925 return;
926 }
927
928 $sql = "SELECT * FROM adv_mdf_definition" .
929 " WHERE field_id = " . $ilDB->quote($a_field_id, "integer");
930 $set = $ilDB->query($sql);
931 if ($ilDB->numRows($set)) {
932 $row = $ilDB->fetchAssoc($set);
933 $this->import($row);
934 }
935 }

References $DIC, and $ilDB.

Referenced by __construct().

+ Here is the caller graph for this function:

◆ save()

ilAdvancedMDFieldDefinition::save (   $a_keep_pos = false)

Create new field entry.

Reimplemented in ilAdvancedMDFieldDefinitionSelect.

Definition at line 940 of file class.ilAdvancedMDFieldDefinition.php.

941 {
942 global $DIC;
943
944 $ilDB = $DIC['ilDB'];
945
946 if ($this->getFieldId()) {
947 return $this->update();
948 }
949
950 $next_id = $ilDB->nextId("adv_mdf_definition");
951
952 // append
953 if (!$a_keep_pos) {
954 $this->setPosition($this->getLastPosition() + 1);
955 }
956
957 // needs unique import id
958 if (!$this->getImportId()) {
959 $this->setImportId($this->generateImportId($next_id));
960 }
961
962 $fields = $this->getDBProperties();
963 $fields["field_id"] = array("integer", $next_id);
964
965 $ilDB->insert("adv_mdf_definition", $fields);
966
967 $this->setFieldId($next_id);
968 }
getLastPosition()
Get last position of record.
getDBProperties()
Get all definition properties for DB.
generateImportId($a_field_id)
Generate unique record id.

References $DIC, $ilDB, generateImportId(), getDBProperties(), getFieldId(), getImportId(), getLastPosition(), setFieldId(), setImportId(), setPosition(), and update().

Referenced by update().

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

◆ searchObjects()

ilAdvancedMDFieldDefinition::searchObjects ( ilADTSearchBridge  $a_adt_search,
ilQueryParser  $a_parser,
array  $a_object_types,
  $a_locate,
  $a_search_type 
)

Search objects.

Parameters
ilADTSearchBridge$a_adt_search
ilQueryParser$a_parser
array$a_object_types
string$a_locate
string$a_search_type
Returns
array

Reimplemented in ilAdvancedMDFieldDefinitionInternalLink, and ilAdvancedMDFieldDefinitionText.

Definition at line 1223 of file class.ilAdvancedMDFieldDefinition.php.

1224 {
1225 // search type only supported/needed for text
1226 include_once('Services/ADT/classes/ActiveRecord/class.ilADTActiveRecordByType.php');
1228 if ($condition) {
1229 $objects = ilADTActiveRecordByType::find("adv_md_values", $this->getADT()->getType(), $this->getFieldId(), $condition, $a_locate);
1230 if (sizeof($objects)) {
1231 return $this->parseSearchObjects($objects, $a_object_types);
1232 }
1233 return array();
1234 }
1235 }
static find($a_table, $a_type, $a_field_id, $a_condition, $a_additional_fields=null)
Find entries.
getSQLCondition($a_element_id)
Get SQL condition for current value(s)
parseSearchObjects(array $a_records, array $a_object_types)
Add object-data needed for global search to AMD search results.

References ilADTActiveRecordByType\find(), getADT(), getFieldId(), ilADTSearchBridge\getSQLCondition(), getType(), parseSearchObjects(), and ilADTActiveRecordByType\SINGLE_COLUMN_NAME.

+ Here is the call graph for this function:

◆ searchSubObjects()

ilAdvancedMDFieldDefinition::searchSubObjects ( ilADTSearchBridge  $a_adt_search,
  $a_obj_id,
  $sub_obj_type 
)

Definition at line 1185 of file class.ilAdvancedMDFieldDefinition.php.

1186 {
1187 include_once('Services/ADT/classes/ActiveRecord/class.ilADTActiveRecordByType.php');
1189
1190 // :TODO:
1191 if ($a_adt_search instanceof ilADTLocationSearchBridgeSingle) {
1192 $element_id = "loc";
1193 }
1194
1195 $condition = $a_adt_search->getSQLCondition($element_id);
1196 if ($condition) {
1197 $objects = ilADTActiveRecordByType::find("adv_md_values", $this->getADT()->getType(), $this->getFieldId(), $condition);
1198 if (sizeof($objects)) {
1199 $res = array();
1200 foreach ($objects as $item) {
1201 if ($item["obj_id"] == $a_obj_id &&
1202 $item["sub_type"] == $sub_obj_type) {
1203 $res[] = $item["sub_id"];
1204 }
1205 }
1206 return $res;
1207 }
1208 }
1209
1210 return array();
1211 }

References $res, ilADTActiveRecordByType\find(), getADT(), getFieldId(), ilADTSearchBridge\getSQLCondition(), getType(), and ilADTActiveRecordByType\SINGLE_COLUMN_NAME.

+ Here is the call graph for this function:

◆ setADT()

ilAdvancedMDFieldDefinition::setADT ( ilADT  $a_adt)
protected

Set ADT instance.

See also
self::getADTGroupForDefinitions()
Parameters
ilADT$a_adt

Definition at line 420 of file class.ilAdvancedMDFieldDefinition.php.

421 {
422 if (!$this->adt instanceof ilADT) {
423 $this->adt = $a_adt;
424 }
425 }

◆ setDescription()

ilAdvancedMDFieldDefinition::setDescription (   $a_desc)

Set description.

Parameters
string$a_desc

Definition at line 542 of file class.ilAdvancedMDFieldDefinition.php.

543 {
544 if ($a_desc !== null) {
545 $a_desc = trim($a_desc);
546 }
547 $this->description = $a_desc;
548 }

Referenced by import(), and importDefinitionFormPostValues().

+ Here is the caller graph for this function:

◆ setFieldId()

ilAdvancedMDFieldDefinition::setFieldId (   $a_id)
protected

Set field_id.

Parameters
int$a_id

Definition at line 436 of file class.ilAdvancedMDFieldDefinition.php.

437 {
438 $this->field_id = (int) $a_id;
439 }

Referenced by import(), and save().

+ Here is the caller graph for this function:

◆ setImportId()

ilAdvancedMDFieldDefinition::setImportId (   $a_id_string)

Set import id.

Parameters
string$a_id_string

Definition at line 476 of file class.ilAdvancedMDFieldDefinition.php.

477 {
478 if ($a_id_string !== null) {
479 $a_id_string = trim($a_id_string);
480 }
481 $this->import_id = $a_id_string;
482 }

Referenced by import(), and save().

+ Here is the caller graph for this function:

◆ setPosition()

ilAdvancedMDFieldDefinition::setPosition (   $a_pos)

Set position.

Parameters
int$a_pos

Definition at line 499 of file class.ilAdvancedMDFieldDefinition.php.

500 {
501 $this->position = (int) $a_pos;
502 }

Referenced by import(), and save().

+ Here is the caller graph for this function:

◆ setRecordId()

ilAdvancedMDFieldDefinition::setRecordId (   $a_id)

Set record id.

Parameters
int$a_id

Definition at line 456 of file class.ilAdvancedMDFieldDefinition.php.

457 {
458 $this->record_id = (int) $a_id;
459 }

Referenced by import().

+ Here is the caller graph for this function:

◆ setRequired()

ilAdvancedMDFieldDefinition::setRequired (   $a_status)

Toggle required.

Parameters
bool$a_status

Definition at line 609 of file class.ilAdvancedMDFieldDefinition.php.

610 {
611 $this->required = (bool) $a_status;
612 }

Referenced by import(), and init().

+ Here is the caller graph for this function:

◆ setSearchable()

ilAdvancedMDFieldDefinition::setSearchable (   $a_status)

Toggle searchable.

Parameters
boolsearchable

Definition at line 585 of file class.ilAdvancedMDFieldDefinition.php.

586 {
587 // see above
588 if (!$this->isSearchSupported()) {
589 $a_status = false;
590 }
591 $this->searchable = (bool) $a_status;
592 }

References isSearchSupported().

Referenced by import(), importDefinitionFormPostValues(), and init().

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

◆ setSearchValueSerialized()

ilAdvancedMDFieldDefinition::setSearchValueSerialized ( ilADTSearchBridge  $a_adt_search,
  $a_value 
)

Set value from search persistence.

Parameters
ilADTSearchBridge$a_adt_search
string$a_value

Definition at line 1146 of file class.ilAdvancedMDFieldDefinition.php.

1147 {
1148 return $a_adt_search->setSerializedValue($a_value);
1149 }
setSerializedValue($a_value)
Set current value(s) in serialized form (for easy persisting)

References ilADTSearchBridge\setSerializedValue().

+ Here is the call graph for this function:

◆ setTitle()

ilAdvancedMDFieldDefinition::setTitle (   $a_title)

Get title.

Parameters
string$a_title

Definition at line 519 of file class.ilAdvancedMDFieldDefinition.php.

520 {
521 if ($a_title !== null) {
522 $a_title = trim($a_title);
523 }
524 $this->title = $a_title;
525 }

Referenced by import(), and importDefinitionFormPostValues().

+ Here is the caller graph for this function:

◆ toXML()

ilAdvancedMDFieldDefinition::toXML ( ilXmlWriter  $a_writer)

To Xml.

This method writes only the subset Field Use class.ilAdvancedMDRecordXMLWriter to generate a complete xml presentation.

Parameters
ilXmlWriter$a_writer

Definition at line 1024 of file class.ilAdvancedMDFieldDefinition.php.

1025 {
1026 $a_writer->xmlStartTag('Field', array(
1027 'id' => $this->generateImportId($this->getFieldId()),
1028 'searchable' => ($this->isSearchable() ? 'Yes' : 'No'),
1029 'fieldType' => self::getTypeString($this->getType())));
1030
1031 $a_writer->xmlElement('FieldTitle', null, $this->getTitle());
1032 $a_writer->xmlElement('FieldDescription', null, $this->getDescription());
1033
1035 $a_writer->xmlStartTag('FieldTranslations');
1036 foreach ($translations->getTranslations($this->getFieldId()) as $translation) {
1037 $a_writer->xmlStartTag('FieldTranslation', ['language' => $translation->getLangKey()]);
1038 $a_writer->xmlElement('FieldTranslationTitle', [], (string) $translation->getTitle());
1039 $a_writer->xmlElement('FieldTranslationDescription',[], (string) $translation->getDescription());
1040 $a_writer->xmlEndTag('FieldTranslation');
1041 }
1042 $a_writer->xmlEndTag('FieldTranslations');
1043 $a_writer->xmlElement('FieldPosition', null, $this->getPosition());
1044
1045 $this->addPropertiesToXML($a_writer);
1046
1047 $a_writer->xmlEndTag('Field');
1048 }
addPropertiesToXML(ilXmlWriter $a_writer)
Add (type-specific) properties to xml export.
xmlEndTag($tag)
Writes an endtag.
xmlElement($tag, $attrs=null, $data=null, $encode=true, $escape=true)
Writes a basic element (no children, just textual content)
xmlStartTag($tag, $attrs=null, $empty=false, $encode=true, $escape=true)
Writes a starttag.

References addPropertiesToXML(), generateImportId(), getDescription(), getFieldId(), ilAdvancedMDFieldTranslations\getInstanceByRecordId(), getPosition(), getRecordId(), getTitle(), getType(), isSearchable(), ilXmlWriter\xmlElement(), ilXmlWriter\xmlEndTag(), and ilXmlWriter\xmlStartTag().

+ Here is the call graph for this function:

◆ update()

ilAdvancedMDFieldDefinition::update ( )

Update field entry.

Reimplemented in ilAdvancedMDFieldDefinitionSelect.

Definition at line 973 of file class.ilAdvancedMDFieldDefinition.php.

974 {
975 global $DIC;
976
977 $ilDB = $DIC['ilDB'];
978
979 if (!$this->getFieldId()) {
980 return $this->save();
981 }
982
983 $ilDB->update(
984 "adv_mdf_definition",
985 $this->getDBProperties(),
986 array("field_id" => array("integer", $this->getFieldId()))
987 );
988 }
save($a_keep_pos=false)
Create new field entry.

References $DIC, $ilDB, getDBProperties(), getFieldId(), and save().

Referenced by save().

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

◆ useDefaultLanguageMode()

ilAdvancedMDFieldDefinition::useDefaultLanguageMode ( string  $language)

Check if default language mode has to be used: no language given or language equals default language.

Parameters
string$language

Definition at line 355 of file class.ilAdvancedMDFieldDefinition.php.

356 {
357 if (!strlen($language)) {
358 return true;
359 }
360 $record = ilAdvancedMDRecord::_getInstanceByRecordId($this->record_id);
361 return strcmp($record->getDefaultLanguage(), $language) === 0;
362 }

References $language, and ilAdvancedMDRecord\_getInstanceByRecordId().

Referenced by ilAdvancedMDFieldDefinitionInteger\addCustomFieldToDefinitionForm(), ilAdvancedMDFieldDefinitionSelect\addCustomFieldToDefinitionForm(), ilAdvancedMDFieldDefinitionInteger\getFieldDefinitionForTableGUI(), and ilAdvancedMDFieldDefinitionInteger\importCustomDefinitionFormPostValues().

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

Field Documentation

◆ $adt

◆ $adt_def

ilAdvancedMDFieldDefinition::$adt_def
protected

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

Referenced by getADTDefinition().

◆ $description

ilAdvancedMDFieldDefinition::$description
protected

Definition at line 21 of file class.ilAdvancedMDFieldDefinition.php.

Referenced by getDescription().

◆ $field_id

ilAdvancedMDFieldDefinition::$field_id
protected

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

Referenced by getFieldId().

◆ $import_id

ilAdvancedMDFieldDefinition::$import_id
protected

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

Referenced by getImportId().

◆ $language

◆ $logger

ilAdvancedMDFieldDefinition::$logger
protected

Definition at line 47 of file class.ilAdvancedMDFieldDefinition.php.

◆ $position

ilAdvancedMDFieldDefinition::$position
protected

Definition at line 19 of file class.ilAdvancedMDFieldDefinition.php.

Referenced by getPosition().

◆ $record_id

ilAdvancedMDFieldDefinition::$record_id
protected

Definition at line 17 of file class.ilAdvancedMDFieldDefinition.php.

Referenced by getRecordId().

◆ $required

ilAdvancedMDFieldDefinition::$required
protected

Definition at line 23 of file class.ilAdvancedMDFieldDefinition.php.

Referenced by isRequired().

◆ $searchable

ilAdvancedMDFieldDefinition::$searchable
protected

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

Referenced by isSearchable().

◆ $title

◆ TYPE_ADDRESS

const ilAdvancedMDFieldDefinition::TYPE_ADDRESS = 99

◆ TYPE_DATE

◆ TYPE_DATETIME

const ilAdvancedMDFieldDefinition::TYPE_DATETIME = 4

◆ TYPE_EXTERNAL_LINK

const ilAdvancedMDFieldDefinition::TYPE_EXTERNAL_LINK = 9

◆ TYPE_FLOAT

const ilAdvancedMDFieldDefinition::TYPE_FLOAT = 6

◆ TYPE_INTEGER

const ilAdvancedMDFieldDefinition::TYPE_INTEGER = 5

◆ TYPE_INTERNAL_LINK

const ilAdvancedMDFieldDefinition::TYPE_INTERNAL_LINK = 10

◆ TYPE_LOCATION

const ilAdvancedMDFieldDefinition::TYPE_LOCATION = 7

◆ TYPE_SELECT

const ilAdvancedMDFieldDefinition::TYPE_SELECT = 1

◆ TYPE_SELECT_MULTI

const ilAdvancedMDFieldDefinition::TYPE_SELECT_MULTI = 8

◆ TYPE_TEXT

const ilAdvancedMDFieldDefinition::TYPE_TEXT = 2

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