ProcessWire - Page Rendering Functions: Unterschied zwischen den Versionen
Aus Wikizone
| Zeile 1: | Zeile 1: | ||
| + | [[ProcessWire - Rendering Funktionen]] Neuere Seite | ||
https://processwire.com/talk/topic/13958-help-understanding-render-and-rendervalue/ | https://processwire.com/talk/topic/13958-help-understanding-render-and-rendervalue/ | ||
https://processwire.com/talk/topic/3145-multiple-views-for-templates/?page=2#comment-32876 | https://processwire.com/talk/topic/3145-multiple-views-for-templates/?page=2#comment-32876 | ||
Version vom 18. Juni 2023, 12:10 Uhr
ProcessWire - Rendering Funktionen Neuere Seite https://processwire.com/talk/topic/13958-help-understanding-render-and-rendervalue/ https://processwire.com/talk/topic/3145-multiple-views-for-templates/?page=2#comment-32876
Auf den ersten Blick sehr verwirrend und nicht besonders gut dokumentiert sind die Render Funktionen in ProcessWire. Dazu kommen diverse shortcuts die den Überblick erschweren.
Sammlung
$page->render("some_field")
Ist ein Alias für
$page->renderField(),
Übergibst du einen Dateinamen wird diese Datei zum Rendern genutzt.
Dann kannst du als zweiten Parameter ein Array übergeben in dem du Variablen hinterlegst. Auf diese kann über $options in der Renderdatei zugegriffen werden.
wireRenderFile()
Kann eine Datei ohne page Objekt rendern.
Du kannst auch Eigenschaften direkt an das Seitenobjekt hängen und dann darauf zugreifen. Du musst aber aufpassen, dass du nichts überschreibst
$pageObject->myVar = "Hallo Welt" // Nützlich für Layoutblocks
Beispiele
$page->render($filename); // $filename assumed in /site/templates/
$page->render($pathname); // $pathname is full path, but must resolve somewhere in web root
$page->render($options); // array of options and/or your own variables
$page->render(array('foo' => 'bar')); // same as above
$page->render($filename, $options); // specify filename and options/vars, etc.
Beispiel
If you made this render() call:
echo $page->render('myfile.php', array('foo' => 'bar'));
myfile.php could access the 'foo' variable like this:
echo $options['foo']; // outputs "bar"
PageStack
$options['pageStack']. That is an array containing a stack of pages that called render().