В 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

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