ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
class.ilAccountCodesGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3
14{
15 protected $ref_id; // [int]
16
22 function __construct($a_ref_id)
23 {
24 global $lng;
25
26 $this->ref_id = $a_ref_id;
27 $lng->loadLanguageModule("user");
28 }
29
30 function executeCommand()
31 {
32 global $ilCtrl;
33
34 $next_class = $ilCtrl->getNextClass($this);
35 $cmd = $ilCtrl->getCmd();
36
37 switch($next_class)
38 {
39 default:
40 if(!$cmd)
41 {
42 $cmd = "listCodes";
43 }
44 $this->$cmd();
45 break;
46 }
47
48 return true;
49 }
50
51 function listCodes()
52 {
53 global $ilAccess, $ilErr, $ilCtrl, $ilToolbar, $lng, $tpl;
54
55 if(!$ilAccess->checkAccess('read','',$this->ref_id))
56 {
57 $ilErr->raiseError($lng->txt("msg_no_perm_read"),$ilErr->MESSAGE);
58 }
59
60 include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
61 $button = ilLinkButton::getInstance();
62 $button->setCaption("user_account_codes_add");
63 $button->setUrl($ilCtrl->getLinkTarget($this, "addCodes"));
64 $ilToolbar->addButtonInstance($button);
65
66 include_once("./Services/User/classes/class.ilAccountCodesTableGUI.php");
67 $ctab = new ilAccountCodesTableGUI($this, "listCodes");
68 $tpl->setContent($ctab->getHTML());
69 }
70
72 {
73 global $ilCtrl, $lng;
74
75 include_once 'Services/Form/classes/class.ilPropertyFormGUI.php';
76
77 $this->form_gui = new ilPropertyFormGUI();
78 $this->form_gui->setFormAction($ilCtrl->getFormAction($this, 'createCodes'));
79 $this->form_gui->setTitle($lng->txt('user_account_codes_edit_header'));
80
81 $count = new ilNumberInputGUI($lng->txt('user_account_codes_number'), 'acc_codes_number');
82 $count->setSize(4);
83 $count->setMaxLength(4);
84 $count->setMinValue(1);
85 $count->setMaxValue(1000);
86 $count->setRequired(true);
87 $this->form_gui->addItem($count);
88
89 $valid = new ilRadioGroupInputGUI($lng->txt('user_account_code_valid_until'), 'valid_type');
90 $valid->setRequired(true);
91
92 $unl = new ilRadioOption($lng->txt('user_account_code_valid_until_unlimited'), 'valid_unlimited');
93 $valid->addOption($unl);
94
95 $st = new ilRadioOption($lng->txt('user_account_code_valid_until_static'), 'valid_static');
96 $valid->addOption($st);
97
98 $dt = new ilDateTimeInputGUI($lng->txt('date'), 'valid_date');
99 $dt->setRequired(true);
100 $st->addSubItem($dt);
101
102 $dyn = new ilRadioOption($lng->txt('user_account_code_valid_until_dynamic'), 'valid_dynamic');
103 $valid->addOption($dyn);
104
105 $ds = new ilNumberInputGUI($lng->txt('days'), 'valid_days');
106 $ds->setSize(5);
107 $ds->setRequired(true);
108 $dyn->addSubItem($ds);
109
110 $this->form_gui->addItem($valid);
111
112 $this->form_gui->addCommandButton('createCodes', $lng->txt('create'));
113 $this->form_gui->addCommandButton('listCodes', $lng->txt('cancel'));
114 }
115
116 function addCodes()
117 {
118 global $ilAccess, $ilErr, $tpl, $lng;
119
120 if(!$ilAccess->checkAccess('write', '', $this->ref_id))
121 {
122 $ilErr->raiseError($lng->txt("msg_no_perm_write"), $ilErr->MESSAGE);
123 }
124
125 $this->initAddCodesForm();
126 $tpl->setContent($this->form_gui->getHTML());
127 }
128
129 function createCodes()
130 {
131 global $ilAccess, $ilErr, $lng, $tpl, $ilCtrl;
132
133 if(!$ilAccess->checkAccess('write', '', $this->ref_id))
134 {
135 $ilErr->raiseError($lng->txt("msg_no_perm_write"), $ilErr->MESSAGE);
136 }
137
138 $this->initAddCodesForm();
139 if($this->form_gui->checkInput())
140 {
141 $number = $this->form_gui->getInput('acc_codes_number');
142 switch($this->form_gui->getInput('valid_type'))
143 {
144 case 'valid_unlimited':
145 $valid = 0;
146 break;
147
148 case 'valid_static':
149 $valid = $this->form_gui->getItemByPostVar('valid_date')->getDate()->get(IL_CAL_DATE);
150 break;
151
152 case 'valid_dynamic':
153 $valid = $this->form_gui->getInput('valid_days');
154 break;
155 }
156
157 include_once './Services/User/classes/class.ilAccountCode.php';
158
159 $stamp = time();
160 for($loop = 1; $loop <= $number; $loop++)
161 {
163 }
164
165 ilUtil::sendSuccess($lng->txt('saved_successfully'), true);
166 $ilCtrl->redirect($this, "listCodes");
167 }
168 else
169 {
170 $this->form_gui->setValuesByPost();
171 $tpl->setContent($this->form_gui->getHtml());
172 }
173 }
174
175 function deleteCodes()
176 {
177 global $lng, $ilCtrl;
178
179 include_once './Services/User/classes/class.ilAccountCode.php';
181
182 ilUtil::sendSuccess($lng->txt('info_deleted'), true);
183 $ilCtrl->redirect($this, "listCodes");
184 }
185
187 {
188 global $ilErr, $lng, $ilCtrl, $tpl;
189
190 if(!isset($_POST["id"]))
191 {
192 $ilErr->raiseError($lng->txt("no_checkbox"), $ilErr->MESSAGE);
193 }
194
195 include_once './Services/Utilities/classes/class.ilConfirmationGUI.php';
196 $gui = new ilConfirmationGUI();
197 $gui->setHeaderText($lng->txt("info_delete_sure"));
198 $gui->setCancel($lng->txt("cancel"), "listCodes");
199 $gui->setConfirm($lng->txt("confirm"), "deleteCodes");
200 $gui->setFormAction($ilCtrl->getFormAction($this, "deleteCodes"));
201
202 include_once './Services/User/classes/class.ilAccountCode.php';
204 foreach($data as $code)
205 {
206 $gui->addItem("id[]", $code["code_id"], $code["code"]);
207 }
208
209 $tpl->setContent($gui->getHTML());
210 }
211
213 {
214 include_once("./Services/User/classes/class.ilAccountCodesTableGUI.php");
215 $utab = new ilAccountCodesTableGUI($this, "listCodes");
216 $utab->resetOffset();
217 $utab->resetFilter();
218
219 $this->listCodes();
220 }
221
223 {
224 include_once("./Services/User/classes/class.ilAccountCodesTableGUI.php");
225 $utab = new ilAccountCodesTableGUI($this, "listCodes");
226 $utab->resetOffset();
227 $utab->writeFilterToSession();
228
229 $this->listCodes();
230 }
231
232 function exportCodes()
233 {
234 global $ilAccess, $ilErr, $lng;
235
236 if(!$ilAccess->checkAccess('read', '', $this->ref_id))
237 {
238 $ilErr->raiseError($lng->txt("msg_no_perm_read"), $ilErr->MESSAGE);
239 }
240
241 include_once("./Services/User/classes/class.ilAccountCodesTableGUI.php");
242 $utab = new ilAccountCodesTableGUI($this, "listCodes");
243
244 include_once './Services/User/classes/class.ilAccountCode.php';
245 $codes = ilAccountCode::getCodesForExport($utab->filter["code"], $utab->filter["valid_until"], $utab->filter["generated"]);
246
247 if(sizeof($codes))
248 {
249 // #13497
250 ilUtil::deliverData(implode("\r\n", $codes), "ilias_account_codes_".date("d-m-Y").".txt","text/plain");
251 }
252 else
253 {
254 ilUtil::sendFailure($lng->txt("account_export_codes_no_data"));
255 $this->listCodes();
256 }
257 }
258}
259
260?>
date( 'd-M-Y', $objPHPExcel->getProperties() ->getCreated())
global $tpl
Definition: ilias.php:8
$_POST["username"]
An exception for terminatinating execution or to throw for unit testing.
const IL_CAL_DATE
static create($valid_until, $stamp)
static loadCodesByIds(array $ids)
static deleteCodes(array $ids)
static getCodesForExport($filter_code, $filter_valid_until, $filter_generated)
GUI class for account codes.
__construct($a_ref_id)
Constructor.
TableGUI class for account codes.
Confirmation screen class.
This class represents a date/time property in a property form.
static getInstance()
Factory.
This class represents a number property in a property form.
This class represents a property form user interface.
This class represents a property in a property form.
This class represents an option in a radio group.
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static deliverData($a_data, $a_filename, $mime="application/octet-stream", $charset="")
deliver data for download via browser.
$valid
$code
Definition: example_050.php:99
global $ilCtrl
Definition: ilias.php:18
global $lng
Definition: privfeed.php:17
global $ilErr
Definition: raiseError.php:16
$cmd
Definition: sahs_server.php:35