ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
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)
 Constructor. More...
 
 getType ()
 Get type. More...
 
 getTypeTitle ()
 Get type title (lang id) More...
 
 getADTDefinition ()
 Get ADT definition instance. More...
 
 getADT ()
 Get ADT instance. More...
 
 getFieldId ()
 Get field_id. More...
 
 setRecordId ($a_id)
 Set record id. More...
 
 getRecordId ()
 Get record id. More...
 
 setImportId ($a_id_string)
 Set import id. More...
 
 getImportId ()
 Get import id. More...
 
 setPosition ($a_pos)
 Set position. More...
 
 getPosition ()
 Get position. More...
 
 setTitle ($a_title)
 Get title. More...
 
 getTitle ()
 Get title. More...
 
 setDescription ($a_desc)
 Set description. More...
 
 getDescription ()
 Get description. More...
 
 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 ()
 Parse properties for table gui. More...
 
 addToFieldDefinitionForm (ilPropertyFormGUI $a_form, ilAdvancedMDPermissionHelper $a_permissions)
 Add input elements to definition form. More...
 
 importCustomDefinitionFormPostValues (ilPropertyFormGUI $a_form)
 Import custom post values from definition form. More...
 
 importDefinitionFormPostValues (ilPropertyFormGUI $a_form, ilAdvancedMDPermissionHelper $a_permissions)
 Import post values from definition form. More...
 
 importDefinitionFormPostValuesNeedsConfirmation ()
 
 prepareCustomDefinitionFormConfirmation (ilPropertyFormGUI $a_form)
 
 prepareDefinitionFormConfirmation (ilPropertyFormGUI $a_form)
 
 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)
 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)
 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)
 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
 

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)

Constructor.

Parameters
init$a_field_id
Returns
self

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

References init(), and read().

46  {
47  $this->init();
48  $this->read($a_field_id);
49  }
read($a_field_id)
Read field definition.
+ 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 1202 of file class.ilAdvancedMDFieldDefinition.php.

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

1203  {
1204  $class = get_class($this);
1205  $obj = new $class();
1206  $obj->setRecordId($a_new_record_id);
1207  $obj->setTitle($this->getTitle());
1208  $obj->setDescription($this->getDescription());
1209  $obj->setRequired($this->isRequired());
1210  $obj->setPosition($this->getPosition());
1211  $obj->setSearchable($this->isSearchable());
1212  $obj->importFieldDefinition((array) $this->getFieldDefinition());
1213  $obj->save(true);
1214 
1215  return $obj;
1216  }
getFieldDefinition()
Get (type-specific) field definition.
+ Here is the call graph for this function:

◆ addCustomFieldToDefinitionForm()

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

Add custom input elements to definition form.

Parameters
ilPropertyFormGUI$a_form
bool$a_disabled

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

Referenced by addToFieldDefinitionForm().

634  {
635  // type-specific
636  }
+ 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 992 of file class.ilAdvancedMDFieldDefinition.php.

Referenced by toXML().

993  {
994  // type-specific properties
995  }
+ Here is the caller graph for this function:

◆ addToFieldDefinitionForm()

ilAdvancedMDFieldDefinition::addToFieldDefinitionForm ( ilPropertyFormGUI  $a_form,
ilAdvancedMDPermissionHelper  $a_permissions 
)

Add input elements to definition form.

Parameters
ilPropertyFormGUI$a_form
ilAdvancedMDPermissionHelper$a_form

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

References $DIC, $lng, $title, ilAdvancedMDPermissionHelper\ACTION_FIELD_EDIT_PROPERTY, addCustomFieldToDefinitionForm(), ilPropertyFormGUI\addItem(), ilAdvancedMDPermissionHelper\CONTEXT_FIELD, getDescription(), getFieldId(), 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().

