zur Gesamtnavigation A A A

Updates für "zac4web"

Vorbemerkungen

Kund:innen sind Personen oder Organisationen, die "zac4web" von uns erworben haben.

Zu jedem "zac4web"-Projekt gehören eine Vielzahl von Dateien und einige MySQL-Datenbanktabellen.

In der Regel werden von uns nur die Dateien aktualisiert. In seltenen Fällen ist es aber auch erforderlich, dass die zum System oder einem Modul gehörenden Datenbanktabellen oder die enthaltenen Datensätze, angepasst werden müssen.

Damit das "zac4web"-Projekt ohne Codeänderung funktioniert, müssen alle Dateien, die eine andere Kennung als ".z4w_sql" besitzen (z.B. ".php", ".js") innerhalb des "zac4web"-Projektes in der von uns vorgegebenen Verzeichnisstruktur gespeichert werden.

Die Datenbanktabellen, die mit den Befehlen aus den Dateien mit der Kennung ".z4w_sql" erzeugt oder verändert werden können, müssen sich alle in der MySQL-Datenbank befinden, die dem Index 0 des Feldes $datenbanken in der Datei __wm/kern/__variablen/datenbanken.php zugeordnet ist.

Jede Kundin und jeder Kunde von www.zacher-info.de kann sich über aktualisierte Dateien für die Originalversion und die Module, die sie/er erworben hat, im Kundenbereich informieren und die Dateien einzeln herunterladen. (-> Update ohne Update-Benachrichtigung).

Wir bieten aber auch einen kostenpflichtigen Update-Service an. Bei diesem infomieren wir die Kund:innen per E-Mail über Aktualisierungen und bieten ihnen die aktualisierten Dateien als *.zip-Datei zum Download und erleichterten Upload in das eigene "zac4web"-Projekt an. (-> Update mit Update-Benachrichtigung)

Auf der Seite "Update-Hinweise" können Kund:innen abfragen, welche Dateien seit einem beliebigen Datum tt.mm.YYYY aktualisiert wurden.
Für jede der aktualisierten Dateien kann über jene Seite auch abgerufen werden, welche Veränderungen gegenüber der vorherigen Version von uns an der Datei durchgeführt wurden. Diese Informationen bieten wir an, damit Kund:innen, welche Dateien ihres "zac4web"-Projektes manuell anpassen möchten, leichter erkennen können welche Veränderungen wir an den Dateien vorgenommen haben.
Kund:innen, die ein optionales Modul erworben haben, werden auf dieser Seite nicht nur über die aktualisierten Dateien der Originalversion von "zac4web", sondern auch die aktualisierten Dateien des optionalen Moduls informiert.

zum Anfang


Update mit Update-Benachrichtigung

Jede Kundin und jeder Kunde, die/der bei www.zacher-info.de für die Update-Benachrichtigung registriert ist, wird während der Vertragslaufszeit von zacher-info.de per E-Mail darüber informiert, wenn für Dateien der Originalversion von "zac4web" oder einem optionalen Modul, welches von ihr/ihm erworben wurde, eine aktualisierte Version von www.zacher-info.de zum Download angeboten wird.

Nach dem Einloggen auf www.zacher-info.de kann mit einem Link aus der E-Mail der Download gestartet werden.
Alternativ kann nach dem Wechsel zum Mitgliederbereich für Kund:innen mit dem Schalter "Download - Dateien" die Seite aufgerufen werden, auf welcher wir die Dateien zum Download anbieten. Kund:innen, die per E-Mail über Updates benachrichtigt werden, wird auf dieser Seite vor der Auflistung der einzelnen Dateien der Schalter "Aktualisierung per *.zip" angeboten. Mit diesem Schalter kann die Tabelle mit der Übersicht der gespeicherten *.zip-Dateien aufgerufen werden. Aus dieser Tabelle heraus kann dann der Download der *.zip-Dateien ausgelöst werden.

Der vorgeschlagene Dateinamen für die *.zip-Datei darf nicht verändert werden, wenn mit dem Skript "__zac4web/_System/zip_upload.php" (ist Bestandteil der Originalversion) die Dateien aus der *.zip-Datei in das eigene "zac4web"-Projekt kopiert werden sollen.

