2012-05-30 5 views
8

Может ли кто-нибудь направить меня на то, как использовать специфический синтаксис или теги SiteEdit в шаблоне Razor в коде DD4T? Я видел связанные с ним классы редактирования сайта, но не мог понять, как использовать теги SiteEdit в представлении, где был некоторый синтаксис, похожий на Dreamweaver, например RenderComponentField или tcdl:ComponentField, который мы использовали в Dreamweaver. Я очень новичок в DD4T и использую SiteEdit 2009 SP3 и SDL Tridon 2011 SP1.Как использовать SiteEdit в DD4T в Tridion

Заранее спасибо.

Обновление: Мы пробовали реализацию, упомянутую в ответе, но, к сожалению, мы получаем сообщение об ошибке при доступе к странице в прокси, в которой указывается «Недопустимый шаблон». Недопустимый HTML-код, возможно, потому, что ваш код шаблона создает неверный код HTML, например как тег ap внутри другого p-тега. Проверьте свой HTML с помощью валидатора, такого как служба проверки валидности W3C, исправьте свой шаблон и переиздайте ». Я предполагаю, что это связано с тем, что содержимое Xml вставляется в html-страницу из-за использования динамических страниц и компонентов TBB, которые мы использовали в наших шаблонах компонентов и страниц.

Позвольте нам, как продолжить дальше.

+0

Сообщество связывает, чтобы настроить выделенный почтовый обмен Q и сайт для Tridion - ваша помощь будет принята с благодарностью, если вы планируете совершать? http://area51.stackexchange.com/proposals/38335/tridion?referrer=7XNO_dQBJoWNn9xqeeO2NA2 –

+0

Привет @L K. Я только заметил, что этот вопрос все еще открыт. Какой-либо из ниже приведенных ниже ответов поможет решить проблему? Если да, можете ли вы принять этот ответ, щелкнув большой флажок слева от него? –

ответ

13

Разметка SiteEdit не создается, как это сделано в шаблоне Dreamweaver, вы несете ответственность за размещение разметки для редактируемых полей в представлении «Бритва». Хорошая вещь для этого заключается в том, что она работает для аналогичных для SiteEdit 2009 SP3 и UI 2012. Нижняя сторона для UI 2012 - это то, что она еще не прослушивает Enable Inline Editing, которую вы можете установить на шаблонах компонентов или страниц (что-то, что мы должны рассмотрим для будущей версии DD4T).

Все основано на классе DD4T SiteEditHelper. Вы начинаете с вашей точки зрения страницы (до </body> тега), поместив следующий вызов:

@Html.SiteEditPage(Model) 

Это выписывать разметку страницы, и если вы установите стиль «SiteEdit2012» в вашем SiteEdit_config.xml он также выпишет скрипт начальной загрузки, необходимый для пользовательского интерфейса 2012 года.

Затем для каждой презентации компонентов и для каждого редактируемого поля компонента вам также потребуется добавить соответствующую разметку. Для компонентов презентации вы можете использовать:

@{var ComponentPresentation = ViewBag.ComponentPresentation as IComponentPresentation;} 
<div> 
    @Html.SiteEditComponentPresentation(ComponentPresentation) 
</div> 

Убедитесь, что вы пишете на это внутри DIV или какой-либо другой элемент, который может маркировать границу вашего компонента представления. Для компонентов полей подобная история, вы можете использовать:

<div> 
    @Html.SiteEditField(Model, Model.Fields["FieldName"]) 
    @Model.Fields["FieldName"].Value 
</div> 
+0

Спасибо, Bart вернется с большим сомнением :) – Guestuser1122

5

Помимо изменений в ваших взглядах, как описано Барт, также необходимо поместить файл конфигурации в корневом каталоге вашего веб-приложения, называется SiteEdit_config. XML. Это должно выглядеть так:

<?xml version="1.0" encoding="utf-8" ?> 
<siteEdit enabled="true" tridionHostUrl="http://tridion.my.com"> 
    <contextPublications> 
    <contextPublication id="10" componentPublication="3" pagePublication="9" publishPublication="10" /> 
    <contextPublication id="11" componentPublication="3" pagePublication="9" publishPublication="11" /> 
    </contextPublications> 
</siteEdit> 

Здесь вы должны перечислить все ваши активные публикации. DD4T пытается сопоставить вашу текущую страницу с правильной публикацией контекста (на основе атрибута id). Если он не может найти его, SiteEdit будет отключен. Другие атрибуты позволяют вам контролировать поведение SiteEdit.

  • componentPublication: новые компоненты будут созданы здесь
  • pagePublication: будут созданы новые страницы здесь (не используется в Tridion UI 2012)
  • publishPublication: страницы и компоненты будут переизданы из этого контекста (обычно совпадает с идентификатором)

DD4T может также легко быть сконфигурирован для использования с Tridion UI 2012. Просто изменить первый элемент в конфигурации следующим образом:

<?xml version="1.0" encoding="utf-8" ?> 
<siteEdit enabled="true" style="SiteEdit2012" tridionHostUrl="http://tridion.my.com"> 
... 
</siteEdit> 
+0

Спасибо Quirijn за дополнительную информацию – Guestuser1122