Example #1
0
 /**
  * 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'];
 }