关于自定义组件

时间:2016-11-25 09:08:57

标签: alfresco alfresco-share

我已经创建了一个组件,我想在文档详细信息页面上显示该组件,只有文档具有某个方面,所以我尝试使用评估器。我在custom-slingshot-application-context.xml

中添加了这个bean
<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>

我想我错过了一些东西,因为组件没有显示出来。我有两个名为custom-slingshot的文件,我尝试了tomcat/shared/classes/alfresco/web-extensiontomcat/webapps/share/WEB-INF/classes/alfresco/web-extension

我完全错了吗?有可能达到我想要的那样吗?我该怎么办?

1 个答案:

答案 0 :(得分:2)

有一个预定义的评估程序,用于检查节点是否具有名为 evaluator.doclib.action.hasAspect 的方面。您只需要使用此评估程序作为父项创建一个bean,并在属性中提供要检查的方面:

*添加到web-extension中的某些-context.xml

$string = 'class=&quot;total&quot;&gt;5.00&lt;/td&gt;';
$new_number = 7.00;
echo preg_replace('#(?=class=&quot;total&quot;&gt;).+?(?=&lt;/td&gt;)#', $new_number, $string);

然后你将DocLibActions配置中的bean引用到* extension-modules.xml(web-extension / site-data / extensions)......

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

瞧。

有关predefined evaluators的更多信息。 好样本项目here