首先,我假设您使用的是基于 Docker 和 Maven 的 Alfresco SDK 4.0.0。它使这种定制变得更有效率。
目标是自定义一个开箱即用的 Web 脚本模板并将其保存在您自己的路径中,以避免以后升级时出现问题。为此,请在您选择的路径中将同事.get.html.ftl 复制到您的项目中。例如,在我的项目中,我将使用 alfresco-share-example-share/src/main/resources/alfresco/web-extension/site-webscripts/com/metaversant/alfresco/dashlets/colleagues.get.html.ftl。
接下来,您需要告诉 Share 您正在覆盖模板以及在哪里可以找到您的模板。您可以通过创建一个共享扩展文件来做到这一点。我将命名我的 colleague-example.xml 并将其放在 alfresco-share-example-share/src/main/resources/alfresco/web-extension/site-data/extensions/colleague-example.xml 中,内容如下:
<extension>
<modules>
<module>
<id>Colleague Example</id>
<version>1.0</version>
<auto-deploy>true</auto-deploy>
<customizations>
<customization>
<targetPackageRoot>org.alfresco.components.dashlets</targetPackageRoot>
<sourcePackageRoot>com.metaversant.alfresco.dashlets</sourcePackageRoot>
</customization>
</customizations>
</module>
</modules>
</extension>
最后,编辑您的模板版本。我们将告诉 Alfresco 用我们的 id 替换 @markup 为“html”。所以改变:
<@markup id="html">
至:
<@markup id="html" target="html" action="replace" scope="global">
接下来,你想用用户名替换名字和姓氏,所以改变:
<h3><a href="${url.context}/page/user/${m.authority.userName?url}/profile" class="theme-color-1">${m.authority.firstName?html} <#if m.authority.lastName??>${m.authority.lastName?html}</#if></a></h3>
至:
<h3><a href="${url.context}/page/user/${m.authority.userName?url}/profile" class="theme-color-1">${m.authority.userName?html}</a></h3>
现在使用 ./run.sh build_start 运行项目。您的 Docker 映像将启动,您将看到 Site Members dashlet 使用用户名而不是名字和姓氏。
如果您需要对其进行调整,请进行更改,然后运行 ./run.sh reload_share 以仅构建并重新启动 Share 容器。
当您准备好部署时,运行 mvn install 以创建您可以部署在您的服务器上的共享 AMP。