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

Содержание
  1. Как получить путь к изображению в 1C-Битрикс
  2. Как узнать полный путь к картинке в Битриксе
  3. Как изменить размер изображений в Битриксе или выполнить ресайз
  4. автор: Dmitriy
  5. Картинка раздела каталога и описание раздела
  6. Отображение изображения разделов
  7. Битрикс
  8. Вывод lang текста в шаблон компонента
  9. Изображения
  10. Вывести Название в alt картинки (берется из поля название)
  11. Вывести описание для картинки анонса (берется из поля Описание под картинкой)
  12. Вывести описание для детальной картинки
  13. Изображение анонса
  14. Изображение детальной картинки
  15. Вывести в alt Описание картинки если заполнено поле Описание и вывести Название если нет Описания
  16. Вывести все изображения из свойств файл
  17. Ресайз изображений налету
  18. Конструкция для вывода картинки анонса с проверками и ресайзом
  19. Условие, если поле заполненное вывести его значение (один элемент)
  20. Конструкция if
  21. Ссылки
  22. Когда какой массив используется $arResult и $arItem
  23. Как вывести дополнительное поле «изображение» в разделах bitrix?

Как получить путь к изображению в 1C-Битрикс

Вы наверняка задавались вопросом «Что это за цифры и где мой путь к картинке?» 🙂 Давайте разберем несколько примеров, как с этим можно работать.

Как узнать полный путь к картинке в Битриксе

Файлы изображений нам обычно нужны, когда мы говорим за новости или товары. За такие поля, как правило, отвечают свойства элемента «Картинка для анонса» и «Детальная картинка«. Иногда, создают свойства инфоблока, тип этого свойства файл, и используют для дополнительных изображений (например, галерея товаров). Вся проблема в том, что Битрикс не даст вам сразу готовый путь к файлу изображения, или к его уменьшенной ресайз копии.

Советую для начала прочесть небольшую статью про вывод элементов на странице т.к. в дальнейшем мы столкнемся с похожим кодом.

Читайте также:  Как стирать снегоходный костюм

Как видите, мы добавили ‘PREVIEW_PICTURE‘ и ‘DETAIL_PICTURE‘ в массив, который называют arSelect. На моей тестовой копии Битрикса, когда вывожу значения в поле ‘PREVIEW_PICTURE’ получаю

и на самом деле все отработало правильно, мы получили «код изображений», некий уникальный идентификатор файла, по которому мы сможем получить данные.

В 1С-Битрикс есть класс CFile — который используется для работы с файлами и изображениями. Мы воспользуемся его методом GetPath и получим полный путь к изображению на примере картинки для анонса (для детальной все точно также):

Теперь у меня выводит:

Отлично, это то что нужно. Теперь мы при помощи HTML тега img сможем задать картинке путь. Меняем нашу строчку с echo

Как изменить размер изображений в Битриксе или выполнить ресайз

Перед тем как создать проект или новый инфоблок, всегда думайте «какого размера должны быть мои изображения«. Это очень важно, т.к. если вы не настроите в информационном блоке уменьшение картинки после загрузки, генерацию картинки анонса из детальной (если нужно) и прочие параметры, то размер вашей страницы может превышать несколько мегабайт (а в очень редких случаях даже больше 10 мб 🙂 ).

На самом деле, когда вы строго задаете размеры изображению, используя CSS, картинка все равно грузится в полном размере, и такие вещи не прокатят:

Это не решит нашу проблему с размером исходного изображения на странице, и единственные допустимые правила, на мой взгляд, могут быть max-width и max-height.

Рассмотрим случай, когда у нас уже есть большие картинки и мы хотим получить их уменьшенные копии. Нам поможет метод CFile::ResizeImageGet. Его преимущество в том, что когда мы запускаем страницу, он создает картинки в папке /upload/resize_cache/путь — и если такая картинка уже есть, он автоматически вернет нам путь к ней. Кроме того, мы можем задавать любой размер, качество и даже вид масштабирования изображений.

Вот какие типы нам доступны (информация взята из официальной документации Битрикс):

  • BX_RESIZE_IMAGE_EXACT — масштабирует в прямоугольник $arSize c сохранением пропорций, обрезая лишнее;
  • BX_RESIZE_IMAGE_PROPORTIONAL — масштабирует с сохранением пропорций, размер ограничивается $arSize;
  • BX_RESIZE_IMAGE_PROPORTIONAL_ALT — масштабирует с сохранением пропорций, размер ограничивается $arSize, улучшенная обработка вертикальных картинок.

Давайте попробуем уменьшить наши картинки используя ResizeImageGet:

$img_resize_path[‘src’] — надеюсь вы заметили что этот метод возвращает нам массив, и нам нужен только src.

Разберем по порядку:

$ar_fields[«PREVIEW_PICTURE»] — поле для кода файла (для детальной меняем на $ar_fields[«DETAIL_PICTURE»]),

