Adobe CQ — укажите, где записывается содержимое JCR (точный путь)

Я пытаюсь создать диалоговое окно с типом xtype "textfield"... Мне нужно указать, что каждый раз, когда пользователь обновляет это поле, он всегда перезаписывает один и тот же узел содержимого JCR.

Я включаю этот компонент/диалог на несколько страниц, чтобы автор мог редактировать текст. Проблема в том, что текст будет обновлен для этой страницы. (потому что я использую относительный путь).

Что мне нужно сделать... Контент обновляется и записывается в центральное расположение, поэтому независимо от того, на какой странице пользователь редактирует этот текст, он всегда будет обновляться в центральном местоположении.

Пример из реальной жизни: у нас есть модальные диалоги, которые отображаются по всему сайту. Некоторые из этих диалогов являются глобальными. Наш клиент запросил возможность редактирования на любой странице, отображаемой в этих диалогах. Критерием приемлемости является то, что они могут редактировать на любой странице, и это редактирование будет применяться глобально.

Моя проблема в том, что я не уверен, как установить путь, по которому будет писать текстовое поле.

Я получаю содержимое отсюда:

 <cq:include path="/content/jjj/en/misc/deviceoutmodal/jcr:content/buttontext1" resourceType="zig/components/text"/>

Как я могу писать по тому же пути?


person user2896526    schedule 30.10.2013    source источник
comment
Разве это не запись обратно по тому же пути? Путь — это путь к содержимому компонента. По этому пути хранятся значения, введенные в диалоговом окне.   -  person kfaerber    schedule 31.10.2013
comment
Итак, если бы я настроил xtype, какие свойства мне нужно было бы использовать для сохранения по указанному выше пути? Нужно ли мне изменить свойство имени? Извините... новичок в CQ.   -  person user2896526    schedule 31.10.2013
comment
Вам нужно будет сделать что-то другое, потому что вы вытаскиваете компонент, который находится на другой странице, все уже будет указывать на правильный путь. Свойство name для xtype обычно представляет собой относительный путь к пути компонента, который вы задаете с помощью атрибута пути тега cq:include.   -  person kfaerber    schedule 31.10.2013


Ответы (1)


Я думаю, что лучше всего этого можно добиться с помощью диалогов дизайна — вы можете установить свойство на основе компонента (или шаблона), которое затем будет использоваться каждым экземпляром этого компонента.

Редактор может редактировать свойство в режиме Дизайна (или через Дизайнер, насколько я помню). Диалоги дизайна создаются как обычные диалоги, но называются design_dialog.xml. пример использования, который Adobe lists для компонента логотипа:

Компонент Logo отображает логотип сайта Geometrixx. Изображение логотипа и домашнюю ссылку можно настроить глобально (одинаково для каждой страницы веб-сайта), чтобы каждый экземпляр этого компонента был идентичен. Поэтому диалоговое окно дизайна необходимо для предоставления изображения и пути домашней ссылки к дизайну соответствующей страницы. Компонент «Лого» размещается в левом верхнем углу всех страниц сайта.

person anotherdave    schedule 30.10.2013
comment
Кажется странным, что я не могу указать место хранения содержимого. - person user2896526; 30.10.2013
comment
Вероятно, вы могли бы напрямую подключиться к JCR API и написать что-то, что позволило бы это сделать, но в целом для этих типов требований я думаю, что OOTB (через диалоги проектирования, эталонные компоненты или iparsys) даст вам лучший компромисс между количеством собственный код, который вам нужно написать, и UX для ваших редакторов. - person anotherdave; 31.10.2013
comment
Поэтому мне нужно было бы только изменить: jcr:primaryType Name cq:Dialog на: jcr:primaryType Name cq:design_dialog.xml - person user2896526; 31.10.2013
comment
Вы можете сохранить jcr:primaryType как cq:Dialog, хотя само имя файла должно измениться с dialog.xml на design_dialog.xml (если вы используете CRXDE, я думаю, что в контекстном меню есть опция для создания диалогов дизайна). - person anotherdave; 31.10.2013