1<?php 2/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */ 3 4include_once("./Services/Export/classes/class.ilXmlImporter.php"); 5 6/** 7 * Importer class for media pools 8 * 9 * @author Alex Killing <alex.killing@gmx.de> 10 * @version $Id: $ 11 * @ingroup ModulesMediaPool 12 */ 13class ilMediaPoolImporter extends ilXmlImporter 14{ 15 16 /** 17 * Initialisation 18 */ 19 public function init() 20 { 21 include_once("./Modules/MediaPool/classes/class.ilMediaPoolDataSet.php"); 22 $this->ds = new ilMediaPoolDataSet(); 23 $this->ds->setDSPrefix("ds"); 24 25 $this->config = $this->getImport()->getConfig("Modules/MediaPool"); 26 if ($this->config->getTranslationImportMode()) { 27 $this->ds->setTranslationImportMode( 28 $this->config->getTranslationLM(), 29 $this->config->getTranslationLang() 30 ); 31 $cop_config = $this->getImport()->getConfig("Services/COPage"); 32 $cop_config->setUpdateIfExists(true); 33 $cop_config->setForceLanguage($this->config->getTranslationLang()); 34 $cop_config->setReuseOriginallyExportedMedia(true); 35 $cop_config->setSkipInternalLinkResolve(true); 36 37 $mob_config = $this->getImport()->getConfig("Services/MediaObjects"); 38 $mob_config->setUsePreviousImportIds(true); 39 } 40 } 41 42 43 /** 44 * Import XML 45 * 46 * @param 47 * @return 48 */ 49 public function importXmlRepresentation($a_entity, $a_id, $a_xml, $a_mapping) 50 { 51 include_once("./Services/DataSet/classes/class.ilDataSetImportParser.php"); 52 $parser = new ilDataSetImportParser( 53 $a_entity, 54 $this->getSchemaVersion(), 55 $a_xml, 56 $this->ds, 57 $a_mapping 58 ); 59 } 60 61 /** 62 * Final processing 63 * 64 * @param array mapping array 65 */ 66 public function finalProcessing($a_mapping) 67 { 68 $pg_map = $a_mapping->getMappingsOfEntity("Modules/MediaPool", "pg"); 69 70 include_once("./Modules/MediaPool/classes/class.ilMediaPoolPage.php"); 71 include_once("./Modules/MediaPool/classes/class.ilMediaPoolItem.php"); 72 foreach ($pg_map as $pg_id) { 73 $mep_id = ilMediaPoolItem::getPoolForItemId($pg_id); 74 $mep_id = current($mep_id); 75 ilMediaPoolPage::_writeParentId("mep", $pg_id, $mep_id); 76 } 77 } 78} 79