ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
class.arConnectorSession.php
Go to the documentation of this file.
1 <?php
2 require_once('class.arConnector.php');
3 require_once(dirname(__FILE__) . '/../Exception/class.arException.php');
4 
12 
13  const AR_CONNECTOR_SESSION = 'arConnectorSession';
14 
15 
16  public static function resetSession() {
17  $_SESSION[self::AR_CONNECTOR_SESSION] = array();
18  }
19 
20 
24  public static function getSession() {
25  if (!$_SESSION[self::AR_CONNECTOR_SESSION]) {
26  self::resetSession();
27  }
28 
29  return $_SESSION[self::AR_CONNECTOR_SESSION];
30  }
31 
32 
38  public static function getSessionForActiveRecord(ActiveRecord $ar) {
39  $session = self::getSession();
40  $ar_session = $session[$ar::returnDbTableName()];
41  if (!is_array($ar_session)) {
42  $ar_session = array();
43  }
44 
45  return $ar_session;
46  }
47 
48 
54  public function checkConnection(ActiveRecord $ar) {
55  return is_array(self::getSession());
56  }
57 
58 
64  public function nextID(ActiveRecord $ar) {
65  return count(self::getSessionForActiveRecord($ar)) + 1;
66  }
67 
68 
75  public function installDatabase(ActiveRecord $ar, $fields) {
76  return self::resetDatabase($ar);
77  }
78 
79 
85  public function updateDatabase(ActiveRecord $ar) {
86  return true;
87  }
88 
89 
95  public function resetDatabase(ActiveRecord $ar) {
96  $_SESSION[self::AR_CONNECTOR_SESSION][$ar::returnDbTableName()] = array();
97 
98  return true;
99  }
100 
101 
107  public function truncateDatabase(ActiveRecord $ar) {
108  return self::resetDatabase($ar);
109  }
110 
111 
117  public function checkTableExists(ActiveRecord $ar) {
118  return is_array(self::getSessionForActiveRecord($ar));
119  }
120 
121 
128  public function checkFieldExists(ActiveRecord $ar, $field_name) {
129  $session = self::getSessionForActiveRecord($ar);
130 
131  return array_key_exists($field_name, $session[0]);
132  }
133 
134 
142  public function removeField(ActiveRecord $ar, $field_name) {
143  return true;
144  }
145 
146 
155  public function renameField(ActiveRecord $ar, $old_name, $new_name) {
156  return true;
157  }
158 
159 
163  public function create(ActiveRecord $ar) {
164  $_SESSION[self::AR_CONNECTOR_SESSION][$ar::returnDbTableName()][$ar->getPrimaryFieldValue()] = $ar->__asStdClass();
165  }
166 
167 
173  public function read(ActiveRecord $ar) {
174  $session = self::getSessionForActiveRecord($ar);
175 
176  return array( $session[$ar->getPrimaryFieldValue()] );
177  }
178 
179 
183  public function update(ActiveRecord $ar) {
184  self::create($ar);
185  }
186 
187 
191  public function delete(ActiveRecord $ar) {
192  unset($_SESSION[self::AR_CONNECTOR_SESSION][$ar::returnDbTableName()][$ar->getPrimaryFieldValue()]);
193  }
194 
195 
203  public function readSet(ActiveRecordList $arl) {
204  $session = self::getSessionForActiveRecord($arl->getAR());
205  foreach ($session as $i => $s) {
206  $session[$i] = (array)$s;
207  }
208  foreach ($arl->getArWhereCollection()->getWheres() as $w) {
209  $fieldname = $w->getFieldname();
210  $v = $w->getValue();
211  $operator = $w->getOperator();
212 
213  foreach ($session as $i => $s) {
214  $session[$i] = (array)$s;
215  switch ($operator) {
216  case '=':
217  if ($s[$fieldname] != $v) {
218  unset($session[$i]);
219  }
220  break;
221  }
222  }
223  }
224 
225  return $session;
226  }
227 
228 
234  public function affectedRows(ActiveRecordList $arl) {
235  return count($this->readSet($arl));
236  }
237 
238 
245  public function quote($value, $type) {
246  return $value;
247  }
248 
249 
253  public function updateIndices(ActiveRecord $ar) {
254  // TODO: Implement updateIndices() method.
255  }
256 }
257 
258 ?>
affectedRows(ActiveRecordList $arl)
truncateDatabase(ActiveRecord $ar)
$_SESSION["AccountId"]
readSet(ActiveRecordList $arl)
Class ActiveRecord.
updateIndices(ActiveRecord $ar)
Class ActiveRecordList.
Class arConnector.
removeField(ActiveRecord $ar, $field_name)
checkFieldExists(ActiveRecord $ar, $field_name)
$w
checkTableExists(ActiveRecord $ar)
renameField(ActiveRecord $ar, $old_name, $new_name)
static getSessionForActiveRecord(ActiveRecord $ar)
checkConnection(ActiveRecord $ar)
updateDatabase(ActiveRecord $ar)
installDatabase(ActiveRecord $ar, $fields)
Create styles array
The data for the language used.
Class arConnectorSession.
resetDatabase(ActiveRecord $ar)