Categories: Мадженто 2

Як змінити розмір картинок в Magento 2

Розмір картинки товару, а також інші параметри картинок в Magento 2 визначаються у файлі <ТЕМА>/etc/view.xml. Шлях до ТЕМИ наступний: app/design/frontend/<Vendor>/ТЕМА. Наприклад, для теми Magento Blank розташування файлу view.xml наступне: app/design/frontend/Magento/blank/etc/view.xml. Якщо ж ви встановлювали тему через Composer, тоді папку теми можна знайти в vendor/magento/theme-frontend-<КОД_ТЕМИ>. У файлі view.xml міститься конфігурація зображень для товарів, а також для картинок-мініатюр магазину. Цей файл є обов’язковим для теми, але його можна не використовувати, якщо він є в батьківській темі. Батьківська тема оголошується у файлі <ТЕМА>/theme.xml в ноді <parent>.

 

Конфігурація зображень знаходиться в ноді <images module="Magento_Catalog">. Вона виглядає приблизно так:

<images module="Magento_Catalog">
 <image id="image_location_id" type="image_type">
  <width>200</width>
  <height>200</height>
  ...
 </image>
</images>

 

 

Конфігурація картинок в Мадженто 2

Розглянемо більш докладно налаштування конфігурацій картинок

id – це унікальний параметр, який використовується в .phtml шаблонах для вказівки властивостей зображення в певне розташування на певній сторінці. Це може бути картинка пов’язаного товару на сторінці товару, картинка товару в списку товарів, картинка товару на сторінці кошика і т.д.

type – визначає, яка картинка буде відображатися. Типи картинок описані в адмінці Каталог > Товари в розділі «Зображення і Відео». Кожен тип може мати свою власну картинку, що дозволяє завантажувати різні зображення для невеликих мініатюр або для великого зображення. Допустимі значення:

  • image – відповідає типу базового зображення
  • small_image – відповідає типу маленької картинки
  • swatch_image – відповідає типу Swatch Image (перемикання картинок)
  • swatch_thumb – відповідає типу Swatch Image (перемикання картинок)
  • thumbnail – відповідає типу ескізного зображення (мініатюра)

 

Якщо вам потрібно змінити/перезаписати значення у файлі view.xml, для цього вам доведеться скопіювати весь файл view.xml в свою тему та внести потрібні коригування. Відсутні вузли у вашій темі не успадковуються від батьківської теми, тому й потрібно копіювати весь файл.

 

 

Як змінити розміри картинки товару

Щоб змінити розміри картинки товару в Magento 2, відкрийте файл <ТЕМА>/etc/view.xml, знайдіть зображення з потрібним ідентифікатором та оновіть параметри widht/height. Наприклад, змінимо розмір картинок товару на сторінці товарів (в режимі Сітки). Для цих картинок ID буде таким category_page_grid. Внесіть зміни в наступний нод (вузол):

<image id="category_page_grid" type="small_image">
  <width>250</width>
  <height>250</height>
</image>

 

 

Повний список параметрів картинки

Фреймворк Magento 2 може змінювати розміри зображень, зберігати пропорції, зберігати прозорість зображення, обрізати і т.д. Весь список параметрів виглядає так:

  • width – ширина зображення в пікселях. Використовується для зміни розміру картинки товару.
    • Тип: ціле число
    • Значення за замовчуванням: немає
  • height – висота картинки в пікселях. Використовується для зміни розміру картинки товару.
    • Тип: ціле число
    • Значення за замовчуванням: немає
  • constrain – якщо для параметра «constrain» встановлено значення true, зображення, які менше заданого значення, не збільшуватимуться Magento. Буде збільшуватися тільки рамка кадрування. Цей параметр може використовуватися для невеликих зображень товару, якщо ви не хочете, щоб Magento змінював їх розмір. Це не впливає на зображення з більшими розмірами, ніж зазначено в параметрах ширини/висоти.
    • Тип: boolean
    • Значення за замовчуванням: true
  • aspect_ratio – якщо встановлено значення true, співвідношення пропорцій між шириною та висотою картинки залишається незмінним.
    • Тип: boolean
    • Значення за замовчуванням: true
  • frame – при встановленні на true, зображення не буде обрізане. Застосовується тільки в тому випадку, якщо для параметра aspect_ratio встановлено значення true.
    • Тип: boolean
    • Значення за замовчуванням: true
  • transparency – якщо встановлено значення true, зберігається прозорий фон зображень. Якщо встановлено значення false, зображення матимуть білий фон (за замовчуванням). Ви можете встановити свій колір фону, використовуючи параметр background.
    • Тип: boolean
    • Значення за замовчуванням: true
  • background – колір фону для зображень. Це не застосовується до зображень з прозорістю, якщо для transparency встановлено значення true. Використовуйте параметр для додавання рамки зображення при зміні розміру фотографій і зміну фонового кольору.
    • Тип: рядок
    • Значення за замовчуванням: [255, 255, 255]

 

 

Застосування змін

Коли ви закінчите редагування файлу view.xml і вкажете нові значення параметрів, вам потрібно дати команду Magento перегенерувати зображення товарів. Це можна зробити за допомогою наступних команд в консолі Magento 2:

php bin/magento catalog:images:resize
php bin/magento cache:clean

 

 

Використання в .phtml шаблонах

Ви можете використовувати інші налаштування для параметрів картинок безпосередньо в файлах-шаблонах теми. Для цього вам потрібно зробити ін’єкцію залежностей Хелпер класу для картинок (\Magento\Catalog\Helper\Image) в клас використовуваного Блоку для шаблону.

Приклад коду:

/**
* @var $block \Magento\Catalog\Block\Product\Widget\NewWidget
* @var $imageHelper \Magento\Catalog\Helper\Image
*/$image = 'product_page_more_views';
$items = $block->getProductCollection()->getItems();
$width = 250;
$height = 250;
foreach ($items as $_item) {
  $resizedUrl = $imageHelper->init($_item, $image )
  ->keepAspectRatio(TRUE)
  ->constrainOnly(TRUE)
  ->keepFrame(TRUE)
  ->resize($width, $height)
  ->getUrl();
  echo '<img src="'. $resizedUrl .'" alt="alt text" />';
}

 

Share
Published by
SebWeo

Recent Posts

Гра Ліла — це найдавніша із відомих трансформаційних ігор для самопізнання

Якщо представити життя у формі Гри, тоді кожному із нас у ній відведено свою роль.…

5 години ago

Як змінити активну тему WordPress через базу даних

Тема (шаблон) — це своєрідний кістяк сайту на WordPress. І, на жаль, іноді цей «кістяк»…

1 день ago

5 практичних порад щодо розробки форм під мобільні пристрої

Контактна форма (чи будь-яка інша) на сайті — це дуже важливий компонент. На неї покладено…

2 дні ago

Ліна Костенко

Жах не в тому, що щось зміниться. Жах у тому, що все може залишитися так…

1 тиждень ago

Трансформаційна гра родом з древньої Індії — Ліла

Що таке Ліла — це стародавня гра, що виступає в якості інструменту для особистісної трансформації,…

1 тиждень ago

Конструктор — найкращий варіант інтерактивної іграшки для дітей

Сучасні варіанти дитячих конструкторів — це не просто іграшки, а дієвий інструмент розвитку, який допомагає…

1 тиждень ago