ProcessWire - Page Object

Aus Wikizone
Version vom 2. Februar 2019, 18:37 Uhr von Steff (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Einführung == Das Page Objekt enthält alle Daten einer Seite. Normalerweise kann man bei der Arbeit mit Templates direkt $page schreiben um auf die aktu…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Einführung

Das Page Objekt enthält alle Daten einer Seite. Normalerweise kann man bei der Arbeit mit Templates direkt

$page

schreiben um auf die aktuelle Seite zuzugreifen. Wenn man das Feld einer aktuellen Seite abrufen möchte kann man das dann z.B. so machen echo $page->title

Selektoren und Seiten

Über einen Selektor kann man schnell Seiten abfragen (siehe Processwire - Selectors)

Wenn $page für die aktuelle Seite nicht zur Verfügung steht (z.B. in Modulen) kann man sich über das wire Objekt die aktuelle Seite eines Nutzers holen:

$page = wire("page");
$t = $page->title;


Seiten modifizieren

// Modify a page and save it
$p = $pages->get('/festivals/decatur/beer/');
$p->of(false); // turn off output formatting, if it's on
$p->title = "Decatur Beer Festival";
$p->summary = "Come and enjoy fine beer and good company at the Decatur Beer Festival.";
$pages->save($p); 

Neue Seiten erzeugen

$fields = array('title', 'vorname', 'plz', [...]);
$values = array("Mein Titel","Max","D72810");
// fill fieldnames i.e. from database query...
list($oe_id, $oe_nl_name, $oe_plz, [...]) = $row;

$p = new Page();
$p->template = "templatename";
$p->parent = $parentId;// Elternseite
$p->title = "Titel der Seite";
$p->of(false);
if(!$p->save()) echo "Seite konnte nicht gespeichert werden";

// populate fields
$p->vorname = "Max";
$p->[feldname] = "Inhalt des Feldes";
$p->save();