Alfresco Share 中的搜索页面是应用程序中为数不多的完整 Aikau 页面之一。 Share 中的大部分页面都是在创建 Aikau 之前编写的,并且由多个 Surf 组件组成——其中的 header 从 Aikau 4.2 版开始就已经呈现。
搜索页面在 5.0 中更新为完整的 Aikau 页面,并且不使用相同的 Surf 组件来呈现标题。
这意味着标准标题自定义将仅针对 Surf 组件 WebScript 而不是整页 WebScript。
要使其工作,您需要利用模块配置中的alwaysApply 元素。
例如,一个针对标头的典型扩展模块可能如下所示:
<extension>
<modules>
<module>
<id>Extension Module</id>
<auto-deploy>true</auto-deploy>
<evaluator type="default.extensibility.evaluator"/>
<customizations>
<customization>
<targetPackageRoot>org.alfresco</targetPackageRoot>
<sourcePackageRoot>org.alfresco.share.pages.customizations</sourcePackageRoot>
</customization>
</customizations>
</evaluator>
</module>
</modules>
</extension>
这将针对 org.alfresco 包中的所有 WebScript,并在 org.alfresco.share.pages.customizations 包中查找匹配的文件。
所以 Share 标头是由 share-header.get.js WebScript 定义的,如果你的扩展文件应该在 org.alfresco.share.pages.customizations.share-header.get.js 中。
但是,搜索页面没有使用org.alfresco.share-header.get.js WebScript,这就是自定义不会生效的原因。
相反,您应该包含一个额外的 customization 块以确保应用您的扩展程序,它应该类似于:
<customization>
<targetPackageRoot>org.alfresco.share.pages</targetPackageRoot>
<sourcePackageRoot>org.alfresco.share.pages.customizations.share.header</sourcePackageRoot>
<alwaysApply>
<webscript>share-header</webscript>
</alwaysApply>
</customization>
这意味着对于 org.alfresco.share.pages 包中的所有 WebScripts(这是定义所有完整 Aikau 页面的位置)。您应该始终应用名为“share-header”的扩展文件(因此 .get.js、.get.html.ftl 和 .get.properties 文件也会匹配)。
请注意,sourcePackageRoot 定义了扩展文件的确切位置。