Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Реализация постраничного просмотра

00 голосов
5
Ну и еще один вопрос, для особо непонимающих (если можно).
Как реализовать постраничный просмотр каталога (по примеру данного форума), когда очень много позиций и как сделать сортировку по столбцам (опять же по примеру данного форума).
С уважением.
Игорь.
спросил 15 Ноя, 13 от Hellix (320 баллов)

5 Ответы

00 голосов
Добрый день.
Цитата
Как реализовать постраничный просмотр каталога (по примеру данного форума), когда очень много позиций


Собственно, в компонентах просмотра каталога, поставляемых с продуктом, постраничная навигация предусмотрена. К примеру, в iblock/catalog/section.php
за это отвечают строки кода
Код
$rsElements->NavStart($PAGE_ELEMENT_COUNT);
...
echo $rsElements->NavPrint($ELEMENT_NAME);

Количество элементов на странице передается в параметре компонента $PAGE_ELEMENT_COUNT.

Цитата
и как сделать сортировку по столбцам

Видимо, Вам нужно несколько переработать компонент показа, создав соответствующие ссылки в заголовках столбцов, чтобы по кликам на эти ссылки в запрос GET добавлялись параметры сортировки, которые затем бы передавались параметрами сортировки в компонент.
ответил 30 Дек, 13 от Damani (1,180 баллов)
00 голосов
Цитата
Видимо, Вам нужно несколько переработать компонент показа, создав соответствующие ссылки в заголовках столбцов, чтобы по кликам на эти ссылки в запрос GET добавлялись параметры сортировки, которые затем бы передавались параметрами сортировки в компонент.


А можно хоть кусочек кода привести в пример, как это реализовано на форуме???
ответил 15 Апр, 14 от Hellix (320 баллов)
00 голосов
Да, конечно.
Компонент forum/forum_tmpl_1/list.php

Код
// получаем параметры сортировки из запроса

if (strlen($_REQUEST["ORDER_BY"])<=0)
   $ORDER_BY = $arForum["ORDER_BY"];
else
   $ORDER_BY = $_REQUEST["ORDER_BY"];

if (strlen($_REQUEST["ORDER_DIRECTION"])<=0)
   $ORDER_DIRECTION = $arForum["ORDER_DIRECTION"];
else
   $ORDER_DIRECTION = $_REQUEST["ORDER_DIRECTION"];

if ($ORDER_BY=="T")
   $strOrderBy = "TITLE";
elseif ($ORDER_BY=="N")
   $strOrderBy = "POSTS";
elseif ($ORDER_BY=="A")
   $strOrderBy = "USER_START_NAME";
elseif ($ORDER_BY=="V")
   $strOrderBy = "VIEWS";
elseif ($ORDER_BY=="D")
   $strOrderBy = "START_DATE";
else
   $strOrderBy = "LAST_POST_DATE";

if (strtoupper($ORDER_DIRECTION) == "ASC")
   $strOrderDir = "ASC";
else
   $strOrderDir = "DESC";


// задаем порядок сортировки для выборки
$arOrder = array("SORT"=>"ASC", $strOrderBy=>$strOrderDir);

...
$db_Topic = CForumTopic::GetListEx($arOrder, $arFilter);


Формирование ссылок для сортировки в заголовках столбцов:
Код
<?echo SortingEx("T", "", "ORDER_BY", "ORDER_DIRECTION")?>

Подробнее о SortingEx():
http://www.bitrixsoft.ru/help/source/main/help/ru/developer/reference/functions/filter/sortingex.php.html
ответил 08 Авг, 14 от Damani (1,180 баллов)
00 голосов
Спасибо!!!!
Буду разбираться!

p.s.: Жалко :( нельзя еще раз голос за Вас отдать!!! :)
ответил 12 Дек, 14 от Hellix (320 баллов)
00 голосов
Привет всем!
Постраничное листание заработало, но возник сразу другой вопрос, какой файл отвечает за внешний вид представления постраничного вывода, поскольку в таком виде он не совсем меня устраивает, хотелось бы его немного видоизменить.
Заранее благодарен за подсказку.
Игорь.
ответил 03 Апр, 15 от Hellix (320 баллов)

Похожие вопросы

0 голосов
1 ответ
0 голосов
3 ответов
0 голосов
3 ответов
0 голосов
3 ответов
0 голосов
1 ответ
спросил 20 Янв, 14 от wogich (630 баллов)