Spaces:
No application file
No application file
| 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); | |
| } | |
| } | |