Your SlideShare is downloading. ×
0
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
"Best Practices" in Contao
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

"Best Practices" in Contao

11,184

Published on

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, …

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?

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
11,184
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×