• Save
"Best Practices" in Contao
Upcoming SlideShare
Loading in...5
×
 

"Best Practices" in Contao

on

  • 10,911 views

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?

Statistics

Views

Total Views
10,911
Views on SlideShare
8,954
Embed Views
1,957

Actions

Likes
2
Downloads
0
Comments
0

8 Embeds 1,957

http://www.ck2011.think-contao.de 855
http://www.ck2012.think-contao.de 602
http://ck2011.think-contao.de 372
http://jachen.carl.ch 88
http://ck2012.think-contao.de 28
http://www.slideshare.net 6
url_unknown 5
http://translate.googleusercontent.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

"Best Practices" in Contao "Best Practices" in Contao Presentation Transcript

  • Workshop»Best Practice« mit Contao
    Thomas Weitzel think-contao.de
    Peter Müller pmueller.de

    2. Juni2011
    15 bis 17 Uhr
  • Kurzvorstellung
    Peter Müller
    Thomas Weitzel
    pmueller.de
    think-contao.de
  • Tao

    Der Weg. Der Sinn. Das Prinzip.
  • Contao

    Der Schöpfer. Content erzeugen.
  • Kommt drauf an...
    Kommt drauf an...
    Wie macht man das am Besten?
    Kommt drauf an...
    Best Practice
    Kommt drauf an...
  • 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.
  • Das Projekt "Website" im Überblick
    Installation
    1
    Layout
    Funktionen
    Inhalte
    2
    3
    4
    Wartung
    5
  • Inhaltsübersicht
  • Webspace testen mit Contao Systemcheck
    1
    2
  • 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.
  • 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
  • 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
  • Versuchen Sie keinesfalls, das Problem durch eine Änderung der Dateiberechtigungen zu lösen!
    Contao System Check
  • 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
  • Inhaltsübersicht
  • Layout
    Layout bestimmt das Erscheinungsbild der Site
    Struktur der Seiten
    Kopfbereich
    Navigationsbereiche
    Inhaltsbereiche
    Fussbereich
    Farbschema
    grafische Elemente (Logo und Deko)
    Typographie
  • Der Contao Röntgenblick
    Layout analysieren
  • 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
  • Kopfzeile (#header)
    Hauptspalte (#main)
    Fusszeile (#footer)
  • Kopfzeile (#header)
    Inhaltselement Text (#main)
    Inhaltselement Galerie (#main)
    Inhaltselement Text .g6 (#main)
    Inhaltselement Bild.g3 (#main)
    Inhaltselement Nachrichtenliste.g3 (#main)
    Inhaltselement Tabelle.g6 (#main)
    Inhaltselement Text .g4 (#footer)
    Inhaltselement Text .g4 (#footer)
    Inhaltselement Text .g4 (#footer)
    Inhaltselement HTML Code .g12 (#footer)
  • Mit Wurzel und Startpunkt
    Seitenstruktur
  • Seitenstruktur
    • Immer definieren
    Startpunkt
    Sprachen-Fallback
    1
    2
  • Ohne Startpunkt einer Website
    Mit Startpunkt einer Webseite
  • Ändern? Nur wenn es wirklich sein muss.
    Templates
  • "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
  • Template – Definition
    Contao
    -
    Handbuch
    Beispiel
    AnderesWort
    Frontend
    -
    Template
    music_academy.sql
    Website
    -
    Template
    Layouts
    fe_page.tpl
    Seitentemplate
    Views
    mod_newslist.tpl
    Modultemplate
    Partials
    layout_short.tpl
    Subtemplate
  • 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
  • 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
  • Templates ändern (Worst Case)
    Templates im Systemordner
    Im Editor öffnen und ändern.
    Speichern.
    Funktioniert. Scheinbar.
    Nachteile
    Umständlich
    Gefährlich
    Nicht update-sicher
  • Template ändern (Best Practice)
    2
    1
  • 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.
  • Inhaltsübersicht
  • 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
  • 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
  • Also known as "Extensions"
    Best Practice: Erweiterungen
  • 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
  • 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?
  • Beispiel: Funktion "Breadcrumb"
    Mein Kompromiss für den Alltag
    Verzicht auf die ungeordnete Liste im HTML
    "Startseite" durch Änderung im Template mod_breadcrumb.tpl
  • Funktion: Die editierbare Fußzeile
  • Normale Fußzeile: HTML im Modul
    Der normale Weg
    Modul "Eigenes HTML" erstellen
    HTML pur reinschreiben
  • Editierbare Fußzeile: Versteckter Artikel
    Im Artikelbaum versteckten Artikel erstellen
    Versteckten Artikel per Insert-Tag im Modul einbinden
  • Inhaltsübersicht
  • 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
  • Inhaltselemente benutzen
    Inhalte erstellen
  • Inhalte erstellen – Beispiel
  • Inhalte erstellen (Worst Case)
    Alles in ein Element
    schlecht zu pflegen
    fehleranfällig
    Formatierung schwierig
    Tabellen
    Bilder
    aber oft Gewohnheit
  • Inhalte erstellen (Best Practice)
    Divide et impera
    Inhaltselementebenutzen
    Element für 1. Überschrift
    EinteilungnachInhalt
    Formatierung einfacher
    Tabellen / Bilder
    per Fernsteuerung
  • Dateiverwaltung mit System
    System – Dateiverwaltung
  • 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
  • Best Practice: Ordnerstruktur
    Ordnerstruktur abhängig vom Einzelfall
    Anforderungen bezüglich Inhalte
    Anforderungen bezüglich Benutzer
  • Inhaltsübersicht
  • Everybody wants to build and nobody wants to do maintenance.
    Kurt Vonnegut
    Nach dem Launch
  • 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?
  • 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
  • Wartung – Statistiken (1)
    Erweiterung [visitors]
    Besucherzähler
    Zugriffszähler
  • Wartung – Statistiken (2)
    Piwik - Open source web analytics
    Installation auf dem eigenen Webspace
    Download von piwik.org
    Integration in Contao mit Erweiterung [PiwikTrackingTag]
  • Wartung – Statistiken (3)
    Google Analytics
    Integration in Contao einfach
    Kostenlos: Daten liegen auf Googles Server
    Kostenpflichtig: Der Kaffee beim Besuch des Datenschutzbeauftragen
  • Vielen Dank für Ihre Aufmerksamkeit.

    ck2011.think-contao.de