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

Вывести новости по фильтру.

00 голосов
4
Есть инфоблок с дополнительным свойством, обыкновенные чекбокс ДА/НЕТ. Необходимо вывести все новости если в данном чекбоксе установлен флаг, т.е. имеет значение "Y". Не пойму как применить фильтр, уже порыл весь форум, все способы указанные попробовал, но не работает. Вот последняя проба:

Код
<?
global $arrFilter;
$arrFilter=array("PROPERTIES"=>array("ON_MAIN"=>"Y")); 
?> 
<?$APPLICATION->IncludeComponent(
   "bitrix:news",
   "rotator",
   Array(
      "IBLOCK_TYPE" => "msp_materials",
      "IBLOCK_ID" => "4",
      "NEWS_COUNT" => "4",
      "USE_SEARCH" => "N",
      "USE_RSS" => "N",
      "USE_RATING" => "N",
      "USE_CATEGORIES" => "N",
      "USE_FILTER" => "Y",
      "FILTER_NAME" => "arrFilter",
      "FILTER_FIELD_CODE" => array(0=>"",1=>"",),
      "FILTER_PROPERTY_CODE" => $arrFilter,
      "SORT_BY1" => "ACTIVE_FROM",
      "SORT_ORDER1" => "DESC",
      "SORT_BY2" => "SORT",
      "SORT_ORDER2" => "ASC",
      "CHECK_DATES" => "Y",
      "SEF_MODE" => "Y",
      "SEF_FOLDER" => "/",
      "AJAX_MODE" => "N",
      "AJAX_OPTION_JUMP" => "N",
      "AJAX_OPTION_STYLE" => "Y",
      "AJAX_OPTION_HISTORY" => "N",
      "CACHE_TYPE" => "A",
      "CACHE_TIME" => "36000000",
      "CACHE_FILTER" => "N",
      "CACHE_GROUPS" => "Y",
      "SET_TITLE" => "Y",
      "SET_STATUS_404" => "N",
      "INCLUDE_IBLOCK_INTO_CHAIN" => "Y",
      "ADD_SECTIONS_CHAIN" => "Y",
      "USE_PERMISSIONS" => "N",
      "PREVIEW_TRUNCATE_LEN" => "",
      "LIST_ACTIVE_DATE_FORMAT" => "j M Y",
      "LIST_FIELD_CODE" => array(0=>"",1=>"",),
      "LIST_PROPERTY_CODE" => array(0=>"ON_MAIN",1=>"",),
      "HIDE_LINK_WHEN_NO_DETAIL" => "N",
      "DISPLAY_NAME" => "Y",
      "META_KEYWORDS" => "-",
      "META_DESCRIPTION" => "-",
      "BROWSER_TITLE" => "-",
      "DETAIL_ACTIVE_DATE_FORMAT" => "d.m.Y",
      "DETAIL_FIELD_CODE" => array(0=>"",1=>"",),
      "DETAIL_PROPERTY_CODE" => array(0=>"",1=>"",),
      "DETAIL_DISPLAY_TOP_PAGER" => "N",
      "DETAIL_DISPLAY_BOTTOM_PAGER" => "N",
      "DETAIL_PAGER_TITLE" => "Страница",
      "DETAIL_PAGER_TEMPLATE" => "",
      "DETAIL_PAGER_SHOW_ALL" => "N",
      "DISPLAY_TOP_PAGER" => "N",
      "DISPLAY_BOTTOM_PAGER" => "N",
      "PAGER_TITLE" => "Новости",
      "PAGER_SHOW_ALWAYS" => "N",
      "PAGER_TEMPLATE" => "",
      "PAGER_DESC_NUMBERING" => "N",
      "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
      "PAGER_SHOW_ALL" => "N",
      "DISPLAY_DATE" => "Y",
      "DISPLAY_PICTURE" => "Y",
      "DISPLAY_PREVIEW_TEXT" => "Y",
      "USE_SHARE" => "N",
      "AJAX_OPTION_ADDITIONAL" => "",
      "SEF_URL_TEMPLATES" => Array(
         "news" => "",
         "section" => "#SECTION_CODE#/",
         "detail" => "#SECTION_CODE#/#ELEMENT_CODE#.html"
      ),
      "VARIABLE_ALIASES" => Array(
         "news" => Array(),
         "section" => Array(),
         "detail" => Array(),
      )
   )
);?> 
спросил 31 Янв, 14 от Asher (100 баллов)

4 Ответы

00 голосов
Попробуйте так
Код
global $arrFilter;
Код
$arrFilter=array("PROPERTY_ON_MAIN_VALUE" =>"Y"); 
ответил 06 Июнь, 14 от Neroby (380 баллов)
00 голосов
Здесь  $arrFilter не нужен
  "FILTER_PROPERTY_CODE" => $arrFilter,
ответил 03 Окт, 14 от Neroby (380 баллов)
00 голосов
Т.е. код должен быть таким?
Код
 <?
global $arrFilter;
$arrFilter=array("ON_MAIN"=>"Y"); 
?> 
<?$APPLICATION->IncludeComponent(
   "bitrix:news",
   "rotator",
   Array(
      "IBLOCK_TYPE" => "msp_materials",
      "IBLOCK_ID" => "4",
      "NEWS_COUNT" => "4",
      "USE_SEARCH" => "N",
      "USE_RSS" => "N",
      "USE_RATING" => "N",
      "USE_CATEGORIES" => "N",
      "USE_FILTER" => "Y",
      "FILTER_NAME" => "arrFilter",
      "FILTER_FIELD_CODE" => array(0=>"",1=>"",),
      "SORT_BY1" => "ACTIVE_FROM",
      "SORT_ORDER1" => "DESC",
      "SORT_BY2" => "SORT",
      "SORT_ORDER2" => "ASC",
      "CHECK_DATES" => "Y",
      "SEF_MODE" => "Y",
      "SEF_FOLDER" => "/",
      "AJAX_MODE" => "N",
      "AJAX_OPTION_JUMP" => "N",
      "AJAX_OPTION_STYLE" => "Y",
      "AJAX_OPTION_HISTORY" => "N",
      "CACHE_TYPE" => "A",
      "CACHE_TIME" => "36000000",
      "CACHE_FILTER" => "N",
      "CACHE_GROUPS" => "Y",
      "SET_TITLE" => "Y",
      "SET_STATUS_404" => "N",
      "INCLUDE_IBLOCK_INTO_CHAIN" => "Y",
      "ADD_SECTIONS_CHAIN" => "Y",
      "USE_PERMISSIONS" => "N",
      "PREVIEW_TRUNCATE_LEN" => "",
      "LIST_ACTIVE_DATE_FORMAT" => "j M Y",
      "LIST_FIELD_CODE" => array(0=>"",1=>"",),
      "LIST_PROPERTY_CODE" => array(0=>"ON_MAIN",1=>"",),
      "HIDE_LINK_WHEN_NO_DETAIL" => "N",
      "DISPLAY_NAME" => "Y",
      "META_KEYWORDS" => "-",
      "META_DESCRIPTION" => "-",
      "BROWSER_TITLE" => "-",
      "DETAIL_ACTIVE_DATE_FORMAT" => "d.m.Y",
      "DETAIL_FIELD_CODE" => array(0=>"",1=>"",),
      "DETAIL_PROPERTY_CODE" => array(0=>"",1=>"",),
      "DETAIL_DISPLAY_TOP_PAGER" => "N",
      "DETAIL_DISPLAY_BOTTOM_PAGER" => "N",
      "DETAIL_PAGER_TITLE" => "Страница",
      "DETAIL_PAGER_TEMPLATE" => "",
      "DETAIL_PAGER_SHOW_ALL" => "N",
      "DISPLAY_TOP_PAGER" => "N",
      "DISPLAY_BOTTOM_PAGER" => "N",
      "PAGER_TITLE" => "Новости",
      "PAGER_SHOW_ALWAYS" => "N",
      "PAGER_TEMPLATE" => "",
      "PAGER_DESC_NUMBERING" => "N",
      "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
      "PAGER_SHOW_ALL" => "N",
      "DISPLAY_DATE" => "Y",
      "DISPLAY_PICTURE" => "Y",
      "DISPLAY_PREVIEW_TEXT" => "Y",
      "USE_SHARE" => "N",
      "AJAX_OPTION_ADDITIONAL" => "",
      "SEF_URL_TEMPLATES" => Array(
         "news" => "",
         "section" => "#SECTION_CODE#/",
         "detail" => "#SECTION_CODE#/#ELEMENT_CODE#.html"
      ),
      "VARIABLE_ALIASES" => Array(
         "news" => Array(),
         "section" => Array(),
         "detail" => Array(),
      )
   )
);?>  
Я все правильно понял?
ответил 05 Фев, 15 от Asher (100 баллов)
00 голосов
"ON_MAIN"=> "Y"
замените на
"PROPERTY_ON_MAIN_VALUE => "Y" ,
если инфоблок имеет свойство  "ON_MAIN" и нужно выбрать элементы где значение (строковое) равно "Y "
ответил 18 Май, 15 от Neroby (380 баллов)

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

0 голосов
3 ответов
спросил 28 Фев, 14 от Lollipopk (660 баллов)
0 голосов
4 ответов
спросил 13 Янв, 14 от JIapro (180 баллов)
0 голосов
1 ответ
спросил 06 Янв, 14 от mefhm78 (120 баллов)
0 голосов
2 ответов
спросил 25 Дек, 13 от Rogarond (820 баллов)
0 голосов
7 ответов
спросил 25 Май, 13 от rg (440 баллов)