Beim Hochladen der *.zip-Datei mit dem Skript "__zac4web/_System/zip_upload.php" wird die *.zip-Datei im Kundenprojekt temporär im Verzeichnis \"__zac4web/temp\" gespeichert und dort in einem zum Namen der *.zip-Datei passenden Ordner entpackt.

Im nächsten Schritt wird ein Formular angeboten, in dem für jede der Dateien aus der *.zip-Datei gewählt werden kann, wie damit verfahren werden soll.
Eine *.z4w_sql-Datei ist nur dann in der *.zip-Datei vorhanden, wenn Datenbanktabellen zu der Original-Version bzw. dem Modul aktualisiert werden müssen. Für diese Datei wird in dem Formular die Option "ausführen" angeboten.
Für die anderen Dateien sind folgende Aktionen "einfügen", Dateien, deren Pfad mit der Zeichenfolge \"__zac4web/\" beginnen, ersetzen - wenn sie übernommen werden - immer Dateien mit gleichem Pfad, d.h. die vorhandene Dateiversion im Kundenprojekt wird überschrieben.
Bei Dateien, deren Pfad mit einer anderen Zeichenfolge beginnt, kann dagegen gewählt werden, ob die bisher vorhandene Datei in den Ordner für ersetzte Dateien verschoben oder überschrieben werden soll.

Nachdem das Formular abgeschickt wurde, werden die markierten Aktionen für die Dateien ausgeführt. Falls bei der Übernahme einer neuen Datei das zugehörige Zielverzeichnis nicht vorhanden ist, werden die fehlenden Verzeichnisebenen aus dem Pfad angelegt.

Zum Schluss wird das Skript die *.zip-Datei und das zugehörige temporäre Verzeichnis mit den entpackten Dateien aus dem Kundenprojekt löschen, um den Speicherplatz freizugeben.

Aktualisierte Versionen der Dateien, die auf der Seite "Dateien für Kund:innen" unter der Überschrift \"projektspezifische Veränderung wahrscheinlich\" enthalten sind, packen wir niemals in eine *.zip-Datei mit aktualisierten Dateien, weil diese Dateien mit sehr hoher Wahrscheinlichkeit für die Kundenprojekte angepasst wurden und wir nicht möchten, dass diese Dateien in einem Kundenprojekt versehentlich überschrieben werden. Die aktualisierten Versionen dieser Dateien können sich Kund:innen bei Bedarf über Schalter auf der Seite "Dateien für Kund:innen" einzeln herunterladen und anschließend mit einem externen Dateimanagementsystem in ihr System hochladen (vgl. Hinweise im nachfolgenden Abschnitt Datei-Update ohne Update-Benachrichtigung.

zum Anfang


Update ohne Update-Benachrichtigung

Alle unsere Kund:innen haben nach dem Einloggen auf www.zacher-info.de Zugriff auf den "Mitgliederbereich für Kund:innen".

Mit dem Schalter "Download - Dateien" aus dem Navigationsmenü dieses Mitgliederbereichs können sie die Seite "Dateien für Kund:innen" aufrufen. Auf jener Seite sind alle Dateien thematisch geordnet gelistet, für die ein Download-Angebot besteht.

Jede Kundin und jeder Kunde von uns kann über jene Seite für nahezu jede Datei aus der Originalversion von "zac4web" die aktuellste Version herunterladen. Nur die Dateien der Originalversion, die in jedem Fall projektspezifisch angepasst werden müssen, werden dort nicht gelistet.
Den Kund:innen, die ein optionales Modul von www.zacher-info.de erworben haben, werden auch die Schalter zum Download der Dateien angeboten, die zu dem optionalen Modul gehören.

Aber nur den Kund:innen, die einen gültigen Vertrag mit uns zur Update-Benachrichtigung besitzen, werden auf dieser Seite auch auf die *.zip-Dateien für die Aktualisierung der Original-Version bzw. der erworbenen Module zum Download angeboten.

