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

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>";