Добрый день!
Может кто-нибудь подскажет.
На странице расположены компонент "детальное отображение новости", 2 взаимосвязанных компонента: фильтр элементов каталога и список связанных элементов.
Для различных страниц свойства связанных элементов различны.
Хотелось бы выводить фильтр только по тем свойствам, у которых есть значение как в случае с выводом связанных элементов. Даже если в настройках компонента ставишь выведение конкретного свойства, если ни у одного связанного элемента нет значения данного свойства, то графа не выводится. Хотелось бы тоже реализовать и в фильтре.
Код фильтра
[CODE]<?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>
[/CODE]
Код списка связанных элементов
[CODE]<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<div class="catalog-section">
<?=$arResult["NAV_STRING"]?>
<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>
<?=$arResult["NAV_STRING"]?>
</div>
[/CODE]
Как мне это реализовать?
Подскажите, пожалуйста.
Заранее спасибо.