Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ProcessWire – Ein CMS voller Freiheiten

ProcessWire – Ein CMS voller Freiheiten

Vortrag über das CMS ProcessWire vom Webkongress Erlangen 2014

Avatar for Matthias Mees

Matthias Mees

March 21, 2014
Tweet

More Decks by Matthias Mees

Other Decks in Programming

Transcript

  1. • Apache mit mod_rewrite und .htaccess • PHP >= 5.3.8

    mit GD2, PDO und mysqli • MySQL >= 5.0.15
  2. • schlicht und schlank • Eye-Candy über jQuery UI •

    aber: ohne JS und in IE < 8 nicht benutzbar • anpassbare Eingabemasken mit „Hilfetexten“
  3. • Medien sind über Felder Seiten zugeordnet • keine zentrale

    Medienverwaltung (im Kern) • API-Funktionen, um Bilder zu bearbeiten und auf ihre Eigenschaften zuzugreifen
  4. • jeder Seite ist ein Template zugeordnet • jedem Template

    sind Felder zugewiesen • jedem Feld sind ein Typ und verschiedene Attribute zugewiesen • Zugriff über API-Variablen und -Methoden
  5. • derzeit 224 Erweiterungen aller Art • viele Aufgaben von

    Modulen lassen sich bereits nativ in Templates umsetzen • statt Themes: Seiten-Profile
  6. • Struktur, Gestaltung und Verhalten liegen in der Hand des

    Entwicklers • es passt sich der eigenen Arbeitsweise an • oberflächlich wenig komplex, aber sehr leistungsfähig über die API
  7. • keine zusätzlichen Inhaltstypen • jedes Feld ist ein „freies“

    Feld • das gesamte System ist modular auf dem PW- Framework aufgebaut und erweiterbar
  8. • jeder Knoten (Seite) hat ein Eltern- und Kind- Element(e)

    und unterschiedliche Attribute (Felder) entsprechend seines Typs (Template) • Methoden, z.B. find(), children(), parent() • Selektor – Operator – Wert
  9. <?php // Das Feld body der aktuellen Seite ausgeben echo

    $page->body; // Die Seite einstellungen finden und // deren Feld copyright ausgeben echo $pages->get("/einstellungen/")->copyright; // Wie viele Speaker gibt es auf dem WKE 2014? echo $pages->count("template=speaker");
  10. <?php // Navigations-Pfad (Breadcrumb) foreach($page->parents as $p) { echo "<a

    href='{$p->url}'>{$p->title}</a> » "; } echo $page->title; // Bildergalerie mit Thumbnails foreach ($page->$images as $i) { $thumb = $i->size(300,225); echo "<li><a href='{$i->url}'><img src='{$thumb->url}' alt='{$i->description}'></a></ li>"; }
  11. <?php // Vortragsprogramm des WKE 2014 von heute $today =

    date('d.m.Y H:i', time()); // nur in Hörsaal 11 sortiert nach Uhrzeit $talks = $pages- >find("template=talk,talk_datetime>today,talk_room =11,sort=talk_datetime"); // ausgeben echo "<ul>"; foreach($talks as $talk) { // (<time> nur aus Platzgründen ausgelassen) echo "<li>" . strftime('%H:%M', strtotime($talk->talk_datetime)) . " " . $talk- >title . " (" . $talk->speaker . ")</li>"; } echo "</ul>";