pro100taa
@pro100taa

Как вывести дополнительное текстовое поле в админке Gallery?

Здравствуйте!

Подскажите, пожалуйста, как вывести дополнительное текстовое поле в админке Gallery. Что-то читаю документацию и не нахожу ничего. Может быть не там читаю?
  • Вопрос задан
  • 33 просмотра
Пригласить эксперта
Ответы на вопрос 2
an-tar
@an-tar Куратор тега MODX
Full stack web developer
Имхо не особенно как, не ковыряя исходники.
Альтернативно можно попробовать сделать галерею на MIGX или на MoreGallery
Ответ написан
DanArst
@DanArst
Гриффиндор в моде при любой погоде!
Расширять, как и любую другую модель в Modx.
1) Создаете js-скрипт, в котором наследуете GAL.panel.Album, код которого находится в assets/components/gallery/js/mgr/widgets/album/album.panel.js, добавив туда свое поле в items.
2) Добавляете поле в таблицу modx_gallery_albums (префикс modx_ может отличаться) с именем, которое указали в атрибуте name у поля из предыдущего пункта.
3) Создаете плагин на событие OnManagerPageBeforeRender, который будет регистрировать созданный ранее js-скрипт на странице админки.

Это правильный путь к решению, так как его не затрут обновления компонента Gallery.
Есть путь проще, но тогда компонент нельзя будет обновлять - вместо наследования в 1-ом пункте и создания плагина из 3-го пункта, просто добавляете поле в код в album.panel.js и добавляете его в таблицу modx_gallery_albums. Все.

Либо можно сделать без расширения полей, но костылем. Можно использовать поле Описание альбома, как контейнер для всех языковых версий, просто нужно определить синтаксис для указания ключа контекста (если делали с помощью Babel) и перевода. Грубо говоря ru=текст|en=текст|de=текст, только надо определиться с разделителями.
Не знаю, что вы там указываете, допустим название на разных языках. Получается в поле Описание просто указываете примерно так:
ru>Дизайн буклетов для свадьбы|en>Wedding brochure design|de>Gestaltung einer Hochzeitsbroschüre


> - разделитель ключа контекста от перевода
| - разделитель языковых переводов

Если у вас сделано с помощью Babel и в месте вывода идет проверка ключа контекста, то теперь достаточно написать простой сниппет с одним входным параметром - ID альбома, который разобьет содержимое поля Описание на массив (язык-перевод) и исходя из ключа текущего контекста, выведет нужный перевод.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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