Здравствуйте. Подскажите пожалуйста, как штатными средствами Битрикс-а организовать на сайте сортировку элементов по алфавиту. Пример - http://fxgeneral.com/terms/
В битриксе можно сделать алфавитный указатель, но нужно будет написать некоторое количество кода. Пример реализации: http://thesaurus.rusnano.com/wiki/
А никто и не говорит, что совсем нельзя, но готовых штатных компонентов я не видел.
Реализации выборки самого алфавитного индекса (как пример):
Код
$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'] - код инфоблока, по названиям элементов которого строится индекс алфавитного указателя
Ну и дальше для вывода списка элементов по выбранной посетителем букве уже можно использовать штатные компоненты с установленным внешним фильтром.
Sergey Leshchenko написал: А никто и не говорит, что совсем нельзя, но готовых штатных компонентов я не видел.
Реализации выборки самого алфавитного индекса (как пример):
Код
$sQuery = '' ;
$sQuery .= 'SEL ECT DISTINCT ' ;
$sQuery .= 'UPPER(LEFT(LTRIM(NAME), ' . $arParams [ 'CHARS_COUNT' ]. ')) AS LETTER ' ;
$sQuery .= 'FR OM 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'] - код инфоблока, по названиям элементов которого строится индекс алфавитного указателя
Ну и дальше для вывода списка элементов по выбранной посетителем букве уже можно использовать штатные компоненты с установленным внешним фильтром.
Сергей, доброго времени суток! Можете помочь с вызовом query в новом ядре (D7)?