summaryrefslogtreecommitdiff
path: root/backend/php/src/objects/class.record.php
Unidiff
Diffstat (limited to 'backend/php/src/objects/class.record.php') (more/less context) (show whitespace changes)
-rw-r--r--backend/php/src/objects/class.record.php11
1 files changed, 8 insertions, 3 deletions
diff --git a/backend/php/src/objects/class.record.php b/backend/php/src/objects/class.record.php
index a269e75..37a9702 100644
--- a/backend/php/src/objects/class.record.php
+++ b/backend/php/src/objects/class.record.php
@@ -1,60 +1,60 @@
1<?php 1<?php
2/* 2/*
3 This SQL query will create the table to store your object. 3 This SQL query will create the table to store your object.
4 4
5 CREATE TABLE `record` ( 5 CREATE TABLE `record` (
6 `recordid` int(11) NOT NULL auto_increment, 6 `recordid` int(11) NOT NULL auto_increment,
7 `userid` int(11) NOT NULL, 7 `userid` int(11) NOT NULL,
8 `reference` VARCHAR(255) NOT NULL, 8 `reference` VARCHAR(255) NOT NULL,
9 `data` LONGTEXT NOT NULL, 9 `data` LONGTEXT NOT NULL,
10 `version` VARCHAR(255) NOT NULL, 10 `version` VARCHAR(255) NOT NULL,
11 `creation_date` TIMESTAMP NOT NULL, 11 `creation_date` TIMESTAMP NOT NULL,
12 `update_date` TIMESTAMP NOT NULL, 12 `update_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
13 `access_date` TIMESTAMP NOT NULL, INDEX(`userid`), PRIMARY KEY (`recordid`)) ENGINE=MyISAM; 13 `access_date` TIMESTAMP NOT NULL, INDEX(`userid`), PRIMARY KEY (`recordid`)) ENGINE=MyISAM;
14*/ 14*/
15 15
16/** 16/**
17* <b>record</b> class with integrated CRUD methods. 17* <b>record</b> class with integrated CRUD methods.
18* @author Php Object Generator 18* @author Php Object Generator
19* @version POG 3.0e / PHP5.1 MYSQL 19* @version POG 3.0e / PHP5.1 MYSQL
20* @see http://www.phpobjectgenerator.com/plog/tutorials/45/pdo-mysql 20* @see http://www.phpobjectgenerator.com/plog/tutorials/45/pdo-mysql
21* @copyright Free for personal & commercial use. (Offered under the BSD license) 21* @copyright Free for personal & commercial use. (Offered under the BSD license)
22* @link http://www.phpobjectgenerator.com/?language=php5.1&wrapper=pdo&pdoDriver=mysql&objectName=record&attributeList=array+%28%0A++0+%3D%3E+%27user%27%2C%0A++1+%3D%3E+%27recordversion%27%2C%0A++2+%3D%3E+%27reference%27%2C%0A++3+%3D%3E+%27data%27%2C%0A++4+%3D%3E+%27version%27%2C%0A++5+%3D%3E+%27creation_date%27%2C%0A++6+%3D%3E+%27update_date%27%2C%0A++7+%3D%3E+%27access_date%27%2C%0A%29&typeList=array%2B%2528%250A%2B%2B0%2B%253D%253E%2B%2527BELONGSTO%2527%252C%250A%2B%2B1%2B%253D%253E%2B%2527HASMANY%2527%252C%250A%2B%2B2%2B%253D%253E%2B%2527VARCHAR%2528255%2529%2527%252C%250A%2B%2B3%2B%253D%253E%2B%2527LONGTEXT%2527%252C%250A%2B%2B4%2B%253D%253E%2B%2527VARCHAR%2528255%2529%2527%252C%250A%2B%2B5%2B%253D%253E%2B%2527TIMESTAMP%2527%252C%250A%2B%2B6%2B%253D%253E%2B%2527TIMESTAMP%2527%252C%250A%2B%2B7%2B%253D%253E%2B%2527TIMESTAMP%2527%252C%250A%2529 22* @link http://www.phpobjectgenerator.com/?language=php5.1&wrapper=pdo&pdoDriver=mysql&objectName=record&attributeList=array+%28%0A++0+%3D%3E+%27user%27%2C%0A++1+%3D%3E+%27recordversion%27%2C%0A++2+%3D%3E+%27reference%27%2C%0A++3+%3D%3E+%27data%27%2C%0A++4+%3D%3E+%27version%27%2C%0A++5+%3D%3E+%27creation_date%27%2C%0A++6+%3D%3E+%27update_date%27%2C%0A++7+%3D%3E+%27access_date%27%2C%0A%29&typeList=array%2B%2528%250A%2B%2B0%2B%253D%253E%2B%2527BELONGSTO%2527%252C%250A%2B%2B1%2B%253D%253E%2B%2527HASMANY%2527%252C%250A%2B%2B2%2B%253D%253E%2B%2527VARCHAR%2528255%2529%2527%252C%250A%2B%2B3%2B%253D%253E%2B%2527LONGTEXT%2527%252C%250A%2B%2B4%2B%253D%253E%2B%2527VARCHAR%2528255%2529%2527%252C%250A%2B%2B5%2B%253D%253E%2B%2527TIMESTAMP%2527%252C%250A%2B%2B6%2B%253D%253E%2B%2527TIMESTAMP%2527%252C%250A%2B%2B7%2B%253D%253E%2B%2527TIMESTAMP%2527%252C%250A%2529
23*/ 23*/
24include_once('class.pog_base.php'); 24include_once('class.pog_base.php');
25class record extends POG_Base 25class record extends POG_Base
26{ 26{
27 public $recordId = ''; 27 public $recordId = '';
28 28
29 /** 29 /**
30 * @var INT(11) 30 * @var INT(11)
31 */ 31 */
32 public $userId; 32 public $userId;
33 33
34 /** 34 /**
35 * @var private array of recordversion objects 35 * @var private array of recordversion objects
36 */ 36 */
37 private $_recordversionList = array(); 37 private $_recordversionList = array();
38 38
39 /** 39 /**
40 * @var VARCHAR(255) 40 * @var VARCHAR(255)
41 */ 41 */
42 public $reference; 42 public $reference;
43 43
44 /** 44 /**
45 * @var LONGTEXT 45 * @var LONGTEXT
46 */ 46 */
47 public $data; 47 public $data;
48 48
49 /** 49 /**
50 * @var VARCHAR(255) 50 * @var VARCHAR(255)
51 */ 51 */
52 public $version; 52 public $version;
53 53
54 /** 54 /**
55 * @var TIMESTAMP 55 * @var TIMESTAMP
56 */ 56 */
57 public $creation_date; 57 public $creation_date;
58 58
59 /** 59 /**
60 * @var TIMESTAMP 60 * @var TIMESTAMP
@@ -81,251 +81,256 @@ class record extends POG_Base
81 81
82 82
83 /** 83 /**
84 * Getter for some private attributes 84 * Getter for some private attributes
85 * @return mixed $attribute 85 * @return mixed $attribute
86 */ 86 */
87 public function __get($attribute) 87 public function __get($attribute)
88 { 88 {
89 if (isset($this->{"_".$attribute})) 89 if (isset($this->{"_".$attribute}))
90 { 90 {
91 return $this->{"_".$attribute}; 91 return $this->{"_".$attribute};
92 } 92 }
93 else 93 else
94 { 94 {
95 return false; 95 return false;
96 } 96 }
97 } 97 }
98 98
99 function record($reference='', $data='', $version='', $creation_date='', $update_date='', $access_date='') 99 function record($reference='', $data='', $version='', $creation_date='', $update_date='', $access_date='')
100 { 100 {
101 $this->_recordversionList = array(); 101 $this->_recordversionList = array();
102 $this->reference = $reference; 102 $this->reference = $reference;
103 $this->data = $data; 103 $this->data = $data;
104 $this->version = $version; 104 $this->version = $version;
105 $this->creation_date = $creation_date; 105 $this->creation_date = $creation_date;
106 $this->update_date = $update_date; 106 $this->update_date = $update_date;
107 $this->access_date = $access_date; 107 $this->access_date = $access_date;
108 } 108 }
109 109
110 110
111 /** 111 /**
112 * Gets object from database 112 * Gets object from database
113 * @param integer $recordId 113 * @param integer $recordId
114 * @return object $record 114 * @return object $record
115 */ 115 */
116 function Get($recordId) 116 function Get($recordId)
117 { 117 {
118 $connection = Database::Connect(); 118 $connection = Database::Connect();
119 $this->pog_query = "select * from `record` where `recordid`='".intval($recordId)."' LIMIT 1"; 119 $this->pog_query = "select * from `record` where `recordid`='".intval($recordId)."' LIMIT 1";
120 $cursor = Database::Reader($this->pog_query, $connection); 120 $cursor = Database::Reader($this->pog_query, $connection);
121 while ($row = Database::Read($cursor)) 121 while ($row = Database::Read($cursor))
122 { 122 {
123 $this->recordId = $row['recordid']; 123 $this->recordId = $row['recordid'];
124 $this->userId = $row['userid']; 124 $this->userId = $row['userid'];
125 $this->reference = $this->Unescape($row['reference']); 125 $this->reference = $this->Unescape($row['reference']);
126 $this->data = $this->Unescape($row['data']); 126 $this->data = $this->Unescape($row['data']);
127 $this->version = $this->Unescape($row['version']); 127 $this->version = $this->Unescape($row['version']);
128 $this->creation_date = $row['creation_date']; 128 $this->creation_date = $row['creation_date'];
129 $this->update_date = $row['update_date']; 129 $oDate = strtotime($row['update_date']);
130 $this->update_date = date('r', $oDate);
130 $this->access_date = $row['access_date']; 131 $this->access_date = $row['access_date'];
131 } 132 }
132 return $this; 133 return $this;
133 } 134 }
134 135
135 136
136 /** 137 /**
137 * Returns a sorted array of objects that match given conditions 138 * Returns a sorted array of objects that match given conditions
138 * @param multidimensional array {("field", "comparator", "value"), ("field", "comparator", "value"), ...} 139 * @param multidimensional array {("field", "comparator", "value"), ("field", "comparator", "value"), ...}
139 * @param string $sortBy 140 * @param string $sortBy
140 * @param boolean $ascending 141 * @param boolean $ascending
141 * @param int limit 142 * @param int limit
142 * @return array $recordList 143 * @return array $recordList
143 */ 144 */
144 function GetList($fcv_array = array(), $sortBy='', $ascending=true, $limit='') 145 function GetList($fcv_array = array(), $sortBy='', $ascending=true, $limit='')
145 { 146 {
146 $connection = Database::Connect(); 147 $connection = Database::Connect();
147 $sqlLimit = ($limit != '' ? "LIMIT $limit" : ''); 148 $sqlLimit = ($limit != '' ? "LIMIT $limit" : '');
148 $this->pog_query = "select * from `record` "; 149 $this->pog_query = "select * from `record` ";
149 $recordList = Array(); 150 $recordList = Array();
150 if (sizeof($fcv_array) > 0) 151 if (sizeof($fcv_array) > 0)
151 { 152 {
152 $this->pog_query .= " where "; 153 $this->pog_query .= " where ";
153 for ($i=0, $c=sizeof($fcv_array); $i<$c; $i++) 154 for ($i=0, $c=sizeof($fcv_array); $i<$c; $i++)
154 { 155 {
155 if (sizeof($fcv_array[$i]) == 1) 156 if (sizeof($fcv_array[$i]) == 1)
156 { 157 {
157 $this->pog_query .= " ".$fcv_array[$i][0]." "; 158 $this->pog_query .= " ".$fcv_array[$i][0]." ";
158 continue; 159 continue;
159 } 160 }
160 else 161 else
161 { 162 {
162 if ($i > 0 && sizeof($fcv_array[$i-1]) != 1) 163 if ($i > 0 && sizeof($fcv_array[$i-1]) != 1)
163 { 164 {
164 $this->pog_query .= " AND "; 165 $this->pog_query .= " AND ";
165 } 166 }
166 if (isset($this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes']) && $this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes'][0] != 'NUMERIC' && $this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes'][0] != 'SET') 167 if (isset($this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes']) && $this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes'][0] != 'NUMERIC' && $this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes'][0] != 'SET')
167 { 168 {
168 if ($GLOBALS['configuration']['db_encoding'] == 1) 169 if ($GLOBALS['configuration']['db_encoding'] == 1)
169 { 170 {
170 $value = POG_Base::IsColumn($fcv_array[$i][2]) ? "BASE64_DECODE(".$fcv_array[$i][2].")" : "'".$fcv_array[$i][2]."'"; 171 $value = POG_Base::IsColumn($fcv_array[$i][2]) ? "BASE64_DECODE(".$fcv_array[$i][2].")" : "'".$fcv_array[$i][2]."'";
171 $this->pog_query .= "BASE64_DECODE(`".$fcv_array[$i][0]."`) ".$fcv_array[$i][1]." ".$value; 172 $this->pog_query .= "BASE64_DECODE(`".$fcv_array[$i][0]."`) ".$fcv_array[$i][1]." ".$value;
172 } 173 }
173 else 174 else
174 { 175 {
175 $value = POG_Base::IsColumn($fcv_array[$i][2]) ? $fcv_array[$i][2] : "'".$this->Escape($fcv_array[$i][2])."'"; 176 $value = POG_Base::IsColumn($fcv_array[$i][2]) ? $fcv_array[$i][2] : "'".$this->Escape($fcv_array[$i][2])."'";
176 $this->pog_query .= "`".$fcv_array[$i][0]."` ".$fcv_array[$i][1]." ".$value; 177 $this->pog_query .= "`".$fcv_array[$i][0]."` ".$fcv_array[$i][1]." ".$value;
177 } 178 }
178 } 179 }
179 else 180 else
180 { 181 {
181 $value = POG_Base::IsColumn($fcv_array[$i][2]) ? $fcv_array[$i][2] : "'".$fcv_array[$i][2]."'"; 182 $value = POG_Base::IsColumn($fcv_array[$i][2]) ? $fcv_array[$i][2] : "'".$fcv_array[$i][2]."'";
182 $this->pog_query .= "`".$fcv_array[$i][0]."` ".$fcv_array[$i][1]." ".$value; 183 $this->pog_query .= "`".$fcv_array[$i][0]."` ".$fcv_array[$i][1]." ".$value;
183 } 184 }
184 } 185 }
185 } 186 }
186 } 187 }
187 if ($sortBy != '') 188 if ($sortBy != '')
188 { 189 {
189 if (isset($this->pog_attribute_type[$sortBy]['db_attributes']) && $this->pog_attribute_type[$sortBy]['db_attributes'][0] != 'NUMERIC' && $this->pog_attribute_type[$sortBy]['db_attributes'][0] != 'SET') 190 if (isset($this->pog_attribute_type[$sortBy]['db_attributes']) && $this->pog_attribute_type[$sortBy]['db_attributes'][0] != 'NUMERIC' && $this->pog_attribute_type[$sortBy]['db_attributes'][0] != 'SET')
190 { 191 {
191 if ($GLOBALS['configuration']['db_encoding'] == 1) 192 if ($GLOBALS['configuration']['db_encoding'] == 1)
192 { 193 {
193 $sortBy = "BASE64_DECODE($sortBy) "; 194 $sortBy = "BASE64_DECODE($sortBy) ";
194 } 195 }
195 else 196 else
196 { 197 {
197 $sortBy = "$sortBy "; 198 $sortBy = "$sortBy ";
198 } 199 }
199 } 200 }
200 else 201 else
201 { 202 {
202 $sortBy = "$sortBy "; 203 $sortBy = "$sortBy ";
203 } 204 }
204 } 205 }
205 else 206 else
206 { 207 {
207 $sortBy = "recordid"; 208 $sortBy = "recordid";
208 } 209 }
209 $this->pog_query .= " order by ".$sortBy." ".($ascending ? "asc" : "desc")." $sqlLimit"; 210 $this->pog_query .= " order by ".$sortBy." ".($ascending ? "asc" : "desc")." $sqlLimit";
210 $thisObjectName = get_class($this); 211 $thisObjectName = get_class($this);
211 $cursor = Database::Reader($this->pog_query, $connection); 212 $cursor = Database::Reader($this->pog_query, $connection);
212 while ($row = Database::Read($cursor)) 213 while ($row = Database::Read($cursor))
213 { 214 {
214 $record = new $thisObjectName(); 215 $record = new $thisObjectName();
215 $record->recordId = $row['recordid']; 216 $record->recordId = $row['recordid'];
216 $record->userId = $row['userid']; 217 $record->userId = $row['userid'];
217 $record->reference = $this->Unescape($row['reference']); 218 $record->reference = $this->Unescape($row['reference']);
218 $record->data = $this->Unescape($row['data']); 219 $record->data = $this->Unescape($row['data']);
219 $record->version = $this->Unescape($row['version']); 220 $record->version = $this->Unescape($row['version']);
220 $record->creation_date = $row['creation_date']; 221 $record->creation_date = $row['creation_date'];
221 $record->update_date = $row['update_date']; 222 $oDate = strtotime($row['update_date']);
223 $record->update_date = date('r', $oDate);
222 $record->access_date = $row['access_date']; 224 $record->access_date = $row['access_date'];
223 $recordList[] = $record; 225 $recordList[] = $record;
224 } 226 }
225 return $recordList; 227 return $recordList;
226 } 228 }
227 229
228 230
229 /** 231 /**
230 * Saves the object to the database 232 * Saves the object to the database
231 * @return integer $recordId 233 * @return integer $recordId
232 */ 234 */
233 function Save($deep = true) 235 function Save($deep = true)
234 { 236 {
235 $connection = Database::Connect(); 237 $connection = Database::Connect();
238 $this->update_date = date( 'r');
239 $this->access_date = date( 'r');
236 $this->pog_query = "select `recordid` from `record` where `recordid`='".$this->recordId."' LIMIT 1"; 240 $this->pog_query = "select `recordid` from `record` where `recordid`='".$this->recordId."' LIMIT 1";
237 $rows = Database::Query($this->pog_query, $connection); 241 $rows = Database::Query($this->pog_query, $connection);
238 if ($rows > 0) 242 if ($rows > 0)
239 { 243 {
240 $this->pog_query = "update `record` set 244 $this->pog_query = "update `record` set
241 `userid`='".$this->userId."', 245 `userid`='".$this->userId."',
242 `reference`='".$this->Escape($this->reference)."', 246 `reference`='".$this->Escape($this->reference)."',
243 `data`='".$this->Escape($this->data)."', 247 `data`='".$this->Escape($this->data)."',
244 `version`='".$this->Escape($this->version)."', 248 `version`='".$this->Escape($this->version)."',
245 `creation_date`='".$this->creation_date."', 249 `creation_date`='".$this->creation_date."',
246 `update_date`='".$this->update_date."', 250 `update_date`='".$this->update_date."',
247 `access_date`='".$this->access_date."' where `recordid`='".$this->recordId."'"; 251 `access_date`='".$this->access_date."' where `recordid`='".$this->recordId."'";
248 } 252 }
249 else 253 else
250 { 254 {
251 $this->pog_query = "insert into `record` (`userid`, `reference`, `data`, `version`, `creation_date`, `update_date`, `access_date` ) values ( 255 $this->pog_query = "insert into `record` (`userid`, `reference`, `data`, `version`, `creation_date`, `update_date`, `access_date` ) values (
252 '".$this->userId."', 256 '".$this->userId."',
253 '".$this->Escape($this->reference)."', 257 '".$this->Escape($this->reference)."',
254 '".$this->Escape($this->data)."', 258 '".$this->Escape($this->data)."',
255 '".$this->Escape($this->version)."', 259 '".$this->Escape($this->version)."',
256 '".$this->creation_date."', 260 '".$this->creation_date."',
257 '".$this->update_date."', 261 '".$this->update_date."',
258 '".$this->access_date."' )"; 262 '".$this->access_date."' )";
259 } 263 }
260 $insertId = Database::InsertOrUpdate($this->pog_query, $connection); 264 $insertId = Database::InsertOrUpdate($this->pog_query, $connection);
261 if ($this->recordId == "") 265 if ($this->recordId == "")
262 { 266 {
263 $this->recordId = $insertId; 267 $this->recordId = $insertId;
264 } 268 }
265 if ($deep) 269 if ($deep)
266 { 270 {
267 foreach ($this->_recordversionList as $recordversion) 271 foreach ($this->_recordversionList as $recordversion)
268 { 272 {
269 $recordversion->recordId = $this->recordId; 273 $recordversion->recordId = $this->recordId;
270 $recordversion->Save($deep); 274 $recordversion->Save($deep);
271 } 275 }
272 } 276 }
273 return $this->recordId; 277 return $this->recordId;
274 } 278 }
275 279
276 280
277 /** 281 /**
278 * Clones the object and saves it to the database 282 * Clones the object and saves it to the database
279 * @return integer $recordId 283 * @return integer $recordId
280 */ 284 */
281 function SaveNew($deep = false) 285 function SaveNew($deep = false)
282 { 286 {
283 $this->recordId = ''; 287 $this->recordId = '';
288 $this->creation_date = date( 'Y-m-d H:i:s');
284 return $this->Save($deep); 289 return $this->Save($deep);
285 } 290 }
286 291
287 292
288 /** 293 /**
289 * Deletes the object from the database 294 * Deletes the object from the database
290 * @return boolean 295 * @return boolean
291 */ 296 */
292 function Delete($deep = false, $across = false) 297 function Delete($deep = false, $across = false)
293 { 298 {
294 if ($deep) 299 if ($deep)
295 { 300 {
296 $recordversionList = $this->GetRecordversionList(); 301 $recordversionList = $this->GetRecordversionList();
297 foreach ($recordversionList as $recordversion) 302 foreach ($recordversionList as $recordversion)
298 { 303 {
299 $recordversion->Delete($deep, $across); 304 $recordversion->Delete($deep, $across);
300 } 305 }
301 } 306 }
302 $connection = Database::Connect(); 307 $connection = Database::Connect();
303 $this->pog_query = "delete from `record` where `recordid`='".$this->recordId."'"; 308 $this->pog_query = "delete from `record` where `recordid`='".$this->recordId."'";
304 return Database::NonQuery($this->pog_query, $connection); 309 return Database::NonQuery($this->pog_query, $connection);
305 } 310 }
306 311
307 312
308 /** 313 /**
309 * Deletes a list of objects that match given conditions 314 * Deletes a list of objects that match given conditions
310 * @param multidimensional array {("field", "comparator", "value"), ("field", "comparator", "value"), ...} 315 * @param multidimensional array {("field", "comparator", "value"), ("field", "comparator", "value"), ...}
311 * @param bool $deep 316 * @param bool $deep
312 * @return 317 * @return
313 */ 318 */
314 function DeleteList($fcv_array, $deep = false, $across = false) 319 function DeleteList($fcv_array, $deep = false, $across = false)
315 { 320 {
316 if (sizeof($fcv_array) > 0) 321 if (sizeof($fcv_array) > 0)
317 { 322 {
318 if ($deep || $across) 323 if ($deep || $across)
319 { 324 {
320 $objectList = $this->GetList($fcv_array); 325 $objectList = $this->GetList($fcv_array);
321 foreach ($objectList as $object) 326 foreach ($objectList as $object)
322 { 327 {
323 $object->Delete($deep, $across); 328 $object->Delete($deep, $across);
324 } 329 }
325 } 330 }
326 else 331 else
327 { 332 {
328 $connection = Database::Connect(); 333 $connection = Database::Connect();
329 $pog_query = "delete from `record` where "; 334 $pog_query = "delete from `record` where ";
330 for ($i=0, $c=sizeof($fcv_array); $i<$c; $i++) 335 for ($i=0, $c=sizeof($fcv_array); $i<$c; $i++)
331 { 336 {