|
|
| 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());''
| |