34 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php');
35 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
59 parent::__construct($a_file,
true);
71 $this->mode = $a_mode;
95 parent::startParsing();
98 include_once(
'./Services/Xml/exceptions/class.ilSaxParserException.php');
111 xml_set_object($a_xml_parser,$this);
112 xml_set_element_handler($a_xml_parser,
'handlerBeginTag',
'handlerEndTag');
113 xml_set_character_data_handler($a_xml_parser,
'handlerCharacterData');
125 case 'AdvancedMetaDataRecords':
126 $this->is_error =
false;
127 $this->error_msg = array();
133 $this->current_field = null;
134 $this->current_record = null;
135 if(!strlen($a_attribs[
'id']) or !isset($a_attribs[
'active']))
152 if(!strlen($a_attribs[
'id']) or !isset($a_attribs[
'searchable']) or !isset($a_attribs[
'fieldType']))
160 switch($a_attribs[
'fieldType'])
179 $this->
appendErrorMessage(
'Invalid attribute value given for element "Record::FieldType".');
184 $this->
getCurrentField()->enableSearchable($a_attribs[
'searchable'] ==
'Yes' ?
true :
false);
188 case 'FieldDescription':
189 case 'FieldPosition':
204 case 'AdvancedMetaDataRecords':
221 $parts = explode(
":", trim($this->cdata));
233 case 'FieldDescription':
237 case 'FieldPosition':
259 $a_data = preg_replace(
"/\t+/",
" ",$a_data);
261 $this->cdata .= $a_data;
276 case self::MODE_INSERT:
277 case self::MODE_INSERT_VALIDATION:
299 case self::MODE_INSERT:
300 case self::MODE_INSERT_VALIDATION:
302 $this->
fields[] = $this->current_field;
306 $this->current_field = ilAdvancedMDRecord::_getInstanceByFieldId($this->extractFieldId($a_id));
322 return $this->current_record;
332 return $this->current_field;
347 $this->record_exists =
true;
364 $this->is_error =
true;
365 $this->error_msg[] = $a_msg;
379 case self::MODE_INSERT_VALIDATION:
380 case self::MODE_UPDATE_VALIDATION:
383 case self::MODE_INSERT:
387 foreach($this->
fields as $field)
392 case self::MODE_INSERT:
setHandlers($a_xml_parser)
set event handlers
appendErrorMessage($a_msg)
private
setMode($a_mode)
set parsing mode
storeRecords()
Store Record.
SaxParserException thrown by ilSaxParser if property throwException is set.
handlerEndTag($a_xml_parser, $a_name)
Handler for end tags.
__construct($a_file)
Constructor.
startParsing()
stores xml data in array
handlerCharacterData($a_xml_parser, $a_data)
handler for character data
static _getInstanceByRecordId($a_record_id)
Get instance by record id.
handlerBeginTag($a_xml_parser, $a_name, $a_attribs)
Handler for start tags.
extractRecordId($a_id_string)
Extract id.
getCurrentRecord()
get current record
initFieldObject($a_id)
Init field definition object.
initRecordObject($a_id)
Init record object.
getCurrentField()
get current field definition private
SAX based XML parser for record import files.
const MODE_UPDATE_VALIDATION
const MODE_INSERT_VALIDATION
static _lookupRecordIdByImportId($a_ilias_id)
Lookup record Id by import id.