2016-11-25 4 views
0

Я создал компонент, и я хотел бы показать этот компонент на странице сведений о документе, только если документ имеет определенный аспект, поэтому я попытался использовать оценщика. Я добавил этот компонент в custom-slingshot-application-context.xmlоценщик alfresco на пользовательском компоненте

<bean id="evaluator.doclib.metadata.hasInvoiceAspect" 
     parent="evaluator.doclib.action.propertyNotNull"> 
    <property name="property" value="inv:invoice"/> 
</bean> 

В document-details.xml я добавил этот

<component> 
    <region-id>custom-comp</region-id> 
    <sub-components> 
     <sub-component id="default"> 
     <evaluations> 
      <evaluation> 
       <evaluators> 
        <evaluator type="evaluator.doclib.metadata.hasInvoiceAspect"/> 
       </evaluators> 
       <url>/components/custom/custom-comp</url> 
      </evaluation> 
     </evaluations> 
    </sub-component> 
    </sub-components> 
</component> 

Я предполагаю, что я что-то пропустил, как компонент не отображается. У меня есть 2 файла с именем custom-slingshot, я пробовал оба tomcat/shared/classes/alfresco/web-extension и tomcat/webapps/share/WEB-INF/classes/alfresco/web-extension.

Я полностью ошибаюсь? Можно ли добиться того, чего я хочу? Как мне продолжить?

ответ

2

Существует предопределенный оценщик для проверки того, имеет ли узел аспект под названием оценщик.doclib.action.hasAspect. Вам просто нужно создать компонент с этим оценщиком в качестве родителя и дать аспект, чтобы проверить против в свойствах:

* добавлен к некоторому -context.xml в веб-расширения

<bean id="my.custom.evaluator" parent="evaluator.doclib.action.hasAspect"> 
    <property name="aspects"> 
     <list> 
      <value>my:hasInvoiceAspect</value> 
     </list> 
    </property> 
</bean> 

Тогда вы» ссылка Л.Л., что фасоль в вашем DocLibActions конфигурации добавлена ​​к * разгибаниям modules.xml (веб-расширение/сайт-данные/расширение) ...

<config condition="DocLibActions" evaluator="string-compare"> 
    <actions> 
     <action...>   
      <!-- Custom evaluator --> 
      <evaluator>my.custom.evaluator</evaluator> 
     </action> 
    </actions> 
</config> 

Voila.

Дополнительная информация о predefined evaluators. Хороший образец проекта here.