Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ProcessWire – Ein CMS voller Freiheiten
Search
Matthias Mees
March 21, 2014
Programming
0
220
ProcessWire – Ein CMS voller Freiheiten
Vortrag über das CMS ProcessWire vom Webkongress Erlangen 2014
Matthias Mees
March 21, 2014
Tweet
Share
More Decks by Matthias Mees
See All by Matthias Mees
„Kannst Du mich hören?“
yellowled
0
79
Styleguides für alle(s)
yellowled
0
100
Other Decks in Programming
See All in Programming
エディターってAIで操作できるんだぜ
kis9a
0
760
愛される翻訳の秘訣
kishikawakatsumi
3
340
ローカルLLMを⽤いてコード補完を⾏う VSCode拡張機能を作ってみた
nearme_tech
PRO
0
160
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
370
Vibe codingでおすすめの言語と開発手法
uyuki234
0
110
Java 25, Nuevas características
czelabueno
0
110
AI時代を生き抜く 新卒エンジニアの生きる道
coconala_engineer
1
420
認証・認可の基本を学ぼう後編
kouyuume
0
250
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
400
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
170
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
190
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
120
Featured
See All Featured
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
69
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
89
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
32
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
We Have a Design System, Now What?
morganepeng
54
7.9k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Mobile First: as difficult as doing things right
swwweet
225
10k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Technical Leadership for Architectural Decision Making
baasie
0
180
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