Задача: При добавлении элемента, пропорционально уменьшать картинки, добавленные как пользовательское свойство.
Решение:
Перед решением поставленной задачи, убедитесь, что у вас есть ftp-доступ к файлу /bitrix/php_interface/init.php и заданы права на редактирование элемента "777".
Если такого файла нет, создайте его по указанному адресу: /bitrix/php_interface/
В файл /bitrix/php_interface/init.php добавляем обработчик события "добавления элемента" - "OnBeforeIBlockElementAdd". В функции-обработчике пробегаемся по свойству типа "файл" и ресайзим каждую картинку.
Копируем код ниже и заменяем значение "28" на id вашего свойства. Данный код, будет работать как для множественного, так и для одиночного свойства типа "файл".
[CODE]AddEventHandler("iblock", "OnBeforeIBlockElementAdd", Array("MyClass", "OnBeforeIBlockElementAddHandler"));
class MyClass
{
function OnBeforeIBlockElementAddHandler(&$arFields)
{
foreach($arFields[PROPERTY_VALUES][28] as &$file):
CAllFile::ResizeImage(
$file,
array("width" => "200", "height" => "200"),
BX_RESIZE_IMAGE_PROPORTIONAL);
endforeach;
}
}
[/CODE]
Решение:
Перед решением поставленной задачи, убедитесь, что у вас есть ftp-доступ к файлу /bitrix/php_interface/init.php и заданы права на редактирование элемента "777".
Если такого файла нет, создайте его по указанному адресу: /bitrix/php_interface/
В файл /bitrix/php_interface/init.php добавляем обработчик события "добавления элемента" - "OnBeforeIBlockElementAdd". В функции-обработчике пробегаемся по свойству типа "файл" и ресайзим каждую картинку.
Копируем код ниже и заменяем значение "28" на id вашего свойства. Данный код, будет работать как для множественного, так и для одиночного свойства типа "файл".
[CODE]AddEventHandler("iblock", "OnBeforeIBlockElementAdd", Array("MyClass", "OnBeforeIBlockElementAddHandler"));
class MyClass
{
function OnBeforeIBlockElementAddHandler(&$arFields)
{
foreach($arFields[PROPERTY_VALUES][28] as &$file):
CAllFile::ResizeImage(
$file,
array("width" => "200", "height" => "200"),
BX_RESIZE_IMAGE_PROPORTIONAL);
endforeach;
}
}
[/CODE]