/** * add an action to log * @param array $p action params * array( * @varchar "type" - action type * ,object "old" - old object * ,object "new" - new object * ) * @return int logged action id */ public static function add(&$p) { $userId = User::getId(); //check if log not disabled if (Config::getFlag('disableActivityLog') || empty($userId)) { return; } $data = empty($p['new']) ? empty($p['old']) ? $p['data'] : $p['old']->getData() : $p['new']->getData(); fireEvent('beforelogadd', $p); $p['logData'] = static::getLogData($p); $p['activityData'] = static::getActivityData($data); $params = array('object_id' => $data['id'], 'object_pid' => @$data['pid'], 'user_id' => $userId, 'action_type' => $p['type'], 'data' => Util\jsonEncode($p['logData']), 'activity_data_db' => Util\jsonEncode($p['activityData'])); $p['action_id'] = DM\Log::create($params); $params['id'] = $p['action_id']; static::addSolrRecord($p); static::addNotificationRecords($params); fireEvent('logadd', $p); return $p['action_id']; }