Pro Yearly is on sale from $80 to $50! »

ProcessWire – Ein CMS voller Freiheiten

ProcessWire – Ein CMS voller Freiheiten

Vortrag über das CMS ProcessWire vom Webkongress Erlangen 2014

5d013e754c25db0d33c6cc25fba3dc71?s=128

Matthias Mees

March 21, 2014
Tweet

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