WebsiteBaker Community Forum

WebsiteBaker Support (2.13.x) => Modules => Topic started by: dbs on September 12, 2024, 11:01:40 PM

Title: Accordion SyntaxError Twig
Post 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
Title: Re: Accordion SyntaxError Twig
Post by: sternchen8875 on September 12, 2024, 11:27:00 PM
give me a second...  ;-)
Title: Re: Accordion SyntaxError Twig
Post by: sternchen8875 on September 12, 2024, 11:58:00 PM
problem was a missing variable-definition in View.inc.php

Code: [Select]
            '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)
Title: Re: Accordion SyntaxError Twig
Post by: dbs on September 13, 2024, 07:18:14 AM
Problem solved, thanks  (Y)
Title: Re: Accordion SyntaxError Twig
Post by: dbs on September 14, 2024, 06:07:12 PM
Noch was bei upgrade:
Code: [Select]
[E_WARNING] /modules/accordion/cmd/Upgrade.inc.php:[121]  from /modules/accordion/cmd/Upgrade.inc.php:[167] {closure} "Undefined variable $aDefaults"
Title: Re: Accordion SyntaxError Twig
Post by: sternchen8875 on September 15, 2024, 01:17:57 AM
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?
Title: Re: Accordion SyntaxError Twig
Post by: dbs on September 15, 2024, 06:36:24 AM
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:
Quote
[224] upgrade accordion konnte nicht ausgeführt werden
Danach steht die andere Meldung im errorlog.

z167:
Code: [Select]
if (!($aOldSettings = $selectSettings()))
Title: Re: Accordion SyntaxError Twig
Post by: sternchen8875 on September 15, 2024, 12:19:34 PM
Quote
[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

Quote
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?
Title: Re: Accordion SyntaxError Twig
Post by: sternchen8875 on September 15, 2024, 12:28:56 PM
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:
Title: Re: Accordion SyntaxError Twig
Post by: dbs on September 15, 2024, 01:50:15 PM
2x ja, keine section und message auf deutsch. weißt du zwar schon, aber der Vollständigkeit halber.
Title: Re: Accordion SyntaxError Twig
Post by: sternchen8875 on September 15, 2024, 04:15:50 PM
Möchtest du selbst mal ändern und testen bevor ich da eine neue Version mache?

cmd/Upgrade.inc.php in Zeile 115 - original Code
Code: [Select]
$selectSettings = (function() use ($database, $sTableName) {
ändern in
Code: [Select]
$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
Title: Re: Accordion SyntaxError Twig
Post by: dbs on September 15, 2024, 04:24:59 PM
Das Upgrade geht jetzt durch mit grüner Info Meldung.
Aber im errorlog steht was neues:
Code: [Select]
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""
Title: Re: Accordion SyntaxError Twig
Post by: sternchen8875 on September 21, 2024, 01:22:16 PM
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

Code: [Select]
$selectSettings = (function() use ($database, $sTableName) {
In Zeile 121 muß das $aDefault mit einem false ersetzt werden, also so

Code: [Select]
                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
Title: Re: Accordion SyntaxError Twig
Post by: dbs on September 21, 2024, 02:34:52 PM
Quote
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.