1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- namespace App\Controllers;
- use App\Database\Queries\MediaQuery;
- use Slim\Http\Request;
- use Slim\Http\Response;
- class DashboardController extends Controller
- {
- const PER_PAGE = 21;
- const PER_PAGE_ADMIN = 25;
- /**
- * @param Request $request
- * @param Response $response
- * @return Response
- */
- public function redirects(Request $request, Response $response): Response
- {
- if ($request->getParam('afterInstall') !== null && is_dir('install')) {
- $this->session->alert(lang('installed'), 'success');
- removeDirectory('install');
- }
- return redirect($response, 'home');
- }
- /**
- * @param Request $request
- * @param Response $response
- * @param $args
- * @return Response
- */
- public function home(Request $request, Response $response, $args): Response
- {
- $page = isset($args['page']) ? (int)$args['page'] : 0;
- $page = max(0, --$page);
- $query = new MediaQuery($this->database, $this->session->get('admin', false));
- $query->orderBy(MediaQuery::ORDER_NAME)
- ->withUserId($this->session->get('user_id'))
- ->run($page);
- return $this->view->render(
- $response,
- ($this->session->get('admin', false) && $this->session->get('gallery_view', true)) ? 'dashboard/admin.twig' : 'dashboard/home.twig',
- [
- 'medias' => $query->getMedia(),
- 'next' => $page < floor($query->getPages()),
- 'previous' => $page >= 1,
- 'current_page' => ++$page,
- ]
- );
- }
- /**
- * @param Request $request
- * @param Response $response
- * @param $args
- * @return Response
- */
- public function switchView(Request $request, Response $response, $args): Response
- {
- $this->session->set('gallery_view', !$this->session->get('gallery_view', true));
- return redirect($response, 'home');
- }
- }
|