645  {
646  global $DIC;
647 
648  $lng = $DIC['lng'];
649 
650  $perm = $a_permissions->hasPermissions(
652  $this->getFieldId(),
653  array(
662  )
663  );
664 
665  // title
666  $title = new ilTextInputGUI($lng->txt('title'), 'title');
667  $title->setValue($this->getTitle());
668  $title->setSize(20);
669  $title->setMaxLength(70);
670  $title->setRequired(true);
671  $a_form->addItem($title);
672 
674  $title->setDisabled(true);
675  }
676 
677  // desc
678  $desc = new ilTextAreaInputGUI($lng->txt('description'), 'description');
679  $desc->setValue($this->getDescription());
680  $desc->setRows(3);
681  $desc->setCols(50);
682  $a_form->addItem($desc);
683 
685  $desc->setDisabled(true);
686  }
687 
688  // searchable
689  $check = new ilCheckboxInputGUI($lng->txt('md_adv_searchable'), 'searchable');
690  $check->setChecked($this->isSearchable());
691  $check->setValue(1);
692  $a_form->addItem($check);
693 
695  !$this->isSearchSupported()) {
696  $check->setDisabled(true);
697  }
698 
699  /* required
700  $check = new ilCheckboxInputGUI($lng->txt('md_adv_required'), 'required');
701  $check->setChecked($this->isRequired());
702  $check->setValue(1);
703  $a_form->addItem($check);
704  */
705 
707  $a_form,
709  );
710  }
hasPermissions($a_context_type, $a_context_id, array $a_action_ids)
Check permissions.
addCustomFieldToDefinitionForm(ilPropertyFormGUI $a_form, $a_disabled=false)
Add custom input elements to definition form.
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
This class represents a text area property in a property form.
$DIC
Definition: xapitoken.php:46
isSearchSupported()
Is search supported at all.
+ 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 940 of file class.ilAdvancedMDFieldDefinition.php.

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

941  {
942  global $DIC;
943 
944  $ilDB = $DIC['ilDB'];
945 
946  if (!$this->getFieldId()) {
947  return;
948  }
949 
950  // delete all values
951  include_once("Services/AdvancedMetaData/classes/class.ilAdvancedMDValues.php");
953 
954  $query = "DELETE FROM adv_mdf_definition" .
955  " WHERE field_id = " . $ilDB->quote($this->getFieldId(), "integer");
956  $ilDB->manipulate($query);
957  }
static _deleteByFieldId($a_field_id, ilADT $a_adt)
Delete values by field_id.
$query
global $ilDB
$DIC
Definition: xapitoken.php:46
+ 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 86 of file class.ilAdvancedMDFieldDefinition.php.

References $DIC, and $ilDB.

Referenced by ilContainerFilterFieldData\getFilterSetForRefId().

87  {
88  global $DIC;
89 
90  $ilDB = $DIC['ilDB'];
91 
92  $set = $ilDB->query("SELECT field_type" .
93  " FROM adv_mdf_definition" .
94  " WHERE field_id = " . $ilDB->quote($a_field_id, "integer"));
95  if ($ilDB->fetchAssoc($set)) {
96  return true;
97  }
98  return false;
99  }
global $ilDB
$DIC
Definition: xapitoken.php:46
+ 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 810 of file class.ilAdvancedMDFieldDefinition.php.

Referenced by save(), and toXML().

811  {
812  return 'il_' . IL_INST_ID . '_adv_md_field_' . $a_field_id;
813  }
+ Here is the caller graph for this function:

◆ getADT()

ilAdvancedMDFieldDefinition::getADT ( )

Get ADT instance.

Returns
ilADT

Definition at line 375 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(), ilAdvancedMDFieldDefinitionGroupBased\importValueFromXML(), ilAdvancedMDFieldDefinitionSelectMulti\importValueFromXML(), ilAdvancedMDFieldDefinitionText\importValueFromXML(), ilAdvancedMDFieldDefinitionInteger\importValueFromXML(), ilAdvancedMDFieldDefinitionSelect\importValueFromXML(), ilAdvancedMDFieldDefinitionInternalLink\searchObjects(), ilAdvancedMDFieldDefinitionText\searchObjects(), searchObjects(), and searchSubObjects().

376  {
377  if (!$this->adt instanceof ilADT) {
378  $this->adt = ilADTFactory::getInstance()->getInstanceByDefinition($this->getADTDefinition());
379  }
380  return $this->adt;
381  }
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 362 of file class.ilAdvancedMDFieldDefinition.php.

References $adt_def, and initADTDefinition().

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

363  {
364  if (!$this->adt_def instanceof ilADTDefinition) {
365  $this->adt_def = $this->initADTDefinition();
366  }
367  return $this->adt_def;
368  }
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 236 of file class.ilAdvancedMDFieldDefinition.php.

References $factory, and ilADTFactory\getInstance().

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

