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