ProcessWire - Konfigurationsseite erstellen
Aus Wikizone
Es gibt immer wiederkehrende Einstellungen bzw. Teile die man für die meisten Websites benötigt. Dazu gehört z.B. ein Logo oder eine Footerzeile.
Damit man neue Websites auf Basis von ProcessWire Profilen schnell erstellen kann kann man sich eine Konfigurationsseite erstellen, über die man solche Dinge schnell anpassen kann ohne erst die Templates zu ändern. Wenn nur wenige Dinge angepasst werden sollen kann man die Felder direkt auf der Homepage unterbringen. Für umfangreiche Konfigurationen bietet sich eine eigene Seite an.
Quickstart
_init.php
$configpage = $pages->get("/site_configuration/"); // page to store sitewide used fields
myTemplate.php
<span class="email"><?= $configpage->contact_email ?></span>
Konfigurationsfelder und Snippets zum Einsatz
Allgemein
Konfigseite als Variable definieren
$configpage = $pages->get("/site_configuration/"); // page to store sitewide used fields
Metatags
Site Title
site_title
_init.php
$siteTitle = '';
if($configpage->site_title) $siteTitle = $configpage->site_title;
$title = $page->get('headline|title'); // headline if available, otherwise title
$titleTag = ($homepage->id != $page->id) ? $page->title .' | '. $siteTitle : $siteTitle;
Logo und Brandmark
site_logo site_brandmark
myTemplate.php
// Logo
if(count($configpage->site_logo)){
$siteLogoUrl = $configpage->site_logo->height(80)->url;
} else $siteLogoUrl = $config->urls->templates.'/images/logo.png';
// Bildmarke
<?php
// ...
if(count($configpage->site_mark)){
$siteMarkUrl = $configpage->site_mark->url;
} else $siteMarkUrl = $config->urls->templates.'/images/mark.png';
//...
?>
<a class="logo-holder" href="<?=$root?>"><img src="<?= $siteLogoUrl?>" alt="Home"></a>
site_footer
Farben
Hintergrundfarbe Schriftfarbe Linkfarbe LinnkHoverfarbe
Schriften
Maps
myMaps
map_mid (rapid)
Google Map
map_apikey map_lat map_lon
Adresse aus Kontaktinfos
Kontaktinfo
contact_name contact_address contact_place contact_email // oder contact_email_address contact_email_text contact_phone contact_fax contact_email