237  {
239  $group_def = $factory->getDefinitionInstanceByType("Group");
240  foreach ($a_defs as $def) {
241  $group_def->addElement($def->getFieldId(), $def->getADTDefinition());
242  }
243  $group = $factory->getInstanceByDefinition($group_def);
244 
245  // bind adt instances to definition
246  foreach ($group->getElements() as $element_id => $element) {
247  $a_defs[$element_id]->setADT($element);
248  }
249 
250  return $group;
251  }
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 1231 of file class.ilAdvancedMDFieldDefinition.php.

1231  : ?string
1232  {
1233  return null;
1234  }

◆ getDBProperties()

ilAdvancedMDFieldDefinition::getDBProperties ( )
protected

Get all definition properties for DB.

Returns
array

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

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

Referenced by save(), and update().

821  {
822  $fields = array(
823  "field_type" => array("integer", $this->getType()),
824  "record_id" => array("integer", $this->getRecordId()),
825  "import_id" => array("text", $this->getImportId()),
826  "title" => array("text", $this->getTitle()),
827  "description" => array("text", $this->getDescription()),
828  "position" => array("integer", $this->getPosition()),
829  "searchable" => array("integer", $this->isSearchable()),
830  "required" => array("integer", $this->isRequired())
831  );
832 
833  $def = $this->getFieldDefinition();
834  if (is_array($def)) {
835  $fields["field_values"] = array("text", serialize($def));
836  }
837 
838  return $fields;
839  }
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 524 of file class.ilAdvancedMDFieldDefinition.php.

References $description.

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

+ Here is the caller graph for this function:

◆ getFieldDefinition()

ilAdvancedMDFieldDefinition::getFieldDefinition ( )
protected

Get (type-specific) field definition.

Returns
array

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

Referenced by _clone(), and getDBProperties().

613  {
614  // type-specific properties
615  }
+ Here is the caller graph for this function:

◆ getFieldDefinitionForTableGUI()

ilAdvancedMDFieldDefinition::getFieldDefinitionForTableGUI ( )

Parse properties for table gui.

Returns
array

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

623  {
624  // type-specific properties
625  }

◆ getFieldId()

◆ getImportId()

ilAdvancedMDFieldDefinition::getImportId ( )

Get import id.

Returns
string

Definition at line 458 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 
)
static

Get definition instance by type.

Parameters
int$a_field_id
int$a_type
Returns
self

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

References $a_type, $DIC, and $ilDB.

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

59  {
60  global $DIC;
61 
62  $ilDB = $DIC['ilDB'];
63 
64  if (!$a_type) {
65  $set = $ilDB->query("SELECT field_type" .
66  " FROM adv_mdf_definition" .
67  " WHERE field_id = " . $ilDB->quote($a_field_id, "integer"));
68  $a_type = $ilDB->fetchAssoc($set);
69  $a_type = $a_type["field_type"];
70  }
71 
72  if (self::isValidType($a_type)) {
73  $class = "ilAdvancedMDFieldDefinition" . self::getTypeString($a_type);
74  require_once "Services/AdvancedMetaData/classes/Types/class." . $class . ".php";
75  return new $class($a_field_id);
76  }
77 
78  throw new ilException("unknown type " . $a_type);
79  }
$a_type
Definition: workflow.php:92
global $ilDB
$DIC
Definition: xapitoken.php:46
+ 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 191 of file class.ilAdvancedMDFieldDefinition.php.

References $DIC, $ilDB, and $query.

Referenced by ilAdvancedMDParser\initValue().

192  {
193  global $DIC;
194 
195  $ilDB = $DIC['ilDB'];
196 
197  $query = "SELECT field_id, field_type FROM adv_mdf_definition" .
198  " WHERE import_id = " . $ilDB->quote($a_import_id, 'text');
199  $set = $ilDB->query($query);
200  if ($ilDB->numRows($set)) {
201  $row = $ilDB->fetchAssoc($set);
202  return self::getInstance($row["field_id"], $row["field_type"]);
203  }
204  }
$query
global $ilDB
$DIC
Definition: xapitoken.php:46
+ 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 107 of file class.ilAdvancedMDFieldDefinition.php.

References $a_type.

Referenced by ilAdvancedMDRecordParser\initFieldObject().

