ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
class.ilCourseImporter.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4include_once("./Services/Export/classes/class.ilXmlImporter.php");
5
16{
17 const ENTITY_MAIN = 'crs';
18 const ENTITY_OBJECTIVE = 'objectives';
19
20 private $course = null;
21
22 private $final_processing_info = array();
23
24
25 public function init()
26 {
27 }
28
35 public function importXmlRepresentation($a_entity, $a_id, $a_xml, $a_mapping)
36 {
37 include_once './Modules/Course/classes/class.ilCourseXMLParser.php';
38 include_once './Modules/Course/classes/class.ilObjCourse.php';
39
40
41 if ($new_id = $a_mapping->getMapping('Services/Container', 'objs', $a_id)) {
42 $refs = ilObject::_getAllReferences($new_id);
43 $this->course = ilObjectFactory::getInstanceByRefId(end($refs), false);
44 #$this->course = ilObjectFactory::getInstanceByObjId($new_id,false);
45 }
46 // Mapping for containers without subitems
47 elseif ($new_id = $a_mapping->getMapping('Services/Container', 'refs', 0)) {
48 $this->course = ilObjectFactory::getInstanceByRefId($new_id, false);
49 } elseif (!$this->course instanceof ilObjCourse) {
50 $this->course = new ilObjCourse();
51 $this->course->create(true);
52 }
53
54 if ($a_entity == self::ENTITY_OBJECTIVE) {
55 $this->addFinalProcessingInfo($this->course, $a_entity, $a_xml);
56
57 // import learning objectives => without materials and fixed questions.
58 // These are handled in afterContainerImportProcessing
59 include_once './Modules/Course/classes/Objectives/class.ilLOXmlParser.php';
60 $parser = new ilLOXmlParser($this->course, $a_xml);
61 $parser->setMapping($a_mapping);
62 $parser->parse();
63 return;
64 }
65
66 try {
67 $parser = new ilCourseXMLParser($this->course);
68 $parser->setXMLContent($a_xml);
69 $parser->startParsing();
70 $a_mapping->addMapping('Modules/Course', 'crs', $a_id, $this->course->getId());
71 } catch (ilSaxParserException $e) {
72 $GLOBALS['ilLog']->write(__METHOD__ . ': Parsing failed with message, "' . $e->getMessage() . '".');
73 } catch (Exception $e) {
74 $GLOBALS['ilLog']->write(__METHOD__ . ': Parsing failed with message, "' . $e->getMessage() . '".');
75 }
76 }
77
78
79
85 {
86 foreach ($this->final_processing_info as $info) {
87 // import learning objectives
88 include_once './Modules/Course/classes/Objectives/class.ilLOXmlParser.php';
89 $parser = new ilLOXmlParser($info['course'], $info['xml']);
90 $parser->setMapping($mapping);
91 $parser->parseObjectDependencies();
92 return;
93 }
94 }
95
99 protected function addFinalProcessingInfo($a_course, $a_entity, $a_xml)
100 {
101 $this->final_processing_info[] = array(
102 'course' => $a_course,
103 'entity' => $a_entity,
104 'xml' => $a_xml
105 );
106 }
107}
$parser
Definition: BPMN2Parser.php:23
An exception for terminatinating execution or to throw for unit testing.
folder xml importer
importXmlRepresentation($a_entity, $a_id, $a_xml, $a_mapping)
Import XML.
afterContainerImportProcessing(\ilImportMapping $mapping)
addFinalProcessingInfo($a_course, $a_entity, $a_xml)
Add information for final processing.
Class ilLOXmlWriter.
Class ilObjCourse.
static getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
static _getAllReferences($a_id)
get all reference ids of object
SaxParserException thrown by ilSaxParser if property throwException is set.
Xml importer class.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
$info
Definition: index.php:5