Bevor es richtig losgeht
Bevor es richtig losgeht
// Aktuelle Stable als .tar.gz https://download.contao.org // Aktuelle Stable als .zip https://download.contao.org/zip // Bestimmte Version als .zip https://download.contao.org/3.3.RC2/zip // Download und Installation in einem Schritt curl -L https://download.contao.org/3.2.9 | tar -xzp
build.xml
composer.json
composer.lock
vendor
-VerzeichnisDas Contao-Kochbuch ist als Ergänzung zum Contao-Handbuch gedacht und dokumentiert häufige Anwendungsfälle aus der Praxis.
Im Februar und April 2014 wurden zwei schwere Sicherheitslücken in Contao entdeckt, die das Ausführen von beliebigem Code auf dem Server ermöglicht haben (Arbitrary Code Execution).
system/config/pathconfig.php
Auch bei anderen Projekten wurden in diesem Jahr teilweise erhebliche Sicherheitslücken gefunden:
goto fail;
Blick auf die nächste Contao-Version
Der Layout-Builder erstellt in Contao 3 standardmäßig ein responsives
Layout, das in der Datei layout.css
definiert wird.
layout.css
erstellt ein statisches Layoutresponsive.css
macht das Layout optional responsivAlle Templates, die bisher fest mit einem Element verbunden waren, können nun bei Bedarf überschrieben werden.
Template-Vererbung bietet die Möglichkeit, bestimmte Teilbereiche eines Templates zu überschreiben, anstatt das Template komplett zu ersetzen.
$this->extend()
legt fest, welches Template beerbt wird$this->block('name')
markiert den Anfang des Blocks$this->parent()
fügt die Ausgabe des Originalblocks ein$this->endblock()
markiert das Ende des BlocksBlöcke erlauben das Überschreiben von HTML-Markup. Sie werden nicht benötigt, um den Inhalt von PHP-Variablen anzupassen.
Blöcke können bei Bedarf ineinander verschachtelt werden.
<?php $this->extend('fe_page'); ?> <!-- Meta-Tag hinzufügen --> <?php $this->block('meta'); ?> <?php $this->parent(); ?> <meta name="author" content="Leo Feyer"> <?php $this->endblock(); ?> <!-- Linke Spalte leeren --> <?php $this->left = ''; ?> <!-- Zeichensatz der Seite ändern --> <?php $this->charset = 'ISO-8859-1'; ?>
<tr><td>
bzw. <div>
)<?php if (!$this->tableless): ?> <tr class="<?php echo $this->rowClass; ?>"> <td class="col_0 col_first"><?php echo $this->generateLabel(); ?></td> <td class="col_1 col_last"><?php echo $this->generateWithError(); ?></td> </tr> <?php else: ?> <?php echo $this->generateLabel(); ?> <?php echo $this->generateWithError(); ?><br> <?php endif; ?>
Im Debugmodus wird der Anfang und das Ende jedes Templates mit einem unsichtbaren Kommentar im Quelltext der Webseite markiert.
Im Seitenlayout eingebundene externe Stylesheets können nun auch vom
Typ .scss
oder .less
sein.
.scss
- und .less
-Dateien@import
möglich.scss
-Dateien in den Theme-Ordner@import
-AnweisungEditierbare Dateien werden ab sofort vollständig versioniert, d. h. nicht nur die Metadaten sondern auch der Dateiinhalt.
$this->sections()
Das Backend lässt sich nicht so eben mal responsiv machen.
Diese Aussage ist korrekt, denn "responsiv" beinhaltet mehr als nur die Anpassung an unterschiedliche Bildschirmgrößen. Es müssten z. B. auch gerätespezifischen Bedienkonzepte berücksichtigt werden.
Daher heißt das Theme auch nicht "responsive" sondern "flexible".
Die flexible Anpassung an verschiedene Endgeräte macht das Backend zwar nicht vollständig responsiv, aber sehr wohl bedienbar.
Die Pfade der sortierbaren Dateien z. B. im Downloads-Element werden nun verkürzt dargestellt, um die Übersichtlichkeit zu erhöhen.
Alternativ zum "Anzeigen"-Dropdown-Menü steht im Backend jetzt auch ein Seitenwähler zur Verfügung.
Der Rich-Text-Editor "TinyMCE" hat ein Major-Update auf die aktuelle Version 4 erhalten.
Bildpfade in TinyMCE werden automatisch mit dem "file"-Inserttag ersetzt, das die entsprechende UUID enthält.
Ein neuer, alternativer Datei-Uploader erlaubt das Hochladen von Dateien in der Dateiverwaltung mittels Ziehen und Ablegen.
Analog zur Funktion "Benutzerwechsel" im Backend lässt sich die Frontend-Vorschau nun direkt als ein bestimmtes Mitglied aufrufen.
Die in der Frontend-Vorschau gewählte Seite kann nun optional über den "url"-Parameter geändert werden.
Ein neues Inhaltselement erlaubt das Schreiben von Markdown, welches bei der Ausgabe im Frontend in HTML-Code umgewandelt wird.
Zwei neue Kommandozeilen-Skripte erlauben die Ausführung der Wartungsjobs sowie der Dateisynchronisation auf der Kommandozeile.
Womit bei Contao die alternative Erweiterungsverwaltung auf Basis von Composer gemeint ist, die momentan in der Beta-Testphase steckt.
Die Installation des Composer-Clients erfolgt über das Extension Repository. Dort steht aktuell die Version 0.9.0 zur Verfügung.
Wie geht es weiter?
Wir wollen versuchen, Contao auf Symfony umzustellen. Es ist jedoch nicht klar, ob wir genug Zeit und Manpower dafür haben.
Hinzu kommt, dass bei einem kompletten Neuanfang auch das ganze Ökosystem angepasst werden muss.
Es wird kein Neuanfang mit hartem Schnitt geben.
Um trotzdem nicht auf die Vorteile von Symfony verzichten zu müssen, werden wir Symfony systemnah in Contao integrieren und nach und nach das Contao-Framework auf die Symfony-Komponenten umstellen.
Ein erster Entwurf dieser Variante ist bereits im Zweig feature/contao-with-symfony auf GitHub zu sehen.
In einem öffentlichen Call am 24. April haben wir uns auf folgende nächste Schritte geeinigt:
Contao mit Symfony wird voraussichtlich im Mai 2015 als Contao 4 veröffentlicht, zusammen mit der LTS-Version Contao 3.5.
Wir wollen zunächst sehen, ob und wie sich unser Vorhaben implementieren lässt und ob diese Implementierung dann auch für die Mehrheit der Entwickler sinnvoll nutzbar ist.
Der Relaunch der Projektwebseite contao.org wird in Zusammenarbeit mit einer Contao-Partneragentur durchgeführt.
Vielen Dank für die Aufmerksamkeit