/** * Show a feed * * @return string */ protected function feedAction() { $filters = array(); $filters['filter'] = Request::getWord('filter'); $filters['search'] = Request::getVar('q'); $filters['limit'] = Request::getInt('limit', Config::get('list_limit')); $filters['start'] = Request::getInt('start', 0); if (!in_array($filters['filter'], ['starred'])) { $filters['filter'] = ''; } $recipient = Hubzero\Activity\Recipient::all(); $r = $recipient->getTableName(); $l = Hubzero\Activity\Log::blank()->getTableName(); $recipient->select($r . '.*')->including('log')->join($l, $l . '.id', $r . '.log_id')->whereEquals($r . '.scope', 'user')->whereEquals($r . '.scope_id', $this->member->get('id'))->whereEquals($r . '.state', Hubzero\Activity\Recipient::STATE_PUBLISHED); if ($filters['filter'] == 'starred') { $recipient->whereEquals($r . '.starred', 1); } if ($filters['search']) { $recipient->whereLike($l . '.description', $filters['search']); } $total = $recipient->copy()->total(); $entries = $recipient->ordered()->limit($filters['limit'])->start($filters['start'])->rows(); /* @TODO Add lists of scopes and actions to filter by $categories = \Hubzero\Activity\Log::all() ->select('action') ->whereIn('id', $ids) ->ordered() ->paginated(); */ $digests = $this->params->get('email_digests'); $view = $this->view('default', 'activity')->set('digests', $digests)->set('member', $this->member)->set('categories', null)->set('filters', $filters)->set('total', $total)->set('rows', $entries); return $view->loadTemplate(); }
</div><!-- / .comment-add --> <?php } ?> <div class="activity-processor"> <div class="spinner"><div></div></div> <div class="msg"></div> </div><!-- / .activity-processor --> </div><!-- / .activity-content --> <?php if ($this->row->log->get('scope') == 'activity.comment') { $recipient = Hubzero\Activity\Recipient::all(); $r = $recipient->getTableName(); $l = Hubzero\Activity\Log::blank()->getTableName(); $rows = $recipient->select($r . '.*')->including('log')->join($l, $l . '.id', $r . '.log_id')->whereEquals($r . '.scope', 'group')->whereEquals($r . '.scope_id', $this->group->get('gidNumber'))->whereEquals($r . '.state', Hubzero\Activity\Recipient::STATE_PUBLISHED)->whereEquals($l . '.parent', $this->row->log->get('id'))->order('id', 'asc')->rows(); if ($rows->count()) { ?> <ul class="activity-comments"> <?php foreach ($rows as $row) { $this->view('default_item')->set('group', $this->group)->set('online', $this->online)->set('row', $row)->display(); } ?> </ul> <?php } } ?>
/** * Save a comment * * @return void */ protected function postAction() { // Check for request forgeries Request::checkToken(); // Incoming $comment = Request::getVar('activity', array(), 'post', 'none', 2); // Instantiate a new object and bind data $row = Hubzero\Activity\Log::oneOrNew($comment['id'])->set($comment); // Process attachment $upload = Request::getVar('activity_file', '', 'files', 'array'); if (!empty($upload) && $upload['name']) { if ($upload['error']) { $this->setError(\Lang::txt('PLG_GROUPS_ACTIVITY_ERROR_UPLOADING_FILE')); } $file = new Plugins\Groups\Activity\Models\Attachment(); $file->setUploadDir('/site/groups/' . $this->group->get('gidNumber') . '/uploads'); if (!$file->upload($upload['name'], $upload['tmp_name'], $upload['size'])) { App::redirect(Route::url($this->base . '&active=' . $this->_name), $file->getError(), 'error'); } else { $row->details->set('attachments', array($file->toArray())); $row->set('details', $row->details->toString()); } } // Store new content if (!$row->save()) { User::setState('failed_comment', $row->get('description')); App::redirect(Route::url($this->base . '&active=' . $this->_name), $row->getError(), 'error'); } // Record the activity $recipients = array(['group', $this->group->get('gidNumber')], ['user', $row->get('created_by')]); if ($row->get('parent')) { $recipients[] = ['user', $row->parent()->get('created_by')]; } Event::trigger('system.logActivity', ['activity' => ['id' => $row->get('id'), 'action' => $comment['id'] ? 'updated' : 'created', 'scope' => $row->get('scope'), 'scope_id' => $row->get('scope_id'), 'anonymous' => $row->get('anonymous', 0), 'description' => $row->get('description'), 'details' => array('url' => Route::url($this->base . '&active=' . $this->_name . '#activity' . $row->get('id')), 'attachments' => $row->details->get('attachments'))], 'recipients' => $recipients]); // Redirect App::redirect(Route::url($this->base . '&active=' . $this->_name), Lang::txt('PLG_GROUPS_ACTIVITY_COMMENTS_SAVED')); }