ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
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.

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

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  }
global $DIC
Definition: goto.php:24
read($a_field_id)
Read field definition.
language()
Definition: language.php:2
+ 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

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

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

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.
+ 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

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

Referenced by addToFieldDefinitionForm().

665  {
666  // type-specific
667  }
+ 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

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

Referenced by toXML().

1056  {
1057  // type-specific properties
1058  }
+ 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.

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(), ilCheckboxInputGUI\setChecked(), ilTextAreaInputGUI\setValue(), ilAdvancedMDPermissionHelper\SUBACTION_FIELD_DESCRIPTION, ilAdvancedMDPermissionHelper\SUBACTION_FIELD_PROPERTIES, ilAdvancedMDPermissionHelper\SUBACTION_FIELD_SEARCHABLE, and ilAdvancedMDPermissionHelper\SUBACTION_FIELD_TITLE.

Referenced by ilAdvancedMDSettingsGUI\initFieldForm().

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,
758  $language
759  );
760  }
hasPermissions($a_context_type, $a_context_id, array $a_action_ids)
Check permissions.
setValue($a_value)
Set Value.
This class represents a checkbox property in a property form.
addItem($a_item)
Add Item (Property, SectionHeader).
setChecked($a_checked)
Set Checked.
$lng
global $DIC
Definition: goto.php:24
This class represents a text area property in a property form.
isSearchSupported()
Is search supported at all.
addCustomFieldToDefinitionForm(ilPropertyFormGUI $a_form, $a_disabled=false, string $language='')
Add custom input elements to definition form.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ delete()

ilAdvancedMDFieldDefinition::delete ( )

Delete field entry.

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

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

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.
global $DIC
Definition: goto.php:24
$query
global $ilDB
+ 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.

References $DIC, and $ilDB.

Referenced by ilContainerFilterFieldData\getFilterSetForRefId().

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  }
global $DIC
Definition: goto.php:24
global $ilDB
+ 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.

References IL_INST_ID.

Referenced by save(), and toXML().

863  {
864  return 'il_' . IL_INST_ID . '_adv_md_field_' . $a_field_id;
865  }
const IL_INST_ID
Definition: constants.php:38
+ Here is the caller graph for this function:

◆ getADT()

ilAdvancedMDFieldDefinition::getADT ( )

Get ADT instance.

Returns
ilADT

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

References $adt, getADTDefinition(), and ilADTFactory\getInstance().

Referenced by delete(), ilAdvancedMDFieldDefinitionDate\importFromECS(), ilAdvancedMDFieldDefinitionDateTime\importFromECS(), ilAdvancedMDFieldDefinitionText\importFromECS(), ilAdvancedMDFieldDefinitionExternalLink\importValueFromXML(), ilAdvancedMDFieldDefinitionDate\importValueFromXML(), ilAdvancedMDFieldDefinitionDateTime\importValueFromXML(), ilAdvancedMDFieldDefinitionInternalLink\importValueFromXML(), ilAdvancedMDFieldDefinitionLocation\importValueFromXML(), ilAdvancedMDFieldDefinitionSelectMulti\importValueFromXML(), ilAdvancedMDFieldDefinitionGroupBased\importValueFromXML(), ilAdvancedMDFieldDefinitionText\importValueFromXML(), ilAdvancedMDFieldDefinitionInteger\importValueFromXML(), ilAdvancedMDFieldDefinitionSelect\importValueFromXML(), ilAdvancedMDFieldDefinitionInternalLink\searchObjects(), ilAdvancedMDFieldDefinitionText\searchObjects(), searchObjects(), and searchSubObjects().

407  {
408  if (!$this->adt instanceof ilADT) {
409  $this->adt = ilADTFactory::getInstance()->getInstanceByDefinition($this->getADTDefinition());
410  }
411  return $this->adt;
412  }
getADTDefinition()
Get ADT definition instance.
static getInstance()
Get singleton.
ADT base class.
Definition: class.ilADT.php:11
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getADTDefinition()

ilAdvancedMDFieldDefinition::getADTDefinition ( )

Get ADT definition instance.

Returns
ilADTDefinition

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

References $adt_def, and initADTDefinition().

