Startseite
Startseite
Startseite

Startseite / Weiterführende Themen / Content Highlighting / InplaceAttributeBegin/End

WEBeditInplaceAttributeBegin / End

Über die Render-Formatvorlagen WEBeditInplaceAttributeBegin und WEBeditInplaceAttributeEnd wird die Content Highlighting-Funktionalität auf Eingabekomponenten-Ebene zur Verfügung gestellt (siehe auch Inhalte-Verwaltung: Eingabekomponenten). Sie umschließen die Eingabekomponenten, die in der Integrierten Vorschau mit einem Rahmen hervorgehoben werden sollen. Eine Ausnahme stellen Bilder dar: in diesem Fall sind die Render-Formatvorlagen Teil des Bildes und umschließen es nicht (siehe unten).

Als Pflichtparameter muss der Variablenname der Eingabekomponente, die ausgegeben werden soll, angegeben werden.

WEBeditInplaceAttributeBegin und WEBeditInplaceAttributeEnd können in Seiten-, Absatz- und Tabellenvorlagen verwendet werden. Jeder WEBeditInplaceAttributeBegin-Ausdruck muss durch einen WEBeditInplaceAttributeEnd-Ausdruck wieder geschlossen werden. Es sollten keine Schachtelungen vorgenommen werden: jedes WEBeditInplaceAttributeBegin sollte vor dem nächsten WEBeditInplaceAttributeBegin erst wieder mit WEBeditInplaceAttributeEnd geschlossen werden.

WEBeditInplaceAttributeBegin und WEBeditInplaceAttributeEnd sollten die Ausgabe der Eingabekomponente, die in der Regel mit $CMS_VALUE(...)$ im HTML-Kanal realisiert wird, direkt umschließen:

$CMS_RENDER(template:"WEBeditInplaceAttributeBegin", name:"st_text")$
$CMS_VALUE(st_text)$
$CMS_RENDER(template:"WEBeditInplaceAttributeEnd")$

Schachtelungen

Formatierungen
Tags zur Formatierungen bzw. Textstrukturierung wie die Angabe der Überschriftenebene (z.B. <h2>...</h2>) können entweder WEBeditInplaceAttributeBegin/End oder direkt die Ausgabe der Eingabekomponente über $CMS_VALUE(...)$ umschließen.

<h3>
$CMS_RENDER(template:"WEBeditInplaceAttributeBegin", name:"st_headline")$
$CMS_VALUE(st_headline)$
$CMS_RENDER(template:"WEBeditInplaceAttributeEnd")$
</h3>

oder

$CMS_RENDER(template:"WEBeditInplaceAttributeBegin", name:"st_headline")$
<h3>$CMS_VALUE(st_headline)$</h3>
$CMS_RENDER(template:"WEBeditInplaceAttributeEnd")$

Im ersten Beispiel ist die Textstrukturierungs-Information des <h...>-Tags auch für den Hervorhebungs-Rahmen gültig. im zweiten Beispiel wirkt sich die Absatzschaltung des innenliegenden <h...>-Tags sich auf die Höhe des Rahmens aus: während der Rahmen im ersten Beispiel direkt um die Ausgabe der Eingabekomponente st_headline herum angezeigt wird, erhält er im zweiten Beispiel einen Abstand nach oben und unten.

Anweisungen
Werden Inhalte einer Eingabekomponente, die hervorgehoben werden sollen, abhängig ausgegeben, beispielsweise mit $CMS_FOR(...)$ oder $CMS_IF(...)$, muss die korrekte Reihenfolge bzw. Schachtelung von WEBeditInplaceAttributeBegin/End und den jeweiligen Anweisungen beachtet werden:

Eine Prüfung, ob die jeweilige Eingabekomponente nicht leer ist, wird außerhalb von WEBeditInplaceAttributeBegin/End ausgeführt, z.B.

$CMS_IF(!st_headline.isEmpty)$
$CMS_RENDER(template:"WEBeditInplaceAttributeBegin", name:"st_headline")$
$CMS_VALUE(st_headline)$
$CMS_RENDER(template:"WEBeditInplaceAttributeEnd")$
$CMS_END_IF$

Ist die Ausgabe des Inhalts einer Eingabekomponente an eine Bedingung geknüpft, sollte die Bedingung innerhalb von WEBeditInplaceAttributeBegin/End stehen, z.B.:

$CMS_RENDER(template:"WEBeditInplaceAttributeBegin", name:"st_linklist")$
$CMS_FOR(link,st_linklist)$
$CMS_VALUE(link)$
$CMS_END_FOR$
$CMS_RENDER(template:"WEBeditInplaceAttributeEnd")$

Alle Inhalte, die zusätzlich zu den Inhalten einer Eingabekomponente hervorgehoben werden sollen, müssen ebenfalls innerhalb von WEBeditInplaceAttributeBegin/End stehen, z.B. Links:

$CMS_RENDER(template:"WEBeditInplaceAttributeBegin", name:"cs_teaser")$
<p><a href="$CMS_REF(ss_press_releases_details,contentId:#row.getId())$">
$CMS_IF(!#row.Teaser.isEmpty)$$CMS_VALUE(#row.Teaser.convert2)$
$CMS_END_IF$
mehr
</a></p>
$CMS_RENDER(template:"WEBeditInplaceAttributeEnd")$

Hervorheben von Bildern

Die WEBedit-Render-Formatvorlagen umschließen die ausgegebenen Inhalte standardmäßig mit einem div-Tag. Bilder – speziell in Layouts, in denen sie von Text umflossen werden – würden dabei allerdings nicht korrekt hervorgehoben.

Für eine korrekte Hervorhebung müssen die Hervorhebungsinfomationen direkt in das img-Tag eingefügt werden. Aus diesem Grund wird WEBeditInplaceAttributeBegin/End mit dem zusätzlichen Parameter pure:true verwendet. Er muss sowohl mit WEBeditInplaceAttributeBegin als auch mit WEBeditInplaceAttributeEnd angegeben werden. Der Aufruf von WEBeditInplaceAttributeBegin muss innerhalb des img-Tags erfolgen.

In der Formatvorlage WEBeditInplaceAttributeBegin liefert der Parameter pure:true folgende Steuerungsinformationen zurück:

  • id="FSID:...": gibt die ID des Bildes zurück
  • fs:attrs="FSID:...": Ist der optionale Parameter view gesetzt, gibt dieser Ausdruck die entsprechende Datenquelle zurück.

In der Formatvorlage WEBeditInplaceAttributeEnd liefert pure:true folgende Stylesheet-Klasse zurück:

  • fsPreview_default

Der Aufruf von WEBeditInplaceAttributeEnd muss daher innerhalb des class-Attributes erfolgen.

Die Ausgabe eines Bildes mit entsprechender Hervorhebung kann folgendermaßen aussehen:

<img$CMS_RENDER(template:"WEBeditInplaceAttributeBegin", name:"st_picture", pure:true)$ src="$CMS_REF(st_picture,res:"TextBildTeaser")$" alt="$CMS_IF(!st_picture.comment.isEmpty)$$CMS_VALUE(st_picture.comment)$$CMS_ELSIF(!st_picture.picture.description.isEmpty)$$CMS_VALUE(st_picture.picture.description)$$CMS_END_IF$" class="$CMS_RENDER(template:"WEBeditInplaceAttributeEnd", pure:true)$" width="160" />

Der Quelltext wird durch den Einsatz von WEBeditInplaceAttributeBegin/End folgendermaßen gebildet:

<img id="FSID:.." class="fsPreview" src="..." _default" width="..." alt="...">

Standardmäßig ist der Parameter pure auf false gesetzt. In diesem Fall wird das Bild innerhalb eines div-Containers ausgegeben (siehe Beispiel oben), wobei WEBeditInplaceAttributeBegin das öffnende div-Tag, die Klasse/n (class=".."), die ID (id="...") und fs:attrs="..." zurückliefert und WEBeditInplaceAttributeEnd das schließende </div>.

Hervorheben von Eingabekomponenten aus Datensätzen

Datensätze werden üblicherweise in der Datenquellen-Verwaltung zentral gepflegt, können jedoch an mehreren Stellen einer Website mithilfe unterschiedlicher Tabellenvorlagen und damit unterschiedlicher Layouts ausgegeben werden. In diesen Fällen ist die Verknüpfung zwischen dem Arbeitsbereich, in dem Datensätze über Eingabekomponenten bearbeitet werden können, und der Integrierten Vorschau, in der die Inhalte aus diesen Eingabekomponenten hervorgehoben werden, möglicherweise nicht automatisch gegeben (siehe auch Datenquellen-Verwaltung: Eingabekomponenten):

Beispiel: Auf einer Unternehmens-Website werden Pressemitteilungen oder Informationen zu Produkten als einzelne Datensätze in Datenquellen gepflegt. Diese werden einerseits auf Einzelseiten ausgegeben (eine Seite pro Pressemitteilung bzw. Produktbeschreibung), andererseits auf einer Übersichtsseite verwendet, auf der beispielsweise nur bestimmte Inhalte der Datensätze ausgegeben ("Teaser") werden. Einzel- und Übersichtsseite basieren auf unterschiedlichen Tabellenvorlage, allerdings enthält nur die Tabellenvorlage für die Einzelseiten die Definition der Eingabekomponenten zur Pflege der Datensätze. Das Register "Formular" der Tabellenvorlage für die Übersichtsseite ist leer. In der Ausgabe bezieht sie ihre Inhalte aus der Datenquelle mit den Einzel-Datensätzen.

Für die Tabellenvorlage, für die keine Eingabekomponenten definiert sind (Übersichtsseite), müssen für eine korrekte Verknüpfung zwischen der Ansicht im Arbeitsbereich und der Integrierten Vorschau einige fehlende Informationen manuell angegeben werden, und zwar über die Parameter content, id, pageRef und view.

Dabei müssen alle Vorlagen, die denselben Datensatz ausgeben, dieselben Werte für diese Parameter haben.

Diese Parameter werden im Folgenden anhand des gegebenen Beispiels erläutert.

content

Dieser Parameter wird üblicherweise in Vorlagen verwendet, die Datensätze ausgeben, aber keine Formulare zur Eingabe von Daten bieten, oder für Datensätze, die über die Funktion contentSelect ausgegeben werden. Über diesen Parameter wird die UID der Tabellenvorlage angegeben, in der die Pflegemaske (Formulare) hinterlegt ist. Der Parameter content muss mit dem Parameter index verwendet werden.
Im Beispiel wird in der Tabellenvorlage für die Pressemitteilungs-Übersichtsseiten über content die UID derselben Tabellenvorlage angegeben.

index

Über diesen Parameter wird die ID des Datensatzes angegeben, der im Arbeitsbereich angezeigt werden soll, direkt in doppelten Hochkommata oder dynamisch, z.B. über das Systemobjekt #row. Dieser Parameter muss mit dem Parameter content verwendet werden.

Für die Verwendung von content und index werden folgende Fälle unterschieden:

  • Content-Projektion (Absatz, der auf einer Tabellenvorlage basiert): content und index sind vorbelegt, können aber manuell überschrieben werden.
  • Datensätze, die über die Funktion contentSelect in einer Content-Projektion ausgegeben werden: content und index sind (potentiell fehlerhaft) vorbelegt und können bzw. müssen entsprechend manuell geändert werden.
  • Datensätze, die über die Funktion contentSelect außerhalb einer Content-Projektion ausgegeben werden: content und index sind nicht vorbelegt und müssen manuell angegeben werden.

view

Über diesen Parameter wird die UID der Datenquelle in der Datenquellen-Verwaltung angegeben, in der die Pflegemaske (Formulare) für den Datensatz hinterlegt sind. Der Parameter muss in jeder Vorlage angegeben werden, über die Datensätze ausgegeben werden.
Im Beispiel wird für beide Vorlagen (für die Tabellenvorlage für Pressemitteilungs-Einzelseiten und für die Vorlage für Pressemitteilungs-Übersichtsseiten) für den Parameter view die Datenquelle angegeben, in der die Pressemeldungen gepflegt werden.

pageRef

Dieser Parameter muss in Tabellenvorlagen oder in einem ContentSelect angegeben werden, die über keine Pflegemaske (Formulare) verfügen. Er gibt die Seitenreferenz an, die die entsprechende Tabellenvorlage mit Pflegemaske ausgibt. Dabei ist die Tabellenvorlage zu wählen, über die der gleiche Datensatz gepflegt wird, wie der, der über die Tabellenvorlage ausgegeben wird, die keine Pflegemaske hat.

Dem Parameter kann ein Seitenreferenz-Objekt übergeben werden. Alternativ kann die ref(...)-Funktion zur Angabe des Seitenreferenz-Objekts genutzt werden.

Im Beispiel wird für die Vorlage für die Pressemitteilungs-Übersichtsseiten für den Parameter pageRef die Seitenreferenz zu einer Seite angegeben, auf der die Einzel-Pressemitteilungen eingebunden sind.

Die Parameter content, index, view und pageRef müssen bei jedem Aufruf von WEBeditInplaceAttributeBegin angegeben werden, z.B.

$CMS_RENDER(template:"WEBeditInplaceAttributeBegin", content:"Products.contacts", index:contactEntity.getId(), view:"kontakte")$

Um die Parameter für die gesamte Seiten-, Absatz- oder Tabellenvorlage zu verwenden, kann über $CMS_SET(...)$ vor dem Aufruf von WEBeditInplaceAttributeBegin ein Wert für jeden Parameter definiert werden, z.B.

$CMS_SET(content, "Products.press_releases_overview")$  
$CMS_SET(index, #row.getId())$
$CMS_SET(pageRef, ref(pageref:"pressreleasesdetails"))$
$CMS_SET(view, "pressreleases")$

Pflichtparameter

Parameter

Erläuterung / Beispiel

name

Angabe des Variablennamens der Eingabekomponente, die in der Integrierten Vorschau hervorgehoben werden soll, in doppelten Hochkommata, z.B.
name:"st_text"

   

Parameter zur Hervorhebung von Bildern

Parameter

Erläuterung / Beispiel

pure

Parameter zur Hervorhebung von Bildern in der Integrierten Vorschau,
z.B.
pure:true
Für die Hervorhebung von Bildern muss der Parameter auf true gesetzt sein, für die Ausgabe von Text braucht der Parameter nicht angegeben zu werden.
Der Parameter muss sowohl für WEBeditInplaceAttributeBegin als auch für WEBeditInplaceAttributeEnd verwendet werden, und zwar innerhalb des -Tags. Der Aufruf des schließenden WEBeditInplaceAttributeEnd muss mit class="..." erfolgen.
Der Standardwert für pure ist false. In diesem Fall wird das Bild innerhalb eines div-Tags ausgegeben.

   

Parameter zur Hervorhebung von Datensätzen

Wichtig Die Parameter content, id und pageRef sind nur für Tabellenvorlagen erforderlich, die Datensätze ausgeben, aber keine Pflegemaske (Formulare) enthalten, sowie für Datensätze, die über die Funktion contentSelect ausgegeben werden.

Parameter

Erläuterung / Beispiel

content

Angabe der UID der Tabellenvorlage in doppelten Hochkommata, in der die zugehörige Pflegemaske hinterlegt ist, z.B.
content:"Products.product_overview"
Dieser Parameter muss zusammen mit dem Parameter index verwendet werden.

index

Angabe der ID des Datensatzes, der in der Integrierten Vorschau angezeigt werden soll. Die ID wird direkt in doppelten Hochkommata oder z.B. über das Systemobjekt #row dynamisch angegeben, z.B.
index:#row.getId()
Dieser Parameter muss zusammen mit dem Parameter content verwendet werden.

view

Angabe der UID der Datenquelle in der Datenquellen-Verwaltung, die im Arbeitsbereich angezeigt werden soll, wenn in der Integrierten Vorschau ein Datensatz angeklickt wird, der von der jeweiligen Vorlage gerendert wird, z.B.
view:"produkte"

pageRef

Angabe der Seitenreferenz, die in der Vorlage mit der Pflegemaske (Formulare) definiert ist, z.B.:
pageRef:ref(pageref:"pressreleasesdetails") oder
pageRef:ref(ss_product_details)

   

© 2005 - 2012 e-Spirit AG | Alle Rechte vorbehalten. | Letzte Änderung: 17.07.2009