Anhand von Beispielen aus der Praxis wird die Arbeit in Contao gezeigt. Zudem soll die Möglichkeit gegeben werden, sich über verschiedene Ansätze auszutauschen. Welche Methoden führen am besten, effizientesten zum Ziel?
5. Kommt drauf an... Kommt drauf an... Wie macht man das am Besten? Kommt drauf an... Best Practice Kommt drauf an...
6. Worst Case Worst Case: So sollte man es definitiv nicht tun Der metaphorische „Griff ins Klo“ Wir beginnen im Folgenden oft mit einem „WC“ Und zeigen dann, wie man sauber aus der Sache rauskommt.
7. Das Projekt "Website" im Überblick Installation 1 Layout Funktionen Inhalte 2 3 4 Wartung 5
10. Webspace und Dateiberechtigungen Linux ist ein Mehrbenutzersystem Dateiberechtigungen haben drei Klassen: Besitzer | Gruppe | Alle Es gibt drei mögliche Zugriffsrechte Lesen: 4 Punkte Schreiben: 2 Punkte Ausführen: 1 Punkt Beispiele 644: Besitzer darf lesen und schreiben | Gruppe und Alle nur lesen 755: Besitzer darf alles | Gruppe und Alle nur lesen und ausführen 777: Alle dürfen alles. Einfach zu merken.
11. Contao und Dateiberechtigungen Contao benötigt Schreibrechte für seine eigene Dateien Problem: FTP-Benutzer ist Besitzer der Dateien (z. B. w0091763) Der Webserver hat einen anderen Benutzernamen Häufig wwwrun oder nobody Contao wird vom PHP-Interpreter ausgeführt PHP als Apache-Modul: schnell, aber meist kein Schreibrecht PHP als (Fast)-CGI: Schreibrecht, aber etwas langsamer SMH: Contao meldet sich zum Schreiben als FTP-Benutzer an
12. WC: "Alles auf 777 – dann funzt das" Die 777 ist ein sehr schönes Langstreckenflugzeug Alle Passagiere und die Besatzung ... haben viel Beinfreiheit befinden sich in einer sicheren Umgebung Auf dem Webspace ist die 777 ein Sicherheitsloch Alle Benutzer und die Skripte können... alle Dateien ändern und löschen alle Ordner mit "Kuckuckseier" bestücken
13. Versuchen Sie keinesfalls, das Problem durch eine Änderung der Dateiberechtigungen zu lösen! Contao System Check
14. Best Practice – Installation Der ideale Webspace PHP als Apache-Modul Ohne SMH Webspaceumkonfigurieren PHP als FastCGI Webhoster fragen Contaoumkonfigurieren Safe Mode Hack aktivieren in localconfig.php
16. Layout Layout bestimmt das Erscheinungsbild der Site Struktur der Seiten Kopfbereich Navigationsbereiche Inhaltsbereiche Fussbereich Farbschema grafische Elemente (Logo und Deko) Typographie
18. Layout analysieren WC: "Einfach mal loslegen..." Best Practice: "Think first, act then" Den Contao-Röntgenblick entwickeln Umsetzbarkeit eines extern gelieferten Layouts prüfen Grobe Aufteilung des Layouts in Bereiche #header #main #footer Finetuning: Bereiche weiter unterteilen
27. "Template" hat sich im allgemeinen Contao-Sprachgebrauch für alles etabliert, was irgendwie mit Vorlage zu tun hat. Das offizielle Contao-HandbuchSeite 287 Template – Definition
29. Das Frontend-Template Frontend-Template = Website Seitenstruktur Theme Seitenlayouts Frontend-Module Stylesheets Layout-Dateien in /tl_files Templates in /templates Inhalte Mitglieder und Benutzer Erweiterungen WC: Jedes Mal mit einer leeren Leinwand anfangen Best Practice: Theme oder Frontend-Template als Basis einsetzen
30. Das Seitentemplate WC: Jedes Mal ein eigenes Seitentemplate erstellen Best Practice Contao CSS-Framework fe_page.tpl einsetzen ggfs. zusätzliche Layoutbereiche ggfs. Seitentemplate anpassen Anderes CSS-Framework fe_page.tpl an HTML-Struktur anpassen Ein Seitentemplate pro Layout
31. Templates ändern (Worst Case) Templates im Systemordner Im Editor öffnen und ändern. Speichern. Funktioniert. Scheinbar. Nachteile Umständlich Gefährlich Nicht update-sicher
33. Template ändern – Best Practice Templates update-sicher anpassen Backend-Modul Templates Neues Template erstellt Kopie im Ordner /templates Änderungen im Template kommentieren! Name des Templates ggfs. ändern Nach Contao-Update: Kopie mit Original vergleichen Ändern? Nur wenn es wirklich sein muss.
35. Funktionen Funktionen: Interaktive Bestandteile der Site Automatisch generierte Navigationen Kontakt- und Bestellformulare Such- und Kommentarfunktionen Passwortgeschützte Bereiche Forum, Umfrage, Shop u. v. m. Funktionen benötigen Programmierung Bordmittel oder Erweiterung Ausgabe per Frontend-Modul
36. Best Practice – Funktionen Gewünschte Funktionen auflisten Prioritäten für Funktionen vergeben A = ohne geht nicht B = wäre schön, kann aber auch ohne losgehen C = irgendwann, irgendwie, irgendwo Möglichkeiten zur Umsetzung analysieren Mit Bordmitteln von Contao? Bestehende Erweiterung geeignet? Erweiterung programmieren (lassen)? Frontend-Module Aussagekräftige Namen vergeben Hauptnavigation und Metanavigation
37. Also known as "Extensions" Best Practice: Erweiterungen
38. Best Practice – Erweiterungen Less is More Pflegeaufwand Funktionen mit Priorität A nur bewährte Erweiterungen Entwicklung gewährleistet? Erweiterungen beeinflussen sich gegenseitig kann man inaktiv stellen Probleme? Überlegen Im Forum suchen Im Forum fragen
39. Beispiel: Funktion "Breadcrumb" 1. Versuch: Modul "Navigationspfad" "Startseite" nicht am Anfang DIV mit ein paar Links darin – nicht sonderlich semantisch 2. Versuch: Erweiterung [wf_extendedBreadcrumb] Perfekt: Mit "Startseite" und als UL nach Update Probleme mit Umlauten Im Forum gesucht und gefragt => Problem gelöst Und was ist nach dem nächsten Update?
40. Beispiel: Funktion "Breadcrumb" Mein Kompromiss für den Alltag Verzicht auf die ungeordnete Liste im HTML "Startseite" durch Änderung im Template mod_breadcrumb.tpl
45. Inhalt. Content. Inhalt ist der Grund, warum Besucher kommen Vier Arten von Content Text Bilder Audio Video Ein Content-Management-System sollte die Verwaltung von Inhalt vereinfachen ermöglicht die Pflege von Inhalt ohne technische Kenntnisse
51. Best Practice: Dateiverwaltung Konsistente Schreibweise von Namen Kleinbuchstaben keine Umlaute und Sonderzeichen keine Leerstellen stattdessen Unter- oder Bindestriche Aussagekräftige Dateinamen produktname.jpg ist besser als DSC_00234.jpg
52. Best Practice: Ordnerstruktur Ordnerstruktur abhängig vom Einzelfall Anforderungen bezüglich Inhalte Anforderungen bezüglich Benutzer
54. Everybody wants to build and nobody wants to do maintenance. Kurt Vonnegut Nach dem Launch
55. Wartung – Backup MySQL-Datenbank mit allen Daten SQL-Export mit phpMyAdmin Erweiterung [BackupDB] Dateien und Ordner auf dem Webspace per FTP Besonders wichtig sind im Ordner system/config/ localconfig.php dcaconfig.php langconfig.php initconfig.php der Ordner tl_files der Ordner templates Tools vom Webhoster?
56. Wartung – Update Das Live Update Dienstleistung von iNetRobots Eine Live Update ID: ca. 9,90 Euro für eine Domain und ein Jahr Mehrere Domains günstiger: z. B. 10 Domains = plus 16 Euro Erweiterung [easyupdate] Manuelles Update per FTP Contao-ZIP entpacken Contao-ZIP vorbereiten Konfig-Dateien löschen /templates/ und /tl_files/ löschen Contao-ZIP hochladen Install-Tool starten
58. Wartung – Statistiken (2) Piwik - Open source web analytics Installation auf dem eigenen Webspace Download von piwik.org Integration in Contao mit Erweiterung [PiwikTrackingTag]
59. Wartung – Statistiken (3) Google Analytics Integration in Contao einfach Kostenlos: Daten liegen auf Googles Server Kostenpflichtig: Der Kaffee beim Besuch des Datenschutzbeauftragen
60. Vielen Dank für Ihre Aufmerksamkeit. 道 ck2011.think-contao.de