Referenced by getADT(), ilAdvancedMDFieldDefinitionText\getADTGroup(), ilAdvancedMDFieldDefinitionSelect\importNewSelectOptions(), and ilAdvancedMDFieldDefinitionSelect\update().

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

References $factory, and ilADTFactory\getInstance().

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

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  }
static getInstance()
Get singleton.
$factory
Definition: metadata.php:58
+ 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

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.

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

Referenced by save(), and update().

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  }
getFieldDefinition()
Get (type-specific) field definition.
+ 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

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

Referenced by _clone(), and getDBProperties().

644  {
645  // type-specific properties
646  }
+ Here is the caller graph for this function:

◆ getFieldDefinitionForTableGUI()

ilAdvancedMDFieldDefinition::getFieldDefinitionForTableGUI ( string  $content_language)

Parse properties for table gui.

Returns
array

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.

References $DIC, $ilDB, and $language.

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

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  }
global $DIC
Definition: goto.php:24
global $ilDB
+ 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.

References $DIC, $ilDB, and $query.

Referenced by ilAdvancedMDParser\initValue().

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  }
global $DIC
Definition: goto.php:24
$query
global $ilDB
+ 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.

Referenced by ilAdvancedMDRecordParser\initFieldObject().

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  }
+ 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.

References $DIC, $ilDB, $query, and $res.

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

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
global $DIC
Definition: goto.php:24
$query
global $ilDB
+ 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.

References $DIC, $ilDB, $language, and $query.

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

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  }
global $DIC
Definition: goto.php:24
$query
global $ilDB
+ 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.

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

Referenced by save().

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  }
global $DIC
Definition: goto.php:24
global $ilDB
+ 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

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()

◆ getSearchableDefinitionIds()

static ilAdvancedMDFieldDefinition::getSearchableDefinitionIds ( )
static

Get searchable definition ids (performance is key)

Returns
array

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

References $DIC, $ilDB, and $query.

Referenced by ilAdvancedSearchGUI\setSubTabs().

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  }
global $DIC
Definition: goto.php:24
$query
global $ilDB
+ 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

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.

References ilADTSearchBridge\getSerializedValue().

1136  {
1137  return $a_adt_search->getSerializedValue();
1138  }
getSerializedValue()
Get current value(s) in serialized form (for easy persisting)
+ Here is the call graph for this function:

◆ getTitle()

ilAdvancedMDFieldDefinition::getTitle ( )

Get title.

Returns
string

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

References $title.

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

+ Here is the caller graph for this function:

◆ getType()

ilAdvancedMDFieldDefinition::getType ( )
abstract

Get type.

Returns
int

Referenced by getDBProperties(), getTypeTitle(), isValidType(), searchObjects(), searchSubObjects(), and toXML().

+ Here is the caller graph for this function:

◆ 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  }

◆ getTypeTitle()

ilAdvancedMDFieldDefinition::getTypeTitle ( )

Get type title (lang id)

Returns
string

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

References getType(), and initADTDefinition().

Referenced by ilAdvancedMDSettingsGUI\initFieldForm().

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

Referenced by ilAdvancedMDSettingsGUI\editFields().

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  }
+ Here is the caller graph for this function:

◆ getValueForXML()

ilAdvancedMDFieldDefinition::getValueForXML ( ilADT  $element)
abstract

Parse ADT value for xml (export)

Parameters
ilADT$element
Returns
string

Referenced by importXMLProperty().

+ Here is the caller graph for this function:

◆ hasComplexOptions()

ilAdvancedMDFieldDefinition::hasComplexOptions ( )

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

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

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

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  }
setSearchable($a_status)
Toggle searchable.
importFieldDefinition(array $a_def)
Import (type-specific) field definition from DB.
+ 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

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

Referenced by importDefinitionFormPostValues().

768  {
769  // type-specific
770  }
+ 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.

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.

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  }
getItemByPostVar($a_post_var)
Get Item by POST variable.
hasPermission($a_context_type, $a_context_id, $a_action_id, $a_action_sub_id=null)
Check permission.
importCustomDefinitionFormPostValues(ilPropertyFormGUI $a_form, string $language='')
Import custom post values from definition form.
static _getInstanceByRecordId($a_record_id)
Get instance by record id.
setSearchable($a_status)
Toggle searchable.
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:

◆ importDefinitionFormPostValuesNeedsConfirmation()

ilAdvancedMDFieldDefinition::importDefinitionFormPostValuesNeedsConfirmation ( )

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

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

Referenced by import().

635  {
636  }
+ 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

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

1094  {
1095  return false;
1096  }

◆ importValueFromXML()

ilAdvancedMDFieldDefinition::importValueFromXML (   $a_cdata)
abstract

Import value from xml.

Parameters
string$a_cdata

Referenced by importXMLProperty().

+ Here is the caller graph for this function:

◆ importXMLProperty()

ilAdvancedMDFieldDefinition::importXMLProperty (   $a_key,
  $a_value 
)

Import property from XML.

Parameters
string$a_key
string$a_value

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

References getValueForXML(), and importValueFromXML().

1067  {
1068  }
+ Here is the call graph for this function:

◆ init()

ilAdvancedMDFieldDefinition::init ( )
protected

Init properties.

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

References setRequired(), and setSearchable().

Referenced by __construct().

275  {
276  $this->setRequired(false);
277  $this->setSearchable(false);
278  }
setSearchable($a_status)
Toggle searchable.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initADTDefinition()

ilAdvancedMDFieldDefinition::initADTDefinition ( )
abstractprotected

Init adt instance.

Returns
ilADTDefinition

Referenced by getADTDefinition(), and getTypeTitle().

+ Here is the caller graph for this function:

◆ isFilterSupported()

ilAdvancedMDFieldDefinition::isFilterSupported ( )

Is search by filter supported.

Returns
boolean

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.

Referenced by addToFieldDefinitionForm(), and setSearchable().

566  {
567  return true;
568  }
+ 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.

References getType().

314  {
315  return in_array((int) $a_type, self::getValidTypes());
316  }
+ Here is the call graph for this function:

◆ 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

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

References $DIC, $ilDB, and $res.

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

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  }
foreach($_POST as $key=> $value) $res
global $DIC
Definition: goto.php:24
global $ilDB
+ Here is the caller graph for this function:

◆ prepareCustomDefinitionFormConfirmation()

ilAdvancedMDFieldDefinition::prepareCustomDefinitionFormConfirmation ( ilPropertyFormGUI  $a_form)

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

Referenced by prepareDefinitionFormConfirmation().

808  {
809  // type-specific
810  }
+ Here is the caller graph for this function:

◆ prepareDefinitionFormConfirmation()

ilAdvancedMDFieldDefinition::prepareDefinitionFormConfirmation ( ilPropertyFormGUI  $a_form)

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

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

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  }
getItemByPostVar($a_post_var)
Get Item by POST variable.
addItem($a_item)
Add Item (Property, SectionHeader).
prepareCustomDefinitionFormConfirmation(ilPropertyFormGUI $a_form)
This class represents a hidden form property in a property form.
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:

◆ prepareElementForEditor()

ilAdvancedMDFieldDefinition::prepareElementForEditor ( ilADTFormBridge  $a_bridge)

Prepare editor form elements.

Parameters
ilADTFormBridge$a_bridge

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.

References $DIC, and $ilDB.

Referenced by __construct().

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  }
global $DIC
Definition: goto.php:24
global $ilDB
+ Here is the caller graph for this function:

◆ save()

ilAdvancedMDFieldDefinition::save (   $a_keep_pos = false)

Create new field entry.

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

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

Referenced by update().

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  }
getDBProperties()
Get all definition properties for DB.
global $DIC
Definition: goto.php:24
generateImportId($a_field_id)
Generate unique record id.
getLastPosition()
Get last position of record.
global $ilDB
+ 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

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

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

