Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/modules/sender/lib/ui/
Upload File :
Current File : /var/www/homesaver/www/bitrix/modules/sender/lib/ui/pagenavigation.php

<?php
/**
 * Bitrix Framework
 * @package bitrix
 * @subpackage sender
 * @copyright 2001-2012 Bitrix
 */

namespace Bitrix\Sender\UI;

use Bitrix\Main\Application;
use Bitrix\Main\UI;

/**
 * Class PageNavigation
 * @package Bitrix\Sender\UI
 */
class PageNavigation extends UI\PageNavigation
{
	protected $sessionKeyName = 'sender_page_navigation';

	/**
	 * Reset session variable.
	 *
	 * @return void
	 */
	public function resetSessionVar()
	{
		if(isset($_SESSION[$this->sessionKeyName]))
		{
			unset($_SESSION[$this->sessionKeyName]);
		}
	}

	protected function setSessionVar($page = 1, $allRecords=false)
	{
		if(!isset($_SESSION[$this->sessionKeyName]))
		{
			$_SESSION[$this->sessionKeyName] = array();
		}

		$_SESSION[$this->sessionKeyName][$this->id] = [
			'page' => $page,
			'allRecords' => $allRecords
		];
	}

	protected function getSessionVar()
	{
		if(!isset($_SESSION[$this->sessionKeyName]))
		{
			return 1;
		}

		if (!isset($_SESSION[$this->sessionKeyName][$this->id]))
		{
			return 1;
		}

		return $_SESSION[$this->sessionKeyName][$this->id];
	}

	/**
	 * Init from uri.
	 */
	public function initFromUri()
	{
		parent::initFromUri();

		$page = $this->currentPage;
		$request = Application::getInstance()->getContext()->getRequest();
		if ($request->get('apply_filter') === 'Y')
		{
			$page = 1;
		}
		if (!$page && $request->get('grid_action') === 'pagination')
		{
			$page = 1;
		}

		if ($page > 0)
		{
			$this->setSessionVar($page, $this->allRecords);
		}
		else
		{
			$page = is_array($this->getSessionVar()) ? ($this->getSessionVar()['page'] ?? 0) : 0;
		}

		$page = $page > 0 ? $page : 1;
		$this->setCurrentPage($page);
		$this->allRecords = is_array($this->getSessionVar()) ? ($this->getSessionVar()['allRecords'] ?? false) : false;
	}
}