ProcessWire - Page Rendering Functions

Aus Wikizone
Version vom 19. April 2024, 16:54 Uhr von 134.3.86.14 (Diskussion)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
ProcessWire - Render Funktionen (Inhaltsverzeichnis zu Renderseiten mit ProcessWire)
ProcessWire - Rendering Funktionen Weitere Render Funktionen
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[Bearbeiten]

$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[Bearbeiten]

$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[Bearbeiten]

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[Bearbeiten]

$options['pageStack']. That is an array containing a stack of pages that called render().