2012-05-30 6 views
8

Kann mir jemand mitteilen, wie SiteEdit spezifische Syntax oder Tags in der Razor-Vorlage im DD4T-Code verwendet werden? Ich habe Site Edit-bezogene Klassen darin gesehen, konnte aber nicht nachvollziehen, wie SiteEdit-Tags in der Ansicht verwendet wurden, in der eine Dreamweaver-ähnliche Syntax wie RenderComponentField oder tcdl:ComponentField in Dreamweaver verwendet wurde. Ich bin sehr neu in DD4T und verwende SiteEdit 2009 SP3 und SDL Tridon 2011 SP1.Verwendung von SiteEdit in DD4T in Tridion

Vielen Dank im Voraus.

Update: Wir haben versucht, die Implementierung in der Antwort erwähnt, aber leider erhalten wir einen Fehler, wenn wir auf die Seite im Proxy zugreifen "Ungültige Vorlage -Die HTML ist ungültig, wahrscheinlich, weil Ihre Vorlage Code ungültigen HTML, z als ap-Tag innerhalb eines anderen p-Tags. Überprüfen Sie Ihren HTML-Code mit einem Validator wie dem W3C Markup Validation Service, korrigieren Sie Ihre Vorlage und veröffentlichen Sie sie erneut. " Ich vermute, das liegt daran, dass der Xml-Inhalt aufgrund der Verwendung von dynamischen Seiten- und Komponenten-TBBs, die wir in unseren Komponenten- und Seitenvorlagen verwendet haben, in die HTML-Seite geschoben wird.

Lasst uns wissen, wie es weiter geht.

+0

Die Community hat sich verpflichtet, eine dedizierte Stack Exchange Q & A-Site für Tridion einzurichten - Ihre Hilfe würde sehr geschätzt werden, wenn Sie in Erwägung ziehen würden, dies zu tun? http://area51.stackexchange.com/proposals/38335/tridion?referrer=7XNO_dQBJoWNn9xqeeO2NA2 –

+0

Hallo @L K. Ich habe gerade bemerkt, dass diese Frage noch offen ist. Hat eine der folgenden Antworten Ihnen geholfen, das Problem zu lösen? Wenn ja, können Sie diese Antwort akzeptieren, indem Sie auf das große Häkchen links daneben klicken? –

Antwort

13

Das SiteEdit-Markup wird nicht wie in einer Dreamweaver-Vorlage generiert. Sie sind selbst dafür verantwortlich, das Markup für Ihre bearbeitbaren Felder in der Razor-Ansicht zu platzieren. Das Gute daran ist, dass es für SiteEdit 2009 SP3 und UI 2012 ähnlich funktioniert. Nachteil für UI 2012 ist, dass es (noch) nicht der Inline-Bearbeitung zuhört, die Sie für die Komponenten- oder Seitenvorlagen festlegen können berücksichtigen für eine zukünftige DD4T-Version).

Alles basiert auf der Klasse DD4T SiteEditHelper. Sie starten in Ihrer Seite Ansicht (vor dem </body>-Tag) durch den folgenden Aufruf Abdrucken:

@Html.SiteEditPage(Model) 

Dies wird die Seite Markup schreiben, und wenn Sie setzen den Stil „SiteEdit2012“ in Ihrem SiteEdit_config.xml Außerdem wird das für die UI 2012 erforderliche Bootstrap-Skript ausgegeben.

Dann müssen Sie für jede Komponentenpräsentation und jedes bearbeitbare Komponentenfeld auch das entsprechende Markup hinzufügen. Für eine Component-Präsentation können Sie:

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

Achten Sie darauf, diese in einem DIV schreiben oder ein anderes Element, das die Grenze Ihrer Komponente Präsentation markieren können. Für Component Felder eine ähnliche Geschichte, können Sie verwenden:

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

Danke Bart wird mit mehr Zweifel zurückkommen :) – Guestuser1122

5

Neben den Änderungen an Ihrer Ansichten, wie Bart beschrieben hat, müssen Sie auch eine Konfigurationsdatei in das Stammverzeichnis Ihrer Web-Anwendung setzen, die so genannte SiteEdit_config. XML. Es sollte so aussehen:

<?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> 

Sie müssen alle Ihre aktiven Publikationen hier auflisten. DD4T versucht, Ihre aktuelle Seite mit der korrekten Kontextveröffentlichung (basierend auf dem Attribut 'id') abzugleichen. Wenn es nicht gefunden wird, wird SiteEdit deaktiviert. Mit den anderen Attributen können Sie das Verhalten von SiteEdit steuern.

  • componentPublication: neue Komponenten hier erstellt wird
  • pagePublication: neue Seiten werden hier erstellt werden (nicht in Tridion UI 2012 verwendet)
  • publishPublication: Seiten und Komponenten werden von diesem Kontext (in der Regel veröffentlicht werden koinzidiert mit dem id)

DD4T auch für die Verwendung mit Tridion UI leicht konfiguriert werden kann, ändern 2012. Nur das erste Element in der Konfiguration, wie folgt:

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

Danke Quirijn für zusätzliche Informationen – Guestuser1122