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

Опять фильтр

00 голосов
6
Доброго времени суток!

Прошу прощение если повторяю тему, но перечитал много документации, кучу тем на форуме, но подходящего не нашел.
С битриксом работать только начал, так что не судите строго.

Задача стоит реализовать фильтр новостей по разделам. С ссылкой раздела возле каждой новости, при нажатии которой идет фильтр по данному разделу и выводяться елементы только данного раздела. (для примера: http://medias.com.ua/company/news/)
Фильтр по разделам я сделал, вроде фильтрует, за исключением чекбокса "включая подразделы". На него фильтр не реагирует.
А на счет ссылки, мне кажется, что должно быть стандартное решение этого вопроса.

В любом случае, очень надеюсь на помощь.
Заранее спасибо!
спросил 19 Сен, 13 от Xepo6ouTc (260 баллов)

6 Ответы

00 голосов
Наверно что-то вроде
Код
<?
global $arrFilter; 
$arrFilter= array(
    "SECTION_ID" => $_REQUEST["SECTION_ID"]
);?>


А в шаблоне компонента уже добавьте вывод ссылки раздела возле названия.
ответил 25 Сен, 13 от Kiriel (2,010 баллов)
00 голосов
Фильтр у меня работает, а вот ссылка.. :(
Она выводиться, но не работает, при нажатии ничего не происходит.
Вот код шаблона в котором все прописано (я его взял с одной из тем фильтра):

Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<div class="news-list">
<?if($arParams["DISPLAY_TOP_PAGER"]):?>
   <?=$arResult["NAV_STRING"]?><br />
<?endif;?>
<?foreach($arResult["ITEMS"] as $arItem):?>
   <?
   $this->AddEditAction($arItem['ID'], $arItem['EDIT_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_EDIT"));
   $this->AddDeleteAction($arItem['ID'], $arItem['DELETE_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage('CT_BNL_ELEMENT_DELETE_CONFIRM')));
   ?>
   <p class="news-item" id="<?=$this->GetEditAreaId($arItem['ID']);?>">
      <?if($arParams["DISPLAY_PICTURE"]!="N" && is_array($arItem["PREVIEW_PICTURE"])):?>
         <?if(!$arParams["HIDE_LINK_WHEN_NO_DETAIL"] || ($arItem["DETAIL_TEXT"] && $arResult["USER_HAVE_ACCESS"])):?>
            <a href="<?=$arItem["DETAIL_PAGE_URL"]?>"><img class="preview_picture" border="0" src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>" width="<?=$arItem["PREVIEW_PICTURE"]["WIDTH"]?>" height="<?=$arItem["PREVIEW_PICTURE"]["HEIGHT"]?>" alt="<?=$arItem["NAME"]?>" title="<?=$arItem["NAME"]?>" style="float:left" /></a>
         <?else:?>
            <img class="preview_picture" border="0" src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>" width="<?=$arItem["PREVIEW_PICTURE"]["WIDTH"]?>" height="<?=$arItem["PREVIEW_PICTURE"]["HEIGHT"]?>" alt="<?=$arItem["NAME"]?>" title="<?=$arItem["NAME"]?>" style="float:left" />
         <?endif;?>
      <?endif?>
      <?if($arParams["DISPLAY_DATE"]!="N" && $arItem["DISPLAY_ACTIVE_FROM"]):?>
         <span class="news-date-time"><?echo $arItem["DISPLAY_ACTIVE_FROM"]?></span>
      <?endif?>
      <?if(count($arElement["SECTION"]["PATH"])>0):?>
         <br />
         <? foreach($arElement["SECTION"]["PATH"] as $arPath):?>
            / <a href="<?=$arPath["SECTION_PAGE_URL"]?>"><?=$arPath["NAME"]?></a>
         <?endforeach ?>
      <?endif?>

   <?if($arParams["DISPLAY_NAME"]!="N" && $arItem["NAME"]):?>
      <?if(!$arParams["HIDE_LINK_WHEN_NO_DETAIL"] || ($arItem["DETAIL_TEXT"] && $arResult["USER_HAVE_ACCESS"])):?>
         <a href="<?echo $arItem["DETAIL_PAGE_URL"]?>"><b><?echo $arItem["NAME"]?></b></a><br />
      <?else:?>
         <b><?echo $arItem["NAME"]?></b><br />
      <?endif;?>


<?// текст описания раздела ?>
   <?endif;?>

   <?if($arParams["DISPLAY_PREVIEW_TEXT"]!="N" && $arItem["PREVIEW_TEXT"]):?>
      <?echo $arItem["PREVIEW_TEXT"];?>
   <?endif;?>

   <?if($arParams["DISPLAY_PICTURE"]!="N" && is_array($arItem["PREVIEW_PICTURE"])):?>
      <div style="clear:both"></div>
   <?endif?>

   <?foreach($arItem["FIELDS"] as $code=>$value):?>
      <small>
      <?=GetMessage("IBLOCK_FIELD_".$code)?>: <?=$value;?>
      </small><br />
   <?endforeach;?>
   <?foreach($arItem["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
      <small>
      <?=$arProperty["NAME"]?>: 
      <?if(is_array($arProperty["DISPLAY_VALUE"])):?>
         <?=implode(" / ", $arProperty["DISPLAY_VALUE"]);?>
      <?else:?>
         <?=$arProperty["DISPLAY_VALUE"];?>
      <?endif?>
      </small><br />
   <?endforeach;?>
   </p>

Розділ: 

<? 
if (false == empty($arItem['SECTION_LIST']))
{
   foreach ($arItem['SECTION_LIST'] as $arSection)
   {
      echo ' <a href="'.$arSection['SECTION_PAGE_URL'].'">'.$arSection['NAME'].'</a>';
   }
}
?>


<?endforeach;?>

<?if($arParams["DISPLAY_BOTTOM_PAGER"]):?>
   <br /><?=$arResult["NAV_STRING"]?>
<?endif;?>
</div>


и файл, который я создал:
result_modifier.php

Код
<? foreach ($arResult['ITEMS'] as $key => $arItem)
{
   $arSectionList = array();
   $rsSections = CIBlockElement::GetElementGroups($arItem['ID']);
   w
ответил 24 Дек, 13 от Xepo6ouTc (260 баллов)
00 голосов
Код
<? 
if (false == empty($arItem['SECTION_LIST'])) 
{ 
   foreach ($arItem['SECTION_LIST'] as $arSection) 
   { 
      echo ' <a href="?SECTION_ID=<?=$arItem["SECTION_ID"]?>">'.$arSection['NAME'].'</a>'; 
   } 
} 
?> 


Это для примера. Вы же хотите по разделу фильтровать, а не давать просто ссылку на раздел.
ответил 10 Апр, 14 от Kiriel (2,010 баллов)
00 голосов
Нажимая на ссылку должны отображаться все новости этого раздела.

Попробовал Ваш вариант, та же история, ссылка есть, но ничего не происходит после ее нажатия..

Вот посмотрите: сайт
ответил 03 Авг, 14 от Xepo6ouTc (260 баллов)
00 голосов
andriy17,
Вы в шаблоне накосячили с ссылкой это раз.
Два, вы не передаете $_REQUEST фильтру, а ссылка на раздел у вас выходит вида #view/about/news/31

Если вы ухватите каким-то образом фильтр что #view/about/news/31 это раздел, то фильтр заработает :)
ответил 06 Дек, 14 от Kiriel (2,010 баллов)
00 голосов
Подскажите как найти выход. Сам уже три дня мучаюсь.
ответил 30 Март, 15 от Xepo6ouTc (260 баллов)

Похожие вопросы

0 голосов
2 ответов
спросил 06 Апр, 14 от Arvendel (100 баллов)
0 голосов
3 ответов
спросил 10 Май, 14 от BeliiSneg (100 баллов)
0 голосов
3 ответов
спросил 24 Март, 14 от KHAZART (100 баллов)
0 голосов
3 ответов
спросил 23 Март, 14 от Rogarond (820 баллов)
0 голосов
0 ответов
спросил 04 Март, 14 от Trunix (160 баллов)