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

Сортировка по алфавиту

00 голосов
4
Здравствуйте. Подскажите пожалуйста, как штатными средствами Битрикс-а организовать на сайте сортировку элементов по алфавиту. Пример - http://fxgeneral.com/terms/
спросил 04 Июль, 13 от 4e1ka (120 баллов)

4 Ответы

00 голосов
Под сортировкой вы имеете в виду алфавитный указатель? Если да, то штатными средствами никак.
ответил 04 Июль, 13 от Delp (7,220 баллов)
00 голосов
Да ещё такой кривой: http://fxgeneral.com/terms/alpha/J

В битриксе можно сделать алфавитный указатель, но нужно будет написать некоторое количество кода. Пример реализации: http://thesaurus.rusnano.com/wiki/
ответил 14 Авг, 13 от Ly (4,580 баллов)
00 голосов
А никто и не говорит, что совсем нельзя, но готовых штатных компонентов я не видел.

Реализации выборки самого алфавитного индекса (как пример):
Код
   
$sQuery = '';
$sQuery .= 'SELECT DISTINCT ';
$sQuery .= 'UPPER(LEFT(LTRIM(NAME), '.$arParams['CHARS_COUNT'].')) AS LETTER ';
$sQuery .= 'FROM b_iblock_element BE ';
$sQuery .= 'WHERE BE.IBLOCK_ID = '.$arParams['IBLOCK_ID'].' AND BE.ACTIVE = "Y" AND BE.WF_STATUS_ID = 1 AND BE.WF_PARENT_ELEMENT_ID IS NULL';
$sQuery .= 'ORDER BY LETTER ASC ';
$rsItems = $GLOBALS['DB']->Query($sQuery, false, __LINE__);
while($arItem = $rsItems->GetNext(false, false)) {
   $arResult['ITEMS'][$arItem['LETTER']] = $arItem;
}

где:
$arParams['CHARS_COUNT'] - сколько символов в алфавитном указателе
$arParams['IBLOCK_ID'] - код инфоблока, по названиям элементов которого строится индекс алфавитного указателя

Ну и дальше для вывода списка элементов по выбранной посетителем букве уже можно использовать штатные компоненты с установленным внешним фильтром.
ответил 13 Ноя, 13 от Delp (7,220 баллов)
00 голосов
Спасибо, будем разбираться :)
ответил 21 Фев, 14 от 4e1ka (120 баллов)

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

0 голосов
3 ответов
спросил 21 Март, 14 от Kiriel (2,010 баллов)
0 голосов
3 ответов
спросил 12 Фев, 14 от Tranox (100 баллов)
0 голосов
2 ответов
0 голосов
2 ответов
спросил 09 Фев, 13 от Snezhka (2,240 баллов)
0 голосов
1 ответ