ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.arConnectorSession.php
Go to the documentation of this file.
1<?php
2require_once('class.arConnector.php');
3require_once(dirname(__FILE__) . '/../Exception/class.arException.php');
4
12
13 const AR_CONNECTOR_SESSION = 'arConnectorSession';
14
15
16 public static function resetSession() {
18 }
19
20
24 public static function getSession() {
25 if (!$_SESSION[self::AR_CONNECTOR_SESSION]) {
27 }
28
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?>
$_SESSION["AccountId"]
Class ActiveRecordList.
Class ActiveRecord.
Class arConnectorSession.
checkFieldExists(ActiveRecord $ar, $field_name)
updateDatabase(ActiveRecord $ar)
updateIndices(ActiveRecord $ar)
affectedRows(ActiveRecordList $arl)
checkConnection(ActiveRecord $ar)
readSet(ActiveRecordList $arl)
removeField(ActiveRecord $ar, $field_name)
truncateDatabase(ActiveRecord $ar)
renameField(ActiveRecord $ar, $old_name, $new_name)
resetDatabase(ActiveRecord $ar)
installDatabase(ActiveRecord $ar, $fields)
static getSessionForActiveRecord(ActiveRecord $ar)
checkTableExists(ActiveRecord $ar)
Class arConnector.
$w