В Alfresco Share, как ссылаться на идентификатор nodeRef в пользовательском файле конфигурации? - PullRequest
2 голосов
/ 24 октября 2011

Я пытаюсь расширить 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>

Но Share не интерпретирует {node.nodeRef.id}

Он интерпретирует {node.nodeRef} правильно, но мне не нужен полный URI

Как: workspace://SpacesStore/158f0ed4-a575-40c2-a6ef-7e7ed386ba94 Мне просто нужен идентификатор ссылки на узел: 158f0ed4-a575-40c2-a6ef-7e7ed386ba94

Кто-нибудь может объяснить мне логику этого и предложить решение?Спасибо

Ответы [ 2 ]

1 голос
/ 03 ноября 2011

Прежде всего, я предполагаю, что вы просите Alfresco 4.0. Способ, которым могут быть расширены действия, является совершенно новым в 4.0, и большинство из нас еще не использовали его.

Логика создания заполнителей, вероятно, заключается в коде Java в веб-приложении Share (не найдено точное местоположение). Node.nodeRef является строкой, поэтому вы не можете вызвать nodeRef.id. На мой взгляд у вас есть два варианта:

  • Вы можете сохранить type = "link" и node.nodeRef, но вы ссылаетесь на пользовательский веб-скрипт на стороне хранилища, который затем генерирует правильный URL-адрес и перенаправляет (HTTP Status 301) к правильному месту назначения.
  • Вы меняете тип на type = "javascript" и реализует функцию обратного вызова в Javascript. Это будет вызвано, когда ссылка нажата и может создать правильный URL. Чтобы включить пользовательский JavaScript, вы можете использовать зависимости в конфигурации общего ресурса:

Насколько мне известно, единственная доступная документация для расширения новых действий:

1 голос
/ 25 октября 2011

Просто используйте node.id, как видно из API Javascript Wiki

...