2015-09-15 3 views
0

Я ссылаюсь на aem-phonegap-kitchen-sink и aem-phonegap-starter-kit. Я добираюсь до такой степени, что могу экспортировать приложение PhoneGap, создавать и запускать его. Однако я попытался добавить дополнительные изображения в один из моих шаблонов страниц. Выводится только ресурс изображения с именем image. Все остальные изображения игнорируются. Если вы видите мое дерево данных ниже, image будет экспортироваться как page-one.img.png, но остальные два игнорируются.Обработчики обновления содержимого AEM

content tree

Я начал смотреть в ContentSync конфиг aem-phonegap-kitchen-sink и [AEM-PhoneGap-стартер-кит], и я нахожу эти обработчики получать ссылки

  • mobileapprootpage
  • mobileapppages
  • mobilepageassets
  • mobilecontentlisting

Я смотрю content sync documentation (я использую 6.1), но только упоминает простые обработчики, такие как copy и assets.

Я посмотрел повсюду, и я не могу найти документацию по ним. Я понял, что mobilepageassets - это то, что экспортирует мое изображение.

Так как я могу экспортировать другие мои изображения?

UPDATE

Я пытался добавить wcm/foundation/components/image к конфигурации com.day.cq.wcm.contentsync.impl.handler.PagesUpdateHandler OSGi. Это не имело никакого эффекта. Я также попытался переключить свои типы ресурсов изображения на foundation/components/image. Это тоже не повлияло.

ответ

2

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

custom handler component создается с

@Component(factory="com.day.cq.contentsync.handler.ContentUpdateHandler/identifier") 

Так, чтобы найти mobilepageassets реализации, я пошел в services console и сделал поиск фильтр с

(component.factory=*mobilepageassets) 

Оттуда я смог получить реализацию класс и местоположение файла JAR, который я загрузил и прошел через декомплекс Luyten.

Глядя на этом источнике я понял 2 вещи:

  1. Единственная причина, я даже получил page-name.img.png потому, что я случился назвать свой ресурс image изображения, который является тем же самым именем, используемого страница WCM эскиз.
  2. Этот обработчик обновления считывает собственную конфигурацию OSGi, которая имеет свойство для cq.pagesupdatehandler.imageresourcetypes.

Наконец, я добавил com.adobe.cq.mobile.platform.impl.contentsync.handler.MobilePageAssetsUpdateHandler OSGi конфигурации

<?xml version="1.0" encoding="UTF-8"?> 
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" 
    jcr:primaryType="sling:OsgiConfig" 
    cq.pagesupdatehandler.imageresourcetypes="[wcm/foundation/components/image]"/> 

, который сделал, чтобы мои изображения на экспорт, однако пути были неправильными. Они были экспортированы в папку jcr_content, где разметка искала «__jcr_content». Я заметил, что в стартовом комплекте PG & для этого была специальная обработка. Вместо того, чтобы реализовать свой собственный компонент изображения, я нашел mobileapps/components/image, который был достаточно прост для моих нужд. В этом случае мне даже не нужна конфигурация OSGi.

-1

Даже в AEM 6.2 вы можете добавить resourceTypes компонентов в OSGi консоли для следующих услуг:

com.adobe.cq.mobile.platform.impl.contentsync.handler.MobilePageAssetsUpdateHandler.name -

com.adobe.cq.mobile.platform.impl.contentsync.handler.MobilePagesUpdateHandler.name -

com.adobe.cq.mobile.platform.impl.contentsync.handler.MobileRootPageUpdateHandler.name -

ком. adobe.cq.mobile.platfo rm.impl.contentsync.handler.OffersUpdateHandler.name

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