ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
ilAdvancedMDRecord Class Reference
+ Collaboration diagram for ilAdvancedMDRecord:

Public Member Functions

 __construct ($a_record_id=0)
 Singleton constructor To create an array of new records (without saving them) call the constructor directly. More...
 
 delete ()
 Delete. More...
 
 enabledScope ()
 Is scope enabled. More...
 
 enableScope ($a_stat)
 Enable scope restrictions. More...
 
 setScopes (array $a_scopes)
 Set scopes. More...
 
 getScopes ()
 Get scopes. More...
 
 getScopeRefIds ()
 Get scope gef_ids. More...
 
 save ()
 save More...
 
 update ()
 update More...
 
 validate ()
 Validate settings. More...
 
 setGlobalPosition (int $position)
 Set global position. More...
 
 getGlobalPosition ()
 
 getRecordId ()
 Get record id. More...
 
 setActive ($a_active)
 Set active. More...
 
 isActive ()
 Check if record is active. More...
 
 setTitle ($a_title)
 Set title. More...
 
 getTitle ()
 get title More...
 
 setDescription ($a_description)
 set description More...
 
 getDescription ()
 get description More...
 
 setImportId ($a_id_string)
 set import id More...
 
 getImportId ()
 get import id More...
 
 setAssignedObjectTypes ($a_obj_types)
 Set assigned object types. More...
 
 appendAssignedObjectType ($a_obj_type, $a_sub_type, $a_optional=false)
 append assigned object types More...
 
 getAssignedObjectTypes ()
 Get assigned object types. More...
 
 isAssignedObjectType ($a_obj_type, $a_sub_type)
 Is assigned object type? More...
 
 setParentObject ($a_obj_id)
 
 getParentObject ()
 
 toXML (ilXmlWriter $writer)
 To Xml. More...
 
 __destruct ()
 Destructor. More...
 
 _clone (array &$a_fields_map, $a_parent_obj_id=null)
 Clone record. More...
 

Static Public Member Functions

static _getInstanceByRecordId ($a_record_id)
 Get instance by record id. More...
 
static _getActiveSearchableRecords ()
 Get active searchable records. More...
 
static _lookupTitle ($a_record_id)
 Lookup title. More...
 
static _lookupRecordIdByImportId ($a_ilias_id)
 Lookup record Id by import id. More...
 
static _getAssignableObjectTypes ($a_include_text=false)
 Get assignable object type. More...
 
static _getActivatedObjTypes ()
 get activated obj types More...
 
static _getRecords ()
 Get records. More...
 
static _getAllRecordsByObjectType ()
 Get records by obj_type Note: this returns only records with no sub types! @access public. More...
 
static _getActivatedRecordsByObjectType ($a_obj_type, $a_sub_type="", $a_only_optional=false)
 Get activated records by object type. More...
 
static _getSelectedRecordsByObject ($a_obj_type, $a_ref_id, $a_sub_type="")
 Get selected records by object. More...
 
static isFilteredByScope ($a_ref_id, array $scopes)
 Check if a given ref id is not filtered by scope restriction. More...
 
static _delete ($a_record_id)
 Delete record and all related data. More...
 
static saveObjRecSelection ($a_obj_id, $a_sub_type="", array $a_records=null, $a_delete_before=true)
 Save repository object record selection. More...
 
static getObjRecSelection ($a_obj_id, $a_sub_type="")
 Get repository object record selection. More...
 
static getSharedRecords ($a_obj1_id, $a_obj2_id, $a_sub_type="-")
 Get shared records. More...
 

Protected Member Functions

 generateImportId ()
 generate unique record id More...
 

Protected Attributes

 $record_id
 
 $global_position
 
 $import_id
 
 $active
 
 $title
 
 $description
 
 $obj_types = array()
 
 $db = null
 
 $parent_obj
 
 $scope_enabled = false
 
 $scopes = []
 

Private Member Functions

 read ()
 read record and assiged object types More...
 

Static Private Attributes

static $instances = array()
 

Detailed Description

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

Constructor & Destructor Documentation

◆ __construct()

ilAdvancedMDRecord::__construct (   $a_record_id = 0)

Singleton constructor To create an array of new records (without saving them) call the constructor directly.

Otherwise call getInstance...

@access public

Parameters
intrecord id

Definition at line 52 of file class.ilAdvancedMDRecord.php.

53 {
54 global $DIC;
55
56 $ilDB = $DIC['ilDB'];
57
58 $this->record_id = $a_record_id;
59 $this->db = $ilDB;
60
61 if ($this->getRecordId()) {
62 $this->read();
63 }
64 }
read()
read record and assiged object types
global $DIC
Definition: saml.php:7
global $ilDB

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

+ Here is the call graph for this function:

◆ __destruct()

ilAdvancedMDRecord::__destruct ( )

Destructor.

@access public

Definition at line 928 of file class.ilAdvancedMDRecord.php.

929 {
930 unset(self::$instances[$this->getRecordId()]);
931 }

References getRecordId().

+ Here is the call graph for this function:

Member Function Documentation

◆ _clone()

ilAdvancedMDRecord::_clone ( array &  $a_fields_map,
  $a_parent_obj_id = null 
)

Clone record.

Parameters
array&$a_fields_map
type$a_parent_obj_id
Returns
self

Definition at line 1007 of file class.ilAdvancedMDRecord.php.

1008 {
1009 $new_obj = new self();
1010 $new_obj->setActive($this->isActive());
1011 $new_obj->setTitle($this->getTitle());
1012 $new_obj->setDescription($this->getDescription());
1013 $new_obj->setParentObject($a_parent_obj_id
1014 ? $a_parent_obj_id
1015 : $this->getParentObject());
1016 $new_obj->setAssignedObjectTypes($this->getAssignedObjectTypes());
1017 $new_obj->save();
1018
1019 include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
1020 foreach (ilAdvancedMDFieldDefinition::getInstancesByRecordId($this->getRecordId()) as $definition) {
1021 $new_def = $definition->_clone($new_obj->getRecordId());
1022 $a_fields_map[$definition->getFieldId()] = $new_def->getFieldId();
1023 }
1024
1025 return $new_obj;
1026 }
static getInstancesByRecordId($a_record_id, $a_only_searchable=false)
Get definitions by record id.
isActive()
Check if record is active.
getAssignedObjectTypes()
Get assigned object types.

References getAssignedObjectTypes(), getDescription(), ilAdvancedMDFieldDefinition\getInstancesByRecordId(), getParentObject(), getRecordId(), getTitle(), and isActive().

+ Here is the call graph for this function:

◆ _delete()

static ilAdvancedMDRecord::_delete (   $a_record_id)
static

Delete record and all related data.

@access public

Parameters
intrecord id

Definition at line 438 of file class.ilAdvancedMDRecord.php.

439 {
440 global $DIC;
441
442 $ilDB = $DIC['ilDB'];
443
444 // Delete fields
445 foreach (ilAdvancedMDFieldDefinition::getInstancesByRecordId($a_record_id) as $field) {
446 $field->delete();
447 }
448
449 $query = "DELETE FROM adv_md_record " .
450 "WHERE record_id = " . $ilDB->quote($a_record_id, 'integer') . " ";
451 $res = $ilDB->manipulate($query);
452
453 $query = "DELETE FROM adv_md_record_objs " .
454 "WHERE record_id = " . $ilDB->quote($a_record_id, 'integer') . " ";
455 $res = $ilDB->manipulate($query);
456 }
$query
foreach($_POST as $key=> $value) $res

References $DIC, $ilDB, $query, $res, and ilAdvancedMDFieldDefinition\getInstancesByRecordId().

Referenced by delete().

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

◆ _getActivatedObjTypes()

static ilAdvancedMDRecord::_getActivatedObjTypes ( )
static

get activated obj types

@access public

Parameters
stringobj types

Definition at line 211 of file class.ilAdvancedMDRecord.php.

212 {
213 global $DIC;
214
215 $ilDB = $DIC['ilDB'];
216
217 $query = "SELECT DISTINCT(obj_type) FROM adv_md_record_objs amo " .
218 "JOIN adv_md_record amr ON amo.record_id = amr.record_id " .
219 "WHERE active = 1 ";
220 $res = $ilDB->query($query);
221 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
222 $obj_types[] = $row->obj_type;
223 }
224 return $obj_types ? $obj_types : array();
225 }
$row

References $DIC, $ilDB, $obj_types, $query, $res, $row, and ilDBConstants\FETCHMODE_OBJECT.

Referenced by ilAdvancedSearchGUI\__setSearchOptions(), ilAdvancedSearchGUI\initAdvancedMetaDataForm(), and ilAdvancedMDSettingsGUI\updateSubstitutions().

+ Here is the caller graph for this function:

◆ _getActivatedRecordsByObjectType()

static ilAdvancedMDRecord::_getActivatedRecordsByObjectType (   $a_obj_type,
  $a_sub_type = "",
  $a_only_optional = false 
)
static

Get activated records by object type.

@access public

Parameters
stringobj_type
Returns
ilAdvancedMDRecord[]

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

291 {
292 global $DIC;
293
294 $ilDB = $DIC['ilDB'];
295
296 $records = array();
297
298 if ($a_sub_type == "") {
299 $a_sub_type = "-";
300 }
301
302 $query = "SELECT amro.record_id record_id FROM adv_md_record_objs amro " .
303 "JOIN adv_md_record amr ON amr.record_id = amro.record_id " .
304 "WHERE active = 1 " .
305 "AND obj_type = " . $ilDB->quote($a_obj_type, 'text') . " " .
306 "AND sub_type = " . $ilDB->quote($a_sub_type, 'text');
307
308 if ($a_only_optional) {
309 $query .= " AND optional =" . $ilDB->quote(1, 'integer');
310 }
311
312 // #16428
313 $query .= "ORDER by parent_obj DESC, record_id";
314
315 $res = $ilDB->query($query);
316 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
318 }
319
320 return $records;
321 }
static _getInstanceByRecordId($a_record_id)
Get instance by record id.
$records
Definition: simple_test.php:22

References $DIC, $ilDB, $query, $records, $res, $row, _getInstanceByRecordId(), and ilDBConstants\FETCHMODE_OBJECT.

Referenced by ilSoapInstallationInfoXMLWriter\__buildClient(), ilGlossaryExporter\getActiveAdvMDRecords(), ilSessionExporter\getActiveAdvMDRecords(), ilWikiExporter\getActiveAdvMDRecords(), ilOrgUnitType\getAvailableAdvancedMDRecords(), ilStudyProgrammeType\getAvailableAdvancedMDRecords(), ilSoapAdministration\getNIC(), and ilAdvancedMDRecordGUI\parseRecordSelection().

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

◆ _getActiveSearchableRecords()

static ilAdvancedMDRecord::_getActiveSearchableRecords ( )
static

Get active searchable records.

@access public

Definition at line 90 of file class.ilAdvancedMDRecord.php.

91 {
92 global $DIC;
93
94 $ilDB = $DIC['ilDB'];
95
96 $query = "SELECT DISTINCT(amr.record_id) FROM adv_md_record amr " .
97 "JOIN adv_mdf_definition amfd ON amr.record_id = amfd.record_id " .
98 "WHERE searchable = 1 AND active = 1 ";
99
100 $res = $ilDB->query($query);
101 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
103 }
104 return $records ? $records : array();
105 }

References $DIC, $ilDB, $query, $records, $res, $row, _getInstanceByRecordId(), and ilDBConstants\FETCHMODE_OBJECT.

+ Here is the call graph for this function:

◆ _getAllRecordsByObjectType()

static ilAdvancedMDRecord::_getAllRecordsByObjectType ( )
static

Get records by obj_type Note: this returns only records with no sub types! @access public.

Parameters

Definition at line 258 of file class.ilAdvancedMDRecord.php.

259 {
260 global $DIC;
261
262 $ilDB = $DIC['ilDB'];
263
264 $records = array();
265
266 $query = "SELECT * FROM adv_md_record_objs WHERE sub_type=" . $ilDB->quote("-", "text");
267 $res = $ilDB->query($query);
268 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
269 $records[$row->obj_type][] = self::_getInstanceByRecordId($row->record_id);
270 }
271 // #13359 hide ecs if not configured
273 $filter = ilECSUtils::getPossibleRemoteTypes(false);
274 $filter[] = 'rtst';
275 $records = array_diff_key($records, array_flip($filter));
276 }
277
278 return $records;
279 }
static ecsConfigured()
Checks if an ecs server is configured.
static getPossibleRemoteTypes($a_with_captions=false)
Get all possible remote object types.

References $DIC, $ilDB, $query, $records, $res, $row, _getInstanceByRecordId(), ilECSSetting\ecsConfigured(), ilDBConstants\FETCHMODE_OBJECT, and ilECSUtils\getPossibleRemoteTypes().

Referenced by ilAdvancedMDSettingsGUI\initFormSubstitutions(), and ilAdvancedMDSettingsGUI\setSubTabs().

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

◆ _getAssignableObjectTypes()

static ilAdvancedMDRecord::_getAssignableObjectTypes (   $a_include_text = false)
static

Get assignable object type.

@access public

Definition at line 164 of file class.ilAdvancedMDRecord.php.

165 {
166 global $DIC;
167
168 $objDefinition = $DIC['objDefinition'];
169 $lng = $DIC['lng'];
170
171 $types = array();
172 $filter = array();
173 $amet_types = $objDefinition->getAdvancedMetaDataTypes();
174
176 $filter = array_merge($filter, ilECSUtils::getPossibleRemoteTypes(false));
177 $filter[] = 'rtst';
178 }
179
180 foreach ($amet_types as $at) {
181 if (in_array($at["obj_type"], $filter)) {
182 continue;
183 }
184
185 if ($a_include_text) {
186 $text = $lng->txt("obj_" . $at["obj_type"]);
187 if ($at["sub_type"] != "") {
188 $lng->loadLanguageModule($at["obj_type"]);
189 $text .= ": " . $lng->txt($at["obj_type"] . "_" . $at["sub_type"]);
190 } else {
191 $at["sub_type"] = "-";
192 }
193 $at["text"] = $text;
194 }
195
196 $types[] = $at;
197 }
198
199 sort($types);
200 return $types;
201 }
$lng
$text
Definition: errorreport.php:18

References $DIC, $lng, $text, ilECSSetting\ecsConfigured(), and ilECSUtils\getPossibleRemoteTypes().

Referenced by ilSoapInstallationInfoXMLWriter\__buildClient(), ilAdvancedMDRecordTableGUI\fillRow(), ilSoapAdministration\getNIC(), ilAdvancedMDSettingsGUI\initForm(), and ilObjectMetaDataGUI\isAdvMDAvailable().

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

◆ _getInstanceByRecordId()

static ilAdvancedMDRecord::_getInstanceByRecordId (   $a_record_id)
static

Get instance by record id.

@access public

Parameters
intrecord id
Returns
ilAdvancedMDRecord

Definition at line 75 of file class.ilAdvancedMDRecord.php.

76 {
77 if (isset(self::$instances[$a_record_id])) {
78 return self::$instances[$a_record_id];
79 }
80 return self::$instances[$a_record_id] = new ilAdvancedMDRecord($a_record_id);
81 }

Referenced by _getActivatedRecordsByObjectType(), _getActiveSearchableRecords(), _getAllRecordsByObjectType(), _getRecords(), ilAdvancedMDSettingsGUI\confirmDeleteRecords(), ilAdvancedMDSettingsGUI\deleteRecords(), ilAdvancedMDSettingsGUI\exportRecords(), ilAdvancedMDRecordTableGUI\fillRow(), ilAdvancedMDRecordParser\initRecordObject(), ilAdvancedMDSettingsGUI\initRecordObject(), and ilAdvancedMDSettingsGUI\updateRecords().

+ Here is the caller graph for this function:

◆ _getRecords()

static ilAdvancedMDRecord::_getRecords ( )
static

Get records.

@access public

Parameters
arrayarray of record objects
Returns
ilAdvancedMDRecord[]

Definition at line 236 of file class.ilAdvancedMDRecord.php.

237 {
238 global $DIC;
239
240 $ilDB = $DIC['ilDB'];
241
242 $query = "SELECT record_id FROM adv_md_record ORDER BY gpos ";
243 $res = $ilDB->query($query);
244 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
246 }
247 return $records ? $records : array();
248 }

References $DIC, $ilDB, $query, $records, $res, $row, _getInstanceByRecordId(), and ilDBConstants\FETCHMODE_OBJECT.

Referenced by ilAdvancedMDValues\_cloneValues(), ilLuceneAdvancedSearchFields\getFields(), and ilAdvancedMDSettingsGUI\getParsedRecordObjects().

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

◆ _getSelectedRecordsByObject()

static ilAdvancedMDRecord::_getSelectedRecordsByObject (   $a_obj_type,
  $a_ref_id,
  $a_sub_type = "" 
)
static

Get selected records by object.

Parameters
string$a_obj_typeobject type
string$a_ref_idreference id
string$a_sub_typesub type

Definition at line 330 of file class.ilAdvancedMDRecord.php.

331 {
332 $records = array();
333 // ilUtil::printBacktrace(10);
334 // var_dump($a_obj_type."-".$a_ref_id."-".$a_sub_type); exit;
335 if ($a_sub_type == "") {
336 $a_sub_type = "-";
337 }
338
339 $a_obj_id = ilObject::_lookupObjId($a_ref_id);
340
341 // object-wide metadata configuration setting
342 include_once 'Services/Container/classes/class.ilContainer.php';
343 include_once 'Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
344 $config_setting = ilContainer::_lookupContainerSetting(
345 $a_obj_id,
347 false
348 );
349
350 $optional = array();
351 foreach (self::_getActivatedRecordsByObjectType($a_obj_type, $a_sub_type) as $record) {
352 // check scope
353 if (self::isFilteredByScope($a_ref_id, $record->getScopes())) {
354 continue;
355 }
356
357 foreach ($record->getAssignedObjectTypes() as $item) {
358 if ($record->getParentObject()) {
359 // only matching local records
360 if ($record->getParentObject() != $a_obj_id) {
361 continue;
362 }
363 // if object-wide setting is off, ignore local records
364 elseif (!$config_setting) {
365 continue;
366 }
367 }
368
369 if ($item['obj_type'] == $a_obj_type &&
370 $item['sub_type'] == $a_sub_type) {
371 if ($item['optional']) {
372 $optional[] = $record->getRecordId();
373 }
374 $records[$record->getRecordId()] = $record;
375 }
376 }
377 }
378
379 if ($optional) {
380 if (!$config_setting && !in_array($a_sub_type, array("orgu_type", "prg_type"))) { //#16925 + #17777
381 $selected = array();
382 } else {
383 $selected = self::getObjRecSelection($a_obj_id, $a_sub_type);
384 }
385 foreach ($optional as $record_id) {
386 if (!in_array($record_id, $selected)) {
387 unset($records[$record_id]);
388 }
389 }
390 }
391
392
393 $orderings = new ilAdvancedMDRecordObjectOrderings();
394 $records = $orderings->sortRecords($records, $a_obj_id);
395
396 return $records;
397 }
static getObjRecSelection($a_obj_id, $a_sub_type="")
Get repository object record selection.
static _lookupContainerSetting($a_id, $a_keyword, $a_default_value=null)
Lookup a container setting.
static _lookupObjId($a_id)

References $record_id, $records, ilContainer\_lookupContainerSetting(), ilObject\_lookupObjId(), ilObjectServiceSettingsGUI\CUSTOM_METADATA, and getObjRecSelection().

Referenced by ilGlossaryTerm\_copyTerm(), ilWikiFunctionsBlockGUI\fillDataSection(), ilPCAMDPageList\findPages(), ilAdvancedMDRecordGUI\getActiveRecords(), ilObjBookingPool\getAdvancedMDFields(), ilGlossaryAdvMetaDataAdapter\getAllFields(), ilObjectMetaDataGUI\getBlockHTML(), ilAdvancedMDValues\getInstancesForObjectId(), ilObjectMetaDataGUI\getKeyValueList(), ilObjectMetaDataGUI\hasActiveRecords(), ilObjWikiGUI\initSettingsForm(), ilAdvancedMDValues\preloadedRead(), and ilAdvancedMDValues\queryForRecords().

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

◆ _lookupRecordIdByImportId()

static ilAdvancedMDRecord::_lookupRecordIdByImportId (   $a_ilias_id)
static

Lookup record Id by import id.

@access public

Parameters
stringilias id

Definition at line 143 of file class.ilAdvancedMDRecord.php.

144 {
145 global $DIC;
146
147 $ilDB = $DIC['ilDB'];
148
149 $query = "SELECT record_id FROM adv_md_record " .
150 "WHERE import_id = " . $ilDB->quote($a_ilias_id, 'text') . " ";
151 $res = $ilDB->query($query);
152 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
153 return $row->record_id;
154 }
155 return 0;
156 }

References $DIC, $ilDB, $query, $res, $row, and ilDBConstants\FETCHMODE_OBJECT.

Referenced by ilAdvancedMDRecordParser\extractRecordId().

+ Here is the caller graph for this function:

◆ _lookupTitle()

static ilAdvancedMDRecord::_lookupTitle (   $a_record_id)
static

Lookup title.

@access public

Parameters
intrecord_id

Definition at line 115 of file class.ilAdvancedMDRecord.php.

116 {
117 static $title_cache = array();
118
119 if (isset($title_cache[$a_record_id])) {
120 return $title_cache[$a_record_id];
121 }
122
123 global $DIC;
124
125 $ilDB = $DIC['ilDB'];
126
127 $query = "SELECT title FROM adv_md_record " .
128 "WHERE record_id = " . $ilDB->quote($a_record_id, 'integer') . " ";
129 $res = $ilDB->query($query);
131
132 return $title_cache[$a_record_id] = $row->title;
133 }

References $DIC, $ilDB, $query, $res, $row, and ilDBConstants\FETCHMODE_OBJECT.

Referenced by ilAdvancedMDSettingsGUI\initFormSubstitutions(), ilAdvancedMDRecordGUI\parseInfoPage(), ilECSSettingsGUI\prepareFieldSelection(), and ilLuceneAdvancedSearchFields\readSections().

+ Here is the caller graph for this function:

◆ appendAssignedObjectType()

ilAdvancedMDRecord::appendAssignedObjectType (   $a_obj_type,
  $a_sub_type,
  $a_optional = false 
)

append assigned object types

@access public

Parameters
stringilias object type

Definition at line 773 of file class.ilAdvancedMDRecord.php.

774 {
775 $this->obj_types[] = array(
776 "obj_type" => $a_obj_type,
777 "sub_type" => $a_sub_type,
778 "optional" => (bool) $a_optional
779 );
780 }

◆ delete()

ilAdvancedMDRecord::delete ( )

Delete.

@access public

Definition at line 465 of file class.ilAdvancedMDRecord.php.

466 {
469 }
static deleteByRecordI($a_record_id)
delete by record id
static _delete($a_record_id)
Delete record and all related data.

References _delete(), ilAdvancedMDRecordScope\deleteByRecordI(), and getRecordId().

+ Here is the call graph for this function:

◆ enabledScope()

ilAdvancedMDRecord::enabledScope ( )

Is scope enabled.

Returns
scope

Definition at line 475 of file class.ilAdvancedMDRecord.php.

References $scope_enabled.

◆ enableScope()

ilAdvancedMDRecord::enableScope (   $a_stat)

Enable scope restrictions.

Parameters
bool$a_stat

Definition at line 484 of file class.ilAdvancedMDRecord.php.

485 {
486 $this->scope_enabled = $a_stat;
487 }

◆ generateImportId()

ilAdvancedMDRecord::generateImportId ( )
protected

generate unique record id

@access protected

Returns

Definition at line 917 of file class.ilAdvancedMDRecord.php.

918 {
919 return 'il_' . IL_INST_ID . '_adv_md_record_' . $this->getRecordId();
920 }

References getRecordId().

Referenced by save(), and toXML().

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

◆ getAssignedObjectTypes()

ilAdvancedMDRecord::getAssignedObjectTypes ( )

Get assigned object types.

@access public

Definition at line 788 of file class.ilAdvancedMDRecord.php.

789 {
790 return $this->obj_types ? $this->obj_types : array();
791 }

Referenced by _clone(), isAssignedObjectType(), save(), toXML(), and update().

+ Here is the caller graph for this function:

◆ getDescription()

ilAdvancedMDRecord::getDescription ( )

get description

@access public

Definition at line 726 of file class.ilAdvancedMDRecord.php.

References $description.

Referenced by _clone(), save(), toXML(), and update().

+ Here is the caller graph for this function:

◆ getGlobalPosition()

ilAdvancedMDRecord::getGlobalPosition ( )
Returns
int

Definition at line 645 of file class.ilAdvancedMDRecord.php.

645 : int
646 {
648 }

References $global_position.

Referenced by ilAdvancedMDRecordObjectOrderings\compareLocalRecords(), ilAdvancedMDRecordObjectOrderings\compareRecords(), and update().

+ Here is the caller graph for this function:

◆ getImportId()

ilAdvancedMDRecord::getImportId ( )

get import id

@access public

Definition at line 749 of file class.ilAdvancedMDRecord.php.

References $import_id.

Referenced by save().

+ Here is the caller graph for this function:

◆ getObjRecSelection()

static ilAdvancedMDRecord::getObjRecSelection (   $a_obj_id,
  $a_sub_type = "" 
)
static

Get repository object record selection.

Parameters
integer$a_obj_idobject id if repository object
array$a_recordsarray of record ids that are selected (in use) by the object

Definition at line 978 of file class.ilAdvancedMDRecord.php.

979 {
980 global $DIC;
981
982 $ilDB = $DIC['ilDB'];
983
984 if ($a_sub_type == "") {
985 $a_sub_type = "-";
986 }
987
988 $recs = array();
989 $set = $ilDB->query(
990 $r = "SELECT * FROM adv_md_obj_rec_select " .
991 " WHERE obj_id = " . $ilDB->quote($a_obj_id, "integer") .
992 " AND sub_type = " . $ilDB->quote($a_sub_type, "text")
993 );
994 while ($rec = $ilDB->fetchAssoc($set)) {
995 $recs[] = $rec["rec_id"];
996 }
997 return $recs;
998 }
$r
Definition: example_031.php:79

References $DIC, $ilDB, and $r.

Referenced by ilAdvancedMDValues\_cloneValues(), _getSelectedRecordsByObject(), ilGlossaryExporter\getActiveAdvMDRecords(), ilWikiExporter\getActiveAdvMDRecords(), ilAdvancedMDSettingsGUI\getParsedRecordObjects(), getSharedRecords(), and ilAdvancedMDRecordGUI\parseRecordSelection().

+ Here is the caller graph for this function:

◆ getParentObject()

ilAdvancedMDRecord::getParentObject ( )

Definition at line 815 of file class.ilAdvancedMDRecord.php.

References $parent_obj.

Referenced by _clone(), and save().

+ Here is the caller graph for this function:

◆ getRecordId()

ilAdvancedMDRecord::getRecordId ( )

Get record id.

@access public

Definition at line 657 of file class.ilAdvancedMDRecord.php.

658 {
659 return $this->record_id;
660 }

References $record_id.

Referenced by __construct(), __destruct(), _clone(), ilAdvancedMDRecordObjectOrderings\compareLocalRecords(), delete(), generateImportId(), read(), save(), toXML(), and update().

+ Here is the caller graph for this function:

◆ getScopeRefIds()

ilAdvancedMDRecord::getScopeRefIds ( )

Get scope gef_ids.

Returns
type

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

512 {
513 $ref_ids = [];
514 foreach ($this->scopes as $scope) {
515 $ref_ids[] = $scope->getRefId();
516 }
517 return $ref_ids;
518 }

Referenced by toXML().

+ Here is the caller graph for this function:

◆ getScopes()

ilAdvancedMDRecord::getScopes ( )

Get scopes.

Returns
ilAdvancedMDRecordScope[]

Definition at line 502 of file class.ilAdvancedMDRecord.php.

References $scopes.

Referenced by save(), and update().

+ Here is the caller graph for this function:

◆ getSharedRecords()

static ilAdvancedMDRecord::getSharedRecords (   $a_obj1_id,
  $a_obj2_id,
  $a_sub_type = "-" 
)
static

Get shared records.

Parameters
int$a_obj1_id
int$a_obj2_id
string$a_sub_type
Returns
array

Definition at line 1036 of file class.ilAdvancedMDRecord.php.

1037 {
1038 $obj_type = ilObject::_lookupType($a_obj1_id);
1039 $sel = array_intersect(
1040 ilAdvancedMDRecord::getObjRecSelection($a_obj1_id, $a_sub_type),
1041 ilAdvancedMDRecord::getObjRecSelection($a_obj2_id, $a_sub_type)
1042 );
1043
1044 $res = array();
1045
1046 foreach (self::_getRecords() as $record) {
1047 // local records cannot be shared
1048 if ($record->getParentObject()) {
1049 continue;
1050 }
1051
1052 // :TODO: inactive records can be ignored?
1053 if (!$record->isActive()) {
1054 continue;
1055 }
1056
1057 // parse assigned types
1058 foreach ($record->getAssignedObjectTypes() as $item) {
1059 if ($item["obj_type"] == $obj_type &&
1060 $item["sub_type"] == $a_sub_type) {
1061 // mandatory
1062 if (!$item["optional"]) {
1063 $res[] = $record->getRecordId();
1064 }
1065 // optional
1066 elseif (in_array($record->getRecordId(), $sel)) {
1067 $res[] = $record->getRecordId();
1068 }
1069 }
1070 }
1071 }
1072
1073 return $res;
1074 }
static _lookupType($a_id, $a_reference=false)
lookup object type

References $res, ilObject\_lookupType(), and getObjRecSelection().

+ Here is the call graph for this function:

◆ getTitle()

ilAdvancedMDRecord::getTitle ( )

get title

@access public

Definition at line 703 of file class.ilAdvancedMDRecord.php.

References $title.

Referenced by _clone(), save(), toXML(), update(), and validate().

+ Here is the caller graph for this function:

◆ isActive()

ilAdvancedMDRecord::isActive ( )

Check if record is active.

@access public

Definition at line 680 of file class.ilAdvancedMDRecord.php.

681 {
682 return (bool) $this->active;
683 }

References $active.

Referenced by _clone(), save(), toXML(), and update().

+ Here is the caller graph for this function:

◆ isAssignedObjectType()

ilAdvancedMDRecord::isAssignedObjectType (   $a_obj_type,
  $a_sub_type 
)

Is assigned object type?

Parameters

return

Definition at line 799 of file class.ilAdvancedMDRecord.php.

800 {
801 foreach ($this->getAssignedObjectTypes() as $t) {
802 if ($t["obj_type"] == $a_obj_type &&
803 $t["sub_type"] == $a_sub_type) {
804 return true;
805 }
806 }
807 return false;
808 }

References $t, and getAssignedObjectTypes().

+ Here is the call graph for this function:

◆ isFilteredByScope()

static ilAdvancedMDRecord::isFilteredByScope (   $a_ref_id,
array  $scopes 
)
static

Check if a given ref id is not filtered by scope restriction.

Parameters
type$a_ref_id
ilAdvancedMDRecordScope[]$scopes

Definition at line 404 of file class.ilAdvancedMDRecord.php.

405 {
406 $tree = $GLOBALS['DIC']->repositoryTree();
407 $logger = $GLOBALS['DIC']->logger()->amet();
408
409 if (!count($scopes)) {
410 $logger->debug('No md scope restrictions.');
411 return false;
412 }
413 foreach ($scopes as $scope) {
414 $logger->debug('Comparing: ' . $a_ref_id . ' with: ' . $scope->getRefId());
415 if ($scope->getRefId() == $a_ref_id) {
416 $logger->debug('Elements are equal. No scope restrictions.');
417 return false;
418 }
419 if ($tree->getRelation($scope->getRefId(), $a_ref_id) == ilTree::RELATION_PARENT) {
420 $logger->debug('Node is child node. No scope restrictions.');
421 return false;
422 }
423 }
424 $logger->info('Scope filter matches.');
425
426 return true;
427 }
const RELATION_PARENT
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.

References $GLOBALS, $scopes, $tree, and ilTree\RELATION_PARENT.

Referenced by ilAdvancedMDSettingsGUI\getParsedRecordObjects().

+ Here is the caller graph for this function:

◆ read()

ilAdvancedMDRecord::read ( )
private

read record and assiged object types

@access private

Parameters

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

873 {
874 global $DIC;
875
876 $ilDB = $DIC['ilDB'];
877
878 $query = "SELECT * FROM adv_md_record " .
879 "WHERE record_id = " . $this->db->quote($this->getRecordId(), 'integer') . " ";
880 $res = $this->db->query($query);
881 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
882 $this->setImportId($row->import_id);
883 $this->setActive($row->active);
884 $this->setTitle($row->title);
885 $this->setDescription($row->description);
886 $this->setParentObject($row->parent_obj);
887 $this->setGlobalPosition((int) $row->gpos);
888 }
889 $query = "SELECT * FROM adv_md_record_objs " .
890 "WHERE record_id = " . $this->db->quote($this->getRecordId(), 'integer') . " ";
891 $res = $this->db->query($query);
892 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
893 $this->obj_types[] = array(
894 "obj_type" => $row->obj_type,
895 "sub_type" => $row->sub_type,
896 "optional" => (bool) $row->optional
897 );
898 }
899
900 $query = 'SELECT scope_id FROM adv_md_record_scope ' .
901 'WHERE record_id = ' . $ilDB->quote($this->record_id);
902 $res = $ilDB->query($query);
903 $this->scope_enabled = false;
904 $this->scopes = [];
905 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
906 $this->scope_enabled = true;
907 $this->scopes[] = new ilAdvancedMDRecordScope($row->scope_id);
908 }
909 }
Scope restrictions for advanced md records.
setTitle($a_title)
Set title.
setDescription($a_description)
set description
setActive($a_active)
Set active.
setGlobalPosition(int $position)
Set global position.
setImportId($a_id_string)
set import id

References $DIC, $ilDB, $query, $res, $row, ilDBConstants\FETCHMODE_OBJECT, getRecordId(), setActive(), setDescription(), setGlobalPosition(), setImportId(), setParentObject(), and setTitle().

Referenced by __construct().

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

◆ save()

ilAdvancedMDRecord::save ( )

save

@access public

Definition at line 526 of file class.ilAdvancedMDRecord.php.

527 {
528 global $DIC;
529
530 $ilDB = $DIC['ilDB'];
531
532 // Save import id if given
533 $next_id = $ilDB->nextId('adv_md_record');
534
535 $query = "INSERT INTO adv_md_record (record_id,import_id,active,title,description,parent_obj) " .
536 "VALUES(" .
537 $ilDB->quote($next_id, 'integer') . ", " .
538 $this->db->quote($this->getImportId(), 'text') . ", " .
539 $this->db->quote($this->isActive(), 'integer') . ", " .
540 $this->db->quote($this->getTitle(), 'text') . ", " .
541 $this->db->quote($this->getDescription(), 'text') . ", " .
542 $this->db->quote($this->getParentObject(), 'integer') . " " .
543 ")";
544 $res = $ilDB->manipulate($query);
545 $this->record_id = $next_id;
546
547 if (!strlen($this->getImportId())) {
548 // set import id to default value
549 $query = "UPDATE adv_md_record " .
550 "SET import_id = " . $this->db->quote($this->generateImportId(), 'text') . " " .
551 "WHERE record_id = " . $this->db->quote($this->record_id, 'integer') . " ";
552 $res = $ilDB->manipulate($query);
553 }
554
555 foreach ($this->getAssignedObjectTypes() as $type) {
556 global $DIC;
557
558 $ilDB = $DIC['ilDB'];
559
560 $query = "INSERT INTO adv_md_record_objs (record_id,obj_type,sub_type,optional) " .
561 "VALUES( " .
562 $this->db->quote($this->getRecordId(), 'integer') . ", " .
563 $this->db->quote($type["obj_type"], 'text') . ", " .
564 $this->db->quote($type["sub_type"], 'text') . ", " .
565 $this->db->quote($type["optional"], 'integer') . " " .
566 ")";
567 $res = $ilDB->manipulate($query);
568 }
569
570 foreach ($this->getScopes() as $scope) {
571 $scope->setRecordId($this->getRecordId());
572 $scope->save();
573 }
574 }
generateImportId()
generate unique record id
$type

References $DIC, $ilDB, $query, $res, $type, generateImportId(), getAssignedObjectTypes(), getDescription(), getImportId(), getParentObject(), getRecordId(), getScopes(), getTitle(), and isActive().

+ Here is the call graph for this function:

◆ saveObjRecSelection()

static ilAdvancedMDRecord::saveObjRecSelection (   $a_obj_id,
  $a_sub_type = "",
array  $a_records = null,
  $a_delete_before = true 
)
static

Save repository object record selection.

Parameters
int$a_obj_idobject id if repository object
string$a_sub_typesubtype
int[]$a_recordsarray of record ids that are selected (in use) by the object
bool$a_delete_beforedelete before update

Definition at line 942 of file class.ilAdvancedMDRecord.php.

943 {
944 global $DIC;
945
946 $ilDB = $DIC['ilDB'];
947
948 if ($a_sub_type == "") {
949 $a_sub_type = "-";
950 }
951
952 if ((bool) $a_delete_before) {
953 $ilDB->manipulate("DELETE FROM adv_md_obj_rec_select WHERE " .
954 " obj_id = " . $ilDB->quote($a_obj_id, "integer") .
955 " AND sub_type = " . $ilDB->quote($a_sub_type, "text"));
956 }
957
958 if (is_array($a_records)) {
959 foreach ($a_records as $r) {
960 if ($r > 0) {
961 $ilDB->manipulate("INSERT INTO adv_md_obj_rec_select " .
962 "(obj_id, rec_id, sub_type) VALUES (" .
963 $ilDB->quote($a_obj_id, "integer") . "," .
964 $ilDB->quote($r, "integer") . "," .
965 $ilDB->quote($a_sub_type, "text") .
966 ")");
967 }
968 }
969 }
970 }

References $DIC, $ilDB, and $r.

Referenced by ilAdvancedMDValues\_cloneValues(), ilAdvancedMetaDataImporter\importXmlRepresentation(), ilAdvancedMDRecordGUI\saveSelection(), ilObjOrgUnit\update(), ilObjStudyProgramme\update(), and ilAdvancedMDSettingsGUI\updateRecords().

+ Here is the caller graph for this function:

◆ setActive()

ilAdvancedMDRecord::setActive (   $a_active)

Set active.

@access public

Parameters

Definition at line 669 of file class.ilAdvancedMDRecord.php.

670 {
671 $this->active = $a_active;
672 }

Referenced by read().

+ Here is the caller graph for this function:

◆ setAssignedObjectTypes()

ilAdvancedMDRecord::setAssignedObjectTypes (   $a_obj_types)

Set assigned object types.

@access public

Parameters
arrayarray(string) array of object types. E.g array('crs','crsl')

Definition at line 761 of file class.ilAdvancedMDRecord.php.

762 {
763 $this->obj_types = $a_obj_types;
764 }

◆ setDescription()

ilAdvancedMDRecord::setDescription (   $a_description)

set description

@access public

Parameters
stringdescription

Definition at line 715 of file class.ilAdvancedMDRecord.php.

716 {
717 $this->description = $a_description;
718 }

Referenced by read().

+ Here is the caller graph for this function:

◆ setGlobalPosition()

ilAdvancedMDRecord::setGlobalPosition ( int  $position)

Set global position.

Parameters
int$position

Definition at line 637 of file class.ilAdvancedMDRecord.php.

638 {
639 $this->global_position = $position;
640 }

Referenced by ilAdvancedMDRecordObjectOrderings\compareRecords(), and read().

+ Here is the caller graph for this function:

◆ setImportId()

ilAdvancedMDRecord::setImportId (   $a_id_string)

set import id

@access public

Parameters
stringimport id

Definition at line 738 of file class.ilAdvancedMDRecord.php.

739 {
740 $this->import_id = $a_id_string;
741 }

Referenced by read().

+ Here is the caller graph for this function:

◆ setParentObject()

ilAdvancedMDRecord::setParentObject (   $a_obj_id)

Definition at line 810 of file class.ilAdvancedMDRecord.php.

811 {
812 $this->parent_obj = $a_obj_id;
813 }

Referenced by read().

+ Here is the caller graph for this function:

◆ setScopes()

ilAdvancedMDRecord::setScopes ( array  $a_scopes)

Set scopes.

Parameters
array$a_scopes

Definition at line 493 of file class.ilAdvancedMDRecord.php.

494 {
495 $this->scopes = $a_scopes;
496 }

◆ setTitle()

ilAdvancedMDRecord::setTitle (   $a_title)

Set title.

@access public

Parameters
stringtitle

Definition at line 692 of file class.ilAdvancedMDRecord.php.

693 {
694 $this->title = $a_title;
695 }

Referenced by read().

+ Here is the caller graph for this function:

◆ toXML()

ilAdvancedMDRecord::toXML ( ilXmlWriter  $writer)

To Xml.

This method writes only the subset Record (including all fields) Use class.ilAdvancedMDRecordXMLWriter to generate a complete xml presentation.

@access public

Parameters
objectilXmlWriter

Definition at line 829 of file class.ilAdvancedMDRecord.php.

830 {
831 $writer->xmlStartTag('Record', array('active' => $this->isActive() ? 1 : 0,
832 'id' => $this->generateImportId()));
833 $writer->xmlElement('Title', null, $this->getTitle());
834 $writer->xmlElement('Description', null, $this->getDescription());
835
836 foreach ($this->getAssignedObjectTypes() as $obj_type) {
837 $optional = array("optional" => $obj_type["optional"]);
838 if ($obj_type["sub_type"] == "") {
839 $writer->xmlElement('ObjectType', $optional, $obj_type["obj_type"]);
840 } else {
841 $writer->xmlElement('ObjectType', $optional, $obj_type["obj_type"] . ":" . $obj_type["sub_type"]);
842 }
843 }
844
845 // scopes
846 if (count($this->getScopeRefIds())) {
847 $writer->xmlStartTag('Scope');
848 }
849 foreach ($this->getScopeRefIds() as $ref_id) {
851 $writer->xmlElement('ScopeEntry', ['id' => 'il_' . IL_INST_ID . '_' . $type . '_' . $ref_id]);
852 }
853 if (count($this->getScopeRefIds())) {
854 $writer->xmlEndTag('Scope');
855 }
856
857
858 include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
859 foreach (ilAdvancedMDFieldDefinition::getInstancesByRecordId($this->getRecordId()) as $definition) {
860 $definition->toXML($writer);
861 }
862 $writer->xmlEndTag('Record');
863 }
getScopeRefIds()
Get scope gef_ids.
xmlEndTag($tag)
Writes an endtag.
xmlElement($tag, $attrs=null, $data=null, $encode=true, $escape=true)
Writes a basic element (no children, just textual content)
xmlStartTag($tag, $attrs=null, $empty=false, $encode=true, $escape=true)
Writes a starttag.

References $type, ilObject\_lookupObjId(), ilObject\_lookupType(), generateImportId(), getAssignedObjectTypes(), getDescription(), ilAdvancedMDFieldDefinition\getInstancesByRecordId(), getRecordId(), getScopeRefIds(), getTitle(), isActive(), ilXmlWriter\xmlElement(), ilXmlWriter\xmlEndTag(), and ilXmlWriter\xmlStartTag().

+ Here is the call graph for this function:

◆ update()

ilAdvancedMDRecord::update ( )

update

@access public

Definition at line 582 of file class.ilAdvancedMDRecord.php.

583 {
584 global $DIC;
585
586 $ilDB = $DIC['ilDB'];
587
588 $query = "UPDATE adv_md_record " .
589 "SET active = " . $this->db->quote($this->isActive(), 'integer') . ", " .
590 "title = " . $this->db->quote($this->getTitle(), 'text') . ", " .
591 "description = " . $this->db->quote($this->getDescription(), 'text') . ", " .
592 'gpos = ' . $this->db->quote($this->getGlobalPosition(), 'integer') . ' ' .
593 "WHERE record_id = " . $this->db->quote($this->getRecordId(), 'integer') . " ";
594 $res = $ilDB->manipulate($query);
595
596 // Delete assignments
597 $query = "DELETE FROM adv_md_record_objs " .
598 "WHERE record_id = " . $this->db->quote($this->getRecordId(), 'integer') . " ";
599 $res = $ilDB->manipulate($query);
600
601 // Insert assignments
602 foreach ($this->getAssignedObjectTypes() as $type) {
603 $query = "INSERT INTO adv_md_record_objs (record_id,obj_type,sub_type,optional) " .
604 "VALUES ( " .
605 $this->db->quote($this->getRecordId(), 'integer') . ", " .
606 $this->db->quote($type["obj_type"], 'text') . ", " .
607 $this->db->quote($type["sub_type"], 'text') . ", " .
608 $this->db->quote($type["optional"], 'integer') . " " .
609 ")";
610 $res = $ilDB->manipulate($query);
611 }
613 foreach ($this->getScopes() as $scope) {
614 $scope->setRecordId($this->getRecordId());
615 $scope->save();
616 }
617 }

References $DIC, $ilDB, $query, $res, $type, ilAdvancedMDRecordScope\deleteByRecordI(), getAssignedObjectTypes(), getDescription(), getGlobalPosition(), getRecordId(), getScopes(), getTitle(), and isActive().

+ Here is the call graph for this function:

◆ validate()

ilAdvancedMDRecord::validate ( )

Validate settings.

@access public

Definition at line 625 of file class.ilAdvancedMDRecord.php.

626 {
627 if (!strlen($this->getTitle())) {
628 return false;
629 }
630 return true;
631 }

References getTitle().

+ Here is the call graph for this function:

Field Documentation

◆ $active

ilAdvancedMDRecord::$active
protected

Definition at line 29 of file class.ilAdvancedMDRecord.php.

Referenced by isActive().

◆ $db

ilAdvancedMDRecord::$db = null
protected

Definition at line 33 of file class.ilAdvancedMDRecord.php.

◆ $description

ilAdvancedMDRecord::$description
protected

Definition at line 31 of file class.ilAdvancedMDRecord.php.

Referenced by getDescription().

◆ $global_position

ilAdvancedMDRecord::$global_position
protected

Definition at line 26 of file class.ilAdvancedMDRecord.php.

Referenced by getGlobalPosition().

◆ $import_id

ilAdvancedMDRecord::$import_id
protected

Definition at line 28 of file class.ilAdvancedMDRecord.php.

Referenced by getImportId().

◆ $instances

ilAdvancedMDRecord::$instances = array()
staticprivate

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

◆ $obj_types

ilAdvancedMDRecord::$obj_types = array()
protected

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

Referenced by _getActivatedObjTypes().

◆ $parent_obj

ilAdvancedMDRecord::$parent_obj
protected

Definition at line 34 of file class.ilAdvancedMDRecord.php.

Referenced by getParentObject().

◆ $record_id

ilAdvancedMDRecord::$record_id
protected

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

Referenced by _getSelectedRecordsByObject(), and getRecordId().

◆ $scope_enabled

ilAdvancedMDRecord::$scope_enabled = false
protected

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

Referenced by enabledScope().

◆ $scopes

ilAdvancedMDRecord::$scopes = []
protected

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

Referenced by getScopes(), and isFilteredByScope().

◆ $title

ilAdvancedMDRecord::$title
protected

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

Referenced by getTitle().


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