joinUsers() public static method

Join the users to the activities.
public static joinUsers ( &$Activities )
Exemplo n.º 1
0
 /**
  *
  * 
  * @param bool $Notify
  * @param bool $UserID
  */
 public function post($Notify = false, $UserID = false)
 {
     if (is_numeric($Notify)) {
         $UserID = $Notify;
         $Notify = false;
     }
     if (!$UserID) {
         $UserID = Gdn::session()->UserID;
     }
     switch ($Notify) {
         case 'mods':
             $this->permission('Garden.Moderation.Manage');
             $NotifyUserID = ActivityModel::NOTIFY_MODS;
             break;
         case 'admins':
             $this->permission('Garden.Settings.Manage');
             $NotifyUserID = ActivityModel::NOTIFY_ADMINS;
             break;
         default:
             $this->permission('Garden.Profiles.Edit');
             $NotifyUserID = ActivityModel::NOTIFY_PUBLIC;
             break;
     }
     $Activities = array();
     if ($this->Form->authenticatedPostBack()) {
         $Data = $this->Form->formValues();
         $Data = $this->ActivityModel->filterForm($Data);
         if (!isset($Data['Format']) || strcasecmp($Data['Format'], 'Raw') == 0) {
             $Data['Format'] = c('Garden.InputFormatter');
         }
         if ($UserID != Gdn::session()->UserID) {
             // This is a wall post.
             $Activity = array('ActivityType' => 'WallPost', 'ActivityUserID' => $UserID, 'RegardingUserID' => Gdn::session()->UserID, 'HeadlineFormat' => t('HeadlineFormat.WallPost', '{RegardingUserID,you} → {ActivityUserID,you}'), 'Story' => $Data['Comment'], 'Format' => $Data['Format'], 'Data' => array('Bump' => true));
         } else {
             // This is a status update.
             $Activity = array('ActivityType' => 'Status', 'HeadlineFormat' => t('HeadlineFormat.Status', '{ActivityUserID,user}'), 'Story' => $Data['Comment'], 'Format' => $Data['Format'], 'NotifyUserID' => $NotifyUserID, 'Data' => array('Bump' => true));
             $this->setJson('StatusMessage', Gdn_Format::plainText($Activity['Story'], $Activity['Format']));
         }
         $Activity = $this->ActivityModel->save($Activity, false, array('CheckSpam' => true));
         if ($Activity == SPAM || $Activity == UNAPPROVED) {
             $this->StatusMessage = t('ActivityRequiresApproval', 'Your post will appear after it is approved.');
             $this->render('Blank', 'Utility');
             return;
         }
         if ($Activity) {
             if ($UserID == Gdn::session()->UserID && $NotifyUserID == ActivityModel::NOTIFY_PUBLIC) {
                 Gdn::userModel()->setField(Gdn::session()->UserID, 'About', Gdn_Format::plainText($Activity['Story'], $Activity['Format']));
             }
             $Activities = array($Activity);
             ActivityModel::joinUsers($Activities);
             $this->ActivityModel->calculateData($Activities);
         } else {
             $this->Form->setValidationResults($this->ActivityModel->validationResults());
             $this->StatusMessage = $this->ActivityModel->Validation->resultsText();
             //            $this->render('Blank', 'Utility');
         }
     }
     if ($this->deliveryType() == DELIVERY_TYPE_ALL) {
         $Target = $this->Request->get('Target', '/activity');
         if (isSafeUrl($Target)) {
             redirect($Target);
         } else {
             redirect(url('/activity'));
         }
     }
     $this->setData('Activities', $Activities);
     $this->render('Activities');
 }