Дополнительные свойства для файлов


Типовая задача

Вывод различного рода графических галерей обычно реализовывается либо путем создания справочника, в записях которого одним из полей был путь к графическому файлу, либо через макрос News с использованием псевдонима папки в качестве источника данных (см. http://www.twl.ru/tsdn/macroses/news). Первый способ неудобен в управлении при частом обновлении галерей, т.к. необходимо каждую картинку вносить в справочник вручную, плюс есть неудобства с определением порядка следования изображений (нужно задавать его через отдельное поле и по нему сортировать). Второй способ был сложно применим в случаях, когда к картинке нужно было задать подпись или вывести связанную с ней информацию.

С версии 4.42 возможно задавать любому файлу в библиотеке файлов набор свойств, точно также как создаются дополнительные свойства страниц. Для активации этой функции необходимо прописать служебную сущность с предопределенным id="fileproperty" (по аналогии с pageproperty для страниц). В библиотеке файлов при нахождении курсора в дереве на файле справа в тулбаре появится кнопка "доп. свойства", с помощью которой можно будет их редактировать.

Получение дополнительных свойств на фронтзоне возможно через $Attribute:имяатрибута$ в макросе News, либо через макрос FileProperty (имя атрибута задается в ключе what).

Внимание: разработчик должен понимать, что свойства которые он задает будут накладываться на свойства, которые заданы в files.xml в атрибутах элементов, соответственно если создать свойства с системными именами типа title, filename или filesize (см. files.xml - перечень может со временем измениться), то приоритет будут иметь значения, заданные в дополнительных свойствах, что может быть нежелательно при решении конкретных задач.

Рекомендация: для ускорения работы админзоны в части работы с файлами на большом числе сущностей, сущность fileproperty лучше располагать как можно ближе к началу файла entities.xml.