Почему моя настройка заголовка 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 определяет, где именно файл расширения должен быть найден.