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

510 60 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", // колличество выводимых элементов
		"PROPERTY_CODE" => array(
			0 => "NAME", // включить свойство из инфоблока
		),
	),
	false
); ?>

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

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

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

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

"FILTER_NAME" => "arrFilter",

Настройка 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"],  // параметр передаваемой страницы
        "PROPERTY_CODE" => array(
            0 => "NAME",  // включить свойство из инфоблока
        ),
	),
);?>

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

Вывести фото, которые находятся в свойствах элемента ИБ, не так уж и просто. В массиве данных детальной страницы мы увидим тольео 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

Другие статьи
Комментарии
Комментировать