2013-08-02 2 views
0

Некоторые предпосылки: Я пытаюсь создать скользящий навигационный компонент слева для отзывчивого веб-сайта. Я хочу включить изображение, настроенное с помощью design_dialog, рядом со всеми пунктами в меню.Adobe CQ5 Глобальный компонент

Я бегу CQ 5.6.1

Проблема Я бегу в, в настоящее время у меня «домашней страницы», «contentpage» и «contactpage» шаблоны. Все 3 выполняются с их так называемыми компонентами, которые производятся из базового компонента «страница».

В этом компоненте страницы у меня есть body.jsp, который включает мой компонент navpanel. Все работает нормально, но при настройке изображений в навигационной панели на домашней странице они не отображаются на двух других.

Я знаю, что причиной этого является то, потому что дизайн navpanel путь: /etc/designs/testsite/jcr:content/homepage/navpanel

В body.jsp, когда в том числе navpanel, я попытался установить переменную пути в сч: включают абсолютный путь (т.е. /etc/designs/testsite/jcr:content/navpanel), поскольку в соответствии с API, он должен иметь абсолютный путь и не изменять его вообще. Вместо этого при выводе currentStyle.getPath() он продолжает показывать первый путь (который включает домашнюю страницу).

Для достижения моей цели мне нужно настроить путь проектирования для того, чтобы этот компонент находился на «глобальном» уровне и не был вложен в дизайн шаблонов.

Есть ли программный способ изменения этого значения? Похоже, что есть ошибка с cq:include path, которая не ведет себя так, как предполагалось?

ответ

0

cq: include не был создан для загрузки в дорожки проектирования как компонент (который звучит так, как вы пытаетесь сделать).

сд: включают было сделано либо включить статический сценарий (с помощью свойства сценария) например:

или компонент (используя путь и ResourceType свойство) например:

currentStyle будет по-прежнему получать стиль этого компонента для designPath текущего шаблона.

Вы заметите то же самое на демонстрационном сайте geometrixx, например, когда вы переключаете логотип (режим разработки) на что-то еще, а затем переходите к другому шаблону. Старый логотип будет по-прежнему присутствовать на страницах, используя другой шаблон. Вот почему рекомендуется использовать как можно меньше в режиме разработки, если вы не намерены ограничивать свои действия шаблоном, для которого вы находитесь в режиме разработки. Например, ограничение компонентов, которые могут быть использованы на конкретном шаблоне, - большое использование режима разработки.

На самом деле это не так, чтобы сделать «глобальный» компонент, который использует те же данные, что и источник. В вашем случае вы можете попытаться решить эту проблему, сохранив/загрузив изображения в/из общего места в репозитории. Возможно, вы даже можете реализовать сервис, чтобы настроить это «общее местоположение». Или вы можете принять его еще дальше и иметь сервисную загрузку/сохранение изображений.

+0

В соответствии с CQ api для cq: include: 'Путь к ресурсу, который будет включен в текущую обработку запроса. Если этот путь относительный, он добавляется к пути к текущему ресурсу, скрипт которого включает данный ресурс. Это заставляет меня думать, что если я укажу абсолютный путь, я могу указать, где находится объект ресурса. Почему это на самом деле не работает? Я также полностью верю, что глобально доступный объект должен быть осуществимым, и вам нужно больше информации о том, как это сделать, поскольку «путь» не работает должным образом. –

+0

Вы должны исправить это, указав, что абсолютный путь является вариантом, но это не работает для пути проектирования, насколько я знаю. Для реального ресурса он должен работать нормально. Например: будет работать. – 3xil3

0

немного опоздал, но хотел поделиться тем, как мы создали компонент глобального (авторский компонент).

Использование абсолютных путей вообще не работает (ну, почти).Для нескольких страниц, чтобы разделить глобальный компонент, мы работали свойств пути этот путь:

Допустим, у нас есть 10 страниц, разделяющих компонент меню:

  1. делают все они простираются от компонента на странице по умолчанию.
  2. сделать только одну страницу (назовите ее myapp/components/pages/A), чтобы расширить страницу и иметь относительный путь к совместно используемому компоненту, который вы хотите включить (например: <cq:include path="mysharedcomponent" resourceType="myapp/components/mysharedcomponent" />).
  3. сделать оставшиеся страницы для расширения страницы и использовать абсолютный путь к общему компоненту (то есть: <cq:include path="/myapp/A/jcr:content/mysharedcomponent" resourceType="myapp/components/mysharedcomponent" />).

Этот метод может быть использование, чтобы иметь глобальный компонент под CQ общий для нескольких шаблонов страниц, а также делает поддержку перетаскивание функциональности & падения при работе в режиме EDIT: перетащить любой ребенок в общий компонент и получить этот компонент доступен на все страницы.

Смежные вопросы