Столкнулся с тем же вопросом.
Решил проще: чем сортировать каждвый раз при построении меню, сделал скрипт для автоматического заполнения поля "Сортировка".
Т.е. скрипт запускается разово и по нужному критерию заполняет поля "Сортировка" в возрастающем порядке.
Перед запуском нужно задать ID инфоблока в переменной $CATALOG_ID
При желании критерий сортировки можно поменять, задав другой $arSort
Решил проще: чем сортировать каждвый раз при построении меню, сделал скрипт для автоматического заполнения поля "Сортировка".
Т.е. скрипт запускается разово и по нужному критерию заполняет поля "Сортировка" в возрастающем порядке.
Код |
---|
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) { include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); } $CATALOG_ID=5; $arSort=Array("NAME" => "ASC"); $bs = new CIBlockSection; $counter=1000; $step=100; $arFilter = Array( "IBLOCK_ID"=>array($CATALOG_ID), ); $arSelect = Array("ID", "NAME", "IBLOCK_ID", "SORT"); $dbRes = CIBlockSection::GetList($arSort, $arFilter, false, $arSelect, false); while ($row = $dbRes->Fetch()) { Echo $row["NAME"] . " " . $row["SORT"] . " " . $counter . "<br />"; $bs->Update($row["ID"],Array("SORT" => $counter),false); $counter+=$step; } CIBlockSection::ReSort($CATALOG_ID); ?> |
При желании критерий сортировки можно поменять, задав другой $arSort