ProcessWire - Page Rendering Functions: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „ https://processwire.com/talk/topic/13958-help-understanding-render-and-rendervalue/ https://processwire.com/talk/topic/3145-multiple-views-for-templates/?pag…“)
 
 
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
[[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/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
Zeile 5: Zeile 7:
  
 
== Sammlung ==
 
== Sammlung ==
  $page->render("some_field") is an alias for $page->renderField(),
+
  $page->render("some_field")  
If you provide a filename as a param, $page->render() will use that file to render given page
+
Ist ein Alias für
  If you provide a filename (actual filename, not just something like "file") to $page->render() as the first param, you can provide an array as the second param, and the values stored in that array can then be accessed via $options.
+
$page->renderField(),
  wireRenderFile() renders a specific file without the need for a Page object
+
Ü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 ==
 
== Beispiele ==

Aktuelle Version vom 19. April 2024, 16:54 Uhr

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().