hasPerm("Admin.Admin_Tab", $lvl); } /** * init: * Initialize an event - ready to insert.. * * @param {String} action - group/name of event * @param {DataObject|false} obj - dataobject action occured on. * @param {String} any remarks */ function init($act, $obj, $remarks) { $pg = HTML_FlexyFramework::get()->page; $au = $pg->getAuthUser(); $this->person_name = $au && !empty($au->name) ? $au->name : ''; $this->person_id = $au ? $au->id : ''; $this->ipaddr = isset($_SERVER["REMOTE_ADDR"]) ? $_SERVER["REMOTE_ADDR"] : 'cli'; $this->action = $act; $this->on_table = $obj ? $obj->tableName() : ''; $pk = $obj ? $obj->keys() : false; $this->on_id = $obj && $pk ? $obj->{$pk[0]}: 0; $rem = array(); // should this really go in remarks? - if ($obj && method_exists($obj,'toEventString')) { $rem[] = $obj->toEventString() ; } $rem[] = $remarks; $this->remarks = implode(' : ', $rem); } /** * Generate an audit for this field. * * @param {DB_DataObject} new data * @param {DB_DataObject} old data * * @return {int} number of entries logged. */ function audit($new, $old = false) { if ($old == $new) { return 0; // they are the same... } $ret = 0; foreach(array_keys($new->table()) as $k) { // should we JSON serialize this? $n = empty($new->$k) ? '' : $new->$k; $o = empty($old->$k) || empty($old->$k) ? '' : $old->$k; if ($n == $o) { continue; } $x = DB_DataObject::factory('core_event_audit'); $x->setFrom(array( 'event_id' => $this->id, 'name' => $k, 'old_audit_id' => $old ? $x->findLast($this, $k) : 0, 'newvalue' => $n )); $x->insert(); $ret++; } return $ret; } }