public function index(Microblog $microblog, Reputation $reputation, Stream $stream) { $microblog->setUserId(auth()->check() ? auth()->user()->id : null); $viewers = app('Session\\Viewers'); Debugbar::startMeasure('stream', 'Stream activities'); // tymczasowo naglowki tylko dla mikroblogow, a nie dla forum $activities = $stream->take(10, 0, ['Topic', 'Post', 'Comment'], ['Create', 'Update']); Debugbar::stopMeasure('stream'); return view('home', ['viewers' => $viewers->render(), 'microblogs' => $microblog->take(10), 'activities' => $activities, 'reputation' => Cache::remember('homepage:reputation', 30, function () use($reputation) { return ['month' => $reputation->monthly(), 'year' => $reputation->yearly(), 'total' => $reputation->total()]; })]); }
/** * @param $id * @param Microblog $repository * @return $this */ public function index($id, Microblog $repository) { $microblog = $repository->findOrFail($id); $excerpt = excerpt($microblog->text); $this->breadcrumb->push('Mikroblog', route('microblog.home')); $this->breadcrumb->push($excerpt, route('microblog.view', [$microblog->id])); $microblog->text = app()->make('Parser\\Microblog')->parse($microblog->text); $parser = app()->make('Parser\\Comment'); foreach ($microblog->comments as &$comment) { $comment->text = $parser->parse($comment->text); } return parent::view('microblog.view')->with(['microblog' => $microblog, 'excerpt' => $excerpt]); }
/** * Pokaz pozostale komentarze do wpisu * * @param $id * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function show($id) { $parser = app()->make('Parser\\Comment'); $comments = $this->microblog->getComments([$id])->slice(0, -2); foreach ($comments as &$comment) { $comment->text = $parser->parse($comment->text); } return view('microblog._comments', ['id' => $id, 'comments' => $comments]); }
/** * Usuniecie wpisu z mikrobloga * * @param $id */ public function delete($id) { $microblog = $this->microblog->findOrFail($id, ['id', 'user_id']); $this->authorize('delete', $microblog); \DB::transaction(function () use($microblog) { $microblog->delete(); // cofniecie pkt reputacji (new Reputation_Create($this->reputation))->undo($microblog->id); // put this to activity stream $delete = new Stream_Delete(new Stream_Actor(auth()->user()), (new Stream_Microblog())->map($microblog)); (new Stream_Activity($this->stream))->add($delete); }); }
/** * @return \Illuminate\View\View */ public function mine() { $this->breadcrumb->push('Moje wpisy', route('microblog.mine')); $this->microblog->pushCriteria(new OnlyMine()); return $this->index(); }