В Alfresco Share, как сослаться на идентификатор nodeRef в пользовательском файле конфигурации?
Я пытаюсь расширить Share DocumentLibrary новым действием, которое предоставляет ссылку на некоторый URL-адрес на основе ID узла Ref (через share-config-custom.xml)
<action id="blabla" type="link" label="label">
<param name="page">../../alfresco/wcs/myPlugin/editor/{node.nodeRef.id}/param>
<param name="target">_blank</param>
</action>
Но Поделиться не интерпретирует {node.nodeRef.id}
Это интерпретирует {node.nodeRef}
правильно, но мне не нужен полный URI
Подобно: workspace://SpacesStore/158f0ed4-a575-40c2-a6ef-7e7ed386ba94
Я просто хочу, чтобы идентификатор узла: 158f0ed4-a575-40c2-a6ef-7e7ed386ba94
Кто-нибудь может объяснить мне логику этого и предложить решение? Спасибо
2 ответа
Прежде всего я предполагаю, что вы просите Alfresco 4.0. Способ, которым действия могут быть расширены, является совершенно новым в 4.0, и большинство из нас еще не использовали это.
Логика создания заполнителей, вероятно, заключается в коде Java в веб-приложении Share (не найдено точное местоположение). Node.nodeRef является строкой, поэтому вы не можете вызвать nodeRef.id. На мой взгляд у вас есть два варианта:
- Вы можете оставить type="link" и node.nodeRef, но вы ссылаетесь на пользовательский веб-скрипт на стороне репозитория, который затем генерирует правильный URL и перенаправляет (HTTP Status 301) к правильному месту назначения.
Вы меняете тип на type="javascript" и реализуете функцию обратного вызова в Javascript. Это будет вызвано, когда ссылка нажата и может создать правильный URL. Чтобы включить пользовательский JavaScript, вы можете использовать зависимости в конфигурации Share:
Насколько я знаю, единственная доступная документация для расширения новых действий:
Просто используйте node.id, как это видно из Wiki API Javascript