CMS: Contao 3


Contao 3 Support endete 07/2019!

Migration von Contao 3 auf Contao 4:

1. Contao 4.5 aufsetzten
  - Verzeichnis mit Unterverzeichnis "web/" anlegen und Domain darauf zeigen lassen
  - Download: contao-manager.phar.php in /web kopieren
  - im Browser aufrufen
  - Contao Manager Account anlegen
  - Systemcheck
  - Installer starten
2. Daten aus Contao 3 in die Struktur von conato 4 kopieren
  Ordner "templates/", "files/", "system/config/localconfig.php", "system/modules/" und ggf. "asstets/css/" von der bestehenden Contao 3 Installation in die Contao 4 Installation kopieren.
3. Benötigte Erweiterungen und Module mit dem Contao-Manager oder direkt via Composer installieren (die Module können im Contao-Manager oder auf packagist.org gesucht werden).
4. DB(4) löschen und die DB von Contao 3 (tl_) importieren
  Oder einfach DB3 (nach Backup!) der neuen Version4 anhängen
5. Install.tool in domain.tld/contao/install öffnen, Installpw vergeben oder eingeben.
Datenbank-Aktualisierungen durchführen (auch vorgeschlagene Tabellen und Spalten löschen).
  - bei MySQL Server V.< 5.7.7 oder MariaDB Version < 10.2: app/config/config.yml  wie angezeigt anlegen.
    - dann Contao Manager starten: Rebuild Cache
    - dann Installer neu aufrufen
6. Ins Backend einloggen: http://my-site.local/contao/login
  - Dateiverwaltung: Ordner, die öffentlich sein müssen, auf "öffentlich" setzen (falls Bilder nicht dargestellt oder Styles nicht geladen werden)
  - Einstellungen überprüfen.
    Einstellungen wie Datenbank-Verbindung oder SMTP werden neu in der app/config/parameters.yml gespeichert.
    Seitennaufruf ohne ".html" wird jetzt in app/config/config.yml gespeichert.
7. ggf. Probleme beseitigen: (CSS anpassen: span wurde zu strong!)
8. Cache via Contao-Manager oder via Console löschen

vendor/bin/contao-console cache:clear

Weiter bitte nur noch mit Contao 4.

 


Mit (kostenpflichtiger) Liveupdate - Funktion.

Vorgehensweise:

Seitenstruktur erstellen.
 1. Ebene: Typ= Startpunkt der Webseite.
 Unterebenen: Typ= Reguläre Seite.
Startseite Seitenalias= "index" vergeben. Dann wird die Startseite ohne Alias angezeigt.

Theme erstellen. Das Theme kann beliebig Unterthemes für einzelne Seiten enthalten.
 - Verzeichnis für Theme-Files unter /Files/ (sog. Contao -Dateisystem, kann unter "Einstellungen" angepasst werden) anlegen und konfigurieren.
 - Seitenlayout bearbeiten: neues Layout anlegen. (Kopf, Fuß, Spalten, Maße..)
 - Theme: Frontend-Modul erstellen, Navigation, Typ Navigationsmenue.
 - Theme: Frontend-Modul erstellen, Kopfzeile, Typ Zufallsbild, Pfad für Bild(er) eingeben.

Themes / Seitenlayout / Layout bearbeiten / Eingebundene Module hinzu fügen:
 - Modul "Kopf" in Kopfzeile, "Fuss" in Fußzeile

Seitenstruktur: allen Seiten das neue Layout zuweisen.

Neuen Artikel in der Startseite anlegen.
  Diesen Artikel(kopf) bearbeiten. Neues Element erstellen. Das ist der eigentliche Text.
  Es können mehrere Elemente in der Seite positioniert werden.

Im Theme ein neues CSS anlegen. In dem CSS neue Formulardefinition anlegen.
Es können mehrere CSS und darin mehrere Formulardefinitionen festgelegt werden.
Neues CSS dem Layout hinzu fügen.
  CSS: #bla spricht ID an, .bla spricht Class an.

/index.php/ aus URLs nachträglich entfernen:
1. Unter "System > Einstellungen > Frontend Einstellungen" den Haken bei "URLs umschreiben" setzen.
2. URL-Suffix von ".html" in "/" ändern.
Erst wenn Punkt 1 und 2 geändert sind:
3. Datei .htaccess.default in .htaccess umbenennen.
  Zeile: RewriteRule .*\.html$ index.php [L] # URL suffix .html
 ersetzen durch:

 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !contao
 RewriteRule .*\/$ index.php [L]
 RewriteRule (.+)\.html$ /$1/ [L,R=301]   ## Sollte die Seite bereits bei Google indexiert sein, dann sollten die vorhanden URLs per 301 weitergeleitet werden.

HTTPS Zugriff erzwingen:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Umstellung der Seiteninhalte: sehr einfach mit "Database Search and Replace Script in PHP" (man sollte wissen was man tut)

Wenn sich der Suchindex nicht mehr erfolgreich aufbaut und immer noch http:// sucht:
Diesen Button im Startpunkt der Webseite übersieht man leicht.

Templates: Vorlagen, Fehlerseiten, Grundlagenseite für Suche, Kopien von Orginaltemplates usw. (Ordner: /templates/, normal leer)

Tamplates anpassen: Über Layout -> Templates -> Neues Template aus gewünschtem Template erstellen und anpassen.

Datum und Uhrzeit formatieren: im Startpunkt der Webseite (Seitenstruktur, nicht in den allgemeinen Einstellungen!) in den Globalen Einstellungen eingeben:
Zeitformat: H:i \U\h\r
Datumsformat: d.m.Y
Datums- und Zeitformat: d.m.Y H:i  \U\h\r.

Bildtitel, Metatags: funktioniert sehr ungenau und unzuverlässig.

PHP einbinden: • datei.php nach /templates/ kopieren.
  • als HTML-Element im Text einbinden:  {{file::datei.php}}

Seitenelement mit Contao-Include einbinden:

{{insert_content::120}}

in PHP Seitenelement mit Contao-Include einbinden:

echo  $this->replaceInsertTags('{{insert_content::120}}'); 

 Anwendungsbeispiel für Contao-Includes in PHP: Browserinformationen auslesen.

$this->import('Environment');
$ua = $this->Environment->agent;

echo $ua->os; // Betriebssystem
echo $ua->browser; // Browsername
echo $ua->shorty; // Browserkürzel
echo $ua->version; // Browserversion
echo $ua->mobile; // True wenn der Client ein mobiler Browser ist
echo $ua->class; // Den CSS-Klassen-String 

In insert_content werden Bildlinks in {{file:*}} umgewandelt und funktionieren nicht.
Abhilfe: Bild einbinden mit https://www.... Dann wird das (zumindest bei mir) als externe Domain gewertet und nicht ersetzt.

 

Manuelles Update: folgende Dateien sichern:

  • files/*
  • system/config/dcaconfig.php
  • system/config/initconfig.php
  • system/config/langconfig.php
  • system/config/localconfig.php
  • system/config/pathconfig.php
  • templates/*

Third-Party-Erweiterungen müssen ebenfalls gesichert und nach dem Update wieder hergestellt oder gar nicht erst überschreiben werden. Andernfalls müssen diese Module neu installiert werden, was bei einigen Erweiterungen zu Datenverlust führen kann!

Sollte der Composer-Client im Einsatz sein, muss das Verzeichnis /composer ebenfalls gesichert werden.


Nach dem Update Installationstool: contao/install.php aufrufen (Installationspasswort!) und Datenbank updaten.

Passwort für das Installtool vergessen?
In diesem Fall lokale Konfigurationsdatei system/config/localconfig.php öffnen und folgende Zeile löschen:
$GLOBALS['TL_CONFIG']['installPassword']
Danach fragt Sie das InstallTool nach einem neuen Passwort.

Google Sitemap: befindet sich unter https://domain.tld/share/[blabla].xml
In Seitenstruktur/ Startseite diesen Button nicht vergessen:

Contao Umzug
system/config/localconfig.php - MySQL Zugangsdaten
Bei Verzeichniswechsel:  $GLOBALS['TL_CONFIG']['websitePath'] = ‘http://host/blog/’; in localconfig.php und Pfad in pathconfig.php ändern.

Links:
erdmann-freunde.de/ressourcen.html

Tags: CMS
2019-08-04 09:47 Uwe Kernchen {writeRevision}
Durchschnittliche Bewertung: 0 (0 Abstimmungen)

Es ist möglich, diese FAQ zu kommentieren.

Chuck Norris has counted to infinity. Twice.