Добрый день.
Вопрос от новичка в Битриксе, так что заранее простите ))
но гугл почему-то не смог мне помочь..
Имеем:
- хайлоад-блок, представляющий цвета торговых предложений (в частности - в нем есть поле UF_FILE - картинка, представляющая сам цвет).
- настроенный импорт.
Что надо:
- надо при создании хайлоадов автоматически создавать картинку, представляющую цвет торг.предложения (при создании и обновлении).
- но делать это надо только если пользователь (или модуль импорта) сохраняет хайлоад с пустой картинкой (ну т.е. если он передал картинку явно - сохраняться должна она; если оставил пустой - создаем автоматом).
Соответственно, прежде чем модифицировать данные в событиях OnAfterAdd/OnAfterUpdate, мне надо понять, что происходит с картинкой для данного ХЛ-элемента?
а) ее не было и пользователь/модуль сохраняет с пустой картинкой?
б) ее не было, и пользователь загружает свою?
в) на была в хл-элементе, и ползьователь сохраняет ХЛ без изменений картинки?
г) она была, но пользователь меняет картинку?
д) она была, но пользователь удаляет картинку?
И генерировать новую только в случаях "а" и "д", в остальных - ничего не делать.
В чем, собственно, ВОПРОС:
- я покопался в данных, которые передаются в события OnAfterAdd/OnAfterUpdate ( конкретно - в ($event->getParameter("fields"))['UF_FILE'] ), и для себя понял, как определить, что именно происходит с картинкой (в массиве UF_FILE: непустой name/type/tmp_name - загрузка новой, непустой old_id - была старая, del==Y - удаление старой, и т.п.)...
- НО! а нормально ли это, копаться в данных вот так, и полагаться на них? это официально документированная логика? или может есть какое-то правильное API для анализа/модификации данных о загрузке/изменении/удалении файлов в событии?
Заранее спасибо.
Вопрос от новичка в Битриксе, так что заранее простите ))
но гугл почему-то не смог мне помочь..
Имеем:
- хайлоад-блок, представляющий цвета торговых предложений (в частности - в нем есть поле UF_FILE - картинка, представляющая сам цвет).
- настроенный импорт.
Что надо:
- надо при создании хайлоадов автоматически создавать картинку, представляющую цвет торг.предложения (при создании и обновлении).
- но делать это надо только если пользователь (или модуль импорта) сохраняет хайлоад с пустой картинкой (ну т.е. если он передал картинку явно - сохраняться должна она; если оставил пустой - создаем автоматом).
Соответственно, прежде чем модифицировать данные в событиях OnAfterAdd/OnAfterUpdate, мне надо понять, что происходит с картинкой для данного ХЛ-элемента?
а) ее не было и пользователь/модуль сохраняет с пустой картинкой?
б) ее не было, и пользователь загружает свою?
в) на была в хл-элементе, и ползьователь сохраняет ХЛ без изменений картинки?
г) она была, но пользователь меняет картинку?
д) она была, но пользователь удаляет картинку?
И генерировать новую только в случаях "а" и "д", в остальных - ничего не делать.
В чем, собственно, ВОПРОС:
- я покопался в данных, которые передаются в события OnAfterAdd/OnAfterUpdate ( конкретно - в ($event->getParameter("fields"))['UF_FILE'] ), и для себя понял, как определить, что именно происходит с картинкой (в массиве UF_FILE: непустой name/type/tmp_name - загрузка новой, непустой old_id - была старая, del==Y - удаление старой, и т.п.)...
- НО! а нормально ли это, копаться в данных вот так, и полагаться на них? это официально документированная логика? или может есть какое-то правильное API для анализа/модификации данных о загрузке/изменении/удалении файлов в событии?
Заранее спасибо.