Почему моя настройка заголовка Share не работает на странице поиска

Этот вопрос неоднократно задают в Alfresco JIRA, на форумах и в IRC Alfresco, поэтому я подумал, что хочу спросить и ответить на него здесь, так как это наиболее вероятное место, где люди найдут решение, вопрос в том...

Я создал настройку для заголовка Alfresco Share, выполнив шаги, описанные в этом блоге, чтобы удалить пункт меню.

Однако, когда я захожу в Alfresco, настройка работает на все, кроме страницы поиска. Что я делаю не так?

1 ответ

Страница поиска в Alfresco Share является одной из немногих полных страниц Aikau в приложении. Большинство страниц в Share были написаны до того, как был создан Aikau, и состоят из нескольких Surf Components, заголовок которых был представлен Aikau начиная с версии 4.2.

Страница поиска была обновлена ​​в 5.0, чтобы быть полной страницей Aikau и не использует тот же компонент Surf для визуализации заголовка.

Это означает, что стандартная настройка заголовка будет ориентирована только на WebScript компонента Surf Component, а не на 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 пакет и будет искать соответствующие файлы в org.alfresco.share.pages.customizations пакет.

Таким образом, заголовок Share определяется веб-скриптом share-header.get.js, и если ваш файл расширения должен находиться в 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 пакет (где определены все полные страницы Айкау). Вы всегда должны применять файлы расширений, называемые "share-header" (поэтому файлы.get.js, .get.html.ftl и.get.properties также будут сопоставлены).

Обратите внимание, что sourcePackageRoot is определяет, где именно файл расширения должен быть найден.

Другие вопросы по тегам