Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля
Новогодняя скидка 20% на всё! -20% на всё!

Красивая листалка страниц   Партнерский модуль

бесплатно
Скачать
promo
Почти в каждом проекте мы сталкиваемся с необходимостью отобразить постраничную листалку объектов не в стандартном netcat'овском виде, а улучшенном - с указанием ссылок на первую, последнюю страницы и ссылками вперед/назад. Чтобы каждый раз не изобретать велосипед, воспользуйтесь примером готовой функции, исходник которой прилагаем к этому решению.

Функция преобразования стандартной листалки страниц в красивый вид - с указанием первой, последней страницы и ссылками перехода вперед/назад.
Учитывает наличие нескольких инфоблоков на странице
Сохраняет строку get-запроса для дополнительных ссылок
Использует стандартный шаблон $browse_msg, для добавления ссылок вперед/назад нужно дополнить шаблон следующими элементами:
$browse_msg['plink'] = "<a href='#PLINK#'>назад</a>";
$browse_msg['nlink'] = "<a href='#NLINK#'>вперед</a>";
При использовании другого шаблона, его нужно указать третьим аргументом функции, так же, как для стандартной функции nc_browse_messages

Вызывать функцию в любом компоненте из шаблона вывода списка объектов так:
[code]<?=welpis_browse_messages($cc_env, 10)?></code]
Результат будет примерно в таком виде: « 1 ... 6 7 8 9 10 11 12 13 14 15 ... 120 »

Функция предназначена для NetCat 5.х и выше.
Будем рады, если решение пригодится!
бесплатно

Комментарии 3

Nexwich  Панасин Александр 27 июня 2013, 15:18:09
А как насчет [COLOR=blue]$user_template[/COLOR] функции [COLOR=blue]browse_messages[/COLOR]
Зачем изобретать велосипед если и так все есть
Данный метод работает и в 4 и 5 версиях
___________________________________________________________
[COLOR='#999']";$lastLink = ceil($totRows / $recNum) * $recNum - $recNum;$result.="[/COLOR]
<a href='$subLink'>Первая</a>
<a href='$prevLink'>Предидущая</a>
browse_messages( $cc_env,10,$user_template=$template_msg)
<a href='$nextLink'>Следующая</a>
<a href='$lastLink'>Последняя</a>

[U]Системные настройки:[/U]
$template_msg[prefix] = "";
$template_msg[unactive] = "<a href='%URL'>%PAGE</a>";
$template_msg[active] = "<a class='active' href='%URL'>%PAGE</a>";
$template_msg[divider] = " - ";
$template_msg[suffix] = "";
___________________________________________________________
Да, раньше я способом, аналогичным Вашему и пользовался, но у него есть один недостаток - если мы находимся на одной из последних страниц, то при использовании Вашего метода листалка будет выглядеть примерно так:
[CODE]Первая Предыдущая 1 ... 110 111 112 113 114 115 116 117 118 119 120 Последняя[/CODE]
Если страниц всего 120, то у Вас ссылки "120" и "Последняя" будут вести на одну и ту же страницу, что может ввести пользователя в заблуждение. Также в Вашем случае не выводится многоточие между номером последней страницы и основным листингом, а если это многоточие поставить перед словом "последняя", то это многоточие у вас будет выводиться всегда, даже если мы находимся на последней странице.
Моя функция выводит многоточие только в том случае, если между последней страницей в стандартной листалке и моей "последней" страницей нет каких-то промежуточных страниц. Вот так есть многоточие справа:
[CODE]1 ... 6 7 8 9 10 11 12 13 14 15 ... 120[/CODE]
А вот так - нету многоточия:
[CODE]1 ... 110 111 112 113 114 115 116 117 118 119 120[/CODE]
Аналогично - касательно первой страницы.
Nexwich  Панасин Александр 19 августа 2013, 11:44:38
Спасибо
оставить комментарий
Описание проекта