Николаев Виталий
Блог веб-разработчика: Битрикс, PHP, Python, Linux и SEO
Битрикс Битрикс
07.03.2018

Битрикс. Вывод детального изображения в списке новостей

Битрикс. Вывод детального изображения в списке новостей

В 1С-Битрикс для вывода детальной картинки элемента в списке новостей можно использовать:

<img
    class="detail_img"
    src="<?= $arItem["DETAIL_PICTURE"]["SRC"] ?>"
/>

Где использовать этот код

Обычно код размещается:

  • в шаблоне компонента news.list;
  • в цикле foreach;
  • в template.php.

Пример вывода в news.list

<?foreach ($arResult["ITEMS"] as $arItem):?>

    <div class="news-item">

        <img
            class="detail_img"
            src="<?= $arItem["DETAIL_PICTURE"]["SRC"] ?>"
            alt="<?= $arItem["NAME"] ?>"
        />

        <div class="news-title">
            <?= $arItem["NAME"] ?>
        </div>

    </div>

<?endforeach;?>

Что такое DETAIL_PICTURE

Поле:

DETAIL_PICTURE

содержит:

  • детальное изображение элемента инфоблока.

Битрикс автоматически передает:

  • SRC;
  • WIDTH;
  • HEIGHT;
  • ALT;
  • TITLE.

Важно включить поле в настройках компонента

По умолчанию детальная картинка может не передаваться в шаблон.

Поэтому в настройках компонента нужно отметить:

Настройки списка → Детальная картинка

Иначе:

$arItem["DETAIL_PICTURE"]

будет пустым.

В своих проектах я использую серверную инфраструктуру Timeweb Cloud

VPS и облачные решения для стабильной работы сайтов на PHP и 1С-Битрикс — от корпоративных сайтов до интернет-магазинов и высоконагруженных веб-проектов.

Перейти на Timeweb Cloud
Реклама · ERID: CQH36pWzJqVJ4YD9t5y227AkMQdhpG2THarwRmX2g9tS8x

Как вывести ALT изображения

Лучше сразу добавлять:

alt="<?= $arItem["NAME"] ?>"

Это полезно:

  • для SEO;
  • доступности;
  • Google Images.

Проверка на наличие картинки

Чтобы избежать ошибок, желательно проверять, существует ли изображение:

<?if ($arItem["DETAIL_PICTURE"]):?>

    <img
        src="<?= $arItem["DETAIL_PICTURE"]["SRC"] ?>"
        alt="<?= $arItem["NAME"] ?>"
    />

<?endif;?>

Уменьшение изображения

Для оптимизации сайта лучше использовать:

CFile::ResizeImageGet()

Пример:

<?
$file = CFile::ResizeImageGet(
    $arItem["DETAIL_PICTURE"],
    array("width" => 400, "height" => 300),
    BX_RESIZE_IMAGE_PROPORTIONAL,
    true
);
?>

<img src="<?= $file["src"] ?>" />

Почему лучше ресайзить изображения

  • быстрее загрузка сайта;
  • меньше нагрузка;
  • лучше PageSpeed;
  • не загружаются огромные оригиналы.

Где еще используется DETAIL_PICTURE

  • каталог товаров;
  • новости;
  • акции;
  • портфолио;
  • блог;
  • проекты.

Итог

Для вывода детальной картинки в списке элементов Битрикс используется:

<?= $arItem["DETAIL_PICTURE"]["SRC"] ?>

И не забывайте включить поле «Детальная картинка» в настройках компонента.

158 просмотров
Где заказы?

Почему один сайт стабильно приносит заявки, а другой годами просто «висит в интернете»?

В телеграм-канале «Где заказы?» я разбираю реальные ошибки бизнеса, SEO, сайты, рекламу, воронки продаж и показываю, почему компании теряют клиентов и как это исправить.

Без инфоцыганства и мотивационных цитат — только практика, кейсы и рабочие решения для бизнеса и веб-разработки.

Комментарии

Где заказы?
Почему у одних компаний очередь из клиентов, а у других пустой сайт и тишина?
Телеграм канал «Где заказы?» — про продажи, сайты и ошибки бизнеса на реальных примерах. Подписаться