ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilParameterAppender.php
Go to the documentation of this file.
1<?php
2/*
3 +-----------------------------------------------------------------------------+
4 | ILIAS open source |
5 +-----------------------------------------------------------------------------+
6 | Copyright (c) 1998-2001 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
24define("LINKS_USER_ID", 1);
25define("LINKS_SESSION_ID", 2);
26define("LINKS_LOGIN", 3);
27define('LINKS_MATRICULATION', 4);
28
29// Errors
30define("LINKS_ERR_NO_NAME", 1);
31define("LINKS_ERR_NO_VALUE", 2);
32define("LINKS_ERR_NO_NAME_VALUE", 3);
33
43{
44 public $webr_id = null;
45 public $db = null;
46
47 public $err = null;
48
49
54 public function __construct($webr_id)
55 {
56 global $DIC;
57
58 $ilDB = $DIC['ilDB'];
59
60 $this->webr_id = $webr_id;
61 $this->db = $ilDB;
62 }
63
70 public static function getParameterIds($a_webr_id, $a_link_id)
71 {
72 global $DIC;
73
74 $ilDB = $DIC['ilDB'];
75
76 $query = "SELECT * FROM webr_params " .
77 "WHERE webr_id = " . $ilDB->quote($a_webr_id, 'integer') . " " .
78 "AND link_id = " . $ilDB->quote($a_link_id, 'integer');
79 $res = $ilDB->query($query);
80 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) {
81 $params[] = $row['param_id'];
82 }
83 return (array) $params;
84 }
85
86 public function getErrorCode()
87 {
88 return $this->err;
89 }
90
91 // SET GET
92 public function setObjId($a_obj_id)
93 {
94 $this->webr_id = $a_obj_id;
95 }
96
97 public function getObjId()
98 {
99 return $this->webr_id;
100 }
101
102 public function setName($a_name)
103 {
104 $this->name = $a_name;
105 }
106 public function getName()
107 {
108 return $this->name;
109 }
110 public function setValue($a_value)
111 {
112 $this->value = $a_value;
113 }
114 public function getValue()
115 {
116 return $this->value;
117 }
118
119 public function validate()
120 {
121 if (!strlen($this->getName()) and !$this->getValue()) {
122 $this->err = LINKS_ERR_NO_NAME_VALUE;
123 return false;
124 }
125 if (!strlen($this->getName())) {
126 $this->err = LINKS_ERR_NO_NAME;
127 return false;
128 }
129 if (!$this->getValue()) {
130 $this->err = LINKS_ERR_NO_VALUE;
131 return false;
132 }
133 return true;
134 }
135
136
137 public function add($a_link_id)
138 {
139 global $DIC;
140
141 $ilDB = $DIC['ilDB'];
142
143 if (!$a_link_id) {
144 return false;
145 }
146 if (!strlen($this->getName() or !strlen($this->getValue()))) {
147 return false;
148 }
149
150 $next_id = $ilDB->nextId('webr_params');
151 $query = "INSERT INTO webr_params (param_id,webr_id,link_id,name,value) " .
152 "VALUES( " .
153 $ilDB->quote($next_id, 'integer') . ", " .
154 $ilDB->quote($this->getObjId(), 'integer') . ", " .
155 $ilDB->quote($a_link_id, 'integer') . ", " .
156 $ilDB->quote($this->getName(), 'text') . ", " .
157 $ilDB->quote($this->getValue(), 'integer') .
158 ")";
159 $res = $ilDB->manipulate($query);
160
161 return $next_id;
162 }
163
164 public function delete($a_param_id)
165 {
166 global $DIC;
167
168 $ilDB = $DIC['ilDB'];
169
170 $query = "DELETE FROM webr_params " .
171 "WHERE param_id = " . $ilDB->quote($a_param_id, 'integer') . " " .
172 "AND webr_id = " . $ilDB->quote($this->getObjId(), 'integer');
173 $res = $ilDB->manipulate($query);
174 return true;
175 }
176
181 public static function _isEnabled()
182 {
183 global $DIC;
184
185 $ilSetting = $DIC['ilSetting'];
186
187 return $ilSetting->get('links_dynamic', false) ? true : false;
188 }
189
190 public static function _append($a_link_data)
191 {
192 global $DIC;
193
194 $ilUser = $DIC['ilUser'];
195
196 if (!is_array($a_link_data)) {
197 return false;
198 }
199 if (count($params = ilParameterAppender::_getParams($a_link_data['link_id']))) {
200 // Check for prefix
201 foreach ($params as $param_data) {
202 if (!strpos($a_link_data['target'], '?')) {
203 $a_link_data['target'] .= "?";
204 } else {
205 $a_link_data['target'] .= "&";
206 }
207 $a_link_data['target'] .= ($param_data['name'] . "=");
208 switch ($param_data['value']) {
209 case LINKS_LOGIN:
210 $a_link_data['target'] .= (urlencode($ilUser->getLogin()));
211 break;
212
213 case LINKS_SESSION_ID:
214 $a_link_data['target'] .= (session_id());
215 break;
216
217 case LINKS_USER_ID:
218 $a_link_data['target'] .= ($ilUser->getId());
219 break;
220
222 $a_link_data['target'] .= ($ilUser->getMatriculation());
223 break;
224 }
225 }
226 }
227 return $a_link_data;
228 }
229
235 public static function _getParams($a_link_id)
236 {
237 global $DIC;
238
239 $ilDB = $DIC['ilDB'];
240
241 $params = [];
242
243 $res = $ilDB->query("SELECT * FROM webr_params WHERE link_id = " .
244 $ilDB->quote((int) $a_link_id, 'integer'));
245 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
246 $params[$row->param_id]['name'] = $row->name;
247 $params[$row->param_id]['value'] = $row->value;
248 }
249
250 return $params;
251 }
252
259 public static function parameterToInfo($a_name, $a_value)
260 {
261 $info = $a_name;
262
263 switch ($a_value) {
264 case LINKS_USER_ID:
265 return $info . '=USER_ID';
266
267 case LINKS_SESSION_ID:
268 return $info . '=SESSION_ID';
269
270 case LINKS_LOGIN:
271 return $info . '=LOGIN';
272
274 return $info . '=MATRICULATION';
275 }
276 return '';
277 }
278
279 public static function _deleteAll($a_webr_id)
280 {
281 global $DIC;
282
283 $ilDB = $DIC['ilDB'];
284
285 $query = "DELETE FROM webr_params WHERE webr_id = " .
286 $ilDB->quote((int) $a_webr_id, 'integer');
287 $res = $ilDB->manipulate($query);
288
289 return true;
290 }
291
296 public static function _getOptionSelect()
297 {
298 global $DIC;
299
300 $lng = $DIC['lng'];
301
302 return array(0 => $lng->txt('links_select_one'),
303 LINKS_USER_ID => $lng->txt('links_user_id'),
304 LINKS_LOGIN => $lng->txt('links_user_name'),
305 LINKS_SESSION_ID => $lng->txt('links_session_id'),
306 LINKS_MATRICULATION => $lng->txt('matriculation')
307 );
308 }
309}
An exception for terminatinating execution or to throw for unit testing.
const LINKS_SESSION_ID
const LINKS_USER_ID
const LINKS_ERR_NO_NAME
const LINKS_LOGIN
const LINKS_MATRICULATION
const LINKS_ERR_NO_VALUE
const LINKS_ERR_NO_NAME_VALUE
Class ilParameterAppender.
static getParameterIds($a_webr_id, $a_link_id)
Get Parameter ids of link.
__construct($webr_id)
Constructor @access public.
static parameterToInfo($a_name, $a_value)
Get info text describing an existing dynamic link.
static _append($a_link_data)
static _getOptionSelect()
Get options as array.
static _getParams($a_link_id)
Get dynamic parameter definitions.
static _isEnabled()
Check if dynamic parameters are enabled.
$info
Definition: index.php:5
$row
global $ilSetting
Definition: privfeed.php:17
$query
global $DIC
Definition: saml.php:7
$lng
foreach($_POST as $key=> $value) $res
global $ilDB
$ilUser
Definition: imgupload.php:18