ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilHelpGUI.php
Go to the documentation of this file.
1<?php
2
3/* Copyright (c) 1998-2011 ILIAS open source, Extended GPL, see docs/LICENSE */
4
5include_once ("Services/Help/classes/class.ilHelp.php");
6
17{
18 var $help_sections = array();
19 const ID_PART_SCREEN = "screen";
20 const ID_PART_SUB_SCREEN = "sub_screen";
21 const ID_PART_COMPONENT = "component";
22 var $def_screen_id = array();
23 var $screen_id = array();
24
28 function ilHelpGUI()
29 {
30 global $ilCtrl;
31
32 $this->ctrl =& $ilCtrl;
33 }
34
41 function setDefaultScreenId($a_part, $a_id)
42 {
43 $this->def_screen_id[$a_part] = $a_id;
44 }
45
51 function setScreenId($a_id)
52 {
53 $this->screen_id[self::ID_PART_SCREEN] = $a_id;
54 }
55
61 function setSubScreenId($a_id)
62 {
63 $this->screen_id[self::ID_PART_SUB_SCREEN] = $a_id;
64 }
65
72 function setScreenIdComponent($a_comp)
73 {
74 $this->screen_id_component = $a_comp;
75 }
76
77
84 function getScreenId()
85 {
86 $comp = ($this->screen_id_component != "")
87 ? $this->screen_id_component
88 : $this->def_screen_id[self::ID_PART_COMPONENT];
89
90 if ($comp == "")
91 {
92 return "";
93 }
94
95 $scr_id = ($this->screen_id[self::ID_PART_SCREEN] != "")
96 ? $this->screen_id[self::ID_PART_SCREEN]
97 : $this->def_screen_id[self::ID_PART_SCREEN];
98
99 $sub_scr_id = ($this->screen_id[self::ID_PART_SUB_SCREEN] != "")
100 ? $this->screen_id[self::ID_PART_SUB_SCREEN]
101 : $this->def_screen_id[self::ID_PART_SUB_SCREEN];
102
103 $screen_id = $comp."/".
104 $scr_id."/".
105 $sub_scr_id;
106
107 return $screen_id;
108 }
109
110
117 function addHelpSection($a_help_id, $a_level = 1)
118 {
119 $this->help_sections[] = array("help_id" => $a_help_id, $a_level);
120 }
121
128 function hasSections()
129 {
130 global $ilSetting;
131
132 include_once("./Services/Help/classes/class.ilHelpMapping.php");
134 }
135
143 {
144 include_once("./Services/Help/classes/class.ilHelpMapping.php");
145 return ilHelpMapping::getHelpSectionsForId($this->getScreenId(), (int) $_GET["ref_id"]);
146 }
147
154 function setCtrlPar()
155 {
156 global $ilCtrl;
157
158 /*$h_ids = $sep = "";
159 foreach ($this->getHelpSections() as $hs)
160 {
161 $h_ids.= $sep.$hs;
162 $sep = ",";
163 }*/
164 $ilCtrl->setParameterByClass("ilhelpgui", "help_screen_id", $this->getScreenId().".".$_GET["ref_id"]);
165 }
166
167
171 function executeCommand()
172 {
173 $cmd = $this->ctrl->getCmd("showHelp");
174 $next_class = $this->ctrl->getNextClass($this);
175
176 switch($next_class)
177 {
178 default:
179 return $this->$cmd();
180 break;
181 }
182 }
183
187 function showHelp()
188 {
189 global $ilHelp, $lng, $ilSetting;
190
191 if ($_GET["help_screen_id"] != "")
192 {
193 ilSession::set("help_screen_id", $_GET["help_screen_id"]);
194 $help_screen_id = $_GET["help_screen_id"];
195 }
196 else
197 {
198 $help_screen_id = ilSession::get("help_screen_id");
199 }
200
201 ilSession::set("help_search_term", "");
202
203 $this->resetCurrentPage();
204
205 $id_arr = explode(".", $help_screen_id);
206 include_once("./Services/Help/classes/class.ilHelpMapping.php");
207 include_once("./Services/Help/classes/class.ilHelp.php");
208
209 $help_arr = ilHelpMapping::getHelpSectionsForId($id_arr[0], $id_arr[1]);
210 $oh_lm_id = ilHelp::getHelpLMId();
211
212 if ($oh_lm_id > 0 && count($help_arr) > 0)
213 {
214 include_once("./Services/Accordion/classes/class.ilAccordionGUI.php");
215 $acc = new ilAccordionGUI();
216 $acc->setId("oh_acc_".$h_id);
217 $acc->setUseSessionStorage(true);
218 $acc->setBehaviour(ilAccordionGUI::FIRST_OPEN);
219
220 foreach ($help_arr as $h_id)
221 {
222 include_once("./Modules/LearningModule/classes/class.ilLMObject.php");
223 $st_id = $h_id;
224
225 if (!ilLMObject::_exists($st_id))
226 {
227 continue;
228 }
229
230 $pages = ilLMObject::getPagesOfChapter($oh_lm_id, $st_id);
231 include_once("./Services/UIComponent/GroupedList/classes/class.ilGroupedListGUI.php");
232 $grp_list = new ilGroupedListGUI();
233 foreach ($pages as $pg)
234 {
235 $grp_list->addEntry(ilLMObject::_lookupTitle($pg["child"]), "#", "",
236 "return il.Help.showPage(".$pg["child"].");");
237 }
238
239 $acc->addItem(ilLMObject::_lookupTitle($st_id), $grp_list->getHTML());
240 }
241 $h_tpl = new ilTemplate("tpl.help.html", true, true, "Services/Help");
242 $h_tpl->setVariable("HEAD", $lng->txt("help"));
243
244 $h_tpl->setCurrentBlock("search");
245 include_once("./Services/UIComponent/Glyph/classes/class.ilGlyphGUI.php");
246 $h_tpl->setVariable("GL_SEARCH", ilGlyphGUI::get(ilGlyphGUI::SEARCH));
247 $h_tpl->parseCurrentBlock();
248
249 $h_tpl->setVariable("CONTENT", $acc->getHTML());
250 include_once("./Services/UIComponent/Glyph/classes/class.ilGlyphGUI.php");
251 $h_tpl->setVariable("CLOSE_IMG", ilGlyphGUI::get(ilGlyphGUI::CLOSE));
252 echo $h_tpl->get();
253 }
254 exit;
255 }
256
263 function showPage()
264 {
265 global $lng;
266
267 $page_id = (int) $_GET["help_page"];
268
269 $h_tpl = new ilTemplate("tpl.help.html", true, true, "Services/Help");
270 include_once("./Modules/LearningModule/classes/class.ilLMObject.php");
271
272
273 $h_tpl->setCurrentBlock("backlink");
274 $h_tpl->setVariable("TXT_BACK", $lng->txt("back"));
275 if (($t =ilSession::get("help_search_term")) != "")
276 {
277 $h_tpl->setVariable("ONCLICK_BACK",
278 "return il.Help.search('".ilUtil::prepareFormOutput($t)."');");
279 }
280 else
281 {
282 $h_tpl->setVariable("ONCLICK_BACK",
283 "return il.Help.listHelp(event, true);");
284 }
285 $h_tpl->parseCurrentBlock();
286
287
288 $h_tpl->setVariable("HEAD", $lng->txt("help")." - ".
289 ilLMObject::_lookupTitle($page_id));
290
291 include_once("./Services/COPage/classes/class.ilPageUtil.php");
292 if (!ilPageUtil::_existsAndNotEmpty("lm", $page_id))
293 {
294 exit;
295 }
296 include_once("./Services/COPage/classes/class.ilPageObject.php");
297 include_once("./Services/COPage/classes/class.ilPageObjectGUI.php");
298
299 // get page object
300 include_once("./Modules/LearningModule/classes/class.ilObjContentObject.php");
301 include_once("./Modules/LearningModule/classes/class.ilLMPageGUI.php");
302 $page_gui = new ilLMPageGUI($page_id);
303 $cfg = $page_gui->getPageConfig();
304 $page_gui->setPresentationTitle("");
305 $page_gui->setTemplateOutput(false);
306 $page_gui->setHeader("");
307 $page_gui->setRawPageContent(true);
308 $cfg->setEnablePCType("Map", false);
309 $cfg->setEnablePCType("Tabs", false);
310 $cfg->setEnablePCType("FileList", false);
311
312 $page_gui->getPageObject()->buildDom();
313 $int_links = $page_gui->getPageObject()->getInternalLinks();
314 $link_xml = $this->getLinkXML($int_links);
315 $link_xml.= $this->getLinkTargetsXML();
316//echo htmlentities($link_xml);
317 $page_gui->setLinkXML($link_xml);
318
319 $ret = $page_gui->showPage();
320
321 $h_tpl->setVariable("CONTENT", $ret);
322 include_once("./Services/UIComponent/Glyph/classes/class.ilGlyphGUI.php");
323 $h_tpl->setVariable("CLOSE_IMG", ilGlyphGUI::get(ilGlyphGUI::CLOSE));
324
325 ilSession::set("help_pg", $page_id);
326
327 $page = $h_tpl->get();
328
329 // replace style classes
330 //$page = str_replace("ilc_text_inline_Strong", "ilHelpStrong", $page);
331
332 echo $page;
333 exit;
334 }
335
343 {
344 ilSession::clear("help_pg");
345 }
346
347
354 function getTabTooltipText($a_tab_id)
355 {
356 global $lng;
357
358 include_once("./Services/Help/classes/class.ilHelp.php");
359 if ($this->screen_id_component != "")
360 {
361 return ilHelp::getTooltipPresentationText($this->screen_id_component."_".$a_tab_id);
362 //return $lng->txt("help_tt_".$this->screen_id_component."_".$a_tab_id);
363 }
364 return "";
365 }
366
373 function initHelp($a_tpl)
374 {
375 global $ilUser, $ilSetting;
376
377 $module_id = (int) $ilSetting->get("help_module");
378
379 if ((OH_REF_ID > 0 || $module_id > 0) && $ilUser->getLanguage() == "de")
380 {
381 if (ilSession::get("help_pg") > 0)
382 {
383 $a_tpl->addOnLoadCode("il.Help.showCurrentPage(".ilSession::get("help_pg").");", 3);
384 }
385 if ($ilUser->getPref("hide_help_tt"))
386 {
387 $a_tpl->addJavascript("./Services/Help/js/ilHelp.js");
388 $a_tpl->addOnLoadCode("if (il && il.Help) {il.Help.switchTooltips();}", 3);
389 }
390 }
391 }
392
400 {
401 global $ilUser;
402
403 $ilUser->writePref("hide_help_tt", "1");
404 }
405
413 {
414 global $ilUser;
415
416 $ilUser->writePref("hide_help_tt", "0");
417 }
418
422 function getLinkXML($a_int_links)
423 {
424 global $ilCtrl;
425
426 $link_info = "<IntLinkInfos>";
427 foreach ($a_int_links as $int_link)
428 {
429 $target = $int_link["Target"];
430 if (substr($target, 0, 4) == "il__")
431 {
432 $target_arr = explode("_", $target);
433 $target_id = $target_arr[count($target_arr) - 1];
434 $type = $int_link["Type"];
435 $targetframe = "None";
436
437 // anchor
438 $anc = $anc_add = "";
439 if ($int_link["Anchor"] != "")
440 {
441 $anc = $int_link["Anchor"];
442 $anc_add = "_".rawurlencode($int_link["Anchor"]);
443 }
444
445 switch($type)
446 {
447 case "PageObject":
448 case "StructureObject":
449 if ($type == "PageObject")
450 {
451 $href = "#pg_".$target_id;
452 }
453 else
454 {
455 $href = "#";
456 }
457 break;
458
459 }
460
461 $link_info.="<IntLinkInfo Target=\"$target\" Type=\"$type\" ".
462 "TargetFrame=\"$targetframe\" LinkHref=\"$href\" LinkTarget=\"\" Anchor=\"\"/>";
463 }
464 }
465 $link_info.= "</IntLinkInfos>";
466
467 return $link_info;
468 }
469
474 {
475 $link_info = "<LinkTargets>";
476 $link_info.="<LinkTarget TargetFrame=\"None\" LinkTarget=\"\" OnClick=\"return il.Help.openLink(event);\" />";
477 $link_info.= "</LinkTargets>";
478 return $link_info;
479 }
480
487 function search()
488 {
489 global $lng;
490
491 $term = $_GET["term"];
492
493 if ($term == "")
494 {
495 $term = ilSession::get("help_search_term");
496 }
497
498 $this->resetCurrentPage();
499
500 $h_tpl = new ilTemplate("tpl.help.html", true, true, "Services/Help");
501 include_once("./Modules/LearningModule/classes/class.ilLMObject.php");
502
503 $h_tpl->setCurrentBlock("backlink");
504 $h_tpl->setVariable("TXT_BACK", $lng->txt("back"));
505 $h_tpl->setVariable("ONCLICK_BACK",
506 "return il.Help.listHelp(event, true);");
507 $h_tpl->parseCurrentBlock();
508
509
510 $h_tpl->setVariable("HEAD", $lng->txt("help")." - ".
511 $lng->txt("search_result"));
512
513 $h_tpl->setCurrentBlock("search");
514 include_once("./Services/UIComponent/Glyph/classes/class.ilGlyphGUI.php");
515 $h_tpl->setVariable("GL_SEARCH", ilGlyphGUI::get(ilGlyphGUI::SEARCH));
516 $h_tpl->setVariable("VAL_SEARCH", ilUtil::prepareFormOutput($term));
517 $h_tpl->parseCurrentBlock();
518
519 include_once("./Services/UIComponent/Glyph/classes/class.ilGlyphGUI.php");
520 $h_tpl->setVariable("CLOSE_IMG", ilGlyphGUI::get(ilGlyphGUI::CLOSE));
521
522 $lm_id = ilHelp::getHelpLMId();
523 include_once("./Services/Search/classes/class.ilRepositoryObjectDetailSearch.php");
524 $s = new ilRepositoryObjectDetailSearch($lm_id);
525 $s->setQueryString($term);
526 $result = $s->performSearch();
527
528 include_once("./Services/UIComponent/GroupedList/classes/class.ilGroupedListGUI.php");
529 $grp_list = new ilGroupedListGUI();
530 foreach ($result->getResults() as $r)
531 {
532 $grp_list->addEntry(ilLMObject::_lookupTitle($r["item_id"]), "#", "",
533 "return il.Help.showPage(".$r["item_id"].");");
534 }
535 $h_tpl->setVariable("CONTENT", $grp_list->getHTML());
536
537 ilSession::set("help_search_term", $term);
538
539 echo $h_tpl->get();;
540 exit;
541 }
542
543}
544?>
$result
$_GET["client_id"]
Accordion user interface class.
static get($a_glyph, $a_text="")
Get glyph html.
Grouped list GUI class.
Help GUI class.
hasSections()
Has sections?
addHelpSection($a_help_id, $a_level=1)
Add help section.
getLinkXML($a_int_links)
get xml for links
showHelp()
Show online help.
const ID_PART_COMPONENT
getHelpSections()
Get help sections.
getTabTooltipText($a_tab_id)
Get tab tooltip text.
getLinkTargetsXML()
Get XMl for Link Targets.
setDefaultScreenId($a_part, $a_id)
Set default screen id.
initHelp($a_tpl)
Render current help page.
setCtrlPar()
Get help section url parameter.
deactivateTooltips()
Deactivate tooltips.
executeCommand()
execute command
const ID_PART_SCREEN
ilHelpGUI()
constructor
const ID_PART_SUB_SCREEN
getScreenId()
Get screen id.
showPage()
Show page.
search()
Search.
resetCurrentPage()
Hide help.
setSubScreenId($a_id)
Set sub screen id.
setScreenId($a_id)
Set screen id.
activateTooltips()
Activate tooltips.
setScreenIdComponent($a_comp)
Set screen id component.
static getHelpSectionsForId($a_screen_id, $a_ref_id)
Get help sections for screen id.
hasScreenIdSections($a_screen_id)
Has given screen Id any sections?
static getTooltipPresentationText($a_tt_id)
Get tooltip for id.
static getHelpLMId()
Get help lm id.
_exists($a_id)
checks wether a lm content object with specified id exists or not
static getPagesOfChapter($a_lm_id, $a_chap_id)
Get pages of chapter.
static _lookupTitle($a_obj_id)
Lookup title.
Extension of ilPageObjectGUI for learning modules.
_existsAndNotEmpty($a_parent_type, $a_id, $a_lang="-")
checks whether page exists and is not empty (may return true on some empty pages)
static set($a_var, $a_val)
Set a value.
static clear($a_var)
Unset a value.
static get($a_var)
Get a value.
special template class to simplify handling of ITX/PEAR
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms @access public
$r
Definition: example_031.php:79
$target_id
Definition: goto.php:88
$target_arr
Definition: goto.php:86
global $ilCtrl
Definition: ilias.php:18
exit
Definition: login.php:54
global $lng
Definition: privfeed.php:40
global $ilSetting
Definition: privfeed.php:40
$cmd
Definition: sahs_server.php:35
global $ilUser
Definition: imgupload.php:15