108  {
109  // see self::getTypeString()
110  $map = array(
111  self::TYPE_TEXT => "Text",
112  self::TYPE_SELECT => "Select",
113  self::TYPE_DATE => "Date",
114  self::TYPE_DATETIME => "DateTime",
115  self::TYPE_FLOAT => "Float",
116  self::TYPE_LOCATION => "Location",
117  self::TYPE_INTEGER => "Integer",
118  self::TYPE_SELECT_MULTI => "SelectMulti" ,
119  self::TYPE_EXTERNAL_LINK => 'ExternalLink',
120  self::TYPE_INTERNAL_LINK => 'InternalLink',
121  self::TYPE_ADDRESS => "Address"
122  );
123  $map = array_flip($map);
124  if (array_key_exists($a_type, $map)) {
125  return self::getInstance(null, $map[$a_type]);
126  }
127  }
$a_type
Definition: workflow.php:92
+ Here is the caller graph for this function:

◆ getInstancesByObjType()

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

Definition at line 160 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().

161  {
162  global $DIC;
163 
164  $ilDB = $DIC['ilDB'];
165 
166  $defs = array();
167 
168  $query = "SELECT amf.* FROM adv_md_record_objs aro" .
169  " JOIN adv_md_record amr ON aro.record_id = amr.record_id" .
170  " JOIN adv_mdf_definition amf ON aro.record_id = amf.record_id" .
171  " WHERE obj_type = " . $ilDB->quote($a_obj_type, 'text');
172  if ((bool) $a_active_only) {
173  $query .= " AND active = " . $ilDB->quote(1, "integer");
174  }
175  $query .= " ORDER BY aro.record_id,position";
176  $res = $ilDB->query($query);
177  while ($row = $ilDB->fetchAssoc($res)) {
178  $field = self::getInstance(null, $row["field_type"]);
179  $field->import($row);
180  $defs[$row["field_id"]] = $field;
181  }
182  return $defs;
183  }
foreach($_POST as $key=> $value) $res
$query
global $ilDB
$DIC
Definition: xapitoken.php:46
+ Here is the caller graph for this function:

◆ getInstancesByRecordId()

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

Get definitions by record id.

Parameters
int$a_record_id
bool$a_only_searchable
Returns
array self

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

References $DIC, $ilDB, 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(), ilAdvancedMDRecord\toXML(), and ilAdvancedMDSettingsGUI\updateFields().

137  {
138  global $DIC;
139 
140  $ilDB = $DIC['ilDB'];
141 
142  $defs = array();
143 
144  $query = "SELECT * FROM adv_mdf_definition" .
145  " WHERE record_id = " . $ilDB->quote($a_record_id, "integer");
146  if ($a_only_searchable) {
147  $query .= " AND searchable = " . $ilDB->quote(1, "integer");
148  }
149  $query .= " ORDER BY position";
150  $set = $ilDB->query($query);
151  while ($row = $ilDB->fetchAssoc($set)) {
152  $field = self::getInstance(null, $row["field_type"]);
153  $field->import($row);
154  $defs[$row["field_id"]] = $field;
155  }
156 
157  return $defs;
158  }
$query
global $ilDB
$DIC
Definition: xapitoken.php:46
+ Here is the caller graph for this function:

◆ getLastPosition()

ilAdvancedMDFieldDefinition::getLastPosition ( )
protected

Get last position of record.

Returns
int

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

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

Referenced by save().

787  {
788  global $DIC;
789 
790  $ilDB = $DIC['ilDB'];
791 
792  $sql = "SELECT max(position) pos" .
793  " FROM adv_mdf_definition" .
794  " WHERE record_id = " . $ilDB->quote($this->getRecordId(), "integer");
795  $set = $ilDB->query($sql);
796  if ($ilDB->numRows($set)) {
797  $pos = $ilDB->fetchAssoc($set);
798  return (int) $pos["pos"];
799  }
800 
801  return 0;
802  }
global $ilDB
$DIC
Definition: xapitoken.php:46
+ 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 1181 of file class.ilAdvancedMDFieldDefinition.php.

1182  {
1183  return $a_value;
1184  }

◆ getPosition()

ilAdvancedMDFieldDefinition::getPosition ( )

Get position.

Returns
int

Definition at line 478 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 435 of file class.ilAdvancedMDFieldDefinition.php.

References $record_id.

Referenced by getDBProperties(), and getLastPosition().

+ 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 211 of file class.ilAdvancedMDFieldDefinition.php.

References $DIC, $ilDB, and $query.

Referenced by ilAdvancedSearchGUI\setSubTabs().

212  {
213  global $DIC;
214 
215  $ilDB = $DIC['ilDB'];
216 
217  $field_ids = array();
218 
219  $query = "SELECT field_id FROM adv_md_record amr" .
220  " JOIN adv_mdf_definition amfd ON (amr.record_id = amfd.record_id)" .
221  " WHERE active = " . $ilDB->quote(1, "integer") .
222  " AND searchable = " . $ilDB->quote(1, "integer");
223  $set = $ilDB->query($query);
224  while ($row = $ilDB->fetchAssoc($set)) {
225  $field_ids[] = $row["field_id"];
226  }
227  return $field_ids;
228  }
$query
global $ilDB
$DIC
Definition: xapitoken.php:46
+ 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 1061 of file class.ilAdvancedMDFieldDefinition.php.

1062  {
1063  return '';
1064  }

◆ getSearchValueSerialized()

ilAdvancedMDFieldDefinition::getSearchValueSerialized ( ilADTSearchBridge  $a_adt_search)

Get value for search persistence.

Parameters
ilADTSearchBridge$a_adt_search
Returns
string

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

References ilADTSearchBridge\getSerializedValue().

1073  {
1074  return $a_adt_search->getSerializedValue();
1075  }
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 501 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 313 of file class.ilAdvancedMDFieldDefinition.php.

References $a_type.

314  {
315  if (self::isValidType($a_type)) {
316  $map = array(
317  self::TYPE_TEXT => "Text",
318  self::TYPE_SELECT => "Select",
319  self::TYPE_DATE => "Date",
320  self::TYPE_DATETIME => "DateTime",
321  self::TYPE_FLOAT => "Float",
322  self::TYPE_LOCATION => "Location",
323  self::TYPE_INTEGER => "Integer",
324  self::TYPE_SELECT_MULTI => "SelectMulti" ,
325  self::TYPE_EXTERNAL_LINK => 'ExternalLink',
326  self::TYPE_INTERNAL_LINK => 'InternalLink',
327  self::TYPE_ADDRESS => "Address"
328  );
329  return $map[$a_type];
330  }
331  }
$a_type
Definition: workflow.php:92

◆ getTypeTitle()

ilAdvancedMDFieldDefinition::getTypeTitle ( )

Get type title (lang id)

Returns
string

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

References getType(), and initADTDefinition().

Referenced by ilAdvancedMDSettingsGUI\initFieldForm().

339  {
340  // :TODO: reuse udf stuff here ?!
341  return "udf_type_" . strtolower(self::getTypeString($this->getType()));
342  }
+ 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 272 of file class.ilAdvancedMDFieldDefinition.php.

Referenced by ilAdvancedMDSettingsGUI\editFields().

273  {
274  return array(
275  self::TYPE_TEXT,
276  self::TYPE_DATE,
277  self::TYPE_DATETIME,
278  self::TYPE_SELECT,
279  self::TYPE_INTEGER,
280  self::TYPE_FLOAT,
281  self::TYPE_LOCATION,
282  self::TYPE_SELECT_MULTI,
283  self::TYPE_EXTERNAL_LINK,
284  self::TYPE_INTERNAL_LINK,
285  self::TYPE_ADDRESS
286  );
287  }
+ 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 1221 of file class.ilAdvancedMDFieldDefinition.php.

1222  {
1223  return false;
1224  }

◆ import()

ilAdvancedMDFieldDefinition::import ( array  $a_data)
protected

Import from DB.

Parameters
array$a_data

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

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

847  {
848  $this->setFieldId($a_data["field_id"]);
849 
850  $this->setRecordId($a_data["record_id"]);
851  $this->setImportId($a_data["import_id"]);
852  $this->setTitle($a_data["title"]);
853  $this->setDescription($a_data["description"]);
854  $this->setPosition($a_data["position"]);
855  $this->setSearchable($a_data["searchable"]);
856  $this->setRequired($a_data["required"]);
857  if ($a_data["field_values"]) {
858  $this->importFieldDefinition(unserialize($a_data["field_values"]));
859  }
860  }
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)

Import custom post values from definition form.

Parameters
ilPropertyFormGUI$a_form

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

Referenced by importDefinitionFormPostValues().

718  {
719  // type-specific
720  }
+ Here is the caller graph for this function:

◆ importDefinitionFormPostValues()

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

Import post values from definition form.

Parameters
ilPropertyFormGUI$a_form
ilAdvancedMDPermissionHelper$a_permissions

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

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

