Returns the static model of the specified AR class.
public static model ( $className = __CLASS__ ) : AuditModel | ||
return | AuditModel | the static model class |
/** * Returns the audit model for the record. * @return AuditModel the model. */ protected function loadModel($action) { list($model, $modelId) = $this->getModel(); $criteria = new CDbCriteria(); $criteria->addCondition('model=:model'); $criteria->addCondition('modelId=:modelId'); $criteria->addCondition('action=:action'); $criteria->params = array(':model' => $model, ':modelId' => $modelId, ':action' => $action); $criteria->order = 't.created DESC'; return AuditModel::model()->find($criteria); }
public static function add($target, $action, $data = null, $log_message = null, $properties = array()) { if (!($_target = AuditType::model()->find('name=?', array($target)))) { $_target = new AuditType(); $_target->name = $target; if (!$_target->save()) { throw new Exception("Unable to save audit target: " . print_r($_target->getErrors(), true)); } } if (!($_action = AuditAction::model()->find('name=?', array($action)))) { $_action = new AuditAction(); $_action->name = $action; if (!$_action->save()) { throw new Exception("Unable to save audit action: " . print_r($_action->getErrors(), true)); } } $audit = new Audit(); $audit->type_id = $_target->id; $audit->action_id = $_action->id; $audit->data = $data; if (!isset($properties['user_id'])) { if (Yii::app()->session['user']) { $properties['user_id'] = Yii::app()->session['user']->id; } } if (isset($properties['module'])) { if ($et = EventType::model()->find('class_name=?', array($properties['module']))) { $properties['event_type_id'] = $et->id; } else { if (!($module = AuditModule::model()->find('name=?', array($properties['module'])))) { $module = new AuditModule(); $module->name = $properties['module']; if (!$module->save()) { throw new Exception("Unable to create audit_module: " . print_r($module->getErrors(), true)); } } $properties['module_id'] = $module->id; } unset($properties['module']); } if (isset($properties['model'])) { if (!($model = AuditModel::model()->find('name=?', array($properties['model'])))) { $model = new AuditModel(); $model->name = $properties['model']; if (!$model->save()) { throw new Exception("Unable to save audit_model: " . print_r($model->getErrors(), true)); } } $properties['model_id'] = $model->id; unset($properties['model']); } foreach ($properties as $key => $value) { $audit->{$key} = $value; } if (!$audit->save()) { throw new Exception("Failed to save audit entry: " . print_r($audit->getErrors(), true)); } if (isset($properties['user_id'])) { $username = User::model()->findByPk($properties['user_id'])->username; } $log_message && OELog::log($log_message, @$username); return $audit; }