@SpeakeazyYT2

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

Здравствуйте. Хотел бы добавить возможность для определённых групп пользователей загружать файлы в формате png, которые по разрешению больше заданного в настройках пользовательского поля.
5b3f638de30c1293534184.png
В данном случае поле на скрине "Максимальные ширина и высота для отображения в списке". В форме (main.profile - компонент) в личном кабинете я использую поле для загрузки файлов (за это как раз отвечает пользовательское поле UF_). Сейчас, как показано, на скрине, максимальное разрешение файла не должно быть больше 1024x512, а нужно для некоторых групп пользователей сделать больше это разрешение, чтобы могли загружать файлы с тем размером, каким я хочу. Как это сделать?
  • Вопрос задан
  • 302 просмотра
Решения вопроса 1
@kudis
Bitrix developer
Делайте у свойства максимальное разрешение, а проверку картинок вставьте в события OnBeforeUserUpdate и OnBeforeUserAdd

UPD:
в /local/php_interface/init.php подключите файл handlers.php в котором выложите код события
AddEventHandler("main", "OnBeforeUserUpdate", Array("Kudis", "picHandler"));
AddEventHandler("main", "OnBeforeUserAdd", Array("Kudis", "picHandler"));

define("MAX_WIDTH", 10);
define("MAX_HEIGHT", 10);

class Kudis
{
    function picHandler(&$arFields)
    {
        if (is_array($arFields['UF_USERPIC']) && !empty($arFields['UF_USERPIC'])) {
            $fileSize = CFile::GetImageSize ($arFields['UF_USERPIC']['tmp_name']);

            if ($fileSize[0] > MAX_WIDTH || $fileSize[1] > MAX_HEIGHT) {
                global $APPLICATION;
                $APPLICATION->throwException('Максимальный размер картинки для Вас: ' . MAX_WIDTH . 'x' . MAX_HEIGHT);
                return false;
            }
        }
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы