Esempio n. 1
0
 /**
  * @return mixed
  */
 public function index()
 {
     if (Input::has('folder')) {
         $username = request('user', auth()->id());
         $entity = $this->folders->getByName($username, request('folder'));
     } else {
         $groupName = request('group', 'all');
         $entity = $this->groups->requireByName($groupName);
     }
     $type = request('type', 'all');
     $canSortBy = ['comments', 'uv', 'created_at', 'frontpage_at'];
     $orderBy = in_array(request('sort'), $canSortBy) ? request('sort') : null;
     $builder = $entity->contents($type, $orderBy)->with('group', 'user');
     // Time filter
     $time = request('time');
     if ($time) {
         $builder->fromDaysAgo($time);
     }
     // Domain filter
     $domain = request('domain');
     if ($domain) {
         $builder->where('domain', $domain);
     }
     // User filter
     if (Input::has('user')) {
         $user = User::name(request('user'))->firstOrFail();
         $builder->where('user_id', $user->getKey());
     }
     $perPage = Input::has('per_page') ? between(request('per_page'), 1, 100) : 20;
     return $builder->paginate($perPage);
 }
Esempio n. 2
0
 public function showEntriesFromGroup($groupName = null)
 {
     // If user is on homepage, then use proper group
     if (!Route::input('groupname')) {
         $groupName = $this->homepageGroup();
     }
     $group = $this->groups->requireByName($groupName);
     view()->share('group', $group);
     if (Auth::guest() && $group->isPrivate) {
         return redirect()->guest('login');
     }
     $builder = $group->entries();
     return $this->showEntries($builder);
 }
Esempio n. 3
0
 public function index()
 {
     if (Input::has('folder')) {
         $username = request('user', auth()->id());
         $entity = $this->folders->getByName($username, request('folder'));
     } else {
         $groupName = request('group', 'all');
         $entity = $this->groups->getByName($groupName);
     }
     $sortBy = in_array(request('sort'), ['uv', 'created_at']) ? request('sort') : 'created_at';
     $builder = $entity->comments($sortBy)->with(['user', 'group', 'replies', 'replies.user']);
     // Time filter
     if (Input::has('time')) {
         $builder->fromDaysAgo(request('time'));
     }
     $perPage = Input::has('per_page') ? between(request('per_page'), 1, 100) : 20;
     return $builder->paginate($perPage);
 }
 /**
  * Display contents from given group.
  *
  * @param string $groupName
  *
  * @return \Illuminate\View\View|\Symfony\Component\HttpFoundation\Response
  */
 public function showContentsFromGroup($groupName = null)
 {
     $routeName = Route::currentRouteName();
     $tab = str_contains($routeName, 'new') ? 'new' : 'popular';
     // If user is on homepage, then use proper group
     if (!Route::input('groupname')) {
         $groupName = $this->homepageGroup();
     }
     // Make it possible to browse everything by adding all parameter
     if (Input::get('all')) {
         $tab = null;
     }
     $group = $this->groups->requireByName($groupName);
     view()->share('group', $group);
     if (Auth::guest() && $group->isPrivate) {
         return redirect()->guest('login');
     }
     $canSortBy = ['comments_count', 'uv', 'created_at', 'frontpage_at'];
     $orderBy = in_array(Input::get('sort'), $canSortBy) ? Input::get('sort') : null;
     $builder = $group->contents($tab, $orderBy);
     return $this->showContents($builder);
 }