729  {
730  if (!$a_form->getItemByPostVar("title")->getDisabled()) {
731  $this->setTitle($a_form->getInput("title"));
732  }
733  if (!$a_form->getItemByPostVar("description")->getDisabled()) {
734  $this->setDescription($a_form->getInput("description"));
735  }
736  if (!$a_form->getItemByPostVar("searchable")->getDisabled()) {
737  $this->setSearchable($a_form->getInput("searchable"));
738  }
739 
740  if ($a_permissions->hasPermission(
742  $this->getFieldId(),
745  )) {
746  $this->importCustomDefinitionFormPostValues($a_form);
747  }
748  }
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)
Import custom post values from definition form.
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 750 of file class.ilAdvancedMDFieldDefinition.php.

751  {
752  return false;
753  }

◆ importFieldDefinition()

ilAdvancedMDFieldDefinition::importFieldDefinition ( array  $a_def)
protected

Import (type-specific) field definition from DB.

Parameters
array$a_def

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

Referenced by import().

604  {
605  }
+ 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 1030 of file class.ilAdvancedMDFieldDefinition.php.

1031  {
1032  return false;
1033  }

◆ 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 1003 of file class.ilAdvancedMDFieldDefinition.php.

References getValueForXML(), and importValueFromXML().

1004  {
1005  }
+ Here is the call graph for this function:

◆ init()

ilAdvancedMDFieldDefinition::init ( )
protected

Init properties.

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

References setRequired(), and setSearchable().

Referenced by __construct().

257  {
258  $this->setRequired(false);
259  $this->setSearchable(false);
260  }
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 544 of file class.ilAdvancedMDFieldDefinition.php.

545  {
546  return true;
547  }

◆ isRequired()

ilAdvancedMDFieldDefinition::isRequired ( )

Is required field.

Returns
bool

Definition at line 588 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 568 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 534 of file class.ilAdvancedMDFieldDefinition.php.

Referenced by addToFieldDefinitionForm(), and setSearchable().

535  {
536  return true;
537  }
+ 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 295 of file class.ilAdvancedMDFieldDefinition.php.

References $a_type, and getType().

296  {
297  return in_array((int) $a_type, self::getValidTypes());
298  }
$a_type
Definition: workflow.php:92
+ 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 1095 of file class.ilAdvancedMDFieldDefinition.php.

References $DIC, $ilDB, and $res.

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

1096  {
1097  global $DIC;
1098 
1099  $ilDB = $DIC['ilDB'];
1100 
1101  $res = array();
1102 
1103  $obj_ids = array();
1104  foreach ($a_records as $record) {
1105  if ($record["sub_type"] == "-") {
1106  $obj_ids[] = $record["obj_id"];
1107  }
1108  }
1109 
1110  $sql = "SELECT obj_id,type" .
1111  " FROM object_data" .
1112  " WHERE " . $ilDB->in("obj_id", $obj_ids, "", "integer") .
1113  " AND " . $ilDB->in("type", $a_object_types, "", "text");
1114  $set = $ilDB->query($sql);
1115  while ($row = $ilDB->fetchAssoc($set)) {
1116  $res[] = $row;
1117  }
1118 
1119  return $res;
1120  }
foreach($_POST as $key=> $value) $res
global $ilDB
$DIC
Definition: xapitoken.php:46
+ Here is the caller graph for this function:

◆ prepareCustomDefinitionFormConfirmation()

ilAdvancedMDFieldDefinition::prepareCustomDefinitionFormConfirmation ( ilPropertyFormGUI  $a_form)

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

Referenced by prepareDefinitionFormConfirmation().

756  {
757  // type-specific
758  }
+ Here is the caller graph for this function:

◆ prepareDefinitionFormConfirmation()

ilAdvancedMDFieldDefinition::prepareDefinitionFormConfirmation ( ilPropertyFormGUI  $a_form)

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

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

761  {
762  $a_form->getItemByPostVar("title")->setDisabled(true);
763  $a_form->getItemByPostVar("description")->setDisabled(true);
764  $a_form->getItemByPostVar("searchable")->setDisabled(true);
765 
766  // checkboxes have no hidden on disabled
767  if ($a_form->getInput("searchable")) {
768  $hidden = new ilHiddenInputGUI("searchable");
769  $hidden->setValue(1);
770  $a_form->addItem($hidden);
771  }
772 
774  }
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 1045 of file class.ilAdvancedMDFieldDefinition.php.

1046  {
1047  // type-specific
1048  }

◆ prepareElementForSearch()

ilAdvancedMDFieldDefinition::prepareElementForSearch ( ilADTSearchBridge  $a_bridge)

Prepare search form elements.

