Fix: visitor are allowed to chose nb of links per page
This commit is contained in:
parent
87ae3c4f08
commit
204035bd3c
4 changed files with 106 additions and 66 deletions
application/front/controller
|
@ -12,28 +12,10 @@ use Slim\Http\Response;
|
|||
/**
|
||||
* Class SessionFilterController
|
||||
*
|
||||
* Slim controller used to handle filters stored in the user session, such as visibility, links per page, etc.
|
||||
* Slim controller used to handle filters stored in the user session, such as visibility, etc.
|
||||
*/
|
||||
class SessionFilterController extends ShaarliAdminController
|
||||
{
|
||||
/**
|
||||
* GET /links-per-page: set the number of bookmarks to display per page in homepage
|
||||
*/
|
||||
public function linksPerPage(Request $request, Response $response): Response
|
||||
{
|
||||
$linksPerPage = $request->getParam('nb') ?? null;
|
||||
if (null === $linksPerPage || false === is_numeric($linksPerPage)) {
|
||||
$linksPerPage = $this->container->conf->get('general.links_per_page', 20);
|
||||
}
|
||||
|
||||
$this->container->sessionManager->setSessionParameter(
|
||||
SessionManager::KEY_LINKS_PER_PAGE,
|
||||
abs(intval($linksPerPage))
|
||||
);
|
||||
|
||||
return $this->redirectFromReferer($request, $response, ['linksperpage'], ['nb']);
|
||||
}
|
||||
|
||||
/**
|
||||
* GET /visibility: allows to display only public or only private bookmarks in linklist
|
||||
*/
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Shaarli\Front\Controller\Visitor;
|
||||
|
||||
use Shaarli\Security\SessionManager;
|
||||
use Slim\Http\Request;
|
||||
use Slim\Http\Response;
|
||||
|
||||
/**
|
||||
* Slim controller used to handle filters stored in the visitor session, links per page, etc.
|
||||
*/
|
||||
class PublicSessionFilterController extends ShaarliVisitorController
|
||||
{
|
||||
/**
|
||||
* GET /links-per-page: set the number of bookmarks to display per page in homepage
|
||||
*/
|
||||
public function linksPerPage(Request $request, Response $response): Response
|
||||
{
|
||||
$linksPerPage = $request->getParam('nb') ?? null;
|
||||
if (null === $linksPerPage || false === is_numeric($linksPerPage)) {
|
||||
$linksPerPage = $this->container->conf->get('general.links_per_page', 20);
|
||||
}
|
||||
|
||||
$this->container->sessionManager->setSessionParameter(
|
||||
SessionManager::KEY_LINKS_PER_PAGE,
|
||||
abs(intval($linksPerPage))
|
||||
);
|
||||
|
||||
return $this->redirectFromReferer($request, $response, ['linksperpage'], ['nb']);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue