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

Как поменять порядок отображения полей для фильтрации в фильтре

00 голосов
5
Здраствуйте ув. форумчани. Появилась задача поменять порядок отображения полей для фильтрации в фильтре, к примеру сейчас это:
Название;
Вид товара;
Производитель;
а как или где переставить поля чтоб было:
Производитель;
вид товара;
Название;
спросил 29 Июнь, 13 от LostShift (280 баллов)

5 Ответы

00 голосов
копируете шаблон компонента. в нем и меняете порядок показа.
ответил 29 Июнь, 13 от Pomnep (13,960 баллов)
00 голосов
ну мне кажется, это можно сделать с помощью result_modifier.php, если я не ошибаюсь... :)
ответил 01 Авг, 13 от Mageradje (660 баллов)
00 голосов
но в шаблоне нету этого или может я ошибаюсь
Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
?>
<center>
<form name="<?echo $arResult["FILTER_NAME"]."_form"?>" action="/index.php" method="get">
   <?foreach($arResult["ITEMS"] as $arItem):
      if(array_key_exists("HIDDEN", $arItem)):
         echo $arItem["INPUT"];
      endif;
   endforeach;?>
   <input name="filter" type="hidden" value="Y"/>
   <center>
   <table class="filter-table" cellspacing="0" cellpadding="2" width="100%" style="width:100%;">
   <thead>
      <tr>
         <td style="text-align:center;width:100%;" align="center"><center><b><?=GetMessage("IBLOCK_FILTER_TITLE")?></b></center></td>
      </tr>
   </thead>
   <tbody>
   <tr>
   <td width="100%" style="width:550px;">
   <center>
      <?foreach($arResult["ITEMS"] as $arItem):?>
      <?
      $arItem["INPUT"] = str_replace("<br><input type=\"checkbox\"  name=\"arrFilter_ff[INCLUDE_SUBSECTIONS]\" id=\"arrFilter_ff[INCLUDE_SUBSECTIONS]\" value=\"Y\"  checked >&nbsp;включая подразделы",""
,$arItem["INPUT"]);
      $arItem["INPUT"] = str_replace("<br><input type=\"checkbox\"  name=\"arrFilter_ff[INCLUDE_SUBSECTIONS]\" id=\"arrFilter_ff[INCLUDE_SUBSECTIONS]\" value=\"Y\" >&nbsp;включая подразделы",""
,$arItem["INPUT"]);
      ?>
         <?if(!array_key_exists("HIDDEN", $arItem)):?>
         <div class="inputer" style="padding-top:5px;float:left;width:auto;padding-right:15px;">
               <?=$arItem["NAME"]?>:
               &nbsp;<?=$arItem["INPUT"]?>
         </div>   
         <?endif?>   
      <?endforeach;?>
      <div  style="padding-top:5px;float:left;width:auto;padding-right:15px;">
            <input class="fburt" type="submit" name="set_filter" value="<?=GetMessage("IBLOCK_SET_FILTER")?>" /><input type="hidden" name="set_filter" value="Y" />&nbsp;&nbsp;<input class="fburt" type="submit" name="del_filter" value="<?=GetMessage("IBLOCK_DEL_FILTER")?>" />
            
            </div>
      <br clear="both" />
      </center>
      </td>
            
      </tr>
   </tbody>
   </table>
   </center>
</form>
 <hr />
 </center>
ответил 03 Ноя, 13 от LostShift (280 баллов)
00 голосов
создайте в этой же папке файлик result_modifier.php, в нем вы сможете сменить порядок на нужный вам.
прописав:

Код
<? if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
print_r($arResult["ITEMS"]);
?>


вы увидите все ваши выводимые в фильтре свойства по порядку. Именно так они и выводятся, если вы в фильтре не задаете свой порядок.
Здесь вы уже можете задать своё. Что то типа, $arr[0] = $arResult["ITEMS"][3], $arr[1] = $arResult["ITEMS"][0] и т.д., свой порядок.
Ну а затем, $arResult["ITEMS"][] = $arr[]

как-то примерно так :) Может не самый оптимальный вариант, но - должен работать ;)
ответил 08 Фев, 14 от Mageradje (660 баллов)
00 голосов
Большое спасибо за помощь! и за исчерпывающий ответ! +
ответил 29 Май, 14 от LostShift (280 баллов)