ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5
ilLearningModuleImporter Class Reference

Importer class for files. More...

+ Inheritance diagram for ilLearningModuleImporter:
+ Collaboration diagram for ilLearningModuleImporter:

Public Member Functions

 init ()
 Initialisation. More...
 
 importXmlRepresentation ($a_entity, $a_id, $a_xml, $a_mapping)
 Import XML. More...
 
 finalProcessing ($a_mapping)
 Final processing. More...
 
- Public Member Functions inherited from ilXmlImporter
 __construct ()
 Constructor. More...
 
 setImport ($a_val)
 Set import. More...
 
 getImport ()
 Get import. More...
 
 init ()
 Init. More...
 
 setInstallId ($a_val)
 Set installation id. More...
 
 getInstallId ()
 Get installation id. More...
 
 setInstallUrl ($a_val)
 Set installation url. More...
 
 getInstallUrl ()
 Get installation url. More...
 
 setSchemaVersion ($a_val)
 Set schema version. More...
 
 getSchemaVersion ()
 Get schema version. More...
 
 setImportDirectory ($a_val)
 Set import directory. More...
 
 getImportDirectory ()
 Get import directory. More...
 
 setSkipEntities ($a_val)
 Set skip entities. More...
 
 getSkipEntities ()
 Get skip entities. More...
 
 exportedFromSameInstallation ()
 Is exporting and importing installation identical? More...
 
 importXmlRepresentation ($a_entity, $a_id, $a_xml, $a_mapping)
 Import xml representation. More...
 
 finalProcessing ($a_mapping)
 Final processing. More...
 
 afterContainerImportProcessing (ilImportMapping $mapping)
 Called after all container objects have been implemented. More...
 

Protected Attributes

 $config
 
 $log
 
- Protected Attributes inherited from ilXmlImporter
 $skip_entities = array()
 
 $imp
 

Detailed Description

Importer class for files.

Author
Stefan Meyer meyer.nosp@m.@lei.nosp@m.fos.c.nosp@m.om
Version
Id

Definition at line 13 of file class.ilLearningModuleImporter.php.

Member Function Documentation

◆ finalProcessing()

ilLearningModuleImporter::finalProcessing (   $a_mapping)

Final processing.

Parameters
arraymapping array

Definition at line 123 of file class.ilLearningModuleImporter.php.

References ilPageObject\_exists(), ilLMObject\_lookupContObjID(), ilPageObject\_writeParentId(), ilPageObjectFactory\getInstance(), ilObjContentObject\writeFooterPage(), and ilObjContentObject\writeHeaderPage().