Abhängig von der Dateikennung ist nach dem Download mit den Dateien unterschiedlich zu verfahren, um ein "zac4web"-Projekt zu aktualisieren.

  • Für *.zip-Dateien sollte das zur Original-Version gehörende Skript "__zac4web/_System/zip_upload.php" verwendet werden. Hinweise dazu enthält der obige Abschnitt "Update mit Update-Benachrichtigung".
  • Für *.z4w_sql-Dateien sollte das zur Original-Version gehörende Skript "__zac4web/_System/zip_upload.php" verwendet werden. Hinweise dazu enthält der Abschnitt "Aktualisierung von Datenbanktabellen" weiter unten in dieser Datei.
  • Für alle anderen Dateien muss ein externes Dateimanagementsystem verwendet werden. Hinweise dazu enthält der Abschnitt "Aktualisierung von Dateien" weiter unten in dieser Datei.

zum Anfang


Aktualisierung von Dateien

Dieser Abschnitt gilt für alle Dateien, die im Download-Bereich angeboten werden und eine andere Dateikennung als ".zip" oder ".z4w_sql" besitzen.

Beim Download wird für diese Dateien als Dateiname eine Zeichenfolge angeboten, bei dem jeder Bindestrich "-" im Dateinamen einen Schrägstrich "/" repräsentiert, der zwei Verzeichnisebenen im Dateipfad trennt. Für diese Dateien kann daher an dem Dateinamen erkannt werden, unter welchem Namen die Datei in welches Verzeichnis mit einem externen Dateimanagementsystem zu kopieren ist.

Die Zeichenfolge vor dem letzten Bindestrich entspricht nach der Ersetzung der Bindestriche durch den Schrägstrich "/" dem Verzeichnispfad für den Zielordner in einem "zac4web"-Projekt und die Zeichenfolge nach dem letzten Bindestrich dem Dateinamen, unter dem die Datei in jenem Zielordner gespeichert werden muss. Sofern der Zielordner nicht vorhanden ist, muss dieser Zielordner erst mit dem externen Dateimanagementsystem angelegt, bevor die Datei dort hinein kopiert werden kann.

;

zum Anfang


Aktualisierung von Datenbanktabellen

Dateien, die auf die Dateiendung ".z4w_sql" enden, enthalten MySQL-Befehle zur strukturellen Anpassung der Datenbanktabellen, die entweder zu der Original-Version oder zu einem optionalen Modul gehören. Diese Befehle sind nur einmalig je "zac4web"-Projekt auszuführen.

Die Orignalversion von "zac4web" enthält das Skript "__zac4web/_System/sql_update.php". Mit diesem Skript möchten wird es den System-Administratoren ermöglichen, bei Bedarf ihr "zac4web"-Projekt oder die optionalen Module mit den von uns bereitgestellten SQL-Befehlen zu aktualisieren, ohne dabei phpMyAdmin oder ein dazu alternatives Programm nutzen zu müssen.

Um zu verhindern, dass mit den Skripten Veränderungen an System- oder Modul-Tabellen ausgeführt werden, welche die Funktionsfähigkeit des Systems oder Moduls beeinträchtigen oder welche zu unbeabsichtigten Datenveränderungen in den System- oder Modul-Tabellen führen, ist die Menge der SQL-Befehle, welche die von dem Skript genutzte Prüffunktion akzeptiert, beschränkt (vgl. SQL-Syntax - akzeptiert von der Prüffunktion von "zac4web"). Dabei differenziert die Prüffunktion auch, ob die Befehle für Tabellen der Original-Version oder eines Moduls ausgeführt werden sollen.

Damit die Prüfung, ob die Befehle zugelassen sind, nicht zu aufwändig wird, gibt die Prüffunktion außerdem Regeln für Identifizierer (wie z.B. die Tabellennamen) und die Syntax der Befehle vor. Diese Regeln sind ebenfalls nur ein Ausschnitt dessen, was von einem MySQL-Datenbank-Server akzeptiert würde.

zum Anfang

SQL-Befehle von zacher-info.de im Rahmen des Update-Service

Die von zacher-info.de bereitgestellten SQL-Befehle für die Aktualisierung der Originalversion dienen nur der Funktionserweiterung. Für Modultabellen kann neben der Funktionserweiterung u.U. eine Anpassung an geänderte Vorgaben erforderlich sein. Um Datenverluste zu vermeiden und die Funktionsfähigkeit von "zac4web"-Projekten und der Module nicht zu gefährden, werden von uns nur SQL-Befehle bereitgestellt, mit denen ...

  • ... Datenbanktabellen hinzugefügt werden können.
    CREATE TABLE `tn` ...
  • ... Spalten, Indizes, Fremdschlüsselbeziehungen oder Prüfbedingungen zu Datenbanktabellen hinzugefügt werden können.
    ALTER TABLE `tn` ADD ...
  • ... Datensätze zu Datenbanktabellen hinzugefügt werden können.
    INSERT INTO `tn` ...
    Das Einfügen von Datensätzen ist mit dem Skript "__zac4web/_System/sql_update.php" für die meisten Systemtabellen nicht erlaubt.
  • ... Datensätze von Datenbanktabellen geändert werden können.
    UPDATE `tn` SET ...
    Das Ändern von Datensätzen ist mit dem Skript "__zac4web/_System/sql_update.php" für die meisten Systemtabellen nicht erlaubt.
  • ... Datensätze aus Datenbanktabellen gelöscht werden können.
    DELETE FROM `tn` WHERE ...
    Das Löschen von Datensätzen ist mit dem Skript "__zac4web/_System/sql_update.php" nicht für Systemtabellen erlaubt.
  • ... Spalten aus Datenbanktabellen gelöscht werden können.
    ALTER TABLE `tn` DROP COLUMN `cn`
    Das Löschen von Spalten ist mit dem Skript "__zac4web/_System/sql_update.php" nicht für Systemtabellen erlaubt.

zum Anfang

Nutzung des Update-Skripts für SQL-Befehle

Bevor an das Skript "__zac4web/_System/sql_update.php" SQL-Befehle übergeben werden können, muss der System-Administrator mit dem Skript "__zac4web/_System/sperre_setzen.php" eine Sperre für das "zac4web"-Projekt erzeugen, die verhindert, dass zeitgleich andere Mitglieder Aktionen auf Datenbanktabellen und Dateien innerhalb des Projektes ausführen können. Dabei unterscheidet das Skript nicht danach, ob Datenbanktabellen für die Original-Version oder Datenbanktabellen eines optionalen Moduls strukturell angepasst werden sollen.

Wenn die Sperren vorhanden sind, fordert das Skript "__zac4web/_System/sql_update.php" dazu auf, eine *.z4w_sql-Datei hochzuladen . Eine *.z4w_sql-Datei für ein optionales Modul wird allerdings nur akzeptiert, wenn das zugehörige optionale Modul bereits installiert ist.

Bei erfolgreichem Upload der Datei gibt das Skript die in dieser Datei enthaltenen Befehle in einem Formular aus, damit der System-Administrator sehen kann, welche Befehle ausgeführt werden sollen. Diese Befehle können bei Bedarf auch von ihm geändert werden.

Nachdem das Formular mit den Befehlen abgeschickt wurde, prüft das Skript für jeden Befehl, ob er den Vorgaben in der Prüffunktion von zacher-info.de entspricht. Sobald das Skript bei einem Befehl einen Verstoß gegen seine Syntax-Regeln feststellt, bricht das Skript die weitere Prüfung ab und führt keinen der Befehle aus. Die Vorgaben von "zacher-info.de" sind bzgl. der Syntax restriktiver als die Vorgaben von MySQL. Außerdem dürfen die Befehle - abhängig vom Namen der zuvor hochgeladenen *.z4w_sql-Datei - entweder nur Befehle für Systemtabellen oder für die Tabellen eines Moduls sein.

Wenn in keinem der übermittelten Befehle ein Syntax-Fehler festgestellt wurde, startet das Skript die Ausführung der Befehle. Das Skript bricht die Verarbeitung der SQL-Befehle sofort ab, sobald ein SQL-Befehl nicht erfolgreich ausgeführt werden konnte und meldet, welcher Befehl nicht ausgeführt werden konnte. Veränderungen an den Datenbanktabellen, die mit den Befehlen davor ausgeführt wurden, bleiben jedoch erhalten.

zum Anfang


 

© zacher-info.de

- Seite zuletzt geändert: 05.06.2025 - Elisabeth Zacher