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. ProcessWire Ein CMS voller Freiheiten

  2. • Matthias Mees – @yellowled • http://netzgestaltung.net • HTML, (S)CSS,

    JS/jQuery, CMS
  3. Eckdaten

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

    mit GD2, PDO und mysqli • MySQL >= 5.0.15
  5. None
  6. • http://processwire.com • http://processwire.com/demo/ • http://processwire.com/talk/

  7. Showcase

  8. None
  9. None
  10. None
  11. Backend

  12. • schlicht und schlank • Eye-Candy über jQuery UI •

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

    Medienverwaltung (im Kern) • API-Funktionen, um Bilder zu bearbeiten und auf ihre Eigenschaften zuzugreifen
  15. None
  16. Templates

  17. • 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
  18. None
  19. None
  20. Module

  21. • derzeit 224 Erweiterungen aller Art • viele Aufgaben von

    Modulen lassen sich bereits nativ in Templates umsetzen • statt Themes: Seiten-Profile
  22. None
  23. Was ist daran nun so ausgesprochen „frei“?

  24. ProcessWire gibt nichts vor

  25. • 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
  26. Alles ist eine Seite

  27. • keine zusätzlichen Inhaltstypen • jedes Feld ist ein „freies“

    Feld • das gesamte System ist modular auf dem PW- Framework aufgebaut und erweiterbar
  28. Wie jQuery für PHP

  29. • 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
  30. Code-Beispiele

  31. <?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");
  32. <?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>"; }
  33. <?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>";
  34. Ausgabe Codebeispiel 3 (Im Standard-Seitenprofil)

  35. Danke für’s zuhören. 
 slideshare.net/matmees