ILIAS  release_4-3 Revision
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilNavigationHistoryGUI.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
4 
14 {
15 
16  private $items;
17 
22  public function __construct()
23  {
24  }
25 
29  function executeCommand()
30  {
31  global $ilCtrl;
32 
33  $next_class = $ilCtrl->getNextClass();
34  $cmd = $ilCtrl->getCmd();
35 
36  switch($next_class)
37  {
38  default:
39  $this->$cmd();
40  break;
41  }
42  }
43 
47  function getHTML()
48  {
49  global $ilNavigationHistory, $lng;
50 
51  include_once("./Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php");
52  $selection = new ilAdvancedSelectionListGUI();
53  $selection->setFormSelectMode("url_ref_id", "ilNavHistorySelect", true,
54  "goto.php?target=navi_request", "ilNavHistory", "ilNavHistoryForm",
55  "_top", $lng->txt("go"), "ilNavHistorySubmit");
56  $selection->setListTitle($lng->txt("last_visited"));
57  $selection->setId("lastvisited");
58  $selection->setSelectionHeaderClass("MMInactive");
59  $selection->setHeaderIcon(ilAdvancedSelectionListGUI::NO_ICON);
60  $selection->setItemLinkClass("small");
61  $selection->setUseImages(true);
62  include_once("./Services/Accessibility/classes/class.ilAccessKey.php");
63  $selection->setAccessKey(ilAccessKey::LAST_VISITED);
64 
65  $items = $ilNavigationHistory->getItems();
66  //$sel_arr = array(0 => "-- ".$lng->txt("last_visited")." --");
67  reset($items);
68  $cnt = 0;
69  foreach($items as $k => $item)
70  {
71  if ($cnt++ > 20) break;
72  if (!isset($item["ref_id"]) || !isset($_GET["ref_id"]) ||
73  $item["ref_id"] != $_GET["ref_id"] || $k > 0) // do not list current item
74  {
75  $obj_id = ilObject::_lookupObjId($item["ref_id"]);
76  $selection->addItem($item["title"], $item["ref_id"], $item["link"],
77  ilObject::_getIcon($obj_id, "tiny", $item["type"]),
78  $lng->txt("obj_".$item["type"]), "_top");
79  }
80  }
81  $html = $selection->getHTML();
82 
83  if ($html == "")
84  {
85  $selection->addItem($lng->txt("no_items"), "", "#",
86  "", "", "_top");
87  $selection->setUseImages(false);
88  $html = $selection->getHTML();
89  }
90  return $html;
91  }
92 
97  {
98  global $ilNavigationHistory, $ilCtrl;
99 
100  if ($_GET["target"] == "navi_request")
101  {
102  $items = $ilNavigationHistory->getItems();
103  foreach($items as $item)
104  {
105  if ($item["ref_id"] == $_POST["url_ref_id"])
106  {
107  ilUtil::redirect($item["link"]);
108  }
109  }
110  reset($items);
111  $item = current($items);
112  if ($_POST["url_ref_id"] == 0 && $item["ref_id"] == $_GET["ref_id"])
113  {
114  $item = next($items); // omit current item
115  }
116  if ($_POST["url_ref_id"] == 0 && $item["link"] != "")
117  {
118  ilUtil::redirect($item["link"]);
119  }
120 
121  $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", "");
122  $ilCtrl->setParameterByClass("ilrepositorygui", "getlast", "true");
123  $ilCtrl->redirectByClass("ilrepositorygui", "frameset");
124  }
125  }
126 
133  function removeEntries()
134  {
135  global $ilNavigationHistory;
136 
137  $ilNavigationHistory->deleteDBEntries();
138  $ilNavigationHistory->deleteSessionEntries();
139  }
140 
141 }
142 ?>