显示文档库。仅针对特定站点的自定义类型的操作 特定站点 alfresco

show document lib. action for custom type only for particular site specific site alfresco

我需要显示特定类型的文档库操作 (qwe:customtype)。更改仅反映在特定站点和非站点区域 (Myfiles/Repository)。

alfrescoShare-slingshot-应用程序-context.xml

<bean id="for-specifictype-only" parent="evaluator.doclib.action.nodeType">
<property name="types">

  <list>
            <value>qwe:customtype</value>
        </list>

</property>
</bean>

share-config-custom.xml

<action id="document-assign-workflow" type="javascript" label="actions.document.assign-workflow">
                <param name="function">onActionAssignWorkflow</param>
               <evaluator>for-specifictype-only</evaluator>
 </action>

ForEx:: 只有 "abc" 站点上 qwe:customtype 类型的节点才能查看文档库操作。

对于其他站点,它应该对所有类型的节点可见。(如cm:folder其他站点的类型节点应该可以看到此操作) 我们在这里需要任何自定义站点评估器吗?因为没有默认的评估器将特定站点名称作为参数。

这是可以通过一些工作来实现的。首先,查看 ChainedMatchAll 求值器 (evaluator.doclib.action.chainedMatchAll)。您可以在 slingshot-documentlibrary-context.xml.

中找到它

您可以创建自己的赋值器,将其作为父级,然后列出所有需要为真的赋值器,以使链式赋值器为真。 slingshot-documentlibrary-context.xml中有几个例子——一个简单的是evaluator.doclib.metadata.hasSyncFailedBanner.

在您的情况下,您将使用您已经发现的 nodeType 求值器,以及您必须编写的自定义站点求值器。

要开发可用于在特定站点上进行匹配的评估程序,请先查看 Alfresco 文档中的 this tutorial。它涵盖了创建自定义评估器。

该站点位于 URL 中,因此您应该能够使用传递给评估程序的 applyModule 方法的 RequestContext 对其进行解析。

使用您的自定义站点评估器、现有的 nodeType 评估器和 chainedMatchAll 评估器,然后您可以根据节点类型和特定站点 ID 显示或隐藏操作。