Spaces:
No application file
No application file
File size: 1,118 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
<?php
declare(strict_types=1);
namespace Mautic\CoreBundle\Helper;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
final class PageHelper implements PageHelperInterface
{
public function __construct(
private SessionInterface $session,
private CoreParametersHelper $coreParametersHelper,
private string $sessionPrefix,
private int $page
) {
}
public function getLimit(): int
{
return (int) $this->session->get(
"{$this->sessionPrefix}.limit",
$this->coreParametersHelper->get('default_pagelimit')
);
}
public function countPage(int $count): int
{
$currentPage = (int) (ceil($count / $this->getLimit())) ?: 1;
return (1 === $count) ? 1 : $currentPage;
}
public function getStart(): int
{
$start = ($this->page - 1) * $this->getLimit();
if ($start < 0) {
return 0;
}
return $start;
}
public function rememberPage(int $page): void
{
$this->session->set("{$this->sessionPrefix}.page", $page);
}
}
|