Как переопределить ftl на свежем воздухе - PullRequest
0 голосов
/ 24 октября 2019

Я новичок в 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 и lastName Я просто хочу отобразить userName.

Вот что я сделал.

  1. Я скопировал исходный код в файл с именем colle.get.html.ftl
  2. Я изменил HTML.

Я предполагал, что это будетпереопределить исходный файл. Однако мои изменения не отражаются при перезапуске сервера. Как это исправить?

1 Ответ

0 голосов
/ 02 ноября 2019

Во-первых, я предполагаю, что вы используете Alfresco SDK 4.0.0 на базе Docker и Maven. Это делает настройку такого рода гораздо более продуктивной.

Цель состоит в том, чтобы настроить готовый шаблон веб-сценария и сохранить его по своему собственному пути, чтобы избежать проблем при обновлении позже. Для этого скопируйте коллегу .get.html.ftl в свой проект по выбранному вами пути. Например, в моем проекте я буду использовать alfresco-share-example-share / src / main / resources / alfresco / web-extension / site-webscripts / com / metaversant / alfresco / dashlets / коллеги .get.html.ftl.

Далее необходимо сообщить Share, что вы переопределяете шаблон и где его найти. Вы делаете это, создавая файл расширения 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 заменить @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>

to:

<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.shreload_share для сборки и перезапуска только контейнера Share.

Когда вы будете готовы к развертыванию, запустите mvn install, чтобы создать Share AMP, который вы можете развернуть на своем сервере.

...