124  {
125  $pg_map = $a_mapping->getMappingsOfEntity("Modules/LearningModule", "pg");
126 
127  include_once("./Modules/LearningModule/classes/class.ilLMPage.php");
128  include_once("./Modules/LearningModule/classes/class.ilLMPageObject.php");
129  foreach ($pg_map as $pg_id)
130  {
131  $lm_id = ilLMPageObject::_lookupContObjID($pg_id);
132  ilLMPage::_writeParentId("lm", $pg_id, $lm_id);
133  }
134 
135  // header footer page
136  foreach ($a_mapping->getMappingsOfEntity("Modules/LearningModule", "lm_header_page") as $old_id => $dummy)
137  {
138  $new_page_id = (int) $a_mapping->getMapping("Modules/LearningModule", "pg", $old_id);
139  if ($new_page_id > 0)
140  {
141  $lm_id = ilLMPageObject::_lookupContObjID($new_page_id);
142  ilObjLearningModule::writeHeaderPage($lm_id, $new_page_id);
143  }
144  }
145  foreach ($a_mapping->getMappingsOfEntity("Modules/LearningModule", "lm_footer_page") as $old_id => $dummy)
146  {
147  $new_page_id = (int) $a_mapping->getMapping("Modules/LearningModule", "pg", $old_id);
148  if ($new_page_id > 0)
149  {
150  $lm_id = ilLMPageObject::_lookupContObjID($new_page_id);
151  ilObjLearningModule::writeFooterPage($lm_id, $new_page_id);
152  }
153  }
154 
155 
156  $link_map = $a_mapping->getMappingsOfEntity("Modules/LearningModule", "link");
157  $pages = $a_mapping->getMappingsOfEntity("Services/COPage", "pgl");
158  foreach ($pages as $p)
159  {
160  $id = explode(":", $p);
161  if (count($id) == 3)
162  {
163  include_once("./Services/COPage/classes/class.ilPageObject.php");
164  if (ilPageObject::_exists($id[0], $id[1], $id[2], true))
165  {
166  include_once("./Services/COPage/classes/class.ilPageObjectFactory.php");
167  $new_page = ilPageObjectFactory::getInstance($id[0], $id[1], 0, $id[2]);
168  $new_page->buildDom();
169 
170  // fix question references
171  $updated = $new_page->resolveQuestionReferences($this->qtis);
172 
173  // in translation mode use link mapping to fix internal links
174  //$a_mapping->addMapping("Modules/LearningModule", "link",
175  if ($this->config->getTranslationImportMode())
176  {
177  $il = $new_page->resolveIntLinks($link_map);
178  if ($il)
179  {
180  $updated = true;
181  }
182  }
183 
184  if ($updated)
185  {
186  $new_page->update(false, true);
187  }
188  }
189  }
190  }
191 
192  // assign style
193  $alls_map = $a_mapping->getMappingsOfEntity("Modules/LearningModule", "lm_style");
194  foreach ($alls_map as $new_lm_id => $old_style_id)
195  {
196  $new_style_id = (int) $a_mapping->getMapping("Services/Style", "sty", $old_style_id);
197  if ($new_lm_id > 0 && $new_style_id > 0)
198  {
199  include_once("./Modules/LearningModule/classes/class.ilObjLearningModule.php");
200  $lm = new ilObjLearningModule($new_lm_id, false);
201  $lm->writeStyleSheetId($new_style_id);
202  }
203  }
204  }
static _exists($a_parent_type, $a_id, $a_lang="", $a_no_cache=false)
Checks whether page exists.
Class ilObjLearningModule.
_writeParentId($a_parent_type, $a_pg_id, $a_par_id)
Write parent id.
static writeHeaderPage($a_lm_id, $a_page_id)
Write header page.
static writeFooterPage($a_lm_id, $a_page_id)
Write footer page.
_lookupContObjID($a_id)
get learning module / digibook id for lm object
static getInstance($a_parent_type, $a_id=0, $a_old_nr=0, $a_lang="-")
Get page object instance.
+ Here is the call graph for this function:

◆ importXmlRepresentation()

ilLearningModuleImporter::importXmlRepresentation (   $a_entity,
  $a_id,
  $a_xml,
  $a_mapping 
)

Import XML.

Parameters

Definition at line 57 of file class.ilLearningModuleImporter.php.

References $result, ilXmlImporter\getImportDirectory(), ilObjectFactory\getInstanceByObjId(), ilXmlImporter\getSchemaVersion(), IL_MO_PARSE_QTI, and IL_MO_VERIFY_QTI.

