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 
5 require_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
Class ilObjLearningModule.
static deleteEntriesOfModule($a_id)
Delete entries of module.
deleteModule($a_id)
Delete module.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
static getDir($a_dir, $a_rec=false, $a_sub_dir="")
get directory
Import class.
static _lookupTitle($a_id)
lookup object title
static isHelpLM($a_lm_id)
Check if LM is a help LM.
static deleteTooltipsOfModule($a_id)
Delete tooltips of module.
static lookupModuleTitle($a_id)
lookup module title
Help settings application class.
static writeHelpModuleLmId($a_id, $a_lm_id)
Write help module lm id.
static _lookupCreationDate($a_id)
Lookup creation date.
uploadHelpModule($a_file)
Upload help file.
manifest.xml file not found-exception for import
Create styles array
The data for the language used.
static _lookupType($a_id, $a_reference=false)
lookup object type
getHelpModules()
Get help modules.
static lookupModuleLmId($a_id)
lookup module lm id
global $ilSetting
Definition: privfeed.php:17
global $ilDB
Class ilObject2 This is an intermediate progress of ilObject class.
static createHelpModule()
Create help module.
if(!file_exists("$old.txt")) if($old===$new) if(file_exists("$new.txt")) $file
Class ilObjContentObject.
static getObjectList($lm_id, $type="")
static
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively