ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
class.ilObjHelpSettings.php
Go to the documentation of this file.
1<?php
2
3/* Copyright (c) 1998-2012 ILIAS open source, Extended GPL, see docs/LICENSE */
4
5require_once "./Services/Object/classes/class.ilObject2.php";
6
16{
20 function initType()
21 {
22 $this->type = "hlps";
23 }
24
31 static function createHelpModule()
32 {
33 global $ilDB;
34
35 $id = $ilDB->nextId("help_module");
36
37 $ilDB->manipulate("INSERT INTO help_module ".
38 "(id) VALUES (".
39 $ilDB->quote($id, "integer").
40 ")");
41
42 return $id;
43 }
44
51 static function writeHelpModuleLmId($a_id, $a_lm_id)
52 {
53 global $ilDB;
54
55 $ilDB->manipulate("UPDATE help_module SET ".
56 " lm_id = ".$ilDB->quote($a_lm_id, "integer").
57 " WHERE id = ".$ilDB->quote($a_id, "integer")
58 );
59 }
60
61
68 function uploadHelpModule($a_file)
69 {
70 $id = $this->createHelpModule();
71
72 // create and insert object in objecttree
73 /*include_once("./Modules/LearningModule/classes/class.ilObjContentObject.php");
74 $newObj = new ilObjContentObject();
75 $newObj->setType("lm");
76 $newObj->setTitle("Help Module");
77 $newObj->create(true);
78 $newObj->createLMTree();*/
79
80 try
81 {
82 include_once("./Services/Export/classes/class.ilImport.php");
83 $imp = new ilImport();
84 $conf = $imp->getConfig("Services/Help");
85 $conf->setModuleId($id);
86 $new_id = $imp->importObject("", $a_file["tmp_name"], $a_file["name"], "lm", "Modules/LearningModule");
87 $newObj = new ilObjLearningModule($new_id, false);
88
89 self::writeHelpModuleLmId($id, $newObj->getId());
90 }
92 {
93 // old import
94 $t = $imp->getTemporaryImportDir();
95
96 // create and insert object in objecttree
97 include_once("./Modules/LearningModule/classes/class.ilObjContentObject.php");
98 $newObj = new ilObjContentObject();
99 $newObj->setType("lm");
100 $newObj->setTitle("Help Module");
101 $newObj->create(true);
102 $newObj->createLMTree();
103
104 $mess = $newObj->importFromDirectory($t, false);
105
106 // this should only be true for help modules
107 // search the zip file
108 $dir = $t;
109 $files = ilUtil::getDir($dir);
110 foreach ($files as $file)
111 {
112 if (is_int(strpos($file["entry"], "__help_")) &&
113 is_int(strpos($file["entry"], ".zip")))
114 {
115 include_once("./Services/Export/classes/class.ilImport.php");
116 $imp = new ilImport();
117 $imp->getMapping()->addMapping('Services/Help', 'help_module', 0, $id);
118 include_once("./Modules/LearningModule/classes/class.ilLMObject.php");
119 $chaps = ilLMObject::getObjectList($newObj->getId(), "st");
120 foreach ($chaps as $chap)
121 {
122 $chap_arr = explode("_", $chap["import_id"]);
123 $imp->getMapping()->addMapping('Services/Help', 'help_chap',
124 $chap_arr[count($chap_arr) - 1], $chap["obj_id"]);
125 }
126 $imp->importEntity($dir."/".$file["entry"], $file["entry"],
127 "help", "Services/Help", true);
128 }
129 }
130
131 // delete import directory
133
134 self::writeHelpModuleLmId($id, $newObj->getId());
135 }
136
137
138 $GLOBALS['ilAppEventHandler']->raise(
139 'Services/Help',
140 'create',
141 array(
142 'obj_id' => $id,
143 'obj_type' => 'lm'
144 )
145 );
146 }
147
154 function getHelpModules()
155 {
156 global $ilDB;
157
158 $set = $ilDB->query("SELECT * FROM help_module");
159
160 $mods = array();
161 while ($rec = $ilDB->fetchAssoc($set))
162 {
163 if (ilObject::_lookupType($rec["lm_id"]) == "lm")
164 {
165 $rec["title"] = ilObject::_lookupTitle($rec["lm_id"]);
166 $rec["create_date"] = ilObject::_lookupCreationDate($rec["lm_id"]);
167 }
168
169 $mods[] = $rec;
170 }
171
172 return $mods;
173 }
174
181 static function lookupModuleTitle($a_id)
182 {
183 global $ilDB;
184
185 $set = $ilDB->query("SELECT * FROM help_module ".
186 " WHERE id = ".$ilDB->quote($a_id, "integer")
187 );
188 $rec = $ilDB->fetchAssoc($set);
189 if (ilObject::_lookupType($rec["lm_id"]) == "lm")
190 {
191 return ilObject::_lookupTitle($rec["lm_id"]);
192 }
193 return "";
194 }
195
202 static function lookupModuleLmId($a_id)
203 {
204 global $ilDB;
205
206 $set = $ilDB->query("SELECT lm_id FROM help_module ".
207 " WHERE id = ".$ilDB->quote($a_id, "integer")
208 );
209 $rec = $ilDB->fetchAssoc($set);
210 return $rec["lm_id"];
211 }
212
219 function deleteModule($a_id)
220 {
221 global $ilDB, $ilSetting;
222
223 // if this is the currently activated one, deactivate it first
224 if ($a_id == (int) $ilSetting->get("help_module"))
225 {
226 $ilSetting->set("help_module", "");
227 }
228
229 $set = $ilDB->query("SELECT * FROM help_module ".
230 " WHERE id = ".$ilDB->quote($a_id, "integer")
231 );
232 $rec = $ilDB->fetchAssoc($set);
233
234 // delete learning module
235 if (ilObject::_lookupType($rec["lm_id"]) == "lm")
236 {
237 include_once("./Modules/LearningModule/classes/class.ilObjLearningModule.php");
238 $lm = new ilObjLearningModule($rec["lm_id"], false);
239 $lm->delete();
240 }
241
242 // delete mappings
243 include_once("./Services/Help/classes/class.ilHelpMapping.php");
245
246 // delete tooltips
247 include_once("./Services/Help/classes/class.ilHelp.php");
249
250 // delete help module record
251 $ilDB->manipulate("DELETE FROM help_module WHERE ".
252 " id = ".$ilDB->quote($a_id, "integer"));
253
254 }
255
262 static function isHelpLM($a_lm_id)
263 {
264 global $ilDB;
265
266 $set = $ilDB->query("SELECT id FROM help_module ".
267 " WHERE lm_id = ".$ilDB->quote($a_lm_id, "integer")
268 );
269 if ($rec = $ilDB->fetchAssoc($set))
270 {
271 return true;
272 }
273 return false;
274 }
275
276}
277?>
$files
Definition: add-vimline.php:18
An exception for terminatinating execution or to throw for unit testing.
static deleteEntriesOfModule($a_id)
Delete entries of module.
static deleteTooltipsOfModule($a_id)
Delete tooltips of module.
Import class.
static getObjectList($lm_id, $type="")
static
manifest.xml file not found-exception for import
Class ilObjContentObject.
Help settings application class.
getHelpModules()
Get help modules.
deleteModule($a_id)
Delete module.
static lookupModuleLmId($a_id)
lookup module lm id
static createHelpModule()
Create help module.
uploadHelpModule($a_file)
Upload help file.
static writeHelpModuleLmId($a_id, $a_lm_id)
Write help module lm id.
static lookupModuleTitle($a_id)
lookup module title
static isHelpLM($a_lm_id)
Check if LM is a help LM.
Class ilObjLearningModule.
Class ilObject2 This is an intermediate progress of ilObject class.
static _lookupTitle($a_id)
lookup object title
static _lookupCreationDate($a_id)
Lookup creation date.
static _lookupType($a_id, $a_reference=false)
lookup object type
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
static getDir($a_dir, $a_rec=false, $a_sub_dir="")
get directory
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
global $ilSetting
Definition: privfeed.php:17
if(!file_exists("$old.txt")) if( $old===$new) if(file_exists("$new.txt")) $file
global $ilDB