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
Matthias Mees
March 21, 2014
Programming
260
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
95
Styleguides für alle(s)
yellowled
0
110
Other Decks in Programming
See All in Programming
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.5k
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
270
ALB ログから Trace を気合で繋げる技術
fohte
7
880
Hono + Inertia + React で LP を構築した話
oukayuka
2
210
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
160
ソフトウェアラスタライザ
fadis
1
790
[DroidKaigi 2026] Bring your own phones to Gradle Managed Devices
f2lk
0
110
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.4k
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
210
FastAPI の並行処理モデルを完全に理解する
hoto17296
9
3.8k
Press start. Python's next generation.
willingc
PRO
3
310
Featured
See All Featured
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
890
Building Adaptive Systems
keathley
44
3.2k
sira's awesome portfolio website redesign presentation
elsirapls
0
410
Between Models and Reality
mayunak
4
450
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Being A Developer After 40
akosma
91
590k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
270
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
560
BBQ
matthewcrist
89
10k
Un-Boring Meetings
codingconduct
0
410
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