Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/main/lib/grid/action/ |
Upload File : |
<?php namespace Bitrix\Main\Grid\Action; use Bitrix\Main\Grid\Pagination\PageNavigationStorage; use Bitrix\Main\HttpRequest; use Bitrix\Main\Result; use Bitrix\Main\UI\PageNavigation; /** * Pagination grid action. * * Changes current page and saves it to storage, for correct working interactive grid cells (for example, using components). */ final class PaginationAction implements Action { private PageNavigation $pagination; private ?PageNavigationStorage $storage; /** * @inheritDoc * * @return string */ public static function getId(): string { return 'pagination'; } /** * @param PageNavigation $pagination * @param PageNavigationStorage|null $storage if not setted, action only change page. */ public function __construct(PageNavigation $pagination, ?PageNavigationStorage $storage) { $this->pagination = $pagination; $this->storage = $storage; } /** * @inheritDoc * * and saves this in storage. * * @param HttpRequest $request * * @return Result|null */ public function processRequest(HttpRequest $request): ?Result { if (\Bitrix\Main\Context::getCurrent()->getRequest() !== $request) { trigger_error('Pagination working only request from context', E_USER_WARNING); } $tmp = clone $this->pagination; $tmp->setCurrentPage(1); $tmp->initFromUri(); if ($this->pagination->getCurrentPage() !== $tmp->getCurrentPage()) { $this->pagination->setCurrentPage($tmp->getCurrentPage()); if (isset($this->storage)) { $this->storage->save($this->pagination); } } return new Result(); } }