3 declare(strict_types
=1);
5 namespace Shaarli\Front\Controller\Visitor
;
7 use Shaarli\Security\SessionManager
;
9 use Slim\Http\Response
;
12 * Slim controller used to handle filters stored in the visitor session, links per page, etc.
14 class PublicSessionFilterController
extends ShaarliVisitorController
17 * GET /links-per-page: set the number of bookmarks to display per page in homepage
19 public function linksPerPage(Request
$request, Response
$response): Response
21 $linksPerPage = $request->getParam('nb') ?? null;
22 if (null === $linksPerPage || false === is_numeric($linksPerPage)) {
23 $linksPerPage = $this->container
->conf
->get('general.links_per_page', 20);
26 $this->container
->sessionManager
->setSessionParameter(
27 SessionManager
::KEY_LINKS_PER_PAGE
,
28 abs(intval($linksPerPage))
31 return $this->redirectFromReferer($request, $response, ['linksperpage'], ['nb']);
35 * GET /untagged-only: allows to display only bookmarks without any tag
37 public function untaggedOnly(Request
$request, Response
$response): Response
39 $this->container
->sessionManager
->setSessionParameter(
40 SessionManager
::KEY_UNTAGGED_ONLY
,
41 empty($this->container
->sessionManager
->getSessionParameter(SessionManager
::KEY_UNTAGGED_ONLY
))
44 return $this->redirectFromReferer($request, $response, ['untaggedonly', 'untagged-only']);