r159: - Finished all of that logging stuff
[bugdar.git] / includes / class_history.php
1 <?php
2 /*=====================================================================*\
3 || ################################################################### ||
4 || # BugStrike [#]version[#]
5 || # --------------------------------------------------------------- # ||
6 || # Copyright ©2002-[#]year[#] by Iris Studios, Inc. All Rights Reserved. # ||
7 || # This file may not be reproduced in any way without permission. # ||
8 || # --------------------------------------------------------------- # ||
9 || # User License Agreement at http://www.iris-studios.com/license/ # ||
10 || ################################################################### ||
11 \*=====================================================================*/
12
13 class History
14 {
15 var $bugid = 0;
16 var $language = '';
17 var $arguments = array();
18 var $allowempty = false;
19
20 // -------------------------------------------------------------------
21 // -- Create a log entry
22 // -------------------------------------------------------------------
23 function log($diffdata = null)
24 {
25 global $bugsys;
26
27 $this->bugid = intval($this->bugid);
28 $this->language = $bugsys->escape($this->language);
29 $arguments = $bugsys->escape(serialize($this->arguments));
30
31 if ($diffdata == -1)
32 {
33 return;
34 }
35
36 if (!$diffdata)
37 {
38 $bugsys->db->query("
39 INSERT INTO " . TABLE_PREFIX . "history
40 (bugid, dateline, userid, language, arguments)
41 VALUES
42 (" . $this->bugid . ", " . LOG_TIME . ", " . $bugsys->userinfo['userid'] . ",
43 '" . $this->language . "', '" . $arguments . "'
44 )"
45 );
46 }
47 else
48 {
49 $bugsys->db->query("
50 INSERT INTO " . TABLE_PREFIX . "history
51 (bugid, dateline, userid, language, arguments, field, original, changed)
52 VALUES
53 (" . $this->bugid . ", " . LOG_TIME . ", " . $bugsys->userinfo['userid'] . ",
54 '" . $this->language . "', '" . $arguments . "',
55 '" . $bugsys->escape($diffdata['field']) . "', '" . $bugsys->escape($diffdata['initial']) . "',
56 '" . $bugsys->escape($diffdata['final']) . "'
57 )"
58 );
59 }
60 }
61
62 // -------------------------------------------------------------------
63 // -- Do a diff
64 // -------------------------------------------------------------------
65 function diff($field, $initial, $final)
66 {
67 if (empty($initial) AND empty($final))
68 {
69 if (!$this->allowempty)
70 {
71 return -1;
72 }
73 }
74
75 if (!$this->allowempty)
76 {
77 if ($initial === $final)
78 {
79 return -1;
80 }
81 }
82
83 return array('field' => $field, 'initial' => $initial, 'final' => $final);
84 }
85 }
86
87 /*=====================================================================*\
88 || ###################################################################
89 || # $HeadURL$
90 || # $Id$
91 || ###################################################################
92 \*=====================================================================*/
93 ?>