/** * @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); }
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); }
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); }