Processwire - API: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
(Der Seiteninhalt wurde durch einen anderen Text ersetzt: „== Allgemeine Tipps == * Wenn kein Zugriff auf das Pages Objekt möglich ist kann man über wire()->pages auf die Funktionen zugreif…“)
Zeile 2: Zeile 2:
 
* Wenn kein Zugriff auf das Pages Objekt möglich ist kann man über wire()->pages auf die Funktionen zugreifen.
 
* Wenn kein Zugriff auf das Pages Objekt möglich ist kann man über wire()->pages auf die Funktionen zugreifen.
  
== ProcessWire - Seiten löschen ==
+
== ProcessWire API - Page Manipulation ==
https://processwire.com/api/ref/page/delete/g/
+
  [[ProcessWire API - Page Manipulation]]
<syntaxhighlight lang="php">
 
// Delete pages named "delete-me" that don't have children
 
$items = $pages->find("name=delete-me, numChildren=0");
 
foreach($items as $item) {
 
  $item->delete();
 
}
 
</syntaxhighlight>
 
 
 
== Seiten via API modifizieren ==
 
<syntaxhighlight lang="php">
 
// 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);
 
</syntaxhighlight>
 
 
 
== Seiten via API erstellen ==
 
  https://processwire.com/api/ref/pages/save/
 
https://processwire.com/talk/topic/352-creating-pages-via-api/
 
 
 
=== Allgemein ===
 
<syntaxhighlight lang="php">
 
$p = new Page();
 
$p->template = "basic-page";
 
$p->parent = 1;
 
$p->title = "Page Title";
 
//$p->id = 4254; Only if you want to set this manually
 
$p->of(false);
 
$p->save();
 
</syntaxhighlight>
 
 
 
=== In Modulen ===
 
Siehe auch: https://processwire.com/blog/posts/processwire-2.6.21-upgrades-comments-more-on-pw-3.x/#more-updates-on-processwire-3.0
 
<syntaxhighlight lang="php">
 
include(./index.php) // bootstrap PW (not needed when creating pages and your already in bootstraped mode (i.e. on a page template)
 
 
 
$p = new Page(); // create new page object
 
$p->template = 'page'; // set template
 
$p->parent = wire('pages')->get('/about/'); // set the parent
 
$p->name = 'mynewpage_url'; // give it a name used in the url for the page
 
$p->title = 'My New Page'; // set page title (not neccessary but recommended)
 
 
 
// added by Ryan: save page in preparation for adding files (#1)
 
$p->save();
 
 
 
// populate fields
 
 
 
$p->image = 'path/to/image.jpg'; // populate a single image field (#2)
 
$p->images->add('path/to/image1.jpg'); // add multiple to images field
 
 
 
$p->save();
 
 
 
// testing
 
 
 
echo 'id: '.$p->id.'<br/>';
 
echo 'path: '.$p->path;
 
</syntaxhighlight>
 
 
 
=== Tipps ===
 
* save a page before '''adding files''' to it
 
* To '''add a single image''', you'd need to do ''$p->image = 'path/to/image.jpg'''; rather than ''$p->image('path/to/image.jpg')''. This is because there is no Page::image() function
 
* may need to add a '''$page->setOutputFormatting(false)'''
 
* if your module creates new objects, like ''$page = new Page();'', you'll want to wire those new objects to the current ProcessWire instance, which makes it a "wired" object. You do it like this: ''$page = $this->wire(new Page());''
 

Version vom 23. November 2019, 11:52 Uhr

Allgemeine Tipps

  • Wenn kein Zugriff auf das Pages Objekt möglich ist kann man über wire()->pages auf die Funktionen zugreifen.

ProcessWire API - Page Manipulation

ProcessWire API - Page Manipulation