Групповые конфигурации компонентов AEM (6.2)
В настоящее время я создаю компонент, который имеет свойства конфигурации TouchUI, разделенные тремя вкладками (Стандарт, CASL, GDPR). Каждая вкладка имеет одинаковый набор доступных параметров, и мои текущие имена конфигурации похожи на следующие:
./standardMarketingText
./standardThirdpartyText
./gdprMarketingText
./gdprThirdpartyText
./caslMarketingText
./caslThirdpartyText
(Есть несколько других опций для стандартных,gdpr,casl, но я оставил их для краткости)
Хотя это работает, я надеюсь вместо этого сохранить значения в JCR как узел JSON для каждой категории. Например:
casl = {"marketingText"="m test", "thirdpartyText"="tp test"}
gdpr = {"marketingText"="gdpr m test", "thirdpartyText"="gdpr tp test"}
Таким образом, я могу загружать все "casl" (или другие) опции одновременно, когда они мне нужны (нет случая, когда я бы загружал только одну "casl" опцию)
Я попытался использовать гранит / пользовательский интерфейс / компоненты / фундамент / форма / мультиполе, однако он просит "Добавить поле". Мне нужен только один набор каждого из них, и я не предоставляю возможность добавлять другой набор свойств под каждую вкладку. Есть ли способ сделать это без переопределения многополюсного resourceType?
1 ответ
Есть несколько способов достичь того, на что вы смотрите, я бы посмотрел на возможность многократного использования, так как есть похожие именованные свойства для разных категорий (на вкладках вашего случая). Чтобы сгруппировать их, вы можете сделать это на уровне узла, правильно определив свойство name для каждой вкладки.
Для указанных выше значений вы можете сделать что-то вроде -
./standard/marketingText
./standard/thirdpartyText
./gdpr/marketingText
./gdpr/thirdpartyText
./casl/marketingText
./casl/thirdpartyText
Каждая ваша вкладка хранит свойства в именованном узле (стандарт, gdpr, casl). Кроме того, у вас может быть один SlingModel/WCMUsePojo, который может адаптироваться к этим узлам, чтобы предоставить Pojo доступ к значениям свойств.
Что касается получения JSON, ваш SlingModel или WCMUsePojo может предоставить метод для возврата значений, основанных на JSON.