ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilRegistrationCodesTableGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4include_once("./Services/Table/classes/class.ilTable2GUI.php");
5
16{
17
21 function __construct($a_parent_obj, $a_parent_cmd)
22 {
23 global $ilCtrl, $lng;
24
25 $this->setId("registration_code");
26
27 parent::__construct($a_parent_obj, $a_parent_cmd);
28
29 $this->addColumn("", "", "1", true);
30 foreach ($this->getSelectedColumns() as $c => $caption)
31 {
32 if($c == "role_local" || $c == "alimit")
33 {
34 $c = "";
35 }
36 $this->addColumn($this->lng->txt($caption), $c);
37 }
38
39 $this->setExternalSorting(true);
40 $this->setExternalSegmentation(true);
41 $this->setEnableHeader(true);
42 $this->setFormAction($ilCtrl->getFormAction($this->parent_obj, "listCodes"));
43 $this->setRowTemplate("tpl.code_list_row.html", "Services/Registration");
44 $this->setEnableTitle(true);
45 $this->initFilter();
46 $this->setFilterCommand("applyCodesFilter");
47 $this->setResetCommand("resetCodesFilter");
48 $this->setDefaultOrderField("generated"); // #11341
49 $this->setDefaultOrderDirection("desc");
50
51 $this->setSelectAllCheckbox("id[]");
52 $this->setTopCommands(true);
53 $this->addMultiCommand("deleteConfirmation", $lng->txt("delete"));
54
55 $this->addCommandButton("exportCodes", $lng->txt("registration_codes_export"));
56
57 $this->getItems();
58 }
59
63 function getItems()
64 {
65 global $rbacreview, $ilObjDataCache;
66
68
69 include_once("./Services/Registration/classes/class.ilRegistrationCode.php");
70
71 // #12737
72 if(!in_array($this->getOrderField(), array_keys($this->getSelectedColumns())))
73 {
74 $this->setOrderField($this->getDefaultOrderField());
75 }
76
82 $this->filter["code"],
83 $this->filter["role"],
84 $this->filter["generated"],
85 $this->filter["alimit"]
86 );
87
88 if (count($codes_data["set"]) == 0 && $this->getOffset() > 0)
89 {
90 $this->resetOffset();
96 $this->filter["code"],
97 $this->filter["role"],
98 $this->filter["generated"],
99 $this->filter["alimit"]
100 );
101 }
102
103 include_once './Services/AccessControl/classes/class.ilObjRole.php';
104 $options = array();
105 foreach($rbacreview->getGlobalRoles() as $role_id)
106 {
107 if(!in_array($role_id, array(SYSTEM_ROLE_ID, ANONYMOUS_ROLE_ID)))
108 {
109 $role_map[$role_id] = $ilObjDataCache->lookupTitle($role_id);
110 }
111 }
112
113 $result = array();
114 foreach ($codes_data["set"] as $k => $code)
115 {
116 $result[$k]["code"] = $code["code"];
117 $result[$k]["code_id"] = $code["code_id"];
118
119 $result[$k]["generated"] = ilDatePresentation::formatDate(new ilDateTime($code["generated"],IL_CAL_UNIX));
120
121 if($code["used"])
122 {
124 }
125
126 if($code["role"])
127 {
128 $result[$k]["role"] = $this->role_map[$code["role"]];
129 }
130
131 if($code["role_local"])
132 {
133 $local = array();
134 foreach(explode(";", $code["role_local"]) as $role_id)
135 {
136 $role = ilObject::_lookupTitle($role_id);
137 if($role)
138 {
139 $local[] = $role;
140 }
141 }
142 if(sizeof($local))
143 {
144 sort($local);
145 $result[$k]["role_local"] = implode("<br />", $local);
146 }
147 }
148
149 if($code["alimit"])
150 {
151 switch($code["alimit"])
152 {
153 case "unlimited":
154 $result[$k]["alimit"] = $this->lng->txt("reg_access_limitation_none");
155 break;
156
157 case "absolute":
158 $result[$k]["alimit"] = $this->lng->txt("reg_access_limitation_mode_absolute_target").
159 ": ".ilDatePresentation::formatDate(new ilDate($code["alimitdt"], IL_CAL_DATE));
160 break;
161
162 case "relative":
163 $limit_caption = array();
164 $limit = unserialize($code["alimitdt"]);
165 if((int)$limit["d"])
166 {
167 $limit_caption[] = (int)$limit["d"]." ".$this->lng->txt("days");
168 }
169 if((int)$limit["m"])
170 {
171 $limit_caption[] = (int)$limit["m"]." ".$this->lng->txt("months");
172 }
173 if((int)$limit["y"])
174 {
175 $limit_caption[] = (int)$limit["y"]." ".$this->lng->txt("years");
176 }
177 if(sizeof($limit_caption))
178 {
179 $result[$k]["alimit"] = $this->lng->txt("reg_access_limitation_mode_relative_target").
180 ": ".implode(", ", $limit_caption);
181 }
182 break;
183 }
184 }
185 }
186
187 $this->setMaxCount($codes_data["cnt"]);
188 $this->setData($result);
189 }
190
191
195 function initFilter()
196 {
197 global $lng, $rbacreview, $ilUser, $ilObjDataCache;
198
199 include_once("./Services/Registration/classes/class.ilRegistrationCode.php");
200
201 // code
202 include_once("./Services/Form/classes/class.ilTextInputGUI.php");
203 $ti = new ilTextInputGUI($lng->txt("registration_code"), "query");
204 $ti->setMaxLength(ilRegistrationCode::CODE_LENGTH);
205 $ti->setSize(20);
206 $ti->setSubmitFormOnEnter(true);
207 $this->addFilterItem($ti);
208 $ti->readFromSession();
209 $this->filter["code"] = $ti->getValue();
210
211 // role
212
213 $this->role_map = array();
214 foreach($rbacreview->getGlobalRoles() as $role_id)
215 {
216 if(!in_array($role_id, array(SYSTEM_ROLE_ID, ANONYMOUS_ROLE_ID)))
217 {
218 $this->role_map[$role_id] = $ilObjDataCache->lookupTitle($role_id);
219 }
220 }
221
222 include_once("./Services/Form/classes/class.ilSelectInputGUI.php");
223 include_once './Services/AccessControl/classes/class.ilObjRole.php';
224 $options = array("" => $this->lng->txt("registration_roles_all"))+
225 $this->role_map;
226 $si = new ilSelectInputGUI($this->lng->txt("role"), "role");
227 $si->setOptions($options);
228 $this->addFilterItem($si);
229 $si->readFromSession();
230 $this->filter["role"] = $si->getValue();
231
232 // access limitation
233 $options = array("" => $this->lng->txt("registration_codes_access_limitation_all"),
234 "unlimited" => $this->lng->txt("reg_access_limitation_none"),
235 "absolute" => $this->lng->txt("reg_access_limitation_mode_absolute"),
236 "relative" => $this->lng->txt("reg_access_limitation_mode_relative"));
237 $si = new ilSelectInputGUI($this->lng->txt("reg_access_limitations"), "alimit");
238 $si->setOptions($options);
239 $this->addFilterItem($si);
240 $si->readFromSession();
241 $this->filter["alimit"] = $si->getValue();
242
243 // generated
244 include_once("./Services/Form/classes/class.ilSelectInputGUI.php");
245 $options = array("" => $this->lng->txt("registration_generated_all"));
246 foreach((array)ilRegistrationCode::getGenerationDates() as $date)
247 {
249 }
250 $si = new ilSelectInputGUI($this->lng->txt("registration_generated"), "generated");
251 $si->setOptions($options);
252 $this->addFilterItem($si);
253 $si->readFromSession();
254 $this->filter["generated"] = $si->getValue();
255 }
256
257 public function getSelectedColumns()
258 {
259 return array("code" => "registration_code",
260 "role" => "registration_codes_roles",
261 "role_local" => "registration_codes_roles_local",
262 "alimit" => "reg_access_limitations",
263 "generated" => "registration_generated",
264 "used" => "registration_used");
265 }
266
267 protected function fillRow($code)
268 {
269 $this->tpl->setVariable("ID", $code["code_id"]);
270 foreach (array_keys($this->getSelectedColumns()) as $c)
271 {
272 $this->tpl->setVariable("VAL_".strtoupper($c), $code[$c]);
273 }
274 }
275
276}
277?>
$result
const IL_CAL_DATE
const IL_CAL_UNIX
static formatDate(ilDateTime $date)
Format a date @access public.
@classDescription Date and time handling
Class for single dates.
static _lookupTitle($a_id)
lookup object title
static getCodesData($order_field, $order_direction, $offset, $limit, $filter_code, $filter_role, $filter_generated, $filter_access_limitation)
TableGUI class for registration codes.
__construct($a_parent_obj, $a_parent_cmd)
Constructor.
fillRow($code)
Standard Version of Fill Row.
This class represents a selection list property in a property form.
Class ilTable2GUI.
setTopCommands($a_val)
Set top commands (display command buttons on top of table, too)
setEnableHeader($a_enableheader)
Set Enable Header.
setExternalSorting($a_val)
Set external sorting.
addColumn($a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="", $a_tooltip_with_html=false)
Add a column to the header.
determineOffsetAndOrder($a_omit_offset=false)
Determine offset and order.
setData($a_data)
set table data @access public
setResetCommand($a_val, $a_caption=null)
Set reset filter command.
setEnableTitle($a_enabletitle)
Set Enable Title.
getLimit()
Get limit.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
resetOffset($a_in_determination=false)
Reset offset.
addMultiCommand($a_cmd, $a_text)
Add Command button.
addFilterItem($a_input_item, $a_optional=false)
Add filter item.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
setSelectAllCheckbox($a_select_all_checkbox)
Set the name of the checkbox that should be toggled with a select all button.
getOffset()
Get offset.
setExternalSegmentation($a_val)
Set external segmentation.
setId($a_val)
Set id.
setOrderField($a_order_field)
set order column
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
setDefaultOrderDirection($a_defaultorderdirection)
Set Default order direction.
setFilterCommand($a_val, $a_caption=null)
Set filter command.
getDefaultOrderField()
Get Default order field.
addCommandButton($a_cmd, $a_text, $a_onclick='', $a_id="", $a_class=null)
Add Command button.
getOrderDirection()
Get order direction.
setMaxCount($a_max_count)
set max.
This class represents a text property in a property form.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
$code
Definition: example_050.php:99
global $ilCtrl
Definition: ilias.php:18
global $lng
Definition: privfeed.php:40
if(!is_array($argv)) $options
global $ilUser
Definition: imgupload.php:15