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 
24 define("LINKS_USER_ID", 1);
25 define("LINKS_SESSION_ID", 2);
26 define("LINKS_LOGIN", 3);
27 define('LINKS_MATRICULATION', 4);
28 
29 // Errors
30 define("LINKS_ERR_NO_NAME", 1);
31 define("LINKS_ERR_NO_VALUE", 2);
32 define("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 
221  case LINKS_MATRICULATION:
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 
273  case LINKS_MATRICULATION:
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 }
static getParameterIds($a_webr_id, $a_link_id)
Get Parameter ids of link.
global $DIC
Definition: saml.php:7
static _getOptionSelect()
Get options as array.
const LINKS_MATRICULATION
const LINKS_LOGIN
static _append($a_link_data)
static parameterToInfo($a_name, $a_value)
Get info text describing an existing dynamic link.
foreach($_POST as $key=> $value) $res
$lng
$ilUser
Definition: imgupload.php:18
const LINKS_ERR_NO_VALUE
$query
const LINKS_ERR_NO_NAME
$row
global $ilSetting
Definition: privfeed.php:17
__construct($webr_id)
Constructor public.
global $ilDB
Class ilParameterAppender.
const LINKS_ERR_NO_NAME_VALUE
$info
Definition: index.php:5
const LINKS_USER_ID
static _getParams($a_link_id)
Get dynamic parameter definitions.
static _isEnabled()
Check if dynamic parameters are enabled.
const LINKS_SESSION_ID