ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilContainerSessionsContentGUI.php
Go to the documentation of this file.
1<?php
2/*
3 +-----------------------------------------------------------------------------+
4 | ILIAS open source |
5 +-----------------------------------------------------------------------------+
6 | Copyright (c) 1998-2008 ILIAS open source, University of Cologne |
7 | |
8 | This program is free software; you can redistribute it and/or |
9 | modify it under the terms of the GNU General Public License |
10 | as published by the Free Software Foundation; either version 2 |
11 | of the License, or (at your option) any later version. |
12 | |
13 | This program is distributed in the hope that it will be useful, |
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | GNU General Public License for more details. |
17 | |
18 | You should have received a copy of the GNU General Public License |
19 | along with this program; if not, write to the Free Software |
20 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
21 +-----------------------------------------------------------------------------+
22*/
23
24include_once("./Services/Container/classes/class.ilContainerContentGUI.php");
25
34{
38 protected $tabs;
39
40 protected $force_details = array();
41
46 public function __construct($container_gui_obj)
47 {
48 global $DIC;
49
50 $this->tabs = $DIC->tabs();
51 $this->user = $DIC->user();
52 $this->ctrl = $DIC->ctrl();
53 $lng = $DIC->language();
54
55 parent::__construct($container_gui_obj);
56 $this->lng = $lng;
57 $this->initDetails();
58 }
59
60
68 public function getDetailsLevel($a_session_id)
69 {
70 if ($this->getContainerGUI()->isActiveAdministrationPanel()) {
72 }
73 if (isset($_SESSION['sess']['expanded'][$a_session_id])) {
74 return $_SESSION['sess']['expanded'][$a_session_id];
75 }
76 if (in_array($a_session_id, $this->force_details)) {
77 return self::DETAILS_ALL;
78 } else {
80 }
81 }
82
83
87 public function getMainContent()
88 {
90 $ilTabs = $this->tabs;
91
92 // see bug #7452
93 // $ilTabs->setSubTabActive($this->getContainerObject()->getType().'_content');
94
95
96 include_once 'Services/Object/classes/class.ilObjectListGUIFactory.php';
97
98 $tpl = new ilTemplate(
99 "tpl.container_page.html",
100 true,
101 true,
102 "Services/Container"
103 );
104
105 $this->__showMaterials($tpl);
106
107 return $tpl->get();
108 }
109
113 public function __showMaterials($a_tpl)
114 {
116
117 $this->items = $this->getContainerObject()->getSubItems($this->getContainerGUI()->isActiveAdministrationPanel());
119
120 $this->initRenderer();
121
122 $output_html = $this->getContainerGUI()->getContainerPageHTML();
123
124 // get embedded blocks
125 if ($output_html != "") {
126 $output_html = $this->insertPageEmbeddedBlocks($output_html);
127 }
128
129 if (is_array($this->items["sess"]) ||
130 $this->items['sess_link']['prev']['value'] ||
131 $this->items['sess_link']['next']['value']) {
132 $this->items['sess'] = ilUtil::sortArray($this->items['sess'], 'start', 'asc', true, false);
133
134 if ($this->items['sess_link']['prev']['value']) {
135 $prefix = $this->renderSessionLimitLink(true);
136 }
137 if ($this->items['sess_link']['next']['value']) {
138 $postfix = $this->renderSessionLimitLink(false);
139 }
140
141 $this->renderer->addTypeBlock("sess", $prefix, $postfix);
142 $this->renderer->setBlockPosition("sess", 1);
143
144 $position = 1;
145
146 foreach ($this->items["sess"] as $item_data) {
147 if (!$this->renderer->hasItem($item_data["child"])) {
148 $html = $this->renderItem($item_data, $position++, true);
149 if ($html != "") {
150 $this->renderer->addItemToBlock("sess", $item_data["type"], $item_data["child"], $html);
151 }
152 }
153 }
154 }
155
156 $pos = $this->getItemGroupsHTML(1);
157
158 if (is_array($this->items["_all"])) {
159 $this->renderer->addCustomBlock("_all", $lng->txt("content"));
160 $this->renderer->setBlockPosition("_all", ++$pos);
161
162 $position = 1;
163
164 foreach ($this->items["_all"] as $item_data) {
165 // #14599
166 if ($item_data["type"] == "sess" || $item_data["type"] == "itgr") {
167 continue;
168 }
169
170 if (!$this->renderer->hasItem($item_data["child"])) {
171 $html = $this->renderItem($item_data, $position++, true);
172 if ($html != "") {
173 $this->renderer->addItemToBlock("_all", $item_data["type"], $item_data["child"], $html);
174 }
175 }
176 }
177 }
178
179 $output_html .= $this->renderer->getHTML();
180
181 $a_tpl->setVariable("CONTAINER_PAGE_CONTENT", $output_html);
182 }
183
188 protected function renderSessionLimitLink($a_previous = true)
189 {
193
194 $lng->loadLanguageModule('crs');
195
196 $tpl = new ilTemplate(
197 'tpl.container_list_item.html',
198 true,
199 true,
200 "Services/Container"
201 );
202 $tpl->setVariable('DIV_CLASS', 'ilContainerListItemOuter');
203 $tpl->setCurrentBlock('item_title_linked');
204
205 if ($a_previous) {
206 $prefp = $ilUser->getPref('crs_sess_show_prev_' . $this->getContainerObject()->getId());
207
208 if ($prefp) {
209 $tpl->setVariable('TXT_TITLE_LINKED', $lng->txt('crs_link_hide_prev_sessions'));
210 $ilCtrl->setParameterByClass(get_class($this->getContainerGUI()), 'crs_prev_sess', (int) !$prefp);
211 $tpl->setVariable('HREF_TITLE_LINKED', $ilCtrl->getLinkTargetByClass(get_class($this->getContainerGUI())));
212 $ilCtrl->clearParametersByClass(get_class($this->getContainerGUI()));
213 } else {
214 $tpl->setVariable('TXT_TITLE_LINKED', $lng->txt('crs_link_show_all_prev_sessions'));
215 $ilCtrl->setParameterByClass(get_class($this->getContainerGUI()), 'crs_prev_sess', (int) !$prefp);
216 $tpl->setVariable('HREF_TITLE_LINKED', $ilCtrl->getLinkTargetByClass(get_class($this->getContainerGUI())));
217 $ilCtrl->clearParametersByClass(get_class($this->getContainerGUI()));
218 }
219 } else {
220 $prefn = $ilUser->getPref('crs_sess_show_next_' . $this->getContainerObject()->getId());
221
222 if ($prefn) {
223 $tpl->setVariable('TXT_TITLE_LINKED', $lng->txt('crs_link_hide_next_sessions'));
224 $ilCtrl->setParameterByClass(get_class($this->getContainerGUI()), 'crs_next_sess', (int) !$prefn);
225 $tpl->setVariable('HREF_TITLE_LINKED', $ilCtrl->getLinkTargetByClass(get_class($this->getContainerGUI())));
226 $ilCtrl->clearParametersByClass(get_class($this->getContainerGUI()));
227 } else {
228 $tpl->setVariable('TXT_TITLE_LINKED', $lng->txt('crs_link_show_all_next_sessions'));
229 $ilCtrl->setParameterByClass(get_class($this->getContainerGUI()), 'crs_next_sess', (int) !$prefn);
230 $tpl->setVariable('HREF_TITLE_LINKED', $ilCtrl->getLinkTargetByClass(get_class($this->getContainerGUI())));
231 $ilCtrl->clearParametersByClass(get_class($this->getContainerGUI()));
232 }
233 }
234 $tpl->parseCurrentBlock();
235
236 return $tpl->get();
237 }
238
239
247 public function addFooterRow($tpl)
248 {
250
251 $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $_GET["ref_id"]);
252
253 $tpl->setCurrentBlock('container_details_row');
254 $tpl->setVariable('TXT_DETAILS', $this->lng->txt('details'));
255 $tpl->parseCurrentBlock();
256 }
257
265 protected function initDetails()
266 {
268
269 if ($_GET['expand']) {
270 if ($_GET['expand'] > 0) {
271 $_SESSION['sess']['expanded'][abs((int) $_GET['expand'])] = self::DETAILS_ALL;
272 } else {
273 $_SESSION['sess']['expanded'][abs((int) $_GET['expand'])] = self::DETAILS_TITLE;
274 }
275 }
276
277 include_once('./Modules/Session/classes/class.ilSessionAppointment.php');
279 $this->force_details = $session;
281 $this->force_details = array($session);
282 }
283 }
284} // END class.ilContainerSessionsContentGUI
user()
Definition: user.php:4
$_GET["client_id"]
$_SESSION["AccountId"]
An exception for terminatinating execution or to throw for unit testing.
Parent class of all container content GUIs.
initRenderer()
Init container renderer.
getContainerObject()
Get container object.
getContainerGUI()
Get container GUI object.
renderItem($a_item_data, $a_position=0, $a_force_icon=false, $a_pos_prefix="")
Render an item.
insertPageEmbeddedBlocks($a_output_html)
Insert blocks into container page.
getItemGroupsHTML($a_pos=0)
Get item groups HTML.
clearAdminCommandsDetermination()
cleaer administration commands determination
renderSessionLimitLink($a_previous=true)
Show link to show/hide all previous/next sessions.
getMainContent()
Get content HTML for main column.
getDetailsLevel($a_session_id)
get details level
static lookupLastSessionByCourse($a_ref_id)
@access public
static lookupNextSessionByCourse($a_ref_id)
@access public
special template class to simplify handling of ITX/PEAR
static sortArray( $array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
$html
Definition: example_001.php:87
global $ilCtrl
Definition: ilias.php:18
$session
global $DIC
Definition: saml.php:7
$ilUser
Definition: imgupload.php:18