Можно ли редактировать ссылки компонентов в SDL Tridion UI 2012?

Один большой привет всем людям с планеты Тридион :).

Я пытаюсь сделать ссылки на компоненты редактируемыми в SDL Tridion UI 2012.

У меня есть один компонент, который содержит ссылки на многозначные компоненты в качестве одного из полей.

Когда я помещаю следующее в DWT

<!-- TemplateBeginRepeat name="componentLink" -->
 <!-- TemplateBeginIf cond="TemplateRepeatIndex<3" -->
  <li> 
   <a href="#" tridion:href="@@RenderComponentField(FieldPath+"componentLink",TemplateRepeatIndex)@@">
    Link${TemplateRepeatIndex}
   </a>  
  </li> 
 <!-- TemplateEndIf -->
<!-- TemplateEndRepeat -->

Внутри Template Builder в результате я получил следующее:

<li><a href="#" tridion:href="<tcdl:ComponentField name="componentLink" index="0">tcm:8-625</tcdl:ComponentField>">Link0</a></li> 
<li><a href="#" tridion:href="<tcdl:ComponentField name="componentLink" index="1">tcm:8-626</tcdl:ComponentField>">Link1</a></li> 
<li><a href="#" tridion:href="<tcdl:ComponentField name="componentLink" index="2">tcm:8-627</tcdl:ComponentField>">Link2</a></li> 

Как и ожидалось, произошла ошибка в «Действиях завершения по умолчанию» на уровне страницы.

Не удалось найти правильное значение для tridion:href

Нужно ли извлекать ссылки на компоненты внутри C # TBB в каком-то предыдущем действии или существует какой-либо другой способ решить эту проблему (включение ссылок на компоненты для пользовательского интерфейса SDL Tridion)?


person Bogdan Stojanovic    schedule 28.05.2012    source источник
comment
Вы имеете в виду, что хотите сделать редактируемым содержимое связанных компонентов или сами ссылки?   -  person Jeremy Grand-Scrutton    schedule 28.05.2012
comment
Неважно - глядя на примеры кода, похоже, что последнее.   -  person Jeremy Grand-Scrutton    schedule 28.05.2012


Ответы (2)


В моем «новом UI VM» у меня есть следующий код в дизайне:

<tcdl:ComponentField name="LinkText">
  <a tridion:href="@@Component.Fields.Target@@">${LinkText}</a>
</tcdl:ComponentField>

Связанный компонент можно редактировать в новом пользовательском интерфейсе. tcdl:ComponentField обрабатывается, чтобы обернуть соответствующие инструкции редактирования в контексте вокруг ссылки. Вы должны легко перевести это в свой код...

person Jeremy Grand-Scrutton    schedule 28.05.2012

Спасибо, Джереми, добавление тега <tcdl:ComponentField> вручную решает эту проблему.

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

<!-- TemplateBeginRepeat name="componentLink" --> 
    <!-- TemplateBeginIf cond="TemplateRepeatIndex<3" --> 
        <li>
            <tcdl:ComponentField name="componentLink">
                 <a tridion:href="@@Field@@">Link${TemplateRepeatIndex} </a>
            </tcdl:ComponentField>  
        </li>
    <!-- TemplateEndIf -->
<!-- TemplateEndRepeat -->
person Bogdan Stojanovic    schedule 28.05.2012