如何覆盖露天的FTL

时间:2019-10-23 21:48:07

标签: alfresco alfresco-share alfresco-enterprise

我是不熟悉Alfresco并使用Alfresco 6的人。我试图覆盖colleagues.get.html.ftl文件,以便可以更改站点成员破折号的显示。原始的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>

我只想显示firstName,而不是lastNameuserName

这就是我所做的。

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

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

1 个答案:

答案 0 :(得分:0)

首先,我假设您使用的是基于Docker和Maven的Alfresco SDK 4.0.0。这样可以使这种定制工作效率更高。

目标是自定义现成的Web脚本模板并将其保存在自己的路径中,以避免以后升级时出现问题。为此,将其复制到您选择的路径中的partners.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映像将启动,您将看到“站点成员”破折号使用用户名而不是名字和姓氏。

如果需要进行调整,请进行更改,然后运行./run.sh reload_share来构建并重新启动共享容器。

准备部署时,请运行mvn install创建可以在服务器上部署的共享AMP。