Vorabversion - Service Pack 4.3.1.0 RC1 erschienen

Thema wurde von Wilken (Gambio), 7. Oktober 2020 erstellt.

  1. Dominik Späte

    Dominik Späte Erfahrener Benutzer

    Registriert seit:
    16. Oktober 2018
    Beiträge:
    930
    Danke erhalten:
    802
    Danke vergeben:
    300
    #21 Dominik Späte, 15. Oktober 2020
    Zuletzt bearbeitet: 15. Oktober 2020
    Wenn ich nun gemäß Anleitung...

    In dem Verzeichnis GXModules/{Modulherstellername}/{Modulname}/Admin/Menu/ erstellen wir nun eine XML-Datei namens menu_top_orders.xml mit folgendem Code:
    Code:
    <?xml version="1.0"?>
    <!-- {load_language_text section="admin_menu"} -->
    <admin_menu>
        <menugroup id="BOX_HEADING_ORDERS">
            <menuitem sort="40" link="new_page.php" title="Top Bestellungen" />
        </menugroup>
    </admin_menu>
    
    klappt soweit wunderbar. Jetzt möchte ich aber, dass der Link nur angezeigt wird, wenn das Modul installiert ist.

    Ich kann eine Abfrage wie
    Code:
    {if 'MODULE_CENTER_TOP_BESTELLUNGEN_INSTALLED'|gm_get_conf == '1'}
    in der XML-Datei platzieren wo ich möchte - es führt zu Fehlern. Den Fehler bei Platzierung ums menugroup-Element kann ich nachvollziehen und ist vielleicht sogar so beabsichtigt. Aber bei Platzierung ums menuitem-Element wirkt das für mich wie ein unerwünschter Seiteneffekt, siehe Screenshot des Quelltexts.

    Ist das ein Fehler, der noch behoben wird oder bleibt das so?

    Nachtrag: Das Problem tritt natürlich nur auf, wenn das Modul nicht installiert ist oder einfacher reproduzierbar: wenn man menuitem oder menuitem und menugroup weglässt.
     

    Anhänge:

  2. Tobias S. (Gambio)

    Mitarbeiter

    Registriert seit:
    13. September 2013
    Beiträge:
    11
    Danke erhalten:
    7
    Danke vergeben:
    3
    Moin,

    ich hab die Datei lokal nachgebaut und konnte kein Problem feststellen. Die Final Datei sieht so aus:

    HTML:
    <?xml version="1.0"?>
    <!-- {load_language_text section="admin_menu"} -->
    <admin_menu>
        <menugroup id="BOX_HEADING_ORDERS">
            {if 'MODULE_CENTER_TOP_BESTELLUNGEN_INSTALLED'|gm_get_conf == '1'}
                <menuitem sort="40" link="new_page.php" title="Top Bestellungen" />
            {/if}
        </menugroup>
    </admin_menu>

    Hast du vielleicht die if Bedingung in der Menü-Datei nicht geschlossen? Das XML wird nämlich nochmal von Smarty geparsed um die Funktionen ausführen zu können, sprich die Datei muss eine valide Smarty-Syntax besitzen.

    Bzgl. des Quelltexts bin ich etwas verwirrt. Der von dir gezeigte Ausschnitt stammt aus den Header-Bereich des GambioAdmin und sollte eigentlich nicht durch das Menü beeinflusst werden.

    Falls es nicht weiterhilft würde ich dich bitten, einmal die finale Version der Menü-Datei, also mit if Bedingung, sowie die Fehlermeldung (falls vorhanden) zu zeigen.
     
  3. Dominik Späte

    Dominik Späte Erfahrener Benutzer

    Registriert seit:
    16. Oktober 2018
    Beiträge:
    930
    Danke erhalten:
    802
    Danke vergeben:
    300
    Vielen lieben Dank @Tobias S. (Gambio)

    Genau: 1:1 der von Dir gepostete Code in einer menu_top_orders.xml. Die if-Bedingung muss false ergeben, bringt den Fehler:

    Argument 1 passed to Gambio\Admin\Layout\Menu\EventListeners\GxModules\Xml\XmlMenuListener::isGroupDataSet() must be of the type array, string given, called in /var/www/bumbio.de/4300/GambioAdmin/Layout/Menu/EventListeners/GxModules/Xml/XmlMenuListener.php on line 108


    Mein Screenshot (Quelltext) - ja, ich bin auch verwirrt, habe auch nicht nicht näher geschaut, ist das Ergebnis von Versuch Nr. 2 mit diesem XML:

    Code:
    <?xml version="1.0"?>
    <!-- {load_language_text section="admin_menu"} -->
    <admin_menu>
           {if 'MODULE_CENTER_TOP_BESTELLUNGEN_INSTALLED'|gm_get_conf == '1'}
               <menugroup id="BOX_HEADING_ORDERS">
                   <menuitem sort="40" link="new_page.php" title="Top Bestellungen" />
               </menugroup>
           {/if}
    </admin_menu>
    
     
  4. FTMUCOST

    FTMUCOST Mitglied

    Registriert seit:
    3. September 2020
    Beiträge:
    9
    Danke erhalten:
    1
    Danke vergeben:
    1
    Bei mir sieht das Admin Menü so aus: upload_2020-10-15_20-39-35.png
     
  5. Dominik Späte

    Dominik Späte Erfahrener Benutzer

    Registriert seit:
    16. Oktober 2018
    Beiträge:
    930
    Danke erhalten:
    802
    Danke vergeben:
    300
    Das wird nicht oft vorkommen, aber wenn nach frischem Upload der Dateien im Browser nach mein-shop.de/admin navigiere statt nur mein-shop.de werde ich endlos weitergeleitet nach mein-shop.de/admin/gambio_installer/gambio_installer/gambio_installer/gambio_installer/ usw.
     
  6. FTMUCOST

    FTMUCOST Mitglied

    Registriert seit:
    3. September 2020
    Beiträge:
    9
    Danke erhalten:
    1
    Danke vergeben:
    1
    Dom, deine plugin tauchen auch nicht in der sidebar auf bei mir
     
  7. Moritz (Gambio)

    Moritz (Gambio) Administrator

    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.692
    Danke vergeben:
    903
    Das sieht auf den ersten Blick nach einem Browsercache-Problem aus. Sieht das Menü auch im Inkognito-Modus so aus?
     
  8. Moritz (Gambio)

    Moritz (Gambio) Administrator

    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.692
    Danke vergeben:
    903
    Das lösen wir mit der 4.3.2.0: https://tracker.gambio-server.net/issues/67830
     
  9. Dominik Späte

    Dominik Späte Erfahrener Benutzer

    Registriert seit:
    16. Oktober 2018
    Beiträge:
    930
    Danke erhalten:
    802
    Danke vergeben:
    300
    Mhm, ich weiß, danke. Das werde ich lösen.

    Vorher wäre es halt interessant zu wissen, ob das Problem mit den leeren admin_menu- resp. menugroup-Tags noch von Gambio gelöst wird oder man sich mit unschönen Workarounds behelfen muss. @Kai Stejuhn: Dein Sonderangebote-Modul Version 4.00 ist davon übrigens auch betroffen.
     
  10. Moritz (Gambio)

    Moritz (Gambio) Administrator

    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.692
    Danke vergeben:
    903
    Magst du nochmals genauer ausführen, was das Problem ist? Ich bin bei der Entwicklung dieser Stelle nicht involviert, möchte das Thema aber gerne bei Kollegen reinwerfen :).
     
  11. Dominik Späte

    Dominik Späte Erfahrener Benutzer

    Registriert seit:
    16. Oktober 2018
    Beiträge:
    930
    Danke erhalten:
    802
    Danke vergeben:
    300
    Gerne: Hintergrund ist, dass im Dateisystem vorhandene, aber nicht-installierte Module keine Menüeinträge erzeugen sollen. Dabei gibt es 2 Fälle:

    1. Das Modul erweitert eine vorhandene Menübox. Das sollte mit dem Code von @Tobias S. (Gambio) aus #22 möglich sein. Kopiere ich den in eine /GXModules/Gambio/TopBestellungen/Admin/Menu/menu_top_orders.xml und leere den Cache für Modulinformationen, fehlt entweder die komplette Menüleiste oder alles unterhalb der Kopfzeile (Screenshots anbei).

    2. Das Modul fügt eine eigene Menübox ein. Der Code derselben Datei für diesen Fall führt zum selben Ergebnis:
    Code:
    <?xml version="1.0"?>
    <admin_menu>
        {if 'MODULE_CENTER_TOP_BESTELLUNGEN_INSTALLED'|gm_get_conf == '1'}
            <menugroup id="BOX_HEADING_TOP_BESTELLUNGEN" sort="90" background="" class="fa fa-question" title="Top-Bestellungen">
                <menuitem sort="10" link="admin.php" link_param="do=TopBestellungen" title="Top-Bestellungen"/>
            </menugroup>
        {/if}
    </admin_menu>
    
    Das Smarty-Parsing scheint problemlos zu funktionieren. Man kann zur Reproduktion also auch einfach die im if-Block enthaltenen Elemente weglassen.
     

    Anhänge:

  12. Tobias S. (Gambio)

    Mitarbeiter

    Registriert seit:
    13. September 2013
    Beiträge:
    11
    Danke erhalten:
    7
    Danke vergeben:
    3
    Moin,

    Der Code dazu hat tatsächlich einen Fehler der verhindert, dass ein leeres <menugroup>-Tag weiterverarbeitet wird. Die gute Nachricht ist, dass es mittlerweile eine bessere Möglichkeit, das Admin Menü zu erweitern.

    Zur Version 4.1 haben wir intern das Format der Menü Datei von XML auf JSON umgestellt. Die JSON Struktur kann in v4.3 auch in GXModules genutzt werden um das Menü zu erweitern.

    Damit das Shopsystem die Datei findet, muss sie in einen beliebigen Ort in GXModules/<Vendor>/<Module> abgelegt werden und auf ".menu.json" enden. In deinen Fall könntest du zum Beispiel "GXModules/<Vendor>/<Module>/top-orders.menu.json" oder auch "GXModules/<Vendor>/<Module>/Menu/my-module.menu.json" verwenden. Wichtig ist nur, dass sie innerhalb deines Modulverzeichnisses liegt und auf ".menu.json" endet.

    Sie muss die gleich Struktur verwenden, wie die JSON Datei die das Haupt-Menu zusammensetzt. Die Datei ist unter "GambioAdmin/Layout/Menu/data/GambioAdminMenu.json" zu finden

    So könnte die Datei für dich etwa aussehen:
    Code:
    [
        {
            "id": "BOX_HEADING_ORDERS",
            "items": [
                {
                    "sort": 40,
                    "link": "new_page.php",
                    "title": "Top Bestellungen",
                    "if": {
                        "filter": "configActive",
                        "args": [
                            "MODULE_CENTER_TOP_BESTELLUNGEN_INSTALLED"
                        ]
                    }
                }
            ]
        },
        {
            "id": "custom-menu-group",
            "sort": 60,
            "class": "<Fontawesome Icon Class>",
            "title": "<Section>.<Phrase>",
            "items": [
                {
                    "sort": 10,
                    "link": "some_page.php",
                    "title": "Nicht übersetzter Titel"
                }
            ],
            "if": {
                "filter": "configActive",
                "args": [
                    "MODULE_CENTER_TOP_BESTELLUNGEN_INSTALLED"
                ]
            }
        }
    ]
    
    Das JSON bildet zwei Menugruppen-Objekte ab. Im ersten wird die id "BOX_HEADING_ORDERS referenziert. Dadurch werden die definierten Menüitems innerhalb der Gruppe "Bestellungen" abgelegt, da die Gruppe in der Hauptmenu-Datei die selbe ID verwendet.
    Im zweiten Objekt wird eine noch nicht besezte "id" verwendet, um einen neuen Haupteintrag anzulegen. Für das Attribut "class" sollte eine fontawesome (5.3) icon klasse verwendet werden. "title" kann entweder ein einfacher String sein, wenn der Wert nicht überstzt werden soll. Ansonsten sollte man, mit einem Punkt getrennt, zuerst die Language Section und danach die Phrase angeben.
    Im Attribut "items" werden dann die verschiedenen Menüeinträge definiert.

    Mit Hilfe des "if" Attributs können Einträge aus den Gesamtergebniss ausgeschlossen werden. Zur Zeit sind noch nicht viele Filter implementiert, aber es existiert schon einer, der Überprüft ob eine Configuration innerhalb der gx_configurations Tabelle einen Wert von "1", bzw auch "true" hat (siehe Beispiel). Das "if" Attribut kann für Menügruppen und Menüitems verwendet werden.


    Leider ist die passende Dokumentation noch nicht veröffentlicht, daran arbeiten wir aber. Falls du irgendwelche Fragen oder Probleme hast, gib uns bitte Feedback, sodass wir dir weiterhelfen können.
     
  13. MosTec

    MosTec Erfahrener Benutzer

    Registriert seit:
    10. Februar 2014
    Beiträge:
    182
    Danke erhalten:
    15
    Danke vergeben:
    23
    In den Menüs sind auch noch Fehleinträge vorhanden:

    upload_2020-10-18_12-41-20.png

    upload_2020-10-18_12-42-25.png
     
  14. Bienzle

    Bienzle Erfahrener Benutzer

    Registriert seit:
    7. Dezember 2011
    Beiträge:
    116
    Danke erhalten:
    25
    Danke vergeben:
    175
    Diese Fehleinträge kann ich bestätigen.
     
  15. Marvin (Gambio)

    Marvin (Gambio) Moderator
    Mitarbeiter

    Registriert seit:
    5. Februar 2019
    Beiträge:
    68
    Danke erhalten:
    33
    Danke vergeben:
    22
    Das konnte ich in meinem lokalen Testshop nicht nachstellen. Vielleicht wurde nach dem Update der Textecache nicht richtig erneuert. Bitte einmal unter "Gambio Admin" > "Toolbox" > "Cache" den Button "Cache für Texte leeren" drücken.

    Sollte das Problem dadurch nicht gelöst sein, dann legt bitte ein Supportticket an.
     
  16. Dominik Späte

    Dominik Späte Erfahrener Benutzer

    Registriert seit:
    16. Oktober 2018
    Beiträge:
    930
    Danke erhalten:
    802
    Danke vergeben:
    300
    @Tobias S. (Gambio) Vielen lieben Dank noch für den Tipp und die Ausführungen!

    Ich hatte mir das schon vor einigen Wochen angeschaut. Aber bis 4.2 haben eigene .menu.json-Dateien den Adminbereich komplett lahmgelegt. Jetzt klappt es vorzüglich und ich verlasse mich drauf, dass es auch so bleibt ;)
     
  17. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Habe das Update in meinem Testshop hochgeladen.
    Version war vorher 4.2.0
    die einzigen Admin-Seiten die Funktioniert ist die Startseite und die Einstellungen.
    Alle anderen Seiten zeigen nur
    Unbenannt.JPG

    Ich spiele jetzt erstmal die Sicherung wieder ein und versuche es später noch mal.
     
  18. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Zur Admin-Startseite
    Das die Statistik nicht oben steht ist etwas ungewohnt, aber ob der Rest jetzt in Blöcken nebeneinander oder in Listen untereinander ist, ist eigentlich ....

    Der Einrichtungsassistent ist gut, hoffentlich nutzen die Leute den auch.
    Und wenn man den schließt kommt auch die Statistik wieder, nur eben an einem anderen Ort und nicht so schön bunt :)
     
  19. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    30. Oktober 2015
    Beiträge:
    2.349
    Danke erhalten:
    573
    Danke vergeben:
    506
    Ich muss nochmal drauf zurückkommen.
    Man kann mit Plesk leider keine Verzeichnisse auf den Server laden. Allerdings kann man zip Pakete hochladen und entpacken. Also habe ich das Gambio Zip entpackt, die Ordner an die richtige Stelle kopiert (damit sich die Dateien dann auf dem Server an die richtige Stelle entpacken), dann ein neues Zip gepackt, auf den Server geladen und dann dort entpackt.
    Der Updateprozess (von 4.2.0.0 auf 4.3.1.0rc1) funktioniert ... eigentlich.

    So gehts los.
    Screenshot 2020-10-26 181318.png

    So gehts weiter.
    Screenshot 2020-10-26 181339.png

    Und dann kommt das.
    Screenshot 2020-10-26 181402.png

    o_O

    Jemand ne Idee dazu?
     
  20. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Blind habe ich keine Idee.