pdoPage - продвинутый режим работы

В этом режиме работы страницы разбиваются следующим образом:
1 2 ... 5 6 -7- 8 9 ... 14 15
Мне кажется это не совсем верно, зачем показывать несколько первых и последних страниц? При переходе на страницу пользователь сразу видит начальные страницы, а последняя показывается в основном для того, что бы сориентировать сколько всего страниц;

Я немного переделал схему работы, показывается первая, последняя, а рядом с текущей страницей будет отображаться чуть больше соседних, в остальном все остается по прежнему, количество ссылок на страницы будет всегда равным &pageLimit
1 ... 4 5 6 -7- 8 9 10 ... 15
Возможно кому то еще пригодится, для этого нужно в pdopage.class.php поменять метод buildModernPagination на:

public function buildModernPagination($page = 1, $pages = 5, $url = '') {
		$pageLimit = $this->pdoTools->config['pageLimit'];

		if ($pageLimit >= $pages || $pageLimit < 7) {
			return $this->buildClassicPagination($page, $pages, $url);
		}
		else {
			$step 		= (integer) floor( ($pageLimit-5) / 2);
			$left 		= $page - $step;
			$right 		= $page + $step;
			$pageArr 	= array(1=>'',2=>'Skip',($pages-1)=>'Skip',$pages=>'');

			if ($left<=3) {
				$right = $right - $left + 3;
				$left = 1;
			}
			elseif ( $right>=($pages-2) ) {
				$left = $left + ($pages - $right) - 2;
				$right = $pages;
			}
		}

		$pagination = array();

		for ($i=$left; $i <=$right ; $i++) {$pageArr[$i]='';}
		foreach ($pageArr as $i => $value) {
			if ($value=='Skip') {
				$pagination[$i] = $this->pdoTools->getChunk($this->pdoTools->config['tplPageSkip']);
				continue;
			}
			if ($page == $i && !empty($this->pdoTools->config['tplPageActive'])) {
				$tpl = $this->pdoTools->config['tplPageActive'];
			}
			elseif (!empty($this->pdoTools->config['tplPage'])) {
				$tpl = $this->pdoTools->config['tplPage'];
			}
			$pagination[$i] = !empty($tpl)
				? $this->makePageLink($url, $i, $tpl)
				: '';
		}

		ksort($pagination);
		return implode($pagination);
	}
Александро
27 февраля 2014, 09:32
modx.pro
1 549
+1

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0