Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ProcessWire – Ein CMS voller Freiheiten
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Matthias Mees
March 21, 2014
Programming
240
0
Share
ProcessWire – Ein CMS voller Freiheiten
Vortrag über das CMS ProcessWire vom Webkongress Erlangen 2014
Matthias Mees
March 21, 2014
More Decks by Matthias Mees
See All by Matthias Mees
„Kannst Du mich hören?“
yellowled
0
83
Styleguides für alle(s)
yellowled
0
100
Other Decks in Programming
See All in Programming
[RubyKaigi 2026] Require Hooks
palkan
1
200
アクセシビリティ試験の"その後"を仕組み化する
yuuumiravy
0
150
Running Swift without an OS
kishikawakatsumi
0
840
10 Tips of AWS ~Gen AI on AWS~
licux
5
400
煩雑なSkills管理をSoC(関心の分離)により解決する――関心を分離し、プロンプトを部品として育てるためのOSSを作った話 / Solving Complex Skills Management Through SoC (Separation of Concerns)
nrslib
4
940
Offline should be the norm: building local-first apps with CRDTs & Kotlin Multiplatform
renaudmathieu
0
210
(Re)make Regexp in Ruby: Democratizing internals for the JIT
makenowjust
1
150
第3木曜LT会 #28
tinykitten
PRO
0
110
レガシーPHP転生 〜父がドメインエキスパートだったのでDDD+Claude Codeでチート開発します〜
panda_program
0
940
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
180
HTML-Aware ERB: The Path to Reactive Rendering @ RubyKaigi 2026, Hakodate, Japan
marcoroth
0
130
実践CRDT
tamadeveloper
0
570
Featured
See All Featured
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
270
A Modern Web Designer's Workflow
chriscoyier
698
190k
We Have a Design System, Now What?
morganepeng
55
8.1k
Google's AI Overviews - The New Search
badams
0
970
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.8k
Technical Leadership for Architectural Decision Making
baasie
3
330
Information Architects: The Missing Link in Design Systems
soysaucechin
0
890
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
270
Faster Mobile Websites
deanohume
310
31k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
340
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
260
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.5k
Transcript
ProcessWire Ein CMS voller Freiheiten
• Matthias Mees – @yellowled • http://netzgestaltung.net • HTML, (S)CSS,
JS/jQuery, CMS
Eckdaten
• Apache mit mod_rewrite und .htaccess • PHP >= 5.3.8
mit GD2, PDO und mysqli • MySQL >= 5.0.15
None
• http://processwire.com • http://processwire.com/demo/ • http://processwire.com/talk/
Showcase
None
None
None
Backend
• schlicht und schlank • Eye-Candy über jQuery UI •
aber: ohne JS und in IE < 8 nicht benutzbar • anpassbare Eingabemasken mit „Hilfetexten“
None
• Medien sind über Felder Seiten zugeordnet • keine zentrale
Medienverwaltung (im Kern) • API-Funktionen, um Bilder zu bearbeiten und auf ihre Eigenschaften zuzugreifen
None
Templates
• 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
None
None
Module
• derzeit 224 Erweiterungen aller Art • viele Aufgaben von
Modulen lassen sich bereits nativ in Templates umsetzen • statt Themes: Seiten-Profile
None
Was ist daran nun so ausgesprochen „frei“?
ProcessWire gibt nichts vor
• 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
Alles ist eine Seite
• keine zusätzlichen Inhaltstypen • jedes Feld ist ein „freies“
Feld • das gesamte System ist modular auf dem PW- Framework aufgebaut und erweiterbar
Wie jQuery für PHP
• 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
Code-Beispiele
<?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");
<?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>"; }
<?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>";
Ausgabe Codebeispiel 3 (Im Standard-Seitenprofil)
Danke für’s zuhören. slideshare.net/matmees