58  {
59  include_once './Modules/File/classes/class.ilObjFile.php';
60 
61  $this->log->debug("import XML Representation");
62 
63  // case i container
64  if($new_id = $a_mapping->getMapping('Services/Container','objs',$a_id))
65  {
66  $newObj = ilObjectFactory::getInstanceByObjId($new_id,false);
67  $newObj->createLMTree();
68  $this->log->debug("got mapping, new id is: ".$new_id);
69  }
70 
71  // in the new version (5.1) we are also here, but the following file should not exist
72  // if being exported with 5.1 or higher
73  $xml_file = $this->getImportDirectory().'/'.basename($this->getImportDirectory()).'.xml';
74 
75  // old school import
76  // currently this means we got a container and mapping, too, since
77  // for single lms the processing in ilObjContentObjectGUI->importFileObject is used
78  // (this should be streamlined, see glossary)
79  if (file_exists($xml_file))
80  {
81  $newObj->setImportDirectory(dirname(rtrim($this->getImportDirectory(), '/')));
82  $mess = $newObj->importFromDirectory($this->getImportDirectory(), true, $a_mapping);
83  $this->log->debug("imported from directory ($mess)");
84  $a_mapping->addMapping("Modules/LearningModule", "lm", $a_id, $newObj->getId());
85  $a_mapping->addMapping("Services/Object", "obj", $a_id, $newObj->getId());
86  }
87  else // new import version (does mapping, too)
88  {
89  $this->log->debug("create ilDataSetIportParser instance");
90  include_once("./Services/DataSet/classes/class.ilDataSetImportParser.php");
91  $parser = new ilDataSetImportParser($a_entity, $this->getSchemaVersion(),
92  $a_xml, $this->ds, $a_mapping);
93  }
94 
95  // import qti stuff
96  $this->log->debug("import qti data");
97  $qti_file = $this->getImportDirectory().'/qti.xml';
98  $this->qtis = array();
99  if (is_file($qti_file))
100  {
101  include_once "./Services/QTI/classes/class.ilQTIParser.php";
102  include_once("./Modules/Test/classes/class.ilObjTest.php");
103  $qtiParser = new ilQTIParser ($qti_file,
104  IL_MO_VERIFY_QTI, 0, "");
105  $result = $qtiParser->startParsing ();
106  $founditems = & $qtiParser->getFoundItems ();
107  $testObj = new ilObjTest(0, true);
108  if (count($founditems) > 0)
109  {
110  $qtiParser = new ilQTIParser($qti_file, IL_MO_PARSE_QTI, 0, "");
111  $qtiParser->setTestObject($testObj);
112  $result = $qtiParser->startParsing();
113  $this->qtis = array_merge($this->qtis, $qtiParser->getImportMapping());
114  }
115  }
116  }
getSchemaVersion()
Get schema version.
$result
getImportDirectory()
Get import directory.
Manifest parser for ILIAS standard export files.
const IL_MO_PARSE_QTI
getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
const IL_MO_VERIFY_QTI
+ Here is the call graph for this function:

◆ init()

ilLearningModuleImporter::init ( )

Initialisation.

Definition at line 25 of file class.ilLearningModuleImporter.php.

References ilXmlImporter\getImport(), and ilLoggerFactory\getLogger().

26  {
27  include_once("./Modules/LearningModule/classes/class.ilLearningModuleDataSet.php");
28  $this->ds = new ilLearningModuleDataSet();
29  $this->ds->setDSPrefix("ds");
30 
31  $this->log = ilLoggerFactory::getLogger('lm');
32 
33  $this->config = $this->getImport()->getConfig("Modules/LearningModule");
34  if ($this->config->getTranslationImportMode())
35  {
36  $this->ds->setTranslationImportMode(
37  $this->config->getTranslationLM(),
38  $this->config->getTranslationLang());
39  $cop_config = $this->getImport()->getConfig("Services/COPage");
40  $cop_config->setUpdateIfExists(true);
41  $cop_config->setForceLanguage($this->config->getTranslationLang());
42  $cop_config->setReuseOriginallyExportedMedia(true);
43  $cop_config->setSkipInternalLinkResolve(true);
44 
45  $mob_config = $this->getImport()->getConfig("Services/MediaObjects");
46  $mob_config->setUsePreviousImportIds(true);
47  }
48  }
getImport()
Get import.
LearningModule Data set class.
static getLogger($a_component_id)
Get component logger.
+ Here is the call graph for this function:

Field Documentation

◆ $config

ilLearningModuleImporter::$config
protected

Definition at line 15 of file class.ilLearningModuleImporter.php.

◆ $log

ilLearningModuleImporter::$log
protected

Definition at line 20 of file class.ilLearningModuleImporter.php.


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