1

我有一个方面是另外两个方面的父方面。

<aspect name="my:parentAspect">
</aspect> 

<aspect name="my:subAspect1">
    <parent>my:parentAspect</parent>
</aspect>

<aspect name="my:subAspect2">
    <parent>my:parentAspect</parent>
</aspect>

现在,如果节点直接具有方面“my:parentAspect”或者节点具有继承自“my:parentAspect”的方面,我想在我的 share-config-custom 中使用“方面”评估器来应用一些自定义通过将其作为父母

<config evaluator="aspect" condition="my:subAspect1">...</config>
<config evaluator="aspect" condition="my:subAspect2">...</config>

有效,但我更愿意使用

<config evaluator="aspect" condition="my:parentAspect">...</config>

因为每个 subAspect 的配置实际上都是一样的。
但是,这不适用于没有 my:parentAspect 直接附加但仅继承方面的节点。

无论是直接应用还是继承层次结构中的某处,检查方面的最佳做法是什么?

4

1 回答 1

3

关于您自己的评论:不要混合表单配置和 doclib 配置!

org.alfresco.web.config.forms.AspectEvaluator 是表单配置的评估器,例如

<config evaluator="aspect" condition="my:parentAspect">...</config>

org.alfresco.web.evaluator.HasAspectEvaluator.java 用于与方面相关的评估器

<config evaluator="string-compare" condition="DocumentLibrary">

例如,对于指标、元数据模板等。所以,org.alfresco.web.config.forms.AspectEvaluator 就是这里的一个。它是org.alfresco.web.config.forms.NodeMetadataBasedEvaluator的子类,它使用 api/metadata Webscript 来获取给定节点的元数据:

/api/metadata?nodeRef=" + nodeString + "&shortQNames=true"

此 webscript 使用 org.alfresco.repo.jscript.ScriptNode.toJson() 仅包括直接附加的方面。这可能是您自定义评估器的起点。

于 2014-01-02T18:21:20.390 回答