das Upgrade geht über die 2.10.x oder 2.11.x - oder über manuelle Eingriffe wie manuelles Anlegen einer korrekt befüllten config.php auch mit 2.12.x
Hier eine
Anleitung zum Upgrade der WB 2.8.4. auf WB 2.12.1Das Vorhandensein einen Dateien- und Datenbank-Backups setze ich voraus
1. Lösche diese Ordner der Version 2.8.4 komplett
account
admin
framework
include
searchsowie unter modules die Ordner
- captcha_control
- code
- droplets (ggf Sicherung der vorhandenen Droplets vorher durchführen und in einen anderen Ordner legen)
- fckeditor
- form
- jsadmin
- menu_link
- MultiLingual
- news
- output_filter
- SecureFormSwitcher
- show_menu2
- wrapper
- wysiwygaußerdem im WB-Hauptverzeichnis die Dateien
index.php
upgrade-script.phpBenenne die Datei setup.ini.php vorerst um, der Name ist beliebig, Dateiendung sollte .php bleiben. Dies dient nur dazu, die Werte der aus dieser setup.ini.php in die config.php zu übertragen. Danach kann und sollte die setup.ini.php gelöscht werden
Es empfiehlt sich, eine möglicherweise vorhandene Datei .htaccess für die Dauer des Upgrades umzubenennen, z.b. in htaccess.txt
##############################
2. du benötigst eine funktionierende Datei config.php. Überschreibe dazu den Inhalt der in WB 2.8.4 enthaltenen Datei mit diesen Inhalt oder lege, wenn nicht vorhanden, eine solche Datei mit einem editor wie Notepad an
Inhalt der Datei
Der Code kann so direkt kopiert werden. Die jeweiligen Werte sind anzupassen (siehe Kommentare). Die Datei config.php wird im Upgrade-Prozess neu geschrieben. Die von mir eingefügten deutschsprachigen Kommentare sind dann verschwunden, die englischen bleiben stehen, sie enthalten jeweils Datum und Versionsangaben des zuletzt durchgeführten Upgrades.
<?php // gehoert zum Script, muss mit kopiert werden
/*
*** auto generated config file for 2.12.1
*** WebsiteBaker upgrade from 2.8.4 to 2.12.1
*** created at 2019-01-16 02:00:15 Europe/Berlin
*/
// define('DEBUG', false);
define('DB_TYPE', 'mysqli');
define('DB_HOST', 'localhost'); // ggf anpassen (siehe auch Datei setup.ini.php)
define('DB_PORT', '3306');
define('DB_NAME', 'xxxxxxx'); // (siehe auch Datei setup.ini.php)
define('DB_USERNAME', 'xxxxxxx'); // (siehe auch Datei setup.ini.php)
define('DB_PASSWORD', 'xxxxxxx'); // (siehe auch Datei setup.ini.php)
define('DB_CHARSET', 'utf8_unicode_ci'); // wer Emoticon im CKEditor benutzen möchte, benötigt hier utf8mb4_unicode_ci
define('TABLE_PREFIX', 'wb_'); // (siehe auch Datei setup.ini.php)
define('WB_URL', 'https://...........'); // no trailing slash or backslash!! - ist anzupassen
define('ADMIN_DIRECTORY', 'admin'); // no leading/trailing slash or backslash!! A simple directory name only!! - anpassen, wenn anderer Name für das Verzeichnis erwünscht ist, der admin-Ordner muß dann manuell umbenannt werden
require __DIR__.'/framework/initialize.php';
// --- end of file ----------------------------------
P.S.: ein schließendes
?> ist nur notwendig, wenn nach dem PHP-Code noch anderer Code wie HTML erscheint, in reinen PHP-Dateien wie dieser config.php ist es nicht notwendig
3. Sichere ein ggf im Root-Ordner von WB enthaltenes Favicon
4. Übertrage nun die WB 2.12.1 in diese WB-Installation - alles überschreiben
5. Logge dich ins Backend ein. Du wirst von dort entweder direkt zum UpgradeScript geleitet oder siehst auf der Startseite des Backend einen Link zum Starten des Upgrade-Scripts.
Aktiviere im Upgradescript alle drei Checkboxen und Klicke auf START.
6. Angezeigt wird das Protokoll des Upgrade-Scripts. es sollte am Ende die zwei Buttons "Kick me to Frontend/ Kick me to Backend" zeigen und keine roten Warnmeldungen enthalten. Bleibt das Upgrade unterwegs stecken und die genannten Buttons werden nicht gezeigt, starte das Upgrade erneut mit einem Reload der Seite (F5-Taste). Der Vorgang kann beliebig oft wiederholt werden. Ursache wäre, das das Script zu Beginn die benötigten Teile der Datenbank ausliest und damit feste Vorausetzungen hat. Im Verlauf schreibt es dann neue Settings in die Datenbank. Kommt es nun an einen Schalter, der beim ersten einlesen "falsch" steht, weil dieser beim Auslesen der alten WB-Version z.b. nicht gesetzt war, bricht das Script ab. Durch den Reload liest es nun das neu geschriebene ein und geht weiter im Script
7. Wechsel nun ins Backend und lade die Seite nach Anzeige erneut, wenn das obere Menü nicht komplett oder miniklein dargestellt wird. In dem Fall befindet sich noch altes kram im BrowserCache, der durch den Reload überschrieben wird. Eine korrekte ansicht wäre dies hier

8. Gehe zu Optionen -> erweiterte Optionen anzeigen -> Servereinstellungen -> PHP-Fehlerberichte und wähle dort "Production"- Speichere diese Einstellungen
9. Gehe in die Seitenübersicht und kontrolliere Seite für Seite, Section für Section
10. Schaue, ob du für Module, die nicht mit dem WB-Paket geliefert wurden, im Addon-Bereich eine neue Version bekommst, z.b. Foldergallery. Das gern genutzte SimplePageHead wäre zu testen, keine Ahnung, ob es da was neues gibt. Ich selbst nutze es nicht mehr, weil ich keine Module dieser Art nutze und für meine eigenen eine andere Methode verwende
11. Module wie wblib, libraryAdmin, lib_jquery wurden meines Wissens nicht mehr weiter gepflegt. User dbs kann da eventuell Tips für Alternativen geben, ich habe aber vielfach hier gelesen, das man sich von diesen Addons verabschiedet hat. Bitte korrigieren, wenn ich hier falsch liege
12. Kontrolliere deine Droplets. Vorhandene, in der Datenbank gespeicherte Droplet werden im Upgrade nicht überschrieben und nicht verändert. Es ist aber möglich, das dafür im Ordner modules/droplets/example eine neue Version vorhanden ist.
Verwendet ein Droplet oder auch ein Modul eine Zeile mit dem Code
$wb->preprocess(), ist diese Zeile auszukommentieren oder zu löschen. Diese Funktion war der Vorgänger des heutigen OutputFilters und wurde 2011 schon in WB entfernt. Bis WB 2.12 wurde aber keine Fehlermeldung dafür gesetzt
13. Kontrolliere unter AdminTools -> OutputFilter die dort gesetzten Einstellung. Im Normalfall ist dort bis auf JQuery UI, OPF und RelUrl alles gesetzt. Wer das Modul OPF nutzt, muß dies natürlich aktivieren.
Beachte auch die Einstellungen für das Ersetzen von @ und Punkt in Mailadressen, Standard ist [at] und [dot]
14. Kontrolliere in den WB-Optionen zuerst die Einstellung für die Datenschutzrichtlin
ie und wähle bei aktivierter Datenschutzrichtlin
ie eine Section mit der Datenschutzerklärun
g aus, die dann in der Zustimmungsfrage der Formulare in Form und Newskommentare verlinkt wird.
15. das alte Backend-Theme der WB 2.8.4 (WbTheme) und ggf davon erstellte eigene Theme-Kopien sind nicht zu WB 2.12.x kompatibel. Der bzw die Ordner kann nach Abschluß des Upgrades gelöscht werden. Bitte aber nicht vor dem Start des UpgradeScripts löschen, da dies die Anmeldemaske zum Backend-Login enthält.
Ende der Anleitung
getestet mit WB 2.8.4 Rev 1866 (war nur für den Community-Test) und Rev 2101 (offiziell für 6Std (?) oder so) - es gab noch eine Rev 2103, die die Reparaturen zu 2101 enthielt, aber (warum auch immer) damals nicht zeitnah veröffentlicht wurde. Beide liefen bei mir bis PHP 7.1, aber nicht mehr ab 7.2
Upgrade durchgeführt von diesen beiden Versionen auf WB 2.12.1 Rev 188 (Version aus dem Download ohne Fixes) mit PHP 7.2.3 und PHP 7.3.0
@ gottfried - Punkt 15 hatte ich in der Mail vergessen. Das WbTheme ist auch noch im Zip enthalten, bitte löschen, wenn fertig