Готовые тиражные решения на 1С-Битрикс
Техническая поддержка:
+7-908-208-1965
Отдел продаж, с 7:00 до 18:00 (по Москве)
Звонок по России бесплатный
Вы также можете заказать звонок

FAQ Ресайзер 2

19:20:54 - 23.09.2016

1. Можно ли установить на демо-версию Битрикс?

Нет, модуль устанавливается только на ПО 1С-Битрикс с активной возможностью получения обновлений и технической поддержки, поскольку привязывается к лицензионному ключу Битрикс.
2. Как установить?


Установка автоматическая. После нее модуль можно найти в админке Рабочий стол —> Сервисы —> Ресайзер 2.0 и произвести настройки.
3. Где найти инструкцию?


Подробную справку по настройке модуля смотрите в админке после установки:
Рабочий стол —> Сервисы —> Ресайзер 2.0 —> Справка
Так же прочитайте статью:https://dev.1c-bitrix.ru/community/webdev/user/51651/blog/resizer2-setup/
  
4. Где найти API модуля?

Подробное описание версии 2.0..Описание API модуля для разработчиков..Подробное описание версии 2.5..Подробное описание работы режимов масштабирования с примерами..Ссылка на видео настройки дополнительных фото каталога..Ссылка на видео настройки всплывающих фото на статических страницах..
5. Я изменил настройки Ресайзера, что мне нужно после этого сделать?

1) Сохранить изменения.
2) Сбросить кеш ресайзера.
3) Сбросить кеш тех компонентов битрикс, которые в своей работе используют наборы ресайзера.
6. Размер папки ресайзера на сервере растет почему? Как работает кеш у вашего модуля?


1) Сначала кеш должен один раз создастся на сервере для всех фото, которые показываются через Ресайзер.
2) После этого размер кеша перестанет расти - пока не будут загружены новые фото. 
3) Картинки в хорошем качестве занимают больше места на сервере. 
4) Если происходит переполнение, то можно либо увеличить размер места на диске, либо уменьшать качество (размеры в наборах) фото ресайзера.
7. Модуль не работает


Часто работе модуля мешает некорректное подключение библиотеки jQuery в шаблоне сайта, например:

его необходимо заменить на правильное подключение jQuery через API 1С-Битрикс:
CJSCore::Init(array("jquery"));
и все заработает! 
Если не помогло - пишите в нашу техническую поддержку:https://portal.yenisite.ru/support/ (необходимо зарегистрироваться) 
8. Как подключить модуль, если необходим только путь до сжатой картинки? (Вызов самой картинки через компонент необязателен)


В качестве примера рассмотрим компонент catalog.top в стандартном шаблоне eshop

Первое что необходимо сделать - создать наборы для каждого типа выводимых изображений.
Например в "Трендах сезона" выводятся изображения шириной 113px. Т.к. изображения квадратные, то высота будет равна тоже 113px (https://prntscr.com/6tzpbm)
Соответственно необходимо создать набор (https://prntscr.com/6tzqm4). Заметьте ID набора - 8, он понадобится нам в дальнейшем

Далее нужно приспособить данный набор для вывода в этом компоненте (catalog.top - шаблон для секции (section))
Копируем шаблон компонента.

Далее ищем вызов картинки для данного шаблона (файл - /bitrix/templates/ШАБЛОН САЙТА/components/bitrix/catalog.top/НАЗВАНИЕ СКОПИРОВАННОГО ШАБЛОНА/section/template.php) (https://prntscr.com/6tzt0e)

Т.к. вывод картинки в данном шаблоне осуществляется через стили, то вывод компонента здесь будет неуместен и нам необходимо обратиться к API модуля для получения пути до сжатых изображений. Для этого, в файле result_modifier.php ( /bitrix/templates/ВАШ ШАБЛОН/components/bitrix/catalog.top/НАЗВАНИЕ СКОПИРОВАННОГО ШАБЛОНА) в самом конце перед закрывающим тегом ?> добавляем следующий код:

//Подключаем модуль ресайзера
if (CModule::IncludeModule('yenisite.resizer2'))
{
foreach ($arResult['ITEMS'] as $key => $arItem) //создаем цикл по всем элементам массива c товарами
{
//присваиваем значения конечному результирующему массиву arResult
$arResult['ITEMS'][$key]['PREVIEW_PICTURE']['SRC'] = CResizer2Resize::ResizeGD2($arItem['PREVIEW_PICTURE']['SRC'],8); //Вызываем метод сжатия для изображения (цифра 8 говорит об ID набора, который мы создали на первом этапе)
//в данном случае вызываем метод сжатия если есть вторая картинка (!empty($arItem['PREVIEW_PICTURE_SECOND'])) если ее нет, то присваиваем значение PREVIEW_PICTURE
$arResult['ITEMS'][$key]['PREVIEW_PICTURE_SECOND']['SRC'] = !empty($arItem['PREVIEW_PICTURE_SECOND']) ? CResizer2Resize::ResizeGD2($arItem['PREVIEW_PICTURE_SECOND']['SRC'],8) : $arResult['ITEMS'][$key]['PREVIEW_PICTURE']['SRC'];
}
}


$arResult['ITEMS'][$key]['PREVIEW_PICTURE']['SRC'] - свойство в котором храниться путь до перовой картинки
$arResult['ITEMS'][$key]['PREVIEW_PICTURE_SECOND']['SRC'] - свойство в котором хранится путь до второй картинки

Они выводятся в шаблоне (это видно в пункте 3). В этом коде по сути идет переприсваивание исходного пути (с несжатой картинкой) к пути к сжатой картинкой. Тем самым в шаблон попадут те же свойства только теперь уже путь в них будет указывать на сжатую картинку.
Сбрасываем кеш страницы и смотрим результат

ВНИМАНИЕ! Данный код уместен для компонента catalog.top, чтобы создать аналогичные картинки для других компонентов необходимо проделать все этапы (от наборов до внедрения в шаблон). Причем внедрение в шаблон следует делать с осторожностью т.к. свойства в которых хранятся и выводятся картинки могут отличаться.
9. Что такое набор?


Набор - параметры сжатия картинки, в разных частях сайта одна и та же картинка может выводиться по разным наборам, например, на главной в баннере будем использовать набор с параметрами 400*400 пикс а на детальной ту же самую картинку обработаем другим набором параметрами 300*300 пикс. Наборы можно увидеть в админпанели настроек ресайзера (https://prntscr.com/6zsjrj)
10. Как установить различные водяные знаки для разных из сайтов? (В режиме многосайтовости)


В настройках набора устанавливаем конкретный водяной знак для данного набора (https://prntscr.com/6zska6). Далее используем разные наборы на разных сайтах.
11. Почему не сохраняются настройки наборов?


Настройки наборов могут не сохраняться по причине отключенного управляемого кеша на сайте.
12. Как загрузить превью-картинки в облачное хранилище?
Для того, чтобы переместить файловый кеш Ресайзера в облачное хранилище, необходимо зарегистрировать аккаунт в одном из таких хранилищ, которые поддерживаются платформой 1С-Битрикс, настроить подключение к своему облачному хранилищу в административной части вашего сайта и задать необходимые правила для отбора файлов в облачное хранилище. 
Настройка и работа с облачными хранилищами подробно освещена в учебных курсах и документации 1С-Битрикс.

Для того, чтобы кеш Ресайзера загружался в облако, в правилах облачного хранилища необходимо указать модуль "yenisite.resizer2".

4cd29ce5ecbf7a2c831e8732fd32c01f.png


В списке правил нельзя оставлять пустые поля, это приведет к загрузке в облако всех файлов от всех модулей.

d1b8b9cf276e20f366dd625f2b53e7ea.png

Желательно не указывать модуль iblock - если исходные изображения будут выгружены в облако, тогда Ресайзеру придется каждый раз скачивать каждую картинку из облака при необходимости создать уменьшенную копию или копию с водяным знаком. Это может сказаться негативно на времени выполнения первых хитов, когда Ресайзер еще не создал свой кеш.

Также, если выполнение первых хитов с генерацией кеша занимает неприлично много времени, можно деактивировать облачное хранилище. Пройти по страницам сайта, чтобы сгенерировать кеш ресайзера локально. Затем снова активировать облачное хранилище и переместить в него созданные файлы.


1. Нюансы при использовании PHP7
При использовании на сервере с установленным решением PHP версии 7, есть вероятность столкнуться с рядом проблем в платформе 1С-Битрикс

1. ошибка в мастере установки решения  -
/bitrix/wizards/yenisite/bitronic2/site/services/.services.php
Using $this when not in object context 
$wizard = &$this->GetWizard();

Для исправления данной ошибки необходимо в следующих файлах
  • bitrix/modules/yenisite.[module]/install/wizards/yenisite/[module]/site/services/.services.php
  • bitrix/wizards/yenisite/[module]/site/services/.services.php

заменить строку 
$wizard = &$this->GetWizard();
на
$wizard = \Yenisite\Core\Wizard\Main::getCurrentWizard();

А также убедитесь, что у Вас установлен модуль "Служебные инструменты ROMZA (yenisite.core)" версии не ниже 1.6.0

2. ошибка в компоненте баннеров - 
Using $this when not in object context (0)
/bitrix/modules/main/classes/general/component_template.php:285
#0: CBitrixComponentTemplate::ApplyCachedData(array)

Данная ошибка зафиксирована специалистами 1С-Битрикс. До её исправления в ядре платформы как временное решение проблемы возможно отключить кеширование данных компонент - https://screencast.com/t/sQXULOMa5