Перейти к содержимому


- - - - -

Навигация предыдущая/следующая


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 Migalov

Migalov

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 07.03.2010, 23:19

Множно ли сделать так, чтобы на страницах одной категории были кнопки предыдущая/следующая?

#2 support

support

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 1 140 сообщений

Отправлено 09.03.2010, 09:38

Данных функциий в дистрибутиве нет. но их можно создать.

За основу можно взять следующий код (прописывать в шаблоне или page.php):

<?php
$siblings = z_page()->getPageInfo()->getParent()->fetchChildren();
$pos = 0;
foreach ($siblings as $sib) {
		if ($sib->uri == z_page()->getPagepath()) {
				break;
		}
		++$pos;
}

$prev = isset($siblings[$pos-1]) ? $siblings[$pos-1] : null;
$next = isset($siblings[$pos+1]) ? $siblings[$pos+1] : null;

if ($prev) {
		echo 'Prev: <a href="' . $prev->link . '">' . $prev->name . '</a><br />';
}

if ($next) {
		echo 'Next: <a href="' . $next->link . '">' . $next->name . '</a><br />';
}
?>


#3 Migalov

Migalov

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 09.03.2010, 14:36

Просмотр сообщенияsupport (09.03.2010, 09:38) писал:

Данных функциий в дистрибутиве нет. но их можно создать.

За основу можно взять следующий код (прописывать в шаблоне или page.php):

<?php
$siblings = z_page()->getPageInfo()->getParent()->fetchChildren();
$pos = 0;
foreach ($siblings as $sib) {
		if ($sib->uri == z_page()->getPagepath()) {
				break;
		}
		++$pos;
}

$prev = isset($siblings[$pos-1]) ? $siblings[$pos-1] : null;
$next = isset($siblings[$pos+1]) ? $siblings[$pos+1] : null;

if ($prev) {
		echo 'Prev: <a href="' . $prev->link . '">' . $prev->name . '</a><br />';
}

if ($next) {
		echo 'Next: <a href="' . $next->link . '">' . $next->name . '</a><br />';
}
?>

Да, работает. Хорошо. Вставил код в pade.php в конец и ссылки появились, но кроме как на страницах со свойством
@@module=zmodule_listpages ссылки prev/next.

В связи с этим еще один вопрос, в какое место файла page.php надо засунуть код, чтобы на страницах со свойством
@@module=zmodule_listpages ссылки prev/next выводились тоже? Все-таки хочется, чтобы навигация сраниц одного уровня не прерывалась на страницах наподобии Новости.

#4 support

support

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 1 140 сообщений

Отправлено 09.03.2010, 16:54

Либо вынести код в template.php, либо дополнительно добавить в listpages.php.

#5 Far

Far

    Участник

  • Пользователи
  • PipPip
  • 12 сообщений

Отправлено 11.04.2010, 23:22

Просмотр сообщенияsupport (09.03.2010, 09:38) писал:

Данных функциий в дистрибутиве нет. но их можно создать.

За основу можно взять следующий код (прописывать в шаблоне или page.php):

<?php
$siblings = z_page()->getPageInfo()->getParent()->fetchChildren();
$pos = 0;
foreach ($siblings as $sib) {
		if ($sib->uri == z_page()->getPagepath()) {
				break;
		}
		++$pos;
}

$prev = isset($siblings[$pos-1]) ? $siblings[$pos-1] : null;
$next = isset($siblings[$pos+1]) ? $siblings[$pos+1] : null;

if ($prev) {
		echo 'Prev: <a href="' . $prev->link . '">' . $prev->name . '</a><br />';
}

if ($next) {
		echo 'Next: <a href="' . $next->link . '">' . $next->name . '</a><br />';
}
?>

А как сделать навигацию пред/след для автоматически разбитых страниц чтоб было примерно так: <prev 1 2 3 4...50 next> или просто <prev | next>?




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей