$30 off During Our Annual Pro Sale. View Details »
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
210
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
データファイルをAWSのDWHサービスに格納する / 20251115jawsug-tochigi
kasacchiful
2
100
TVerのWeb内製化 - 開発スピードと品質を両立させるまでの道のり
techtver
PRO
3
1.3k
TypeScriptで設計する 堅牢さとUXを両立した非同期ワークフローの実現
moeka__c
5
2.7k
競馬で学ぶ機械学習の基本と実践 / Machine Learning with Horse Racing
shoheimitani
14
14k
JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 / Learning Post-Quantum Crypto Basics from JEP 496 & 497
mackey0225
2
500
AIエージェントでのJava開発がはかどるMCPをAIを使って開発してみた / java mcp for jjug
kishida
4
820
CloudflareのSandbox SDKを試してみた
syumai
0
190
無秩序からの脱却 / Emergence from chaos
nrslib
1
10k
[堅牢.py #1] テストを書かない研究者に送る、最初にテストを書く実験コード入門 / Let's start your ML project by writing tests
shunk031
11
6.2k
CSC305 Lecture 17
javiergs
PRO
0
200
イベントストーミングのはじめかた / Getting Started with Event Storming
nrslib
1
760
AIと協働し、イベントソーシングとアクターモデルで作る後悔しないアーキテクチャ Regret-Free Architecture with AI, Event Sourcing, and Actors
tomohisa
2
10k
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
Typedesign – Prime Four
hannesfritz
42
2.9k
Unsuck your backbone
ammeep
671
58k
Become a Pro
speakerdeck
PRO
30
5.6k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
BBQ
matthewcrist
89
9.9k
Speed Design
sergeychernyshev
33
1.3k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.1k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
690
GraphQLとの向き合い方2022年版
quramy
49
14k
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