Parameters
ilADTSearchBridge$a_bridge

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

1192  {
1193  // type-specific
1194  }

◆ read()

ilAdvancedMDFieldDefinition::read (   $a_field_id)
protected

Read field definition.

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

References $DIC, and $ilDB.

Referenced by __construct().

866  {
867  global $DIC;
868 
869  $ilDB = $DIC['ilDB'];
870 
871  if (!(int) $a_field_id) {
872  return;
873  }
874 
875  $sql = "SELECT * FROM adv_mdf_definition" .
876  " WHERE field_id = " . $ilDB->quote($a_field_id, "integer");
877  $set = $ilDB->query($sql);
878  if ($ilDB->numRows($set)) {
879  $row = $ilDB->fetchAssoc($set);
880  $this->import($row);
881  }
882  }
global $ilDB
$DIC
Definition: xapitoken.php:46
+ Here is the caller graph for this function:

◆ save()

ilAdvancedMDFieldDefinition::save (   $a_keep_pos = false)

Create new field entry.

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

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

Referenced by update().

888  {
889  global $DIC;
890 
891  $ilDB = $DIC['ilDB'];
892 
893  if ($this->getFieldId()) {
894  return $this->update();
895  }
896 
897  $next_id = $ilDB->nextId("adv_mdf_definition");
898 
899  // append
900  if (!$a_keep_pos) {
901  $this->setPosition($this->getLastPosition() + 1);
902  }
903 
904  // needs unique import id
905  if (!$this->getImportId()) {
906  $this->setImportId($this->generateImportId($next_id));
907  }
908 
909  $fields = $this->getDBProperties();
910  $fields["field_id"] = array("integer", $next_id);
911 
912  $ilDB->insert("adv_mdf_definition", $fields);
913 
914  $this->setFieldId($next_id);
915  }
getDBProperties()
Get all definition properties for DB.
generateImportId($a_field_id)
Generate unique record id.
getLastPosition()
Get last position of record.
global $ilDB
$DIC
Definition: xapitoken.php:46
+ 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 1160 of file class.ilAdvancedMDFieldDefinition.php.

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

1161  {
1162  // search type only supported/needed for text
1163 
1164  include_once('Services/ADT/classes/ActiveRecord/class.ilADTActiveRecordByType.php');
1165  $condition = $a_adt_search->getSQLCondition(ilADTActiveRecordByType::SINGLE_COLUMN_NAME);
1166  if ($condition) {
1167  $objects = ilADTActiveRecordByType::find("adv_md_values", $this->getADT()->getType(), $this->getFieldId(), $condition, $a_locate);
1168  if (sizeof($objects)) {
1169  return $this->parseSearchObjects($objects, $a_object_types);
1170  }
1171  return array();
1172  }
1173  }
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 1122 of file class.ilAdvancedMDFieldDefinition.php.

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

1123  {
1124  include_once('Services/ADT/classes/ActiveRecord/class.ilADTActiveRecordByType.php');
1126 
1127  // :TODO:
1128  if ($a_adt_search instanceof ilADTLocationSearchBridgeSingle) {
1129  $element_id = "loc";
1130  }
1131 
1132  $condition = $a_adt_search->getSQLCondition($element_id);
1133  if ($condition) {
1134  $objects = ilADTActiveRecordByType::find("adv_md_values", $this->getADT()->getType(), $this->getFieldId(), $condition);
1135  if (sizeof($objects)) {
1136  $res = array();
1137  foreach ($objects as $item) {
1138  if ($item["obj_id"] == $a_obj_id &&
1139  $item["sub_type"] == $sub_obj_type) {
1140  $res[] = $item["sub_id"];
1141  }
1142  }
1143  return $res;
1144  }
1145  }
1146 
1147  return array();
1148  }
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 389 of file class.ilAdvancedMDFieldDefinition.php.

390  {
391  if (!$this->adt instanceof ilADT) {
392  $this->adt = $a_adt;
393  }
394  }
ADT base class.
Definition: class.ilADT.php:11

◆ setDescription()

ilAdvancedMDFieldDefinition::setDescription (   $a_desc)

Set description.

Parameters
string$a_desc

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

Referenced by import(), and importDefinitionFormPostValues().

512  {
513  if ($a_desc !== null) {
514  $a_desc = trim($a_desc);
515  }
516  $this->description = $a_desc;
517  }
+ Here is the caller graph for this function:

◆ setFieldId()

