Hilfe-Center

Seiten

Der Aufbau eines Seitentemplates ist deutlich einfacher als der eines Shapes, es gibt hier auch keine obligatorischen Renderfunktionen, die an bestimmten Stellen platziert werden müssten.
In jedem Fall obligatorisch ist die erste Zeile @ModelType API.ViewModel.iPage, die das Entgegennehmen der übergebenen Werte sicherstellt. 
In den allermeisten Fällen soll ein Seitentyp das Grundlayout des Webauftritts haben. Dies wird erreicht, indem als Layout der Seite  .vbhtml-Datei angegeben wird, welches das Grundlayout vorgibt. Dazu wird in einem VB-Code-Abschnitt, wie oben gezeigt, die Zeile "Layout = <relativer Pfad zur Datei>" eingefügt.

Anschließend kann die Seite völlig frei gestaltet werden, als Beispiel wird hier eine Shape-Area Namens "Content" angelegt. Dieser Name ist frei wählbar, die restlichen Parameter müssen 1:1 übernommen werden. 

Template.Page.RenderShapeArea(
   AreaName As String,
   ParentViewModel As API.ViewModel.iPage,
   EditMode As Boolean,
   MvcHtmlHelper As HtmlHelper,
   Optional HtmlTag As String = "div",
   Optional MinHeight As Integer = 50,
   Optional DropzonePosition As Content.Enum.Position = 
      Content.Enum.Position.Middle,
   Optional RenderInViewMode As Boolean = True,
   Optional ShowAreaName As Boolean = False,
   Optional TagAttributes As Dictionary(Of String, String) = Nothing,
   Optional NoDropZonesAndNoAddFlaps As Boolean = False,
   Optional AreaData As Dictionary(Of String, String) = Nothing,
   Optional AreaDisplayName As String = "",
   Optional RefreshOnChangeAtShapeLevel As Boolean = False
) As MvcHtmlString [V2]

Rendert eine vollständige Shape-Area mit allen Shapes darin für den Scope Page, also innerhalb einer Seite (und nicht in einem Shape oder dem Webseiten-Bereich!)

  • AreaName: Der Name der Shape-Area; ist frei wählbar
  • EditMode und MvcHtmlHelper müssen fest als "EditMode, Html" übergeben werden
  • ParentViewModel: Die Seite, in der die Area erzeugt wird
  • Optionale Parameter:
    • HtmlTag: Der hier angegebene Tag wird anstelle des standardmäßigen div gerendert
    • MinHeight: Die Mindesthöhe der Shape-Area in Pixeln. Default ist 50.
    • DropzonePosition: Wenn es keine Shapes in der Area gibt, regelt dieser Parameter, ob die einzige Dropzone (das Plus zum Shape-Hinzufügen) dann in der Mitte, oben oder unten in der Area liegen soll. Default ist Middle.
    • RenderInViewMode: Ist dieser Wert auf True, wird das HTML-Element auch im ViewMode gerendert
    • ShowAreaName: Soll der Name der ShapeArea im Editmode mit an den Shapes, dem Shape-Hinzufügen-Dialog und den Dropzones angezeigt werden
    • TagAttributes: Hier können an die Shape-Area anzufügende, beliebige Attribute angehangen werden
    • NoDropZonesAndNoAddFlaps: Gibt an, das die Dropzones und die dazu gehörenden Hinzufügelaschen nicht angezeigt werden sollen
    • AreaData: hier können beliebige Daten eingetragen werden, die dann über die enthaltenen Shapes ausgelesen werden können. Darüber lassen sich Area-abhängige Darstellungen oder Funktionen realisieren. Im ViewModel des Shapes ist das Dictionary über Model.AreaData abfragbar. Es ist dort niemals Nothing, wird nichts angegeben kommt ein leeres Dictionary an (auch wenn der Default-Wert der Funktion oben Nothing ist, das wird intern behandelt).
    • AreaDisplayName: Ein Anzeigename für die Area. Dieser ist frei und unabhängig vom internen AreaName wählbar und wird, sofern ShowAreaName True ist, an allen Stellen angezeigt, an denen der Name der Area für den Benutzer sichtbar ist. Das sind: Die Area-Box links unten an den Shapes, die Box an den Dropzones und die Kachel zum Einfügen neuer oder ausgeschnittener Shapes.
    • RefreshOnChangeAtShapeLevel: Wenn mit True angegeben, wird dasjenige Shape, das die Area enthält immer dann vollständig neu geladen, wenn Änderungen auf Shape-Ebene (also an der Shape-Struktur) vorgenommen werden. Dies betrifft das Erstellen, Einfügen, Verschieben, Löschen und Tauschen von Shapes. Änderungen an den Attributen führen nicht zum Neuladen, was der wesentliche Unterschied zur Config-Eigenschaft RefreshParentOnChange ist. Ist RefreshParentOnChange aktiv, führt das Setzen von RefreshOnChangeAtShapeLevel zu keinem doppelten Neuladen, ist aber dann überflüssig, da von ersterem bereits abgedeckt.

RenderDropZone(
   Area As String,
   ParentViewModel As API.ViewModel.iPage,
   EditMode As Boolean,
   MvcHtmlHelper As HtmlHelper,
   Optional Shape As API.ViewModel.iShape = Nothing,
   Optional IsFirstDropzone As Boolean = False,
   Optional Position As Content.Enum.Position =   
      Content.Enum.Position.Middle,
   Optional AreaDisplayName As String = "",
   Optional NoDropZonesAndNoAddFlaps As Boolean = False
  ) As String

Rendert die Bereiche zwischen den Shapes in denen neue Shapes eingefügt werden können.

Wird für gewöhnlich innerhalb von RenderShapeArea aufgerufen, kann aber bei Bedarf auch vom Webseitenersteller separat verwendet werden.

Funktionen für Seiten-Templates

RenderDropZone(
   Area As String,
   ParentViewModel As API.ViewModel.iPage,
   EditMode As Boolean,
   MvcHtmlHelper As HtmlHelper,
   Optional Shape As API.ViewModel.iShape = Nothing,
   Optional IsFirstDropzone As Boolean = False,
   Optional Position As Content.Enum.Position =   
      Content.Enum.Position.Middle,
   Optional AreaDisplayName As String = "",
   Optional NoDropZonesAndNoAddFlaps As Boolean = False
  ) As String [V2]

Rendert die Bereiche zwischen den Shapes in denen neue Shapes eingefügt werden können.

Wird für gewöhnlich innerhalb von RenderShapeArea aufgerufen, kann aber bei Bedarf auch vom Webseitenersteller separat verwendet werden.

Template.Website.RenderComponentCodes(
    EditMode As Boolean, 
    Optional IsOptInAccepted As Boolean = False
) As String [V2]

Regelt die Einbindung externer Analysekomponenten (derzeit Google Analytics und Google Tag Manager). Die Tools werden nur aktiviert, wenn die Cookies dafür erlaubt wurden.

Aufbau eines Seitentemplates:

Copy

@ModelType API.ViewModel.iPage
@Code
    Layout = "../Layout/Layout.vbhtml"
End Code

<div>
    @Template.Page.RenderShapeArea("Content", EditMode, Html, Content.Enum.Scope.Page, Page:=Model)
</div>

War dieser Beitrag hilfreich?
0 von 0 fanden dies hilfreich.
Es ist ein technisches Problem aufgetreten. Bitte wenden Sie sich telefonisch oder per E-Mail an uns.