Создание инфоблока в BITRIX. news.list, news.detail

36239
4293
15 Июня 2018, 17:09

Создадим инфоблок в BITRIX, выведем листинг созданных элементов посредством компонента bitrix:news.list и сделаем детальную страницу элемента компонентом bitrix:news.detail

Создание инфоблока

Необходимые поля для заполнения:
Вкладка инфоблок

Создание инфоблока

Вкладка доступ

ИБ BITRIX

Вывод элементов ИБ

Для вывода элементов инфоблока используется bitrix:news.list в index.php. Минимальный набор параметров для вызова:

<? $APPLICATION->IncludeComponent(
	"bitrix:news.list", 
	"tour", // шаблон
	array(
		"IBLOCK_TYPE" => "content", // тип информационного блока
		"IBLOCK_ID"   => "1", // ID информационного блока
		"NEWS_COUNT"  => "10", // колличество выводимых элементов
		"INCLUDE_IBLOCK_INTO_CHAIN" => "N",
		"ADD_SECTIONS_CHAIN" => "N",
		"SET_TITLE" => "N",
		"PROPERTY_CODE" => array(
			0 => "NAME", // включить свойство из инфоблока
		),
	),
	false
); ?>

Список всех возможных параметров для компонента bitrix:news.list смотрите по ссылке

Если необходима фильтрация, есть параметр FILTER_NAME. Над вызовом компонента bitrix:news.list создаем глобальную переменную, с параметром фильтрации.

<?
	global $arFilter;
	$arFilter = ['!PROPERTY_OLD'=>1]; // Не выведутся те элементы, в свойстве которых OLD установлено значение 1
?>

а в bitrix:news.list передаем фильтр.

"FILTER_NAME" => "arFilter",

Настройка urlrewrite

В urlrewrite.php необходимо прописать параметры обработки URL.

<?
$arUrlRewrite = array(
	array(
	    'CONDITION' => '#^/tury/(.*)/.*#', // Обработка детальной страницы
		'RULE' => 'ELEMENT_CODE=$1',
		'ID' => 'bitrix:news',
		'PATH' => '/tury/detail.php',
		'SORT' => 100,
	),
	array (
		'CONDITION' => '#^/tury/#', // Обработка главной страницы раздела
		'RULE' => '',
		'ID' => 'bitrix:news',
		'PATH' => '/tury/index.php',
		'SORT' => 100,
	),
);

Вывод детальной страницы

Для вывода детальной страницы в detail.php используется bitrix:news.last. Минимальный набор параметров для вызова:

<?$APPLICATION->IncludeComponent(
	"bitrix:news.detail",
	"tour", // шаблон
	Array(
		"IBLOCK_ID" => "1",  // ID информационного блока
		"IBLOCK_TYPE" => "content",  // тип информационного блока
		"ELEMENT_CODE" => $_REQUEST["ELEMENT_CODE"],  // параметр передаваемой страницы
		"INCLUDE_IBLOCK_INTO_CHAIN" => "N",
        "ADD_SECTIONS_CHAIN" => "N",
        "SET_BROWSER_TITLE" => "Y",
        "SET_META_DESCRIPTION" => "Y",
        "SET_TITLE" => "Y",
        "ADD_ELEMENT_CHAIN" => "Y",
        "PROPERTY_CODE" => array(
            0 => "NAME",  // включить свойство из инфоблока
        ),
	),
	false
);?>

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

Вывести фото, которые находятся в свойствах элемента ИБ, не так уж и просто. В массиве данных детальной страницы мы увидим тольео ID фотографий, а не путь к этим файлам. Поэтому, в файле result_modifier.php необходимо обработать вывод этих фотографий.

В папке шаблона, в файле result_modifier.php делаем обход массива фотографий:

<?
foreach($arResult['PROPERTIES']["PHOTOS"]['VALUE'] as $id=>$photo)
{
	$photo_small = CFile::ResizeImageGet($photo, array('width'=>200, 'height'=>200), BX_RESIZE_IMAGE_PROPORTIONAL, true);
	$photo_original = CFile::ResizeImageGet($photo, array('width'=>800, 'height'=>800), BX_RESIZE_IMAGE_PROPORTIONAL, true);
	$arResult['PHOTOS'][] = Array (
	'original' => $photo_original['src'],
	'small' => $photo_small['src'],
	);
}

А в файле template.php уже выводим сами фото:

<?foreach($arResult['PHOTOS'] as $photo):?>
	<div class="item">
        <a href="<?=$photo['original']?>">
            <img src="<?=$photo['small']?>">
        </a>
    </div>
<?endforeach?>
Теги:
  • bitrix
  • news.list
  • битрикс
  • news.detail
ДРУГИЕ СТАТЬИ
Шпаргалка: вывод элементов инфоблока через GetList
Выводим элементы инфоблока посредством CIBlockElement::GetList
6415
769
04.10.2022
Битрикс: ошибка type => unknown у метода CFile::MakeFileArray
Решение ошибки с неизвестным типом файла при использовании метода CFile::MakeFileArray
4973
596
03.12.2021
Делаем вывод 404 ошибки для секций (разделов) инфоблока Битрикс
Решаем проблему в 1С Битрикс, когда не существующие разделы не отдают 404 ошибку
10414
1249
10.04.2019
Как вывести DETAIL_PICTURE в компоненте news, news.list, news.detail
Как вывести DETAIL_PICTURE в компоненте news, news.list, news.detail
8052
966
12.10.2018
Комментарии
5 лет назад

Степан

5 лет назад
не работает где то ошибка в коде
Степан, да, действительно была ошибка в вызове bitrix:news.detai. Поправили.
2 года назад

Николай

2 года назад
Красавчик, все четко!
до этого посмотрел несколько говнохелпов
а у тебя все раскрыто
Комментировать