Hi Fragz,
also von 4.1 auf 4.2 hat sich an den dafür zuständigen Dateien nichts mehr geändert, ich habe gerade auch den Test gemacht, das funktioniert noch.
Ich denke die betroffenen hatten eventuell noch eine 4.0 im Einsatz oder hatten die ACP Dateien beim Update nicht richtig überschrieben, damit der neue Code aktiv wird. Bei der 4.0 lag das Problem definitiv auf CF4 Seite, aber jetzt mit dem Zwischenschritt vorm Dateikopieren kann es da zu keinem Fehler mehr kommen, da er dann definitiv die Versionsnummer aus der alten package_info.php nimmt und diese im neuen Plugin an die Update-Routine weitergibt. (Beim 4.0 kam das Problem, da es in einem einzigen Schritt getan wurde, was manchmal die Dateien schneller kopiert hat als er die Funktion getriggert hat oder das er Variablen wieder überschrieben hat - das wurde ja dann in der 4.1 komplett geändert in 2 Steps.).
Generell brauchst Du aber auch für Plugin Versionen kein Config-Wert in der DB zu erzeugen: wichtig ist nämlich die Versionskennung in der package_info.php, die eben auch für das Update benutzt wird. Die ist dann letztendlich auch für die Pluginversion ausschlaggebend.
Ich sehe da bei Dir aber eventuell noch einen anderen Fehler (ich sehe nicht wo Du das Feld erzeugst aber vielleicht gibts damit ja schon ein Problem):
Du setzt den Update in der "DYNAMIC" Tabelle nicht in der "CONFIG" Tabelle. Deine Threema DB Eintragung ist aber in der CONFIG eingetragen. Steht Deine Versionskennung auch in der CONFIG oder hattest Du die explizit in der DYNAMIC? Falls es in der Config steht müsste das so aussehen:
(also zweiter Wert auch auf false, damit er die CONFIG nimmt, nicht die DYNAMIC und den Cache auch danach neu aufbaut).
Aber ein Fehler in der 4.2 sehe ich an der Stelle nicht. Hab gerade eins meiner Test-Plugins durchgejagt lokal + im online testforum, da liefen alle Queries durch und die module_update Funktion wird mit dem richtigen Versionswert aufgerufen. Denke also mal da war entweder bei den Betroffenen noch etwas falsch (vielleicht auch nur ein Dateirecht im Pluginordner, sodass er etwas nicht überschreiben konnte) oder noch irgendwo was im Plugin.
Andere spontane Ideen wo man ggf. nach Fehlern suchen könnte wären jetzt nur noch:
In Deinem INSERT Query hast Du es so:
Das letzte Feld ist ein Integer. Möglicherweise lehnen streng konfigurierte DB Server den Query so ab. Kannst es dann mal so versuchen:
Die Hochkomma beim ersten 1 sind OK, das ist ein VARCHAR Feld.
Und ansonsten noch das Cache Management:
Du benutzt ja die CF4 eigene Config-Tabelle für einen Extrawert, das heißt Du müsstest Dich um den Neuaufbau dieses Caches auch selbst kümmern. Eventuell ist der Eintrag schon in der DB, aber die Cache Datei noch veraltet. Du müsstest zusätzlich oben in der Funktion die Cache Klasse nachladen mit:
und nach Deinem DB INSERT nach dem $DB->free(); noch einmal:
damit er auch die neue Config-Tabelle mit dem neuen Zusatzwert lädt.
Also vielleicht ist die DB schon aktuell aber der Cache noch nicht.
Ansonsten hätte ich spontan keine Ideen mehr.
LG,
Chris
also von 4.1 auf 4.2 hat sich an den dafür zuständigen Dateien nichts mehr geändert, ich habe gerade auch den Test gemacht, das funktioniert noch.
Ich denke die betroffenen hatten eventuell noch eine 4.0 im Einsatz oder hatten die ACP Dateien beim Update nicht richtig überschrieben, damit der neue Code aktiv wird. Bei der 4.0 lag das Problem definitiv auf CF4 Seite, aber jetzt mit dem Zwischenschritt vorm Dateikopieren kann es da zu keinem Fehler mehr kommen, da er dann definitiv die Versionsnummer aus der alten package_info.php nimmt und diese im neuen Plugin an die Update-Routine weitergibt. (Beim 4.0 kam das Problem, da es in einem einzigen Schritt getan wurde, was manchmal die Dateien schneller kopiert hat als er die Funktion getriggert hat oder das er Variablen wieder überschrieben hat - das wurde ja dann in der 4.1 komplett geändert in 2 Steps.).
Generell brauchst Du aber auch für Plugin Versionen kein Config-Wert in der DB zu erzeugen: wichtig ist nämlich die Versionskennung in der package_info.php, die eben auch für das Update benutzt wird. Die ist dann letztendlich auch für die Pluginversion ausschlaggebend.
Ich sehe da bei Dir aber eventuell noch einen anderen Fehler (ich sehe nicht wo Du das Feld erzeugst aber vielleicht gibts damit ja schon ein Problem):
Code
$Core->set_config('social_like_version', '1.2.0', false, true);
Du setzt den Update in der "DYNAMIC" Tabelle nicht in der "CONFIG" Tabelle. Deine Threema DB Eintragung ist aber in der CONFIG eingetragen. Steht Deine Versionskennung auch in der CONFIG oder hattest Du die explizit in der DYNAMIC? Falls es in der Config steht müsste das so aussehen:
Code
$Core->set_config('social_like_version', '1.2.0', false, false);
(also zweiter Wert auch auf false, damit er die CONFIG nimmt, nicht die DYNAMIC und den Cache auch danach neu aufbaut).
Aber ein Fehler in der 4.2 sehe ich an der Stelle nicht. Hab gerade eins meiner Test-Plugins durchgejagt lokal + im online testforum, da liefen alle Queries durch und die module_update Funktion wird mit dem richtigen Versionswert aufgerufen. Denke also mal da war entweder bei den Betroffenen noch etwas falsch (vielleicht auch nur ein Dateirecht im Pluginordner, sodass er etwas nicht überschreiben konnte) oder noch irgendwo was im Plugin.
Andere spontane Ideen wo man ggf. nach Fehlern suchen könnte wären jetzt nur noch:
In Deinem INSERT Query hast Du es so:
Code
\'fragz_threema_share\', \'1\' , \'1\'
Das letzte Feld ist ein Integer. Möglicherweise lehnen streng konfigurierte DB Server den Query so ab. Kannst es dann mal so versuchen:
Code
\'fragz_threema_share\', \'1\' , 1
Die Hochkomma beim ersten 1 sind OK, das ist ein VARCHAR Feld.
Und ansonsten noch das Cache Management:
Du benutzt ja die CF4 eigene Config-Tabelle für einen Extrawert, das heißt Du müsstest Dich um den Neuaufbau dieses Caches auch selbst kümmern. Eventuell ist der Eintrag schon in der DB, aber die Cache Datei noch veraltet. Du müsstest zusätzlich oben in der Funktion die Cache Klasse nachladen mit:
Code
$Cache = Controller::getClass('Cache');
und nach Deinem DB INSERT nach dem $DB->free(); noch einmal:
Code
$Cache->cache_drop(CONFIG);
damit er auch die neue Config-Tabelle mit dem neuen Zusatzwert lädt.
Also vielleicht ist die DB schon aktuell aber der Cache noch nicht.
Ansonsten hätte ich spontan keine Ideen mehr.
LG,
Chris