0

我是 alfresco 的新手并使用 Alfresco 6。我正在尝试覆盖colleagues.get.html.ftl文件,以便可以更改站点成员 dashlet 的显示。原始 ftl 有以下代码片段:

 <div class="person">
      <#-- LIST - ITEM - PERSON -->
      <@markup id="list-item-person">
          <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>
      </@markup>

      <#-- LIST - ITEM - ROLE -->
      <@markup id="list-item-role">
           <div>${msg("role." + m.role)}</div>
      </@markup>
 </div>

而不是firstNameandlastName我只想显示userName.

这就是我所做的。

  1. 我已将原始代码复制到名为同事.get.html.ftl 的文件中
  2. 我已经修改了html。

我假设这会覆盖原始文件。但是,当我重新启动服务器时,我的更改没有得到反映。如何纠正这个?

4

1 回答 1

1

首先,我假设您使用的是基于 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。

于 2019-11-01T21:26:51.617 回答