Processwire - Themes / Templates
Aus Wikizone
Links
Siehe auch
- Processwire - Templates Grundausstattung
- ProcessWire - Field Rendering
- ProcessWire - Skeleton Template
- Processwire - Template from Scratch
Theme Strategien
Basic Theme
templates/ _func.inc (wenn benötigt) home.php basic_page.php templates/partials foot.inc head.inc
+
Layout Blocks
Anstatt den Templates fest definierte Seitenbereiche zuzuordnen und für jedes Layout ein Template zu erzeugen, kann es sinnvoll sein in Layout-Blöcken zu denken. also einzelne Gestaltungsbausteine, die der User auswählen kann und aus denen sich die Seite aufbaut.
Um dies umzusetzen bietet sich der Feldtyp RepeaterMatrix an, der beim den ProField Modul mit dabei ist. Als Alternative würde vielleicht
ProcessWire - Layout Blöcke mit RepeaterMatrix
Rendering Strategien
Beispiele
http://blog.mauriziobonani.com/processwire-basic-website-workflow-part-2/
Render Funktionen
// New Functions in 3.x
render()
renderValue()
// Functions for 2.x or for easy snippet inclusion (also possible with render
wireRenderFile() // mostly used for delayed output
wireIncludeFile() // for direct output
// i.e.
// returns the output of snippets/contactform.php
// the second argument is optional and will be passed to
// the called file as multiple variables with the name of the key
// also all api varables are available by default
wireRenderFile("snippets/contactform", array("stuff" => $something ));
Delayed Output and Advanced Templates
Über prependTemplateFile und appendTemplateFile verarbeitet man die Templates wenn alle Inhalte zusammengesetzt sind.
Ordnerstruktur
templates/ _func.inc _init.inc _main.inc templates/partials foot.inc head.inc
config.php
<?php
...
$config->debug = false;
$config->sessionFingerprint = true;
$config->prependTemplateFile = '_init.php';
$config->appendTemplateFile = '_main.php';
$config->imageSizerOptions = array(
'upscaling' => true, // upscale if necessary to reach target size?
'cropping' => true, // crop if necessary to reach target size?
'autoRotation' => true, // automatically correct orientation?
'sharpening' => 'soft', // sharpening: none | soft | medium | strong
'quality' => 90, // quality: 1-100 where higher is better but bigger
);
AJAX Driven Theme
config.php
// if ajax request set $ajax = $input->post->ajax;
3.x Strategie
Syntax und Konventionen
Module
Recommended Modules
FormBuilder (kostenpflichtig) - FormBuilder ProFields (kostenpflichtig) - https://processwire.com/talk/store/product/10-profields/ Hanna Code (wie bei Wordpress) - TextformatterHannaCode Map Marker (google Maps) - FieldtypeMapMarker Simple Navigation - MarkupSimpleNavigation AIOM - All In One Minify - AllInOneMinify