Navigation and service panel


Content

This text is fallbacked from the German Version. If you need use Google Translate


Sublayouts und verschachtelte Placeholder Controls

By Reto Hugi on 11. March 2013, No comments

Der PageEditor fügt dem Seitendesign zusätzliches Markup zur Integration des In-Page Editing (Texte, Bilder, Komponenten usw.) hinzu. Dieser Umstand muss für verschachtelte Sublayouts bereits bei der Umsetzung des Frontends berücksichtigt werden. Ein konkretes Beispiel wird in diesem Beitrag erläutert.

Wir haben zeitweise im PageEditor den folgenden Javascript Fehler erhalten:

Rendering must have placeholder chrome as its parent. Got ‘rendering’ instead.


Dies führte dazu, dass sich nicht alle Placeholders einer Seite bearbeiten liessen. Die Ursache liegt in der Struktur der ineinander verschachtelten Sublayouts. Eines dieser Sublayouts wies folgende HTML Struktur auf:

<sc:Placeholder ID="scPlcPageType" runat="server" Key="page-type" />
<div class="page-content">
   <div class="page-inner">
      <div class="area-nav" role="main">
         <div class="area-inner"></div>
      </div>
      <div class="area-content variant-full" id="access-content" role="main">
         <div class="area-inner">
            <sc:Placeholder ID="scPlcPageContent" runat="server" Key="page-type" />
         </div>
      </div>
   </div>
</div>

Sitecore erwartet jedoch, dass sich alle Placeholders, welche in einen anderen Placeholder geladen werden, mit einem Struktur-Element umgeben sind.

Lösung

Die Lösung war dementsprechend einfach umgesetzt: Es bedurfte lediglich eines Struktur-Elements um den Placeholder, welcher sich am Anfang des Sublayouts befand und nicht in einem Strukturelement verschachtelt war.

<div>
   <sc:Placeholder ID="scPlcPageType" runat="server" Key="page-type" />
</div>
<div class="page-content">
   <div class="page-inner">
      <div class="area-nav" role="main">
         <div class="area-inner"></div>
      </div>
      <div class="area-content variant-full" id="access-content" role="main">
         <div class="area-inner">
            <sc:Placeholder ID="scPlcPageContent" runat="server" Key="page-type" />
         </div>
      </div>
   </div>
</div>

No comments

Add your comment

Your email address will not be published. Required fields are marked *

*