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();
 }