Processwire - Template from Scratch: Unterschied zwischen den Versionen
| Zeile 2: | Zeile 2: | ||
== Links == | == Links == | ||
| − | http://modules.processwire.com/ | + | * Module: http://modules.processwire.com/ |
| + | * Cheatsheet für Variablen: http://www.processwire.com/api/cheatsheet | ||
| + | * Variablen erklärt: http://processwire.com/api/variables/ | ||
[[ProcessWire - Snippets]] | [[ProcessWire - Snippets]] | ||
| Zeile 57: | Zeile 59: | ||
Hinweis: Processwire kann alle möglichen Seiten ausgeben, also auch JSON oder XML | Hinweis: Processwire kann alle möglichen Seiten ausgeben, also auch JSON oder XML | ||
| − | === Seitentemplates - | + | === Seitentemplates - delayed output === |
| + | Hierbei werden die Templateinhalte in Einzelschritten geladen: | ||
| + | _init.php -> myTemplate.php -> _main.php | ||
| + | myTemplate.php enthält den spezifischen Seiteninhalt, speichert diesen in Variablen und übergibt das Ganze an _main.php | ||
| + | |||
| + | Beispiel: | ||
| + | |||
| + | basic-page.php: | ||
| + | <syntaxhighlight lang="php"> | ||
| + | <?php | ||
| + | $content = $page->body . $page->video; | ||
| + | ?> | ||
| + | </syntaxhighlight> | ||
| + | _main.php: | ||
| + | <syntaxhighlight lang="php"> | ||
| + | <?php | ||
| + | include("./head.inc"); | ||
| + | ?> | ||
| + | |||
| + | <div id="page"> | ||
| + | <header class=""> | ||
| + | <a id="logo" href="<?php echo $pages->get('/')->url; ?>"> | ||
| + | <h1> | ||
| + | <?php echo $pages->get('/')->title; ?> | ||
| + | </h1> | ||
| + | </a> | ||
| + | </header> | ||
| + | <aside> | ||
| + | <nav> | ||
| + | <?php | ||
| + | // echo nav links | ||
| + | $children = $pages->get('/')->children; | ||
| + | foreach($children as $child){ | ||
| + | echo '<a name="'.$child->title.'" class="ajax-link'.$class.'" href="'. $child->url .'">'. $child->title .'</a>'; | ||
| + | } | ||
| + | ?> | ||
| + | </nav> | ||
| + | </aside> | ||
| + | <div class="content-container cf"> | ||
| + | <div class="content current-content"> | ||
| + | <?php | ||
| + | // add content to page from template file | ||
| + | echo $content; | ||
| + | ?> | ||
| + | </div> | ||
| + | </div> | ||
| + | <?php | ||
| + | include("./foot.inc"); | ||
| + | ?> | ||
| + | </syntaxhighlight> | ||
Version vom 14. Februar 2017, 17:16 Uhr
Wir erstellt man in Processwire ein Template ? So gehts.
Links
- Module: http://modules.processwire.com/
- Cheatsheet für Variablen: http://www.processwire.com/api/cheatsheet
- Variablen erklärt: http://processwire.com/api/variables/
Tipp: Module lassen sich unter Module > Neu direkt importieren wenn man den Modulklassennamen angibt.
Processwire installieren
- Install
- Installer laufen lassen, als Option Blank Template wählen.
- Backend Template
- Reno Modul installieren (ist schon drin, muss nur aktiviert werden)
- Language Support
- Language Support Module installieren
- Language in Setup anlegen (German)
- Language Pack für Core hochladen
Wichtige Module installieren
- Markup Simple Navigation Modul installieren (Klassenname: MarkupSimpleNavigation)
Template / Theme erstellen
Basisstruktur im Templateordner
Diese ist schon angelegt, wenn man das blank Template am Anfang auswählt.
/scripts /styles /errors home.php basic-page.php admin.php
Seitentemplates anlegen - einfache Variante
Ein Template kann z.b. so aussehen:
basic-page.php
<?php include('./head.inc'); // include header markup ?>
<h1><?php echo $page->title; ?></h1>
<?php include('./foot.inc'); // include footer markup ?>
head.inc
<!DOCTYPE html>
<html lang="en">
<head>
<title><?php echo $page->title; ?></title>
</head>
<body>
foot.inc
</body>
</html>
Im Backend kann man unter Setup > Templates neue Templates anlegen, die man dann wiederum Seiten zuweisen kann. Processwire sucht dann im Templatesverzeichnis nach dem passenden Dateinamen.
Hinweis: Processwire kann alle möglichen Seiten ausgeben, also auch JSON oder XML
Seitentemplates - delayed output
Hierbei werden die Templateinhalte in Einzelschritten geladen:
_init.php -> myTemplate.php -> _main.php
myTemplate.php enthält den spezifischen Seiteninhalt, speichert diesen in Variablen und übergibt das Ganze an _main.php
Beispiel:
basic-page.php:
<?php
$content = $page->body . $page->video;
?>
_main.php:
<?php
include("./head.inc");
?>
<div id="page">
<header class="">
<a id="logo" href="<?php echo $pages->get('/')->url; ?>">
<h1>
<?php echo $pages->get('/')->title; ?>
</h1>
</a>
</header>
<aside>
<nav>
<?php
// echo nav links
$children = $pages->get('/')->children;
foreach($children as $child){
echo '<a name="'.$child->title.'" class="ajax-link'.$class.'" href="'. $child->url .'">'. $child->title .'</a>';
}
?>
</nav>
</aside>
<div class="content-container cf">
<div class="content current-content">
<?php
// add content to page from template file
echo $content;
?>
</div>
</div>
<?php
include("./foot.inc");
?>