wWeblic::renderItemData

Zeigt ein Strukturelement an, welches rein über Parameter definiert wird

Funktionsaufruf

String renderItemData(String item, Array data, Array options)

Parameter

item
Zu verwendendes Element z.B. headline.standard, falls die Funktion innerhalb einer Seite ausgeführt wird oder andernfalls /wGlobalProject/wGlobal/layout/templates/items/headline.standard.wItem.php
data
Daten, wie Sie in Seiten über wd:fragment-Elemente übergeben werden.
options
Optionen
executePHPPost [|true]
Falls vom Cache ausgeschlossenes PHP interpretiert werden soll
includeItemsProject [|true]
Falls alle XSLT-Elemente-Templates des Projectes eingebunden werden sollen
subDirItems
Falls die Items aus einem Unterverzeichnis genommen werden sollen, z.B. /newsletter
includeObjectsProject
Falls alle XSLT-Objekt-Templates des Projectes eingebunden werden sollen
includeGlobalsProject
Falls alle globalen XSLT-Templates des Projectes eingebunden werden sollen
additionalTemplatesToInclude [|Array]
Weitere einzubindende Templates können als Array übergeben werden.
pathProjectLayout
Pfad des Layout-Projektes

Hinweis zu den Beispielen:
Wenn Sie den PHP-Code innerhalb eines PHP-Quelltext Elementes/Weblics verwenden, übernehmen Sie die öffnenden/schliessenden PHP-Tags nicht, sondern rein den PHP-Code (z.B print-Zeile)!

Beispiel: Innerhalb eines PHP-Elementes einer Seite ein Element über die ID ansprechen

Quelltext

<?php

// Öffnendes und schliessendes PHP-Tag aus diesem Beispiel nicht übernehmen, sondern nur die print-Zeile:
print wWeblic::renderItemData('headline.text', array('text' => 'Dynamische Überschrift 4', 'display' => 'h4'));


?>

Ergebnis

Dynamische Überschrift 4

Beispiel: In einem beliebigen PHP-Skript ein Element über den Pfad ansprechen

Quelltext

<?php

print wWeblic::renderItemData('/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/items/headline.text.wItem.php', array('text' => 'Dynamische Überschrift 4', 'display' => 'h4'));

?>

Beispiel: Google Map über renderItemData ausgeben

Quelltext

<?php

// Beachten Sie, dass je nach Aufruf der Map (mit Koordinaten oder Adresse) ggf. ein anderer GoogleMap API-KEY erforderlich ist!
print '<script src="/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/scripts/jquery.js"></script>';
$itemData = array(
'title' => '',
'display' => '',
'maptype' => 'ROADMAP',
'width' => '',
'height' => '',
'zoom' => '10',
'longtitude' => '8.8321670',
'latitude' => '47.7637000',
'address' => '',
'infoContent' => '',
'infoContentCSS' => '',
'showInfoAlways' => '',
'iconMarker' => '',
'kmlUrl' => '',
'dirLocations' => '',
'listingOfCurrentPage' => '',
'filterOperator' => 'and',
//'filters' => array(),
'disableScrollwheel' => '',
'hideMarker' => '',
'showLinkRoute' => '',
'showLinkRouteBelow' => '',
'showRouteGeoLocation' => ''
);
$itemOptions = array('additionalTemplatesToInclude' => array('/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/items/script.html.wItem.php'));

print
wWeblic::renderItemData('/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/items/map.google.wItem.php', $itemData, $itemOptions);

?>

Beispiel: "Inhalte aus anderer Seite" über renderItemData ausgeben

Quelltext

<?php

$itemOptions
= array( 'path' => '/[IHR-INHALTS-PROJEKT]/wGlobal/content/elements/kontaktinformationen.php',
'groupId' => 'content1'
);
$options = array('includeItemsProject' => true);
print
wWeblic::renderItemData('/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/items/content.includeGroup.wItem.php', $itemOptions, $options);

?>

Beispiel: "Objekt-Inhalte aus anderer Seite" über renderItemData ausgeben

Quelltext

<?php

$itemOptions
= array( 'path' => '/[IHR-INHALTS-PROJEKT]/aktuelles/meldungen/klimaresonanzfenster.php',
'groupId' => 'content1'
);
$options = array('includeItemsProject' => true, 'includeObjectsProject' => true);
print
wWeblic::renderItemData('/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/items/content.includeGroup.wItem.php', $itemOptions, $options);

?>

Beispiel: Seitenkommentare im Objekt-Template über renderItemData ausgeben

Quelltext

<?php

// additionalTemplatesToInclude ab CMS-Version 011.001.163.000 einsetzbar

print wWeblic::renderItemData('userContent.comments', array(
'allowToComment' => 'ifIsLoggedIn',
'showComments' => 'ifIsLoggedIn',
'hasToBeReleasedAfterCreate' => '',
'emailToReleaseAfterCreate' => '',
'emailToAfterCreate' => '',
'userAdmin' => '',
'groupsAdmin' => '',
'allowToEditCommentByUser' => '1',
'allowToDeleteCommentByUser' => '',
'allowRespondToComments' => '',
'spamProtection' => 'honeypot',
'emailToInformAfterCreate' => '',
'emailFrom' => '',
'emailToNotifyComment' => ''
), array('additionalTemplatesToInclude' => array('/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/misc/comments.global.php')));

?>

Beispiel: Externes Video über renderItemData ausgeben

Quelltext

<?php

/* Soll für das Externe Video die 2-Klick Lösung angezeigt werden,
dann muss die Option includeItemsProject auf true gesetzt werden.
*/

print wWeblic::renderItemData('video.external', array(
'clip' => 'https://www.youtube.com/watch?v=mGQLXRTl3Z0',
), array(
'includeItemsProject' => true));

?>

Wichtige Hinweise

Beachten Sie, daß beim Einsatz von Javascript und CSS in den Elementen diese ggf. bei Nutzung über eine eigene PHP-Seite manuell zur Funktion eingebunden werden müssen. Sofern die o.g. Funktion z.B. über ein PHP-Skript Element/Weblic® innerhalb eines BASE Projektes eingebunden wird, sollten JS und CSS in den meisten Fällen schon dynamisch in die Seite generiert werden.

Sofern im XSL-Template eines Weblics® ein call-template Aufruf gesetzt wird, muß dieser gegen einen php:function Aufruf ersetzt werden (wie z.B. beim aktuellen Google Maps und Ansprechpartner Weblic® für widthCurrentElement umgesetzt).

Je nach Verschachtelung eines Elementes müssen manche Elemente anstatt über wWeblic::renderItemData() über wWeblic::renderItemStr() umgesetzt werden (z.B. Akkordeon-Container).

Hinweis
Beim Einsatz von Framework-Funktionen in eigenen Skripten beachten Sie bitte den Artikel "So verwenden Sie das PHP-Framework in eigenen Scripten".
Wenn Sie eine Funktion innerhalb einer Weblication® Seite z.B. über das PHP-Quelltext Element oder in einem XSL-Template über wsl:php einbinden, muss das Framework über die grid.php nicht mehr referenziert werden.