6. Was
ist zu beachten
●
●
●
Konfiguration wird Programmierung
vorgezogen
Best-Practises sind in Konfiguration zu
finden
Wenn eigener Code dann
wiederverwendbar = Konfigurierbar
6/54
8. Was
ist Drupal außerdem
●
●
●
größtes internationales Community
getriebenes Open-Source Projekt
Über 1% aller Webseiten (
https://drupal.org/project/usage/drupal)
„Come for the Code stay for the
community“
8/54
22. Welche
Bereiche existieren in Software
●
Auswahl und Darstellung von Daten
Queries
DB
MySQL
Darstellung
Datenstruktur
Layout
Theme
(CSS, HTML)
Recht und
Rollen beachten
22/54
23. Welche
Bereiche existieren in Software
●
Business Logik
User
Service
Recht und
Rollen beachten
Input
Events
Conditions
DB
MySQL
Output
Datenstruktur
23/54
24. Welche
Module gibt es für die Bereiche
=> Datenstruktur:
●
Entities (Nodes), Bundles (Kontakt, Firma)
●
Fields (Integer, Text, Reference, Image)
24/54
25. Welche
Module gibt es für die Bereiche
●
=> Aufbau von Entities und Bundles
Field C
Bundle A
DB
Entity Type
Bundle B
Bundle C
Field D
Field A
Field B
25/54
26. Welche
Module gibt es für die Bereiche
Content (Node) ist ein Entity mit existierenden Bundles „Article“ und
„Basic Page“ mit jeweiligen Feldern
26/54
27. Welche
Module gibt es für die Bereiche
Verwalten von Feldern eines Nodetypes (Node / Entities)
27/54
28. Welche
Module gibt es für die Bereiche
Generiertes Formular zum Erstellen eines neuen Nodes (Entity)
28/54
29. Welche
Module gibt es für die Bereiche
=> Datenselektion (Query):
●
Views
●
API (Entity Field Query, DB-Abstraktion)
29/54
30. Welche
Module gibt es für die Bereiche
Views zum Erstellen und Anzeigen von Daten aus der Datenbank (Entities)
30/54
31. Welche
Module gibt es für die Bereiche
=> Rendering / Markup / Daten-Output:
●
Field-Formatter (Fields, Image, Gallery)
●
View Modes (Entities, Display Suite)
●
Weitere Formatter (Views Display, Row
Styles)
31/54
32. Welche
Module gibt es für die Bereiche
=> Layout:
●
Panels, Panels everywhere, Panelizer
●
Blocksystem / Contexts
●
Display Suite
32/54
33. Welche
Module gibt es für die Bereiche
Einstellungen für die Anzeige eines Nodetypes (Display Suite)
33/54
35. Welche
Module gibt es für die Bereiche
Konfiguration eines Panels für eine Node-Ansicht
35/54
36. Welche
Module gibt es für die Bereiche
Konfiguration eines Panels per „In-Place Editing“ und Drag&Drop
36/54
37. Welche
Module gibt es für die Bereiche
Anzeige eines Panles mit View und eingebundenem Node
37/54
38. Welche
Module gibt es für die Bereiche
=> Business Logik / Workflow
●
Rules
●
Rules-Erweiterungen (Rules Conditional)
38/54
39. Welche
Module gibt es für die Bereiche
Konfiguration einer Rule nach dem Speichern eines vorhandenen Nodes
39/54
40. Welche
Module gibt es für die Bereiche
=> Berechtigungskontrolle
●
Content Access
●
AUL (User Access List, ähnlich AUL)
●
Weitere Permission Module
40/54
41. Welche
Module gibt es für die Bereiche
=> Performance
●
Entity Cache (Cachen der Entity Daten)
●
Boost, Memcache, APC (Op-Code Cache)
●
Varnish (Extern)
41/54
42. Welche
Module gibt es für die Bereiche
=> Deployment
●
●
●
Features (Export von ModuleKonfiguration)
Strongarm (Export von SystemEinstellungen)
Drush Make (Modul-Versionsmanagement)
42/54
43. Welche
Module gibt es für die Bereiche
=> Entwicklung
●
Devel
●
Drush (Shell-Konsole für Drupal)
43/54
44. Was
leistet die Drupal API
●
Meist prozedural in Drupal 7
●
Interaktion per Hooks (_info, _alter)
●
Weitere APIs durch Contrib Module
44/54
45. Was
leistet die Drupal API
●
Field API (Feld-typen definieren)
●
Views API (Plugins Selktion und Ausgabe)
●
Rules API (Events, Actions, Conditions)
45/54
46. Was
Leistet die Drupal API
●
Ausblick Drupal 8 (Mitte 2014)
●
Basierend auf Symfony
●
Objektorientierte Architektur
46/54
47. Wie
Wird in Drupal deployed
Zentrales Problem:
●
Content
●
Konfiguration
=> liegen in einer Datenbank
47/54
48. Wie
wird in Drupal deployed
DB
Entwicklung
…..
DB
Live
Content +
Konfiguration
Content +
Konfiguration
Apache (PHP-Code)
Kopieren der Datenbank
Überschreibt neuen
Content der Live DB !
Apache (PHP-Code)
48/54
49. Wie
wird in Drupal deployed
Lösung:
●
●
Konfiguration von Content trennen
Features exportiert Konfiguration in Code
(versionierbar, transportierbar)
49/54
50. Wie
wird in Drupal deployed
DB
Entwicklung
…..
Content +
Konfiguration
Apache (PHP-Code)
DB
Live
Content +
Konfiguration
Apache (PHP-Code)
CodeRepository
(GIT)
Deployment
ohne Kopieren
der DB sondern
nur auf Datei-Ebene
50/54
52. Wie
kann ich schneller starten
●
Mit Distributionen!
●
Viele Module vorkonfiguriert
●
Beinhalten Best-Practises
●
Bilden oft bereits konkrete Features ab
52/54
53. Wie
Kann ich schneller einsteigen
●
http://api.drupal.org (Schnittstellen, Doku)
●
Nodeone.se (Videos)
●
Lullabot.com (Videos)
53/54