WebsiteBaker Community Forum
WebsiteBaker Support (2.13.x) => Modules => Topic started by: dbs on September 12, 2024, 11:01:40 PM
-
Hi, Accordion 2.7.1 or 2.7.2 with latest WB and PHP
my console shows:
Uncaught SyntaxError: missing variable name
for this part:
<script>
/* inserted by view.twig */
var = {
WB_URL : "https://xxx.de",
AddonUrl : "https://xxx.de/modules/accordion/",
Addon_Name : "accordion",
ICONS : "https://xxx,de/modules/accordion/images",
AJAX_PLUGINS : "https://xxx.de/modules/accordion/ajax",
LANGUAGE : "DE",
};
</script>
Seems the ADDONNAME placeholder will not be replaced. The module works.
But the console message triggers me. ;D
-
give me a second... ;-)
-
problem was a missing variable-definition in View.inc.php
'ADDONNAME' => strtoupper($sAddonName),
see last line of the definition - this code repair v2.7.1 and also v2.7.2 - in the attachement the complete zip for this module as upgrade
(https://i.gyazo.com/311ba64b07aefcc7ca10ed9f8de26904.png)
Thanks for reporting (Y)
-
Problem solved, thanks (Y)
-
Noch was bei upgrade:
[E_WARNING] /modules/accordion/cmd/Upgrade.inc.php:[121] from /modules/accordion/cmd/Upgrade.inc.php:[167] {closure} "Undefined variable $aDefaults"
-
hm... versteh ich nicht. Den Fehler hab ich nicht :|
$aDefaults ist ein Array mit den Defaulteinstellunge n für die Modul-Settings und ist definiert in der init.php im Hauptverzeichnis des Moduls.
Diese init.php wird in der Upgrade.inc.php eingelesen in Zeile 56 und ab da steht auch das Array zur Verfügung.
Im weiteren Verlauf des Upgrades wird dann der Inhalt der Modulesettings aus der Datenbank eingelesen und mit den Defaultwerten aus der init.php verglichen. Sind alle Werte (s_name) vorhanden, bleiben die Einstellungen aus der DB erhalten. Fehlt was in der Datenbank oder ist die Tabelle garnicht da, wird sie ergänzt bzw angelegt.
Die init.php wird von allen Dateien im cmd-Ordner benötigt, die direkt aufgerufen werden können. Wäre sie nicht vorhanden oder nicht lesbar, funktioniert alles nicht
das wird kompliziert...
Was steht denn bei dir in Zeile 167 der cmd/Upgrade.inc.php?
-
Vielleicht kann ich es eingrenzen. Der Fehler wird nur auf einer meiner Installationen angezeigt. Dort wird das Modul derzeit nicht verwendet.
Nach Klick auf Upgrade erscheint die Meldung:
[224] upgrade accordion konnte nicht ausgeführt werden
Danach steht die andere Meldung im errorlog.
z167:
if (!($aOldSettings = $selectSettings()))
-
[224] upgrade accordion konnte nicht ausgeführt werden
auf deutsch? oder von dir übersetzt?
Ersteres wäre gruselig, weil im Modul alles in englisch steht :wink:
die [224] wäre die Zeilennummer in dieser Datei Upgrade.inc.php, die wird automatisch generiert, wäre also in jedem Fall zutreffend. Das soll heißen, da sind keine hardgecodete Zeilennummern drin, die ggf die falsche Zeile nennen könnten
Noch zwei Fragen: die Datenbank-Tabelle mod_accordion_setti ngs ist die dort vorhanden und mit Inhalten gefüllt?
PHP- und WB-Version sollten eigentlich keine Rolle spielen, aber ich frag trotzdem. Wenn, dann wäre es eher die WB-Version, ich glaube, ab 2.13. gab es eine Änderung mit dem Twig
Der Fehler wird nur auf einer meiner Installationen angezeigt. Dort wird das Modul derzeit nicht verwendet.
Nur zum Nachbauen für mich: heißt: das Addon ist installiert, hat aber noch keine angelegte Section?
-
Ha.... erwischt...
"created: [Sat, 14 Sep 2024 23:00:50 +0000]
Sun, 15 Sep 2024 10:24:55 +0000 [E_WARNING] \modules\accordion\cmd\Upgrade.inc.php:[121] from \modules\accordion\cmd\Upgrade.inc.php:[167] {closure} "Undefined variable $aDefaults"
läßt sich auch reproduzieren
nu wirds einfacher :wink:
-
2x ja, keine section und message auf deutsch. weißt du zwar schon, aber der Vollständigkeit halber.
-
Möchtest du selbst mal ändern und testen bevor ich da eine neue Version mache?
cmd/Upgrade.inc.php in Zeile 115 - original Code
$selectSettings = (function() use ($database, $sTableName) {
ändern in
$selectSettings = (function() use ($database, $sTableName, $aDefaults) {
P.S.: eine neue Version kommt aber eh dieser Tage, weil das Backend des Moduls derzeit garnicht responsive ist
-
Das Upgrade geht jetzt durch mit grüner Info Meldung.
Aber im errorlog steht was neues:Sun, 15 Sep 2024 14:22:49 +0000 [E_WARNING] /modules/accordion/cmd/Upgrade.inc.php:[131] from /modules/accordion/cmd/Upgrade.inc.php:[173] {closure} "Undefined array key 0"
Sun, 15 Sep 2024 14:22:49 +0000 [E_WARNING] /modules/accordion/cmd/Upgrade.inc.php:[131] from /modules/accordion/cmd/Upgrade.inc.php:[173] {closure} "Trying to access array offset on null""
-
Bin hier noch eine Rückmeldung schuldig - da war ein Denkfehler drin in der Upgrade.inc.php. Ich bin immer davon ausgegangen, das ein Modul auch in Benutzung ist oder zumindest gewesen ist. In diesem Fall wären DefaultSettings dann schon in der Datenbank. Das diese aber leer ist, hatte ich nicht auf der Rechnung.
Die Änderung in Antwort #10 sorgt nun für die Folgefehler aus deiner letzten Antwort, weil sie einen leeren Array hinterläßt, der im späteren Verlauf als gefüllt vorausgesetzt wird.
Diese Änderung müßte also wieder zurück genommen werden, Zeile 115 sollte dann wieder so aussehen
$selectSettings = (function() use ($database, $sTableName) {
In Zeile 121 muß das $aDefault mit einem false ersetzt werden, also so
return ((\count($aSettings) > 0) ? $aSettings : false);
Habe mittlerweile das Backend zum Modul auf responsive Darstellung umgebaut, benötige aber noch etwas Zeit für ein paar Test's
-
Ich bin immer davon ausgegangen, das ein Modul auch in Benutzung ist oder zumindest gewesen ist. In diesem Fall wären DefaultSettings dann schon in der Datenbank. Das diese aber leer ist, hatte ich nicht auf der Rechnung.
Dass ich nochmal DAU Sachen mache, hätte ich nicht gedacht. Aber gut so. ;D
Keine Eile, das Modul ist schon fein wie es ist.