这个问题在Alfresco JIRA,论坛和Alfresco IRC中被反复询问,所以我想我会在这里提出并回答,因为这是人们最有可能找到解决方案的地方,这个问题是这个......
我已经为Alfresco Share标题创建了一个自定义项 此blog post中描述的步骤可删除菜单项。
但是,当我登录Alfresco时,定制工作正常 除了搜索页面以外的所有内容 - 我做错了什么?
答案 0 :(得分:6)
Alfresco Share中的搜索页面是应用程序中为数不多的完整Aikau页面之一。 Share中的大多数页面都是在创建Aikau之前编写的,并且由多个Surf Components组成 - 其中标题是自4.2版以来Aikau呈现的。
搜索页面在5.0中更新为完整的Aikau页面,并且不使用相同的Surf Component来呈现标题。
这意味着标准标题自定义仅针对Surf Component 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
包中的所有WebScripts,并会在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页面)。您应该始终应用名为&#34; share-header&#34;的扩展文件。 (所以.get.js,.get.html.ftl和.get.properties文件也会匹配)。
请注意,sourcePackageRoot
确切地定义了应该找到扩展文件的位置。