Возникла необходимость следующего функционала в админке:
создать такое свойство товара (типа "файл"), в котором можно выбрать файл ТОЛЬКО из числа связанных с товаром или его торг.предложениями.
Что сделано:
- сделал кастом.свойство ( со своим GetPropertyFieldHtml )
- сделал форму выбора картинок (CDialog, запрос картинок аяксом)
... и все бы ничего, но когда данный товар - это одежда с 10 размерами и 20 цветами (по 3-10 картинок в каждом) - в форме выбора картинок одна и та же картинка дублируется по 10 раз (для всех размеров одного цвета).
Понятно, что значит надо почистить список картинок от дубликатов.
ОДНАКО, в документированном АПИ нет такой возможности.
В коде я нашел, как это сделать (в том же CFile::SaveFile все очевидно),
но возникает ощущение, что использовать Bitrix\Main\File\Internal\FileHashTable и ...\FileDuplicateTable - не совсем норм, даже посредством АПИ, без обращения к БД (особенно на это намекает неймспейс Internal)
Собственно, об этом и вопрос:
- насколько норм пользоваться FileHashTable и FileDuplicateTable в своем коде?
создать такое свойство товара (типа "файл"), в котором можно выбрать файл ТОЛЬКО из числа связанных с товаром или его торг.предложениями.
Что сделано:
- сделал кастом.свойство ( со своим GetPropertyFieldHtml )
- сделал форму выбора картинок (CDialog, запрос картинок аяксом)
... и все бы ничего, но когда данный товар - это одежда с 10 размерами и 20 цветами (по 3-10 картинок в каждом) - в форме выбора картинок одна и та же картинка дублируется по 10 раз (для всех размеров одного цвета).
Понятно, что значит надо почистить список картинок от дубликатов.
ОДНАКО, в документированном АПИ нет такой возможности.
В коде я нашел, как это сделать (в том же CFile::SaveFile все очевидно),
но возникает ощущение, что использовать Bitrix\Main\File\Internal\FileHashTable и ...\FileDuplicateTable - не совсем норм, даже посредством АПИ, без обращения к БД (особенно на это намекает неймспейс Internal)
Собственно, об этом и вопрос:
- насколько норм пользоваться FileHashTable и FileDuplicateTable в своем коде?