array(‘width’=>’100′, ‘height’=>’150′) — размеры итогового изображения (или вышеупомянутый arSize),

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

В официальной документации этого метода есть подробное описание, кроме того, там описываются остальные 4 параметра, которые мы тут не использовали (InitSizes, Filters, Immediate, jpgQuality).

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.

— Создание сайтов на 1С-Битрикс любой сложности
— Вёрстка макетов Figma, Photoshop, Zeplin
— Поддержка проектов на Битриксе
— Разработка нового функционала для сайта
— Парсинг данных
— Выгрузка \ Загрузка файлов в формате XML, YML, XLS, XLSX, CSV, JSON
— Интеграция по API со сторонними сервисами
и многое другое

Источник

Картинка раздела каталога и описание раздела

Есть каталог товара, состоит из нескольких разделов. Когда создается новый раздел- есть возможность приписать разделу какую-то картинку и описание.

Далее, на странице выводится содержимое раздела каталога посредством компонента. Есть ли возможность на этой же странице выводить описание раздела и картинку приписанную разделу? В настройках компонента я этого не нашел

Поменять шаблон — не проблема.

Вопрос, что туда вставить? Какие переменные хранят текст и картинку?

Цитата
Николай Санников пишет:
Комплексный элемент каталог — значит то что выводит разделы — catalog.section.list
Если у раздела есть фотка и описание то:

» title=» » border=»0″/> — картинка навешанная на раздел.
— описание раздела
А вообще :
prinr_r($arSection); — и смотришь — где что хроница и что вообще передается.

Я эту задачу решил так.
В файле template.php модуля catalog.section добавил одну строчку

И появилось описание подразделов перед списком товаров каталога.
Попробуйте, может поможет.

Цитата
Александр Лисин пишет:
Есть ещё проблема , как вывести картинку и описание главного раздела, для всех подразделов этого раздела?

А если у меня несколько главных разделов:

Цитата
Главный раздел (Картинка и описание)
—Внутренний раздел (Картинка и описание главного раздела)
—Внутренний раздел (Картинка и описание главного раздела)

Главный раздел 2 (Картинка и описание)
—Внутренний раздел 2 (Картинка и описание главного раздела 2)
—Внутренний раздел 2 (Картинка и описание главного раздела 2)

Цитата
А если у меня несколько главных разделов
Цитата
Boss IT пишет:
$id_iblock, ‘ACTIVE’=>’Y’, ‘DEPTH_LEVEL’=>1));
while($result_section = $sql_section->GetNext())
<
echo ‘ ‘; // Изображение
echo $result_section[‘DESCRIPTION’]; // Описание
>
?>

Покажу что именно мне нужно картинками.

Начнём:
На первом рисунке показано часть главных разделов каталога. Их будет много:

На втором рисунке показано как будет выглядеть, когда войдёшь в главный раздел:

На третьем рисунке показано, как должно выводить описание и картинку главного раздела в подразделе.

И плюс в каждой в этой подкатегории есть ещё подкатегории, где тоже должно выводится описание и картинка главного раздела. Не подкатегории, а именно главного раздела!

Источник

Отображение изображения разделов

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Отображение разделов каталога
Здравствуйте! Требуется ваша помощь/подсказка. Я создал каталог с разделами, в которых есть.

Отсутствует изображения у разделов
Здравствуйте! Подскажите пожалуйста как заставить показывать изображение, являющееся анонсом у.

Некорректное отображение разделов в BIOS
На компе после входа в меню биоса непоказивают разделы меню вместо них подчеркивание и квадратные.

Как организовать отображение содержимого разделов на панелях, либо несколькими GroupBox на одной панели
Доброго времени суток, уважаемые форумчане. Имеется проект на C#.Подскажите пожалуйста, каким.

Извините, Есть в нем есть подкаталоги. У каждого подкаталога проставлено изображение но оно не отображается.

kot488, 1) вы понимаете что есть инфоблок с его разделами, а есть КОМПОНЕНТЫ которые отвечают за вывод данных инфоблока? на какой то физической единице сайта (странице или разделе) есть код вызова компонента, который за это отвечает. начинается этот код вот так:
IncludeComponent(
«имя компонента«,
«имя шаблона(может быть пустым)«,
Array(.

Я всё уже написал как делается. заходите в шаблон и пишите там эту строчку что я дал выше в сообщении. на странице отобразится информация имеющаяся в массиве. там будет и картинка. точнее её ид. по иду делаете вызов в шаблоне.

Источник

Битрикс

Вывод lang текста в шаблон компонента

Изображения

Вывести Название в alt картинки (берется из поля название)

Вывести описание для картинки анонса (берется из поля Описание под картинкой)

Вывести описание для детальной картинки

Изображение анонса

Изображение детальной картинки

Вывести в alt Описание картинки если заполнено поле Описание и вывести Название если нет Описания

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

Важно! Свойства инфоблока файл не отображаются в Параметрах компонента (настройки с иконкой шестеренка). Поэтому их вызов только через PROPERTIES, а не DISPLAY_PROPERTIES.

Если в настройках компонента не стоит NAME то массив с изображениями не выведется

Ресайз изображений налету

  • BX_RESIZE_IMAGE_EXACT — масштабирует в прямоугольник $arSize без сохранения пропорций;
  • BX_RESIZE_IMAGE_PROPORTIONAL — масштабирует с сохранением пропорций, размер ограничивается $arSize;
  • BX_RESIZE_IMAGE_PROPORTIONAL_ALT — масштабирует с сохранением пропорций, размер ограничивается $arSize, улучшенная обработка вертикальных картинок.

800, ‘height’=>400), BX_RESIZE_IMAGE_EXACT, true);
echo ‘ ‘;
?>

Если нужно чтобы ресайз был с сохранением пропорций для горизонтальных фото, то ширину и высоту лучше выставлять одинакового размера

800, ‘height’=>800), BX_RESIZE_IMAGE_PROPORTIONAL, true);
echo ‘ ‘;
?>

Ресайз изображений для Каталога (catalog.section)

800, ‘height’=>800), BX_RESIZE_IMAGE_PROPORTIONAL, true);
echo ‘ ‘;
?>

Конструкция для вывода картинки анонса с проверками и ресайзом

Условие, если поле заполненное вывести его значение (один элемент)

Важно!

Отличие PROPERTIES от DISPLAY_PROPERTIES

Если узазать DISPLAY_PROPERTIES то будут выведены свойства инфоблока, которые выбраны в настройках параметра Компонента.

Если какое либо свойство не отображается в параметрах компонента (например свойство файл), то указывается через PROPERTIES.

Если свойство определяется в параметрах компонента, то можно к нему обратиться как через DISPLAY_PROPERTIES так и через PROPERTIES

Конструкция if

Ссылки

«> — вывод ссылки на детальную страницу. Анкор ссылки взят из поля «Название»

Когда какой массив используется $arResult и $arItem

$arResult основной массив в который может входить множество массивов $arItem

Если вы работаете с news.list либо news-news.list то сначала создается массив $arResult в котором создаются $arItem. И обращение в этих шаблонах (template.php) будет только к $arItem

Задается он следующим образом

Внутри этого массива обращение только к $arItem

Если вы работает с детальной страницой news.detail, то массивы $arItem просто не создаются, так как в них нет необходимости. Вы работаете с одной новостью. Поэтому обращение в файле шаблона будет через $arResult

Конструкция элементов для news.list

AddEditAction($arItem[‘ID’], $arItem[‘EDIT_LINK’], CIBlock::GetArrayByID($arItem[«IBLOCK_ID»], «ELEMENT_EDIT»));

Источник

Как вывести дополнительное поле «изображение» в разделах bitrix?

Доброй ночи. подскажите пожалуйста.
Создал дополнительное поле файл и загружаю туда картинку.
Хочу вывести ее на странице раздела.

Пытаюсь вывести данным способом, ничего не выводит.

  • Вопрос задан более двух лет назад
  • 503 просмотра

Примечание №1: для вывода пользовательских свойств обязательно должен быть передан IBLOCK_ID и в arSelect код необходимых свойств UF_XXX. Если необходимо вывести все пользовательские свойства, то в arSelect необходимо передать UF_*.

Так же в $res[«UF_IMG»] будет скорее всего ID файла. Чтобы получить массив, которые его описывает можно использовать метод CFile::GetFileArray

IBLOCK_ID — ID инфоблока.
ID — ID элемента.

А от куда там данные взять можно и самому разобраться.

Роман Грицук, ну у меня элементов нет, только разделы.

в header.php вставил вот такой код, чтоб брал со страницы текущий id блока и id

Ничего не выводит.

и так вот сам компонент

а сайдбар в header.php

вот пытаюсь вызвать дополнительное поле UF_IMG у текущего открытого раздела в сайдбаре.

Вы не понимаете принцип работы и структуру файлов проекта.
Сначала выполняется код из header.php, а уже затем комплексный компонент вызывается в index.php какого то раздела.

А так как сайдбар находится в header.php, то там и быть не может ни какой информации об разделе.
Текущий раздел можно получить разобрав URL:
/news/section1/element1/
/news/?SECTION_ID=1&ELEMENT_ID=2
В первом варианте надо делать GetList фильтруя так’CODE’=>’section1′
Во втором варианте так ‘ID ‘=>’1’

Роман Грицук, Вы мне можете помочь в данном вопросе? У меня стоит банальная проблема. Изображение раздела вывести в сайдбар. Я заплочу. Либо изображение текущего раздела в сайдбар , либо доп поле «файл» текущего раздела.

Источник

Оцените статью