Deprecated: Assigning the return value of new by reference is deprecated in /home/bluestat/public_html/source/index.php on line 477
bugid = $bugsys->clean($id, TYPE_UINT);
}
// ###################################################################
/**
* Sets the attachment ID for the current logging instance
*
* @access public
*
* @param integer New attachment ID
*/
function set_attachmentid($id)
{
global $bugsys;
$this->attachmentid = $bugsys->clean($id, TYPE_UINT);
}
// ###################################################################
/**
* Sets the current comment ID to be logged
*
* @access public
*
* @param integer New comment ID
*/
function set_commentid($id)
{
global $bugsys;
$this->commentid = $bugsys->clean($id, TYPE_UINT);
}
// ###################################################################
/**
* Assigns data into the $this->original or $this->modified array based
* on the passed arrays of information and the fields to add (and what
* name to add them under), and any prefix
*
* @access public
*
* @param bool TRUE for original, FALSE for modified
* @param array Data array
* @param array List of fields in the data array to add; in format of array('field name' => 'display name', 'display name 2', 'display name 3')
* @param bool If TRUE, then the list of fields is used to exclude, not include
* @param string Field prefix
*/
function add_data($orig, $data, $fields, $exclude = false, $prefix = '')
{
$array = ($orig ? 'original' : 'modified');
$prefix .= '.';
if ($exclude == false)
{
foreach ($fields AS $fname => $fdisplay)
{
if (is_numeric($fname))
{
$fname = $fdisplay;
}
$this->{$array}["$prefix$fdisplay"] = array('name' => $fname, 'value' => $data["$fname"]);
}
}
else
{
foreach ($data AS $fname => $value)
{
if (!in_array($fname, $fields))
{
$this->{$array}["$prefix$fname"] = array('name' => $fname, 'value' => $value);
}
}
}
}
// ###################################################################
/**
* Populates the $this->compared array as a diff between the original
* and modified data. This is then used to create the databse queries.
*
* @access private
*/
function compare_arrays()
{
foreach ($this->modified AS $key => $value)
{
if ($this->original["$key"] != $value AND !($value['value'] == '' AND $this->original["$key"]['value'] == '0') AND !($this->original["$key"]['value'] == '' AND $value['value'] == '0'))
{
$this->compared["$key"] = array('old' => $this->original["$key"]['value'], 'new' => $this->modified["$key"]['value']);
}
}
}
// ###################################################################
/**
* Runs $this->compare_arrays() and then takes the result and prepares
* it for insertion into the history database.
*
* @access public
*/
function update_history()
{
global $bugsys;
$this->compare_arrays();
foreach ($this->compared AS $field => $values)
{
$bugsys->db->query("
INSERT INTO " . TABLE_PREFIX . "history
(bugid, attachmentid, commentid, dateline, userid, field, original, changed)
VALUES
(" . $bugsys->clean($this->bugid, TYPE_UINT) . ", " . $bugsys->clean($this->attachmentid, TYPE_UINT) . ",
" . $bugsys->clean($this->commentid, TYPE_UINT) . ", " . TIMENOW . ", " . $bugsys->userinfo['userid'] . ",
'" . $bugsys->db->escape_string($field) . "', '" . $bugsys->db->escape_string($values['old']) . "',
'" . $bugsys->db->escape_string($values['new']) . "'
)
");
}
}
// ###################################################################
/**
* Returns an array of the fields commonly ignored
*
* @access public
*
* @return array Fields ignored in logging
*/
function getCommonFields()
{
return array(
'bugid',
'lastposttime',
'lastpostby',
'lastpostbyname',
'hiddenlastposttime',
'hiddenlastpostby',
'hiddenlastpostbyname'
);
}
}
/*=====================================================================*\
|| ###################################################################
|| # $HeadURL$
|| # $Id$
|| ###################################################################
\*=====================================================================*/
?>