Доступ к companyhome в сustom control template
Нарисовала собственное поле myfield.ftl - список неких кодов, поместила в tomcat/shared/classes/alfresco/web-extension/site-webscripts. В share-config-custom.xml указала поле
<field id="my:field" >
<control template="/myfield.ftl" />
</field>
Поле вырисовалось.
Теперь я хочу достать список кодов, пропарсив xml, что лежит в companyhome/XML/codes.xml
<#assign v = ["001", "002"] /> <#assign xmlName="XML/codes.xml" /> <#if companyhome?exists> <#assign pdoc=companyhome.childByNamePath[xmlName]> <#else> <#assign v = v + ["555"] > </#if> <#if pdoc??> <#assign dom=pdoc.xmlNodeModel /> <#list dom.codes as code> <#assign v = v + [code.name] > </#list> </#if>
Поле вырисовывается. Но значения в списке 001, 002 и 555, хотя путь к codes.xml правильный.
Пытаюсь обратиться напрямую к companyhome, но падает уже на "companyhome is undeined" Как решить эту проблему, как доступиться к companyhome?
Комментарии
31/07/2012 - 09:22
Шаблоны контролов обрабатываются Share (не Repository), поэтому в них нет доступа к объектам в хранилище. Если сильно хочется в контроле взаимодействовать с Repository, то придётся использовать клиентский js, который будет выполнять нужные действия через Remote API.
31/07/2012 - 11:32
Спасибо!