-
Notifications
You must be signed in to change notification settings - Fork 0
/
class.Import.php
103 lines (92 loc) · 3.28 KB
/
class.Import.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?php
/**
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; under version 2
* of the License (non-upgradable).
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* Copyright (c) 2002-2008 (original work) Public Research Centre Henri Tudor & University of Luxembourg (under the project TAO & TAO2);
* 2008-2010 (update and modification) Deutsche Institut für Internationale Pädagogische Forschung (under the project TAO-TRANSFER);
* 2009-2012 (update and modification) Public Research Centre Henri Tudor (under the project TAO-SUSTAIN & TAO-DEV);
*
*/
/**
* This controller provide the actions to import resources
*
* @author CRP Henri Tudor - TAO Team - {@link http://www.tao.lu}
* @license GPLv2 http://www.opensource.org/licenses/gpl-2.0.php
* @package tao
*
*/
class tao_actions_Import extends tao_actions_CommonModule {
/**
* initialize the classUri and execute the upload action
* @return void
*/
public function index(){
$importer = $this->getCurrentImporter();
$formContainer = new tao_actions_form_Import(
$importer,
$this->getAvailableImportHandlers(),
$this->getCurrentClass()
);
$myForm = $formContainer->getForm();
//if the form is submited and valid
if($myForm->isSubmited()){
if($myForm->isValid()){
$report = $importer->import($this->getCurrentClass(), $myForm);
return $this->returnReport($report);
}
}
$this->setData('myForm', $myForm->render());
$this->setData('formTitle', __('Import '));
$this->setView('form/import.tpl', 'tao');
}
/**
* Returns the currently selecte importhandler
* or the importhandler to use by default
*
* @return tao_models_classes_import_ImportHandler
*/
private function getCurrentImporter() {
if ($this->hasRequestParameter('importHandler')) {
//$importHandlerClass = $this->getRequestParameter('importHandler');
$importHandlerClass = $_POST['importHandler'];
foreach ($this->getAvailableImportHandlers() as $importHandler) {
if (get_class($importHandler) == $importHandlerClass) {
return $importHandler;
}
}
}
return current($this->getAvailableImportHandlers());
}
/**
* Gets the available import handlers for this module
* Should be overwritten by extensions that want to provide
* additional Importhandlers
*/
protected function getAvailableImportHandlers() {
return array(
new tao_models_classes_import_RdfImporter(),
new tao_models_classes_import_CsvImporter()
);
}
/**
* Helper to get the selected class, needs to be passed as hidden field in the form
*/
protected function getCurrentClass() {
return new core_kernel_classes_Class(tao_helpers_Uri::decode($this->getRequestParameter('classUri')));
}
protected function getValidators(){
return array();
}
}