1224  {
1225  // search type only supported/needed for text
1226  include_once('Services/ADT/classes/ActiveRecord/class.ilADTActiveRecordByType.php');
1227  $condition = $a_adt_search->getSQLCondition(ilADTActiveRecordByType::SINGLE_COLUMN_NAME);
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  }
parseSearchObjects(array $a_records, array $a_object_types)
Add object-data needed for global search to AMD search results.
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)
+ 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.

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

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  }
static find($a_table, $a_type, $a_field_id, $a_condition, $a_additional_fields=null)
Find entries.
foreach($_POST as $key=> $value) $res
getSQLCondition($a_element_id)
Get SQL condition for current value(s)
+ 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  }
ADT base class.
Definition: class.ilADT.php:11

◆ setDescription()

ilAdvancedMDFieldDefinition::setDescription (   $a_desc)

Set description.

Parameters
string$a_desc

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

Referenced by import(), and importDefinitionFormPostValues().

543  {
544  if ($a_desc !== null) {
545  $a_desc = trim($a_desc);
546  }
547  $this->description = $a_desc;
548  }
+ 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.

Referenced by import(), and save().

437  {
438  $this->field_id = (int) $a_id;
439  }
+ 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.

Referenced by import(), and save().

477  {
478  if ($a_id_string !== null) {
479  $a_id_string = trim($a_id_string);
480  }
481  $this->import_id = $a_id_string;
482  }
+ 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.

Referenced by import(), and save().

500  {
501  $this->position = (int) $a_pos;
502  }
+ 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.

Referenced by import().

457  {
458  $this->record_id = (int) $a_id;
459  }
+ 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.

Referenced by import(), and init().

610  {
611  $this->required = (bool) $a_status;
612  }
+ 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.

References isSearchSupported().

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

586  {
587  // see above
588  if (!$this->isSearchSupported()) {
589  $a_status = false;
590  }
591  $this->searchable = (bool) $a_status;
592  }
isSearchSupported()
Is search supported at all.
+ 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.

References ilADTSearchBridge\setSerializedValue().

1147  {
1148  return $a_adt_search->setSerializedValue($a_value);
1149  }
setSerializedValue($a_value)
Set current value(s) in serialized form (for easy persisting)
+ 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.

Referenced by import(), and importDefinitionFormPostValues().

520  {
521  if ($a_title !== null) {
522  $a_title = trim($a_title);
523  }
524  $this->title = $a_title;
525  }
+ 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.

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

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  }
xmlStartTag($tag, $attrs=null, $empty=false, $encode=true, $escape=true)
Writes a starttag.
xmlEndTag($tag)
Writes an endtag.
generateImportId($a_field_id)
Generate unique record id.
xmlElement($tag, $attrs=null, $data=null, $encode=true, $escape=true)
Writes a basic element (no children, just textual content)
addPropertiesToXML(ilXmlWriter $a_writer)
Add (type-specific) properties to xml export.
+ Here is the call graph for this function:

◆ update()

ilAdvancedMDFieldDefinition::update ( )

Update field entry.

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

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

Referenced by save().

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.
getDBProperties()
Get all definition properties for DB.
global $DIC
Definition: goto.php:24
global $ilDB
+ 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.

References $language, and ilAdvancedMDRecord\_getInstanceByRecordId().

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

356  {
357  if (!strlen($language)) {
358  return true;
359  }
360  $record = ilAdvancedMDRecord::_getInstanceByRecordId($this->record_id);
361  return strcmp($record->getDefaultLanguage(), $language) === 0;
362  }
static _getInstanceByRecordId($a_record_id)
Get instance by record id.
+ 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

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

◆ TYPE_DATE

◆ TYPE_DATETIME

const ilAdvancedMDFieldDefinition::TYPE_DATETIME = 4

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

◆ TYPE_EXTERNAL_LINK

const ilAdvancedMDFieldDefinition::TYPE_EXTERNAL_LINK = 9

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

◆ TYPE_FLOAT

const ilAdvancedMDFieldDefinition::TYPE_FLOAT = 6

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

◆ TYPE_INTEGER

const ilAdvancedMDFieldDefinition::TYPE_INTEGER = 5

◆ TYPE_INTERNAL_LINK

const ilAdvancedMDFieldDefinition::TYPE_INTERNAL_LINK = 10

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

◆ TYPE_LOCATION

const ilAdvancedMDFieldDefinition::TYPE_LOCATION = 7

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

◆ 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: