Добрый день!
Может кто-нибудь подскажет.
На странице расположены компонент "детальное отображение новости", 2 взаимосвязанных компонента: фильтр элементов каталога и список связанных элементов.
Для различных страниц свойства связанных элементов различны.
Хотелось бы выводить фильтр только по тем свойствам, у которых есть значение как в случае с выводом связанных элементов. Даже если в настройках компонента ставишь выведение конкретного свойства, если ни у одного связанного элемента нет значения данного свойства, то графа не выводится. Хотелось бы тоже реализовать и в фильтре.
Код фильтра
Код списка связанных элементов
Как мне это реализовать?
Подскажите, пожалуйста.
Заранее спасибо.
Может кто-нибудь подскажет.
На странице расположены компонент "детальное отображение новости", 2 взаимосвязанных компонента: фильтр элементов каталога и список связанных элементов.
Для различных страниц свойства связанных элементов различны.
Хотелось бы выводить фильтр только по тем свойствам, у которых есть значение как в случае с выводом связанных элементов. Даже если в настройках компонента ставишь выведение конкретного свойства, если ни у одного связанного элемента нет значения данного свойства, то графа не выводится. Хотелось бы тоже реализовать и в фильтре.
Код фильтра
Код |
---|
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> <form name="<?=$arResult["FILTER_NAME"]."_form"?>" action="" method="get"> <?foreach($arResult["ITEMS"] as $arItem): if(array_key_exists("HIDDEN", $arItem)): echo $arItem["INPUT"]; endif; endforeach;?> <table class="data-table" cellspacing="0" cellpadding="2"> <thead> <tr> <td colspan="2" align="center"><?=GetMessage("IBLOCK_FILTER_TITLE")?></td> </tr> </thead> <tbody> <?foreach($arResult["ITEMS"] as $arItem):?> <?if(!array_key_exists("HIDDEN", $arItem)):?> <tr> <td valign="top"><?=$arItem["NAME"]?>:</td> <td valign="top"><?=$arItem["INPUT"]?></td> </tr> <?endif?> <?endforeach;?> </tbody> <tfoot> <tr> <td colspan="2"> <input type="submit" name="set_filter" value="<?=GetMessage("IBLOCK_SET_FILTER")?>" /><input type="hidden" name="set_filter" value="Y" /> <input type="submit" name="del_filter" value="<?=GetMessage("IBLOCK_DEL_FILTER")?>" /></td> </tr> </tfoot> </table> </form> |
Код списка связанных элементов
Код |
---|
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> <div class="catalog-section"> <p><?=$arResult["NAV_STRING"]?></p> <table class="data-table" cellspacing="0" cellpadding="0" border="0" width="100%"> <thead> <tr> <td><?=GetMessage("CATALOG_TITLE")?></td> <?foreach($arResult["ITEMS"][0]["DISPLAY_PROPERTIES"] as $arProperty):?> <td><?=$arProperty["NAME"]?></td> <?endforeach;?> <?foreach($arResult["PRICES"] as $code=>$arPrice):?> <td><?=$arPrice["TITLE"]?></td> <?endforeach?> <td> </td> </tr> </thead> <?foreach($arResult["ITEMS"] as $arElement):?> <tr> <td> <?=$arElement["NAME"]?> </td> <?foreach($arElement["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?> <td> <?if(is_array($arProperty["DISPLAY_VALUE"])) echo implode(" / ", $arProperty["DISPLAY_VALUE"]); else echo $arProperty["DISPLAY_VALUE"];?> </td> <?endforeach?> <?foreach($arResult["PRICES"] as $code=>$arPrice):?> <td> <?if($arPrice = $arElement["PRICES"][$code]):?> <?if($arPrice["DISCOUNT_VALUE"] < $arPrice["VALUE"]):?> <s><?=$arPrice["PRINT_VALUE"]?></s><br /><span class="catalog-price"><?=$arPrice["PRINT_DISCOUNT_VALUE"]?></span> <?else:?> <span class="catalog-price"><?=$arPrice["PRINT_VALUE"]?></span> <?endif?> <?else:?> <?endif;?> </td> <?endforeach;?> <td> <?if($arElement["CAN_BUY"]):?> <input name="buy" type="button" value="<?= GetMessage("CATALOG_BUY") ?>" OnClick="window.location='<?=$arElement["BUY_URL"]?>'" /> <input name="add" type="button" value="<?= GetMessage("CATALOG_ADD") ?>" OnClick="window.location='<?=$arElement["ADD_URL"]?>'" /> <?elseif(count($arResult["PRICES"])>0):?> <?=GetMessage("CATALOG_NOT_AVAILABLE")?> <?endif?> </td> </tr> <?endforeach;?> </table> <p><?=$arResult["NAV_STRING"]?></p> </div> |
Как мне это реализовать?
Подскажите, пожалуйста.
Заранее спасибо.