Contao in Zahlen

Aktuelle Kennziffern rund um Contao

Downloads

Am 18.05.2015 war Contao 1.038.049 Mal heruntergeladen worden.

Woher kommt die Zahl?

  • 831.017 Downloads von sourceforge.net bis zum 30. August 2013
  • Seitdem Zählen der Aufrufe der URL download.contao.org
    • Contao-Check-Installer
    • Download-Button auf contao.org
  • Downloads direkt von GitHub können nicht erfasst werden
  • Überschreiten der 1.000.000-Marke Ende Januar 2015
L

Webseiten

Aktuell gibt es knapp 70.000 Webseiten, die mit Contao laufen.

Woher kommt die Zahl?

  • Die Webseite CMSCrawler hatte am 11.09.2014 weltweit 69.503 Contao-Installationen registriert
  • Laut Log-Datei des Live-Update-Servers ist diese Zahl realistisch

Neuerdings zeigt CMSCrawler nur noch 28.131 Installationen an, wobei auch die Zahl der insgesamt indizierten Systeme von 65.849.666 auf 47.846.594 gesunken ist. Laut Log-Datei des Live-Update-Servers sind um die 70.000 Webseiten weiterhin realistisch.

L

Marktanteil

Contao liegt bei CMSCrawler auf Platz 12 (ehemals 16) von 770 Systemen.

Marktanteile

  • Deutschland: Platz 6 (ehemals 8), 2,02% Marktanteil
  • Österreich: Platz 5 (ehemals 6), 2,39% Marktanteil
  • Schweiz: Platz 6 (ehemals 8), 1,80% Marktanteil
L

Beliebtheit

In der Webworker-Umfrage 2014 lag Contao mit 23% auf Platz 3 der beliebtesten Content-Management-Systeme.

Die Top 5

  • 62% nutzen Wordpress
  • 27% nutzen TYPO3
  • 23% nutzen Contao
  • 15% nutzen Drupal
  • 9% nutzen Joomla

* Hinweis: Summe größer 100%, da Mehrfachnennungen möglich waren.

L

Contao 3.5

Die neue Long-Term-Support-Version

Contributors

Diese Leute haben an Contao 3.5 mitgewirkt:

L

PHP 5.4

Neue Systemvoraussetzung: PHP 5.4 oder größer.

Short-Open-Tags

  • Das Short-Tag <?= ist standardmäßig verfügbar
  • <?= ist die Kurzform von <?php echo
  • Short-Tags erhöhen die Lesbarkeit der Templates
L

Short-Open-Tags

Bisher

<div class="<?php echo $this->class; ?>">
  <h1><?php echo $this->headline; ?></h1>
  <p class="<?php echo $this->cssClass; ?>"><?php echo $this->content; ?></p>
</div>

Neu

<div class="<?= $this->class ?>">
  <h1><?= $this->headline ?></h1>
  <p class="<?= $this->cssClass ?>"><?= $this->content ?></p>
</div>
L

Templates vergleichen

Die neue Diff-Ansicht für Templates ermöglicht den Vergleich eines angepassten Templates mit dem Original.

Features

  • Anzeige des Pfads zum Originaltemplate
  • Diff-Ansicht des angepassten und des Originaltemplates
  • Vergleich mit anderen Templates derselben Gruppe
L

Passwort ändern

Es wurde ein neues Frontend-Modul "Passwort ändern" hinzugefügt.

Features

  • Bisher Änderung des Passworts über das Modul "Persönliche Daten"
  • Das alte Passwort wurde nicht abgefragt
  • Im Modul "Passwort ändern" wird zusätzlich zum neuen auch das alte Passwort abgefragt
L

Shift-Klick-Select

Durch Halten der Shift-Taste beim Auswählen der Datensätze im Modus "mehrere bearbeiten" können mehrere aufeinanderfolgende Reihen auf einmal ausgewählt werden.

Features

  • An- oder Abwahl mehrerer Reihen auf einmal
  • Klick entweder auf die Checkbox oder auf die Reihe
L

Newsletter-Abonnenten

Bisher konnten Newsletter-Abonnenten nicht zwischen Kanälen verschoben oder kopiert werden, weil nicht klar war, ob dies den Double-Opt-In-Anforderungen genügt.

In Contao 3.5 ist dies nun möglich, allerdings wird dabei der Status des Abonnenten auf "manuell hinzugefügt" geändert.

L

Model-Registry

Durch eine Anpassung der Model-Registry konnte die Anzahl der Datenbank-Abfragen reduziert werden.

Features

  • Unique Fields werden im DCA-Extractor registriert
  • Bei der Abfrage über ein Unique Field wird intern über den Primärschlüssel gesucht
  • Dadurch können bereits registrierte Models gefunden und geladen werden
  • Besonders relevant ist die Änderung für die Klasse FilesModel
L

Datenbank-Indizes

Durch die Anpassung etlicher Datenbank-Indizes sowie die Rundung der Zeitstempel konnten viele Datenbank-Abfragen optimiert werden.

Features

  • Typ-kompatible Vergleiche wie z.B. WHERE published='1'
  • Kombinierte Indizes wie z.B. pid,ptable,invisible,sorting
  • Rundung der Zeitstempel auf Minuten:
$time = Date::floorToMinute();

$query = "... WHERE (start='' OR start<='$time')"
       . " AND (stop='' OR stop>'" . ($time + 60) . "')"
L

IDE-Kompatibilität

Durch den exzessiven Einsatz von phpDoc-Kommentaren konnte die IDE-Kompatibilität soweit verbessert werden, dass alle Klassen und Properties nun als Links erkannt werden.

/**
 * @property integer $id
 * @property integer $tstamp
 * @property string  $username
 *
 * @method static $this findById()
 * @method static $this findByPk()
 * @method static $this findByIdOrAlias()
 *
 * @method static \Model\Collection|\UserModel findByTstamp()
 * @method static \Model\Collection|\UserModel findByName()
 * @method static \Model\Collection|\UserModel findByEmail()
 */
L

Fehlerseiten

Die Handhabung von Fehlerseiten wurde dahingehend geändert, dass nun für jede Art von 404er-Fehler die 404er-Seite gerendert wird.

Mögliche Fehler

  • Ungültiger Seitenalias
  • Ungültiger News-/Eventalias
  • Ungültiger Auswahl im Seitenwähler
  • Ungültiges Datum
L

Release-Hinweise

Contao 3.5 ist die neue Long-Term-Support-Version.

Änderungen

  • Contao 3.2 geht in die 6-monatige Übergangsphase
  • Contao 3.4 erreicht sein End-of-Life
  • Contao 3.5 mit erweitertem Support bis Mai 2017

3.5.0 stable

Die finale Version 3.5.0 erscheint in der Woche nach der Konferenz.

L

Contao 4.0

Die neue Contao-Version mit Symfony

Contributors

Diese Leute haben an Contao 4.0 mitgewirkt:

L

Symfony

Ja, Contao 4 läuft jetzt mit Symfony. Allerdings ist die Symfony-Umstellung nicht das einzige neue Feature in Contao 4!

Features

  • Integration von schema.org-Tags
  • Konsolidierung des Markups aller Formularfelder
  • Konsolidierung der CSS-Klassen und Widgets
  • Verbesserte TinyMCE-Konfiguration
  • Wegfall alter Resourcen (Safe-Mode-Hack, XHTML, etc.)
  • Und einiges mehr
Y

Doch zunächst

Warum?

Warum wir uns dafür entschieden haben, Contao umzubauen und auf ein externes Framwork umzustellen.

Grundproblem

  • Es gibt zu wenig Contao-Entwickler
  • Seit Contao 3.0 im Oktober 2012 sind nur wenig neue Features für Entwickler hinzu gekommen
  • In der PHP-Welt haben sich jedoch viele neue Trends etabliert:
    • Paketverwaltung (Composer)
    • Kontinuierliche Integration (PHPUnit, Travis)
    • Professionalisierung (Scrutinizer, SensioLabsInsight)
Y

Anforderung

Entwickler möchten zeitgemäß arbeiten und diese neuen Technologien nutzen können.

Lösung

  • Symfony als neue Code-Basis
  • Viele der neuen Tools sind standardmäßig integriert
  • Symfony ist weit verbreitet und sehr gut dokumentiert
  • Aktuell gibt es über 2.500 Symfony-Bundles
Y

Ergebnis

Contao 4 ist jetzt ein Symfony-Bundle, das zu jeder beliebigen Symfony-Applikation CMS-Funktionalität hinzugefügen kann.

Vorteile

  • Das "Endprodukt" bleibt eine Symfony-Applikation
  • Dadurch kann jeder Symfony-Entwickler jetzt auch mit Contao arbeiten
  • Der neue Code ist getestet und folgt den Symfony-Standards
Y

Synergie-Effekt

Contao 4 ist für alle interessant, die CMS-Funktionalität in ihrer Symfony-Applikation benötigen.

Erwartung

  • Contao etabliert sich als Alternative zu den bekannten Symfony CMS-Lösungen wie z.B. Redkite oder SimpleCMS
  • Agenturen, die bereits mit Symfony arbeiten, nehmen Contao aus diesem Grund in ihr Portfolio auf
  • Die Entwickler der Agenturen arbeiten sich in Contao ein, was letztlich zu neuen Contao-Entwicklern führt
Y

Neue Features

TinyMCE-Templates

Die TinyMCE-Konfigurationsdateien sind nun echte Templates, die über den Template-Editor bearbeitet werden können (z.B. be_tinyMCE.html5).

Vorteile

  • Bearbeiten über das Backend möglich
  • Änderungen werden updatsicher gespeichert
  • Keine DCA-Anpassung beim Überschreiben der Standard-Templates mehr notwendig
Y

schema.org

Einheitliche Auszeichnungssprache zur Kennzeichnung von Inhalten auf Webseiten, damit diese von Suchmaschinen leichter erkannt werden.

Vorteile

  • Suchmaschinen können die Inhalte besser indexieren
  • Informationsmehrwert innerhalb der Suchergebnisse bei der Verwendung von Rich-Snippets mit schema.org
  • Auszeichnungen sind standardmäßig in Contao 4 integriert
Y

Template-Konsolidierung

Das Markup aller Templates wurde konsolidiert, so dass wiederkehrende Elemente immer gleich gerendert werden.

Vorteile

  • Einfacheres CSS-Styling mit weniger Anweisungen möglich
  • Einfachere Integration von externen CSS-Frameworks (z.B. Bootstrap)
Y

Formularfelder

Formularfelder haben nun systemweit ein einheitliches Markup:

<div class="widget widget-text">
  <label for="ctrl_16">Name</label>
  <input type="text" name="name" id="ctrl_16" class="text">
</div>

Formulare werden jetzt mit dem button-Element abgeschickt:

<div class="widget widget-submit">
  <button type="submit" id="ctrl_17" class="submit">Abschicken</button>
</div>
Y

Tableless

Die Einstellung "tableless" wurde entfernt, da alle Templates nun immer ein tabellenloses Layout verwenden.

form.css

  • Neues Stylesheet "Formulare" im Seitenlayout
  • Standardmäßige Formatierung: Labels oberhalb der Felder
  • Mit CSS-Klasse horizontal-form: Labels links neben den Feldern
  • Mit CSS-Klasse inline-form: alle Felder in einer Zeile
Y

Include-Elemente

Bei Verwendung eines Include-Elements, das ein anderes Element einbindet, werden die CSS-Klassen jetzt zusammengeführt.

Beispiel

  • Inhaltselement A mit der CSS-Klasse elemA bindet das Frontend-Modul B mit der CSS-Klasse elemB
  • In Contao 3 erhält das Element nur die CSS-Klasse elemA
  • In Contao 4 erhält das Element jedoch beide Klassen: elemA elemB
Y

Include-Elemente

Folgendermaßen können die Elemente mittels CSS angesprochen werden:

.elemA {
    /* Nur das Inhaltselement */
}

.elemB {
    /* Inhaltselement und Frontend-Modul */
}

.elemB:not(.elemA) {
    /* Nur das Frontend-Modul */
}
Y

Document-Root

Einführung des Unterordners /web, in den alle öffentlichen Ressourcen verlinkt werden müssen (Symlinks).

Vorteile

  • Kein Verzeichnisschutz mittels .htaccess mehr
  • Dadurch Aufhebung der Bindung an den Apache-Webserver

Bei den meisten Providern kann man im Administrationsbereich festlegen, auf welchen Ordner auf dem Server eine Domain verweist. Dieser dann über die Domain erreichbare Ordner ist das Document-Root.

Y

Öffentliche Ordner

Durch die Umstellung auf den Unterordner als Document-Root ändert sich auch die Logik für öffentliche Ordner:

Bisher

  • Files-Ordner standardmäßig öffentlich
  • Unterordner müssen geschützt werden

Neu

  • Files-Ordner standardmäßig geschützt
  • Unterordner müssen freigegeben werden
Y

Beispiel

    <-- Standardmäßig geschützt

    <-- Öffentlicher Unterordner
    <-- Unterordner sind automatisch auch öffentlich!
    <-- Öffentlicher Unterordner
    <-- Öffentlicher Unterordner
    <-- Öffentlicher Hauptordner (optional)
Y

Aufräumarbeiten

Folgende veraltete Features wurden in Contao 4 entfernt:

Entfernt

  • Safe-Mode-Hack
  • XHTML-Unterstützung
  • IE6-Warnung
  • Abstand davor/danach
Y

Release-Hinweise

Update von Contao 3

Aktuell ist das Contao 4-Update im Installtool, das die Datenbank aktualisiert, nicht vollständig. Deshalb:

Aktuell ist noch kein Update von Contao 3.* auf Contao 4 möglich!

Verwendung von Contao 4

  • Vorerst nur für neue Projekte
  • Nur wenn die noch fehlenden Features kein Problem sind
  • Composer-Nutzung (Kommandozeile) vorausgesetzt
Y

Semantische Versionierung

Beginnend mit Contao 4 verwenden wir semantische Versionierung.

Regeln

  • Bugfix-Releases dürfen nur rückwärtskompatible Fixes enthalten
  • Minor-Releases können rückwärtskompatible neue Features enthalten
  • Jede inkompatible API-Änderung muss als neue Major-Version veröffentlicht werden
Y

Auswirkung

Da per Definition jede inkompatible API-Änderung als neue Major-Version veröffentlicht werden muss, kann es sein, dass Contao 5 wesentlich früher kommt, als es der bisherige Release-Zyklus vermuten lässt!

Wir empfehlen daher allen Autoren, ihre Bücher oder Videos nicht mit dem Zusatz "… mit Contao 4" zu betiteln, da es im ungünstigsten Fall sein könnte, dass bis zur Veröffentlichung bereits Contao 5 erschienen ist.

Stattdessen wäre die Formulierung "kompatibel ab Contao 4" denkbar.

Y

Release-Zyklus

Die nächsten Releases-Termine sind wie folgt:

Termine

  • Contao 4.0.0 - Mai 2015
  • Contao 4.1.0 - November 2015
  • Contao 4.2.0 - Mai 2016
  • Contao 4.3.0 LTS - November 2016
Y

contao.org

Relaunch der Projektwebseite

Contributors

Diese Leute haben am Relaunch der Projektwebseite mitgewirkt:

L

Projekt

Ziel des Projektes ist der Relaunch der Projektwebseite contao.org.

Konzept

  • Zielgruppe der Webseite sind Entscheider
  • Reduziertes Design, dadurch mehr Fokus auf die Inhalte
  • Ganzheitlicher Überblick über das Contaoversum
    • Auflistung aller bestehende Kanäle
    • Auflistung aller Termine (offizielle, Community, Schulungen etc.)

Mit dem Design der Webseite haben wir die Agentur TOZEN beauftragt, einen langjährigen Premium-Partner.

K

Herausforderung

Die größte Herausforderung war es, die zahlreichen Inhalte in der verfügbaren Zeit durchzusehen und neu zu strukturieren.

Weitere Herausforderungen

  • Viele Inhalte in ein reduziertes Design zu bringen
  • Koordination aller Beteiligten (Agentur, Redakteure, Übersetzer, Programmierer)
  • Migration der bestehenden Dienste (ER2, Partnerliste etc.)
K

International

Neben der bereits vorhandenen deutschen und englischen Übersetzung ist die Projektwebseite nun auch in Spanisch verfügbar.

Übersetzt wurde

  • Die komplette Seitenstruktur
  • Alle Inhalte
  • Alle Erweiterungen (ER2, Partnerliste etc.)

Es ist geplant, die Webseite noch in weitere Sprachen zu übersetzen, sofern wir die entsprechenden Helfer finden.

K

Dokumentation

Die neuen Gitbooks auf docs.contao.org

Contributors

Diese Leute haben an der Dokumentation mitgewirkt:

L

Problematik

Die bisherige Lösung, nämlich die Integration der Dokumentation in die Projektwebseite, hat einige gravierende Nachteile.

Nachteile

  • Bindung an die Contao-Installation
  • Umständliche Navigation innerhalb des Handbuches
  • Limitiert auf die Sprachen der Webseite
  • Kein Bereich für allgemeine Informationen
A

Tools

Wir haben uns etliche Tools wie z.B. Read the Docs, GitBook oder Sphinx angesehen und miteinander verglichen.

Anforderungen

  • Übersicht der verfügbaren Ressourcen
  • Bestehenden Quellcode möglichst weiter verwenden
  • Lesbarkeit erhöhen (Navigation, responsive Design)
A

GitBook

Wir haben uns schließlich für GitBook entschieden.

Vorteile

  • Open Source
  • Beliebige Anzahl an Sprachen möglich
  • Generiert eine HTML- und eine PDF-Version
  • Integration der bisherigen Ressourcen (Git und Markdown)
  • Automatische Prüfung und Veröffentlichung von Änderungen
A

Erweiterbar

GitBook lässt sich sehr gut anpassen und erweitern.

Ressourcen

  • Plugins
  • Eigene Templates
  • Eigene Markup-Tags
  • Integration von disqus.com (Diskussions-Plattform)
A

Zukunft

Die Pflege der Doku erfolgt weiterhin auf GitHub unter contao/docs.

Helfer gesucht

  • Aktualisierung der Inhalte
  • Erstellen weiterer Übersetzungen
  • Erweiterung der Entwickler-Doku
A

Schlusswort

Was es noch zu sagen gibt

Noch Fragen?

Vielen Dank für die Aufmerksamkeit