Вывести новости из конкретного раздела инфоблока Битрикс

RSS
Вывести новости из конкретного раздела инфоблока Битрикс
 
Вывести новости из конкретного раздела инфоблока Битрикс

Бывает что требуется вывести конкретные новости или статьи из одного раздела инфоблока в Битрикс, для этого потребуется сначала вывести сам компнент "Новости и статьи" на страницу а затем проделать ряд манипуляций, скопировать шаблон news в папку своего шаблона и применить фильтр.
 
Добрый день, один в один сделал, разве что фильтр не стал пока комментировать, но ничего не работает(((
 
Цитата
Гость сайта пишет:
Добрый день, один в один сделал, разве что фильтр не стал пока комментировать, но ничего не работает(((
Закомментируйте фильтр
 
Цитата
попрошу не путать с компонентом "Список новостей" с ним все попроще
Со списком тоже работает, но если можно проще, то как проще? И как быть если на странице список новостей вызывается несколько раз и для каждого надо задать фильтр? Подскажите.
 
Цитата
Гость сайта пишет:
Цитата
попрошу не путать с компонентом "Список новостей" с ним все попроще
Со списком тоже работает, но если можно проще, то как проще? И как быть если на странице список новостей вызывается несколько раз и для каждого надо задать фильтр? Подскажите.
Не могу представить зачем несколько раз выводить список новостей на одной странице. Но если производительность этой страницы дело второе, то прямо в настройках конкретного компонента указывайте откуда ему брать новости (ID раздела)
 
Большое спасибо за подробный урок. Была задача вывести статьи по разделам - статья очень помогла.
 
Цитата
Алена пишет:
Большое спасибо за подробный урок. Была задача вывести статьи по разделам - статья очень помогла.
Пожалуйста
 
Получится так вывести список разделов? Раздел > Подраздел > Элемент -  в таком виде
 
Здравствуйте, Михал.
Кусок кода который выводит на странице
Новости 1-3 из 3
Начало |Пред. | 1| След.| Конец | Все
Код
<?if($arParams["DISPLAY_BOTTOM_PAGER"]):?>
    <?=$arResult["NAV_STRING"]?>
<?endif;?>
 
Не подскажете как отредактировать чтобы вывести только "все новости" ? Не смог найти нужные $MESS.
 
Нужно скопировать шаблон pagenavigation из системных, а дальше сделать с ним все что душе угодно
 
Спасибо!
 
Добрый день, к сожалению данный способ не работает на последней версии цмс. Не могли бы Вы обновить свое решение проблемы?!
 
Цитата
Alex пишет:
Добрый день, к сожалению данный способ не работает на последней версии цмс. Не могли бы Вы обновить свое решение проблемы?!
Все работает как надо, проверил только что на одном из сайтов. Ищите ошибку у себя: где-то, что-то упускаете.
 
Цитата
Alex пишет:
Добрый день, к сожалению данный способ не работает на последней версии цмс. Не могли бы Вы обновить свое решение проблемы?!
Подтверждаю слова Alex. Данный способ не работает в версии 14.5. Перепроверил несколько раз.
Пришлось в шаблоне компонента bitrix:news вставлять параментр для компонента bitrix:news.list
А именно,

Код
<?$APPLICATION->IncludeComponent(
   "bitrix:news.list",
   "",
   Array(

...
      "PARENT_SECTION" => "6",
   ),
   $component
);?> 

Где 6 - это ID вашей секции (раздела)
 
А как вывести разделы инфоблока с помощью компонента "Элементы раздела"? Что-то не получается. Подскажите что писать в настройках инфоблока и компонента
 
Цитата
Сергей пишет:
А как вывести разделы инфоблока с помощью компонента "Элементы раздела"? Что-то не получается. Подскажите что писать в настройках инфоблока и компонента
Это как бы логично: Не получится вывести разделы, элементами- в самих терминах ответ (разделы/Элементы)
 
Михаил, здравствуйте!
Описанный Вами способ почему-то работает только на компоненте "Список новостей", а на комплексном компоненте "Новости" работать отказывается.  Версия 15.0.6. Не могли бы Вы намекнуть, в чем может быть дело? :)
 
Цитата
Михаил Базаров пишет:
Цитата
Сергей пишет:
Цитата
Alex пишет:
Добрый день, к сожалению данный способ не работает на последней версии цмс. Не могли бы Вы обновить свое решение проблемы?!
Подтверждаю слова Alex. Данный способ не работает в версии 14.5.
http://portal-peterburg.ru/1/ именно так выведены статьи раздела "Парки и сады" инфоблока О городе

Битрикс 14.5 редакция Бизнес, но это не принципиально. Все один в один по записке ничего нового.
Михаил. Здравствуйте. Тем не менее, Alex пишет дело - только что пробовал ваш вариант - на arrResult система не реагирует. Попробовал вариант Alex'a - все помогло.
 
Михаил, добрый день. Вот такой вопрос:
Есть сайт, на отдельной странице(не главной), есть компонент новости с новостями.
Я добавил в эти компоненты свойства.
Вопрос такой, как можно с этой страницы на главную вывести новости отмеченные галочкой по свойству?
заранее спасибо.
 
Цитата
Дмитрий пишет:
Михаил, добрый день. Вот такой вопрос:
Есть сайт, на отдельной странице(не главной), есть компонент новости с новостями.
Я добавил в эти компоненты свойства.
Вопрос такой, как можно с этой страницы на главную вывести новости отмеченные галочкой по свойству?
заранее спасибо.
Можно перед вызовом компонента список новостей навесить фильтр


Код
<?
   $GLOBALS['arrFilter'] = array("PROPERTY_45_VALUE"=>"YES"); 
?>
 
Где
arrFilter - название фильтра, назвать можно как угодно
PROPERTY_45_VALUE - ID свойства в котором хранится показатель, в вашем случае свойство чекбокс. Если галка стоит то YES , нет так просто нет.

В самом компоненте, в строчке с фильтром указать его название, в данном случае arrFilter



Код
...
      "ELEMENT_SORT_ORDER2" => "asc",
      "FILTER_NAME" => "arrFilter",  //ВОТ ТУТ
      "HIDE_NOT_AVAILABLE" => "N",
...
 
 
Цитата
Михаил Базаров пишет:
Цитата
Дмитрий пишет:
Михаил, добрый день. Вот такой вопрос:
Есть сайт, на отдельной странице(не главной), есть компонент новости с новостями.
Я добавил в эти компоненты свойства.
Вопрос такой, как можно с этой страницы на главную вывести новости отмеченные галочкой по свойству?
заранее спасибо.
Можно перед вызовом компонента список новостей навесить фильтр
Код
 <?
   $GLOBALS['arrFilter'] = array("PROPERTY_45_VALUE"=>"YES"); 
?>
  
Где
arrFilter - название фильтра, назвать можно как угодно
PROPERTY_45_VALUE - ID свойства в котором хранится показатель, в вашем случае свойство чекбокс. Если галка стоит то YES , нет так просто нет.

В самом компоненте, в строчке с фильтром указать его название, в данном случае arrFilter
Код
 ...
      "ELEMENT_SORT_ORDER2" => "asc",
      "FILTER_NAME" => "arrFilter",  //ВОТ ТУТ
      "HIDE_NOT_AVAILABLE" => "N",
...
  
Большое спасибо, очень помогло!

Еще вопрос:
Есть 3 категории новостей, есть ли какая возможность вывести свойство с выпадающим списком, чтобы при добавлении новости, можно было выбрать категорию, куда она автоматически перенесется?
Как это можно сделать?

Заранее спасибо!
 
Здравствуйте! Подскажите пожалуйста, как можно вывести на главную страницу новости из всех инфоблоков, отсортированные по дате? Хочется вывести их в виде анонсов с картинками-превьюшками, а такой возможности в Битрикс не предусмотрено.
 
Цитата
Людмила пишет:
Здравствуйте! Подскажите пожалуйста, как можно вывести на главную страницу новости из всех инфоблоков, отсортированные по дате? Хочется вывести их в виде анонсов с картинками-превьюшками, а такой возможности в Битрикс не предусмотрено.
Просто вывести компонент "список новостей", столько раз сколько у вас инфоблоков- другой вопрос: почему у вас новости разбиты на несколько инфоблоков- но это вопрос к разработчику вашего сайта
 
Цитата
Михаил Базаров пишет:
Цитата
Людмила пишет:
Здравствуйте! Подскажите пожалуйста, как можно вывести на главную страницу новости из всех инфоблоков, отсортированные по дате? Хочется вывести их в виде анонсов с картинками-превьюшками, а такой возможности в Битрикс не предусмотрено.
Просто вывести компонент "список новостей", столько раз сколько у вас инфоблоков- другой вопрос: почему у вас новости разбиты на несколько инфоблоков- но это вопрос к разработчику вашего сайта
Следуя Вашим урокам, я создала новости в виде нескольких инфоблоков для группировки их по тематике. Компонент "Список новостей", выведенный на главную страницу по каждому инфоблоку, не позволяет их отобразить в порядке опубликования. Новая новость на главной странице появляется там, где располагается компонент.

Например, новость, написанная в инфоблоке "Статьи", отображается на главной странице внизу, то есть, там, где размещен компонент, а не в самом верху.

Может быть, есть способ все-таки выводить их в порядке поступления?
 
Кстати, компонент "Лента новостей" выводит их в порядке поступления, однако только дату и заголовок в виде ссылки. Ни включение картинки анонса, ни описание не отображаются. А кликнув по заголовку в ленте, попадаю на страницу /simple/detail.php?ID=номер, где номер - это ID новости, но она не отображается, а отображаются почему-то названия инфоблоков.
 
Цитата
Людмила пишет:
Кстати, компонент "Лента новостей" выводит их в порядке поступления, однако только дату и заголовок в виде ссылки. Ни включение картинки анонса, ни описание не отображаются. А кликнув по заголовку в ленте, попадаю на страницу /simple/detail.php?ID=номер, где номер - это ID новости, но она не отображается, а отображаются почему-то названия инфоблоков.
Вам нужно было создать один инфоблок, а в нем уже разделы по тематикам- не плодить под каждую тематику по инфоблоку.
На главной, с помощью вот этой записки, в которой обсуждаем, уже отфильтровывать из разделов с помощью "список новостей"

ЧПУ в инфоблоке новостей нужно настроить на физический раздел с новостями, как правило:
/news/ - Все новости или список разделов
/news/#SECTION_CODE#/ - новости раздела
/news/#SECTION_CODE#/#ELEMENT_CODE#/ конкретная новость

Точно так же и в компоненте новостей соответственно

В общем, избавьтесь от кучи инфоблоков, делайте одним с разделам.  
 
Ой, поняла!! Спасибо большое!!! :{}
 
Снова здравствуйте, Михаил! Можно попросить вас разъяснить, как можно вывести маленький (100px 100px) календарь новостей во включаемой области, чтобы на главной странице выводились все новости за определенную дату, а на страницах разделов - новости этих разделов за выбранную дату?
А то у меня он даже в компактном виде огромный и во включаемую область не влезает, а масштабирование я еще не освоила.
 
Цитата
Людмила пишет:
Снова здравствуйте, Михаил! Можно попросить вас разъяснить, как можно вывести маленький (100px 100px) календарь новостей во включаемой области, чтобы на главной странице выводились все новости за определенную дату, а на страницах разделов - новости этих разделов за выбранную дату?
А то у меня он даже в компактном виде огромный и во включаемую область не влезает, а масштабирование я еще не освоила.
Нужно больше информации, где и что вы пытаетесь сделать и что за календарь используете
 
Подтверждаю, на версии 15.0.6 РАБОТАЕТ. Действительно, как только убрал кусок кода, отвечающего за отображение фильтра, все заработало. Спасибо!
 
Здравствуйте! Спасибо за Ваши уроки!  :)
Возник вопрос: Как вывести на страницу последнюю новость в детальном виде?
 
Цитата
Тимур Сафиюлин написал:
Здравствуйте! Спасибо за Ваши уроки!  
Возник вопрос: Как вывести на страницу последнюю новость в детальном виде?
Просто вывести компонент "Детальная новость" и в сортировке выставить "по дате" (в принципе, это итак стоит по умолчанию, если не указано иное)
 
Добрый день.
А можно сделать фильтр новостей по месяцу и году?
 
Цитата
Алекс написал:
Добрый день.
А можно сделать фильтр новостей по месяцу и году?
Тут наводка на ответ https://camouf.ru/blog-note/1605/
 
Код
 Выводить новости определенного раздела, но компонентом bitrix:news так.

В компоненте bitrix:news по адресу:
/public_html/bitrix/templates/хххххххххххх/components/bitrix­/news/хххххххххххххххх/news.php
вставлен компонент bitrix:news.list

Ему прописываем
Код

$GLOBALS['arrFilter'] = array("SECTION_ID" => Array(636,730,731));
$APPLICATION->IncludeComponent(
   "bitrix:news.list",
   "",
   Array(
...
      "FILTER_NAME" => "arrFilter",
...

где Array(636,730,731) - массив из разделов, новости из которых выводить.
Для тех у кого не работает на новых версиях...
 
Как всегда спасибо за статью!!!!  :)  
Чуть сайт весь свой не поломала).

Вся фигня была как раз в фильтре и настройке ЧПУ.
Включить поддержку ЧПУ V
Каталог ЧПУ(относительно корня сайта): /departments/
Страница раздела: #SECTION_CODE#/
Страница детального просмотра: #ELEMENT_CODE#/
Код
  <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); $APPLICATION->SetTitle("Отделы"); ?> 
<?$GLOBALS['arrFilter']=array("SECTION_ID" => 91);?>
<?$APPLICATION->IncludeComponent(    "bitrix:news",    "departsment",     
Array( 
"COMPONENT_TEMPLATE" => "departsment",     
"IBLOCK_TYPE" => "geography",     
"IBLOCK_ID" => "отделы/отделы",     
"NEWS_COUNT" => "20",     
"USE_SEARCH" => "N",     
"USE_RSS" => "N",     
"USE_RATING" => "N",     
"USE_CATEGORIES" => "N",     
"USE_REVIEW" => "N",
 "USE_FILTER" => "N",    
"SORT_BY1" => "ACTIVE_FROM",     
"SORT_ORDER1" => "DESC",     
"SORT_BY2" => "SORT",     
"SORT_ORDER2" => "ASC",     
"CHECK_DATES" => "Y",     
"SEF_MODE" => "Y",     
"AJAX_MODE" => "N",     
"AJAX_OPTION_JUMP" => "N",     
"AJAX_OPTION_STYLE" => "Y",     
"AJAX_OPTION_HISTORY" => "N",     
"AJAX_OPTION_ADDITIONAL" => "",     
"CACHE_TYPE" => "A",     
"CACHE_TIME" => "36000000",     
"CACHE_FILTER" => "N",     
"CACHE_GROUPS" => "Y",  
"SET_LAST_MODIFIED" => "N",  
"SET_TITLE" => "Y", 
"INCLUDE_IBLOCK_INTO_CHAIN" => "N",     
"ADD_SECTIONS_CHAIN" => "Y",     
"ADD_ELEMENT_CHAIN" => "Y",     
"USE_PERMISSIONS" => "N",     
"DISPLAY_DATE" => "N",     
"DISPLAY_PICTURE" => "N",     
"DISPLAY_PREVIEW_TEXT" => "N",     
"USE_SHARE" => "N",     
"PREVIEW_TRUNCATE_LEN" => "",     
"LIST_ACTIVE_DATE_FORMAT" => "d.m.Y",     
"LIST_FIELD_CODE" => array(0=>"",1=>"",),     
"LIST_PROPERTY_CODE" => array(0=>"",1=>"",),     
"HIDE_LINK_WHEN_NO_DETAIL" => "N",     
"DISPLAY_NAME" => "Y",     
"META_KEYWORDS" => "-",     
"META_DESCRIPTION" => "-",     
"BROWSER_TITLE" => "-",
 "DETAIL_SET_CANONICAL_URL" => "N",    
"DETAIL_ACTIVE_DATE_FORMAT" => "d.m.Y",     
"DETAIL_FIELD_CODE" => array(0=>"",1=>"",),     
"DETAIL_PROPERTY_CODE" => array(0=>"",1=>"ZAVCATH",2=>"DISCIPLINE",3=>"",),     
"DETAIL_DISPLAY_TOP_PAGER" => "N",     
"DETAIL_DISPLAY_BOTTOM_PAGER" => "Y",     
"DETAIL_PAGER_TITLE" => "Страница",     
"DETAIL_PAGER_TEMPLATE" => "",     
"DETAIL_PAGER_SHOW_ALL" => "Y",     
"PAGER_TEMPLATE" => ".default",     
"DISPLAY_TOP_PAGER" => "N",     
"DISPLAY_BOTTOM_PAGER" => "Y",     
"PAGER_TITLE" => "Отделы",     
"PAGER_SHOW_ALWAYS" => "N",     
"PAGER_DESC_NUMBERING" => "N",     
"PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",     
"PAGER_SHOW_ALL" => "N",     
"PAGER_BASE_LINK_ENABLE" => "N",     
"SET_STATUS_404" => "N",     
"SHOW_404" => "N",     
"MESSAGE_404" => "",     
"SEF_FOLDER" => "/departments/",     
"FILTER_NAME" => "arrFilter",     
"FILTER_FIELD_CODE" => array(0=>"",1=>"",),     
"FILTER_PROPERTY_CODE" => array(0=>"",1=>"",),     
"SEF_URL_TEMPLATES" => array("news"=>"","section"=>"#SECTION_CODE#/","detail"=>"#ELEMENT_CODE#/",),     
"VARIABLE_ALIASES" => Array(),     
"VARIABLE_ALIASES" => Array(
      )   ) );?>  
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?> 
 
Здравствуйте!
А как вывести название, описание и изображение аноноса раздела
 
Цитата
Евгений написал:
Здравствуйте!
А как вывести название, описание и изображение аноноса раздела
С помощью компонента новостей - только модифицировать данные, через result_modifier
Нужно получить ID секции и вот этим методом получить все нужные данные
https://dev.1c-bitrix.ru/api_help/iblock/classes/ciblocksection/getbyid.php
Пример там есть
Изменено: Михаил Базаров - 14.09.2021 16:23:10
 
Добрый день.
Спасибо за уроки. Это ценно!

Подскажите, как в компоненте Новости вывести не весь список, а только те элементы, у которых настроенное определенное свойство?
В настройках свойств Инфоблока добавлено свойство "Тип" (см. скрин property)
В разделе лежат элементы с типом "новость" и "история" (см. скрин infotype)


Стандартным фильтром по свойству (см. скрин filter) - на страницу выводится выбор по Типу (либо одно, либо другое).
А мне в этой области нужен только один тип:"история" .

Пробую вот так:

<?
  $GLOBALS['arrFilter'] = array("PROPERTY_50_VALUE" =>"история");
  ?>
                   <?$APPLICATION->IncludeComponent(
"bitrix:news",
"how_to_get_news",
array(
"ADD_ELEMENT_CHAIN" => "N", и  т.д....

Не получается.
 
Цитата
Гость написал:
Подскажите, как в компоненте Новости вывести не весь список, а только те элементы, у которых настроенное определенное свойство?
В настройках свойств Инфоблока добавлено свойство "Тип" (см. скрин property)
В разделе лежат элементы с типом "новость" и "история" (см. скрин infotype)
Стандартным фильтром по свойству (см. скрин filter) - на страницу выводится выбор по Типу (либо одно, либо другое).
А мне в этой области нужен только один тип:"история" .
Пробую вот так:
Код
 <?
   $GLOBALS['arrFilter'] = array("PROPERTY_50_VALUE" =>"история"); 
   ?>
                    <?$APPLICATION->IncludeComponent(
   "bitrix:news", 
   "how_to_get_news", 
   array(
      "ADD_ELEMENT_CHAIN" => "N", и  т.д....


Не получается.

В самом выводе компонента новостей не забыли применить фильтр?

Код
$APPLICATION->IncludeComponent(
   "bitrix:news", 
   "how_to_get_news", 
   array(
      "FILTER_NAME" => "arrFilter", 
и  т.д....
Изменено: Михаил Базаров - 19.03.2022 11:04:38
 
Цитата
написал:
Цитата
Гость написал:
Подскажите, как в компоненте Новости вывести не весь список, а только те элементы, у которых настроенное определенное свойство?
В настройках свойств Инфоблока добавлено свойство "Тип" (см. скрин property)
В разделе лежат элементы с типом "новость" и "история" (см. скрин infotype)
Стандартным фильтром по свойству (см. скрин filter) - на страницу выводится выбор по Типу (либо одно, либо другое).
А мне в этой области нужен только один тип:"история" .
Пробую вот так:
Код
  <?
   $GLOBALS['arrFilter'] = array("PROPERTY_50_VALUE" =>"история"); 
   ?>
                    <?$APPLICATION->IncludeComponent(
   "bitrix:news", 
   "how_to_get_news", 
   array(
      "ADD_ELEMENT_CHAIN" => "N", и  т.д.... 


Не получается.

В самом выводе компонента новостей не забыли применить фильтр?

Код
 $APPLICATION->IncludeComponent(
   "bitrix:news", 
   "how_to_get_news", 
   array(
      "FILTER_NAME" => "arrFilter", 
и  т.д....
 
Добрый день.
Да, забыл.
Добавил, но сначала ничего не поменялось.
Проделал манипуляции заново.
И только после того как закомментировал в коде отображение фильтра - все заработало!
Спасибо большое. Помогли!
 
Михаил, продолжаю разбираться с косяками сайта.
Нашел проблему с пагинацией.

На сайте есть раздел Истории и новости. https://domgdeteplo.ru/istorii-i-novosti/index.php#

Сверху три фильтрующие кнопки. Работают нормально, фильтруют.

Проблема в следующем:
Всего в инфоблоке у меня активных 5 историй и 15 новостей. Но отображаются они с косяками:

1. Нажимая на “Истории и новости” всегда показывает 1 историю и 12 новостей, кнопка “показывать по 4/8/12 не работает. Как это  можно поправить?
2. Нажимая на “Только истории”, отображается только 1 история, пагинация отсутствует вообще. Как это поправить?
3. Нажимая на “Только новости”, отображается всегда только 12 новостей, и  кнопка “показывать по 4/8/12” тоже не работает. Как это поправить?

Все три вида отображения заключены в единую включаемую область, т.е. шаблон пагинации один на все три вида страницы.


Код используемого шаблона пагинации - в файлике.
 
Затрудняюсь что либо подсказать. Нужно вдумчиво разбираться на месте.
 
Здравствуйте, Михаил!
Большое спасибо за материал. Все работает.
Но самостоятельно никак не мог решить эту задачу.
В хлебных крошках отображались статьи определенной категории, а на странице не мог вывести.
Спасибо!
 
Странно, данный способ работал на моем прошлом сайте, а на этом - не робит....
 
Попробуйте
Код
<?$GLOBALS['arrFilter']=array("=SECTION_ID" => 90);?>
 
Михаил, здравствуйте!
А что если в списке нужно вывести сначала два элемента с конкретными id, а после весь список по стандартной фильтрации сортировки?
например id у этих двух элементов 8104 и 3926, находятся они в одном разделе, где все остальные элементы списка
Реализован слайдер с проектами на странице и нужно, чтобы два конкретных проекта выводились вначале для конкретной страницы, а для остальных страниц по стандартной сортировке?
 
Цитата
Иван написал:
Михаил, здравствуйте!
А что если в списке нужно вывести сначала два элемента с конкретными id, а после весь список по стандартной фильтрации сортировки?

Думаю, самое простое это поднять их вверх сортировкой, весь остальной список вывести по сортировке с взрастанием.
 
Здравствуйте. А если нужно вывести новости из определённого раздела, но при это оставить возможность фильтрации по новостях, например, по дате публикации новости? Подскажите, как тогда можно поступить?
 
Расширять массив arrFilter, пример с выборкой раздела и дате активности, как-то так:
Код
$GLOBALS['arrFilter']=array(
      "SECTION_ID" => 90,
      ">DATE_ACTIVE_FROM" => "21.12.2022 00:00:00"
);

Отберет из 90-го раздела с датой активности больше 21 декабря 2022-го
Изменено: Михаил Базаров - 13.09.2023 11:47:14
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Ютубе