ilAdvancedMDFieldDefinition::setFieldId (   $a_id)
protected

Set field_id.

Parameters
int$a_id

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

Referenced by import(), and save().

406  {
407  $this->field_id = (int) $a_id;
408  }
+ 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 445 of file class.ilAdvancedMDFieldDefinition.php.

Referenced by import(), and save().

446  {
447  if ($a_id_string !== null) {
448  $a_id_string = trim($a_id_string);
449  }
450  $this->import_id = $a_id_string;
451  }
+ Here is the caller graph for this function:

◆ setPosition()

ilAdvancedMDFieldDefinition::setPosition (   $a_pos)

Set position.

Parameters
int$a_pos

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

Referenced by import(), and save().

469  {
470  $this->position = (int) $a_pos;
471  }
+ Here is the caller graph for this function:

◆ setRecordId()

ilAdvancedMDFieldDefinition::setRecordId (   $a_id)

Set record id.

Parameters
int$a_id

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

Referenced by import().

426  {
427  $this->record_id = (int) $a_id;
428  }
+ Here is the caller graph for this function:

◆ setRequired()

ilAdvancedMDFieldDefinition::setRequired (   $a_status)

Toggle required.

Parameters
bool$a_status

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

Referenced by import(), and init().

579  {
580  $this->required = (bool) $a_status;
581  }
+ Here is the caller graph for this function:

◆ setSearchable()

ilAdvancedMDFieldDefinition::setSearchable (   $a_status)

Toggle searchable.

Parameters
boolsearchable

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

References isSearchSupported().

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

555  {
556  // see above
557  if (!$this->isSearchSupported()) {
558  $a_status = false;
559  }
560  $this->searchable = (bool) $a_status;
561  }
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 1083 of file class.ilAdvancedMDFieldDefinition.php.

References ilADTSearchBridge\setSerializedValue().

1084  {
1085  return $a_adt_search->setSerializedValue($a_value);
1086  }
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 488 of file class.ilAdvancedMDFieldDefinition.php.

Referenced by import(), and importDefinitionFormPostValues().

489  {
490  if ($a_title !== null) {
491  $a_title = trim($a_title);
492  }
493  $this->title = $a_title;
494  }
+ 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 971 of file class.ilAdvancedMDFieldDefinition.php.

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

972  {
973  $a_writer->xmlStartTag('Field', array(
974  'id' => $this->generateImportId($this->getFieldId()),
975  'searchable' => ($this->isSearchable() ? 'Yes' : 'No'),
976  'fieldType' => self::getTypeString($this->getType())));
977 
978  $a_writer->xmlElement('FieldTitle', null, $this->getTitle());
979  $a_writer->xmlElement('FieldDescription', null, $this->getDescription());
980  $a_writer->xmlElement('FieldPosition', null, $this->getPosition());
981 
982  $this->addPropertiesToXML($a_writer);
983 
984  $a_writer->xmlEndTag('Field');
985  }
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 920 of file class.ilAdvancedMDFieldDefinition.php.

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

Referenced by save().

921  {
922  global $DIC;
923 
924  $ilDB = $DIC['ilDB'];
925 
926  if (!$this->getFieldId()) {
927  return $this->save();
928  }
929 
930  $ilDB->update(
931  "adv_mdf_definition",
932  $this->getDBProperties(),
933  array("field_id" => array("integer", $this->getFieldId()))
934  );
935  }
save($a_keep_pos=false)
Create new field entry.
getDBProperties()
Get all definition properties for DB.
global $ilDB
$DIC
Definition: xapitoken.php:46
+ 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().

◆ $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 35 of file class.ilAdvancedMDFieldDefinition.php.

◆ TYPE_DATE

◆ TYPE_DATETIME

const ilAdvancedMDFieldDefinition::TYPE_DATETIME = 4

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

◆ TYPE_EXTERNAL_LINK

const ilAdvancedMDFieldDefinition::TYPE_EXTERNAL_LINK = 9

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

◆ TYPE_FLOAT

const ilAdvancedMDFieldDefinition::TYPE_FLOAT = 6

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

◆ TYPE_INTEGER

const ilAdvancedMDFieldDefinition::TYPE_INTEGER = 5

◆ TYPE_INTERNAL_LINK

const ilAdvancedMDFieldDefinition::TYPE_INTERNAL_LINK = 10

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

◆ TYPE_LOCATION

const ilAdvancedMDFieldDefinition::TYPE_LOCATION = 7

Definition at line 33 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: