2013-10-07 3 views
3

Я разрабатываю пользовательский компонент контейнера в Adobe CQ5.5, и я хотел бы иметь специальное сообщение в качестве заполнителя вместо стандартного «Перетаскивать компоненты или активы здесь» ».cq: emptyText не работает в Adobe CQ5.5

То, что я выяснил до сих пор, заключается в том, что мне нужно добавить cq: emptyText = «Мое пользовательское сообщение заполнителя». Вероятно, я что-то пропустил, так как это свойство полностью игнорируется. Вот папка structrure моего компонента:

  • [clientlib]
  • .content.xml
  • _cq_editConfig.xml
  • dialog.xml
  • myContainer.jsp

Согласно Adobe's official tutorials и также this wonderful tutorial for building an Accordion container, cq: emptyText следует зайти в файл _cq_editConfig.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" 
    cq:actions="[edit]" 
    cq:dialogMode="floating" 
    cq:emptyText="Drag My Custom components here" 
    jcr:primaryType="cq:EditConfig"> 
    <cq:listeners 
     jcr:primaryType="cq:EditListenersConfig" 
     afteredit="REFRESH_PAGE"/> 
</jcr:root> 

К сожалению, даже с cq: emptyText included Я все еще вижу текст заполнителя по умолчанию.

Любая помощь будет высоко оценена!

Спасибо!

Stan.


UPDATE:

После предложения Томек, я все еще получаю «компоненты Перетащите или активы здесь» вместо моего пользовательского сообщения, так что я все еще ищет ответ. Файловая структура моего компонента теперь выглядит следующим образом: - [clientlib] - [новый] ---- .content.xml ---- _cq_editConfig.xml - .content.xml - _cq_editConfig.xml - диалог .xml - tabContainer.jsp

.content.xml

<?xml version="1.0" encoding="UTF-8"?> 
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" 
    cq:isContainer="{Boolean}true" 
    jcr:primaryType="cq:Component" 
    jcr:title="Tab Container" 
    jcr:description="Container component for tab pages" 
    sling:resourceSuperType="foundation/components/parsys" 
    componentGroup="MyComponents"/> 

_cq_editConfig.xml

<?xml version="1.0" encoding="UTF-8"?> 
<jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" 
    cq:actions="[edit]" 
    cq:dialogMode="floating" 
    jcr:primaryType="cq:EditConfig"> 
    <cq:listeners 
     jcr:primaryType="cq:EditListenersConfig" 
     afteredit="REFRESH_PAGE"/> 
</jcr:root> 

новый/.content.xml

<?xml version="1.0" encoding="UTF-8"?> 
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" 
    jcr:primaryType="cq:Component" 
    jcr:title="New Paragraph" 
    sling:resourceType="foundation/components/parsys/new" 
    componentGroup=".hidden"/> 

новый/_cq_editConfig.xml

<?xml version="1.0" encoding="UTF-8"?> 
<jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" 
    cq:actions="[_clear,insert]" 
    cq:emptyText="Drag My Custom components here" 
    jcr:primaryType="cq:EditConfig" /> 

ответ

2

Этот контейнер обычно называется пункт системы или parsys. У вас должна быть такая структура:

.content.XML

<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" 
    cq:isContainer="{Boolean}true" 
    jcr:primaryType="cq:Component" 
    jcr:title="Your title" 
    sling:resourceSuperType="foundation/components/parsys" /> 

новый/.content.xml

<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" 
    jcr:primaryType="cq:Component" 
    jcr:title="New Paragraph" 
    sling:resourceType="foundation/components/parsys/new" 
    componentGroup=".hidden"/> 

новый/_cq_editConfig.xml

<?xml version="1.0" encoding="UTF-8"?> 
<jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" 
    cq:actions="[_clear,insert]" 
    cq:emptyText="Drag My Custom components here" 
    jcr:primaryType="cq:EditConfig"/> 

Итак, вам нужно создать new подкаталог компонента и свойство должно быть добавлено в файл new/_cq_editConfig.xml.

+0

Спасибо за ответ Tomek. Я сделал все, что вы предложили, но я по-прежнему вижу только по умолчанию «Перетащите компоненты или активы здесь». См. Мои обновления выше для получения дополнительной информации, я не могу все здесь. – Stan

4

Как вы реализуете parsys, вам следующие структуры, как это было предложено Томек Rękawek:

.content.xml (важную роль здесь является resourceSuperType)

<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" 
    cq:isContainer="{Boolean}true" 
    jcr:primaryType="cq:Component" 
    jcr:title="Your title" 
    sling:resourceSuperType="foundation/components/parsys" /> 

новый/.content.xml

<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" 
    jcr:primaryType="cq:Component" 
    jcr:title="New Paragraph" 
    sling:resourceType="foundation/components/parsys/new" 
    componentGroup=".hidden"/> 

новый/_cq_editConfig.xml (это, где вы хотели бы установить cq:emptyText атрибут)

<?xml version="1.0" encoding="UTF-8"?> 
<jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" 
    cq:actions="[_clear,insert]" 
    cq:emptyText="Drag My Custom components here" 
    jcr:primaryType="cq:EditConfig"/> 

В этот момент я не получал «Drag мои пользовательские компоненты здесь» текст на компоненте заполнитель. Что сделал трюк для меня было создать new/new.jsp с следующим содержанием:

новый/new.jsp

<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" 
%><%@include file="/libs/foundation/global.jsp" 
%><%@ page session="false" import=" 
    com.day.cq.wcm.api.components.EditContext" %><% 

    editContext.getEditConfig().setEmpty(true); 
%> 

Тогда я был в состоянии видеть пустой текст я поставил в new/_cq_editConfig.xml. Я тестировал это на CQ5.6.

Надеюсь, это поможет.

+0

Спасибо за ответ! Я добавил новый/new.jsp, но все равно не могу :-(. Я работаю на 5.6.1, а это значит, что, возможно, есть параметр, который, возможно, нужно включить. Я использую точные файлы как и вы, но нет результата. – Stan

+0

@stan, я бегу 5.6.1 этот ответ действительно сработал для меня – santiagozky

+0

Как я уже сказал, может быть что-то еще, что мешает мне показывать этот текст, и в конце концов я перестала пытаться. – Stan

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