Создадим инфоблок в BITRIX, выведем листинг созданных элементов посредством компонента bitrix:news.list и сделаем детальную страницу элемента компонентом bitrix:news.detail
Создание инфоблока
Необходимые поля для заполнения:
Вкладка инфоблок
Вкладка доступ
Вывод элементов ИБ
Для вывода элементов инфоблока используется 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?>
Степан
6 лет назадSadieff
6 лет назадНиколай
3 года назаддо этого посмотрел несколько говнохелпов
а у тебя все раскрыто