function xmlDumpMem($format = TRUE) { $this->getXML(); return parent::xmlDumpMem($format); }
/** * export questions to xml */ function toXML($questions) { if (!is_array($questions)) { $questions =& $this->getQuestions(); } if (count($questions) == 0) { $questions =& $this->getQuestions(); } $xml = ""; include_once "./Services/Xml/classes/class.ilXmlWriter.php"; $a_xml_writer = new ilXmlWriter(); // set xml header $a_xml_writer->xmlHeader(); $attrs = array("xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance", "xsi:noNamespaceSchemaLocation" => "http://www.ilias.de/download/xsd/ilias_survey_4_2.xsd"); $a_xml_writer->xmlStartTag("surveyobject", $attrs); $attrs = array("id" => "qpl_" . $this->getId(), "label" => $this->getTitle(), "online" => $this->getOnline()); $a_xml_writer->xmlStartTag("surveyquestions", $attrs); $a_xml_writer->xmlElement("dummy", NULL, "dummy"); // add ILIAS specific metadata $a_xml_writer->xmlStartTag("metadata"); $a_xml_writer->xmlStartTag("metadatafield"); $a_xml_writer->xmlElement("fieldlabel", NULL, "SCORM"); include_once "./Services/MetaData/classes/class.ilMD.php"; $md = new ilMD($this->getId(), 0, $this->getType()); $writer = new ilXmlWriter(); $md->toXml($writer); $metadata = $writer->xmlDumpMem(); $a_xml_writer->xmlElement("fieldentry", NULL, $metadata); $a_xml_writer->xmlEndTag("metadatafield"); $a_xml_writer->xmlEndTag("metadata"); $a_xml_writer->xmlEndTag("surveyquestions"); $a_xml_writer->xmlEndTag("surveyobject"); $xml = $a_xml_writer->xmlDumpMem(FALSE); $questionxml = ""; foreach ($questions as $key => $value) { $questiontype = $this->getQuestiontype($value); include_once "./Modules/SurveyQuestionPool/classes/class.SurveyQuestion.php"; SurveyQuestion::_includeClass($questiontype); $question = new $questiontype(); $question->loadFromDb($value); $questionxml .= $question->toXML(false); } $xml = str_replace("<dummy>dummy</dummy>", $questionxml, $xml); return $xml; }
/** * Get xml representation * * @param string entity * @param string schema version * @param string id * @return string xml string */ public function getXmlRepresentation($a_entity, $a_schema_version, $a_id) { $parts = explode(":", $a_id); if (sizeof($parts) != 2) { return; } $obj_id = $parts[0]; $rec_id = $parts[1]; // any data for current record and object? include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDValues.php'; $raw = ilAdvancedMDValues::findByObjectId($obj_id); if (!$raw) { return; } // gather sub-item data from value entries $sub_items = array(); foreach ($raw as $item) { $sub_items[$item["sub_type"]][] = $item["sub_id"]; } // gather all relevant data $items = array(); foreach ($sub_items as $sub_type => $sub_ids) { foreach (array_unique($sub_ids) as $sub_id) { $values_record = new ilAdvancedMDValues($rec_id, $obj_id, $sub_type, $sub_id); $defs = $values_record->getDefinitions(); $values_record->read(); foreach ($values_record->getADTGroup()->getElements() as $element_id => $element) { if (!$element->isNull()) { $def = $defs[$element_id]; $items[$rec_id][] = array('id' => $def->getImportId(), 'sub_type' => $sub_type, 'sub_id' => $sub_id, 'value' => $def->getValueForXML($element)); } } } } // we only want non-empty fields if (sizeof($items)) { $xml = new ilXmlWriter(); foreach ($items as $record_id => $record_items) { // no need to state record id here $xml->xmlStartTag('AdvancedMetaData'); foreach ($record_items as $item) { $xml->xmlElement('Value', array('id' => $item['id'], 'sub_type' => $item['sub_type'], 'sub_id' => $item['sub_id']), $item['value']); } $xml->xmlEndTag('AdvancedMetaData'); } return $xml->xmlDumpMem(false); } }