Geheimnisse der smarty Blocks... Kann mir jemand helfen?

Thema wurde von markus_wick, 21. Januar 2022 erstellt.

  1. markus_wick

    markus_wick Erfahrener Benutzer

    Registriert seit:
    10. Oktober 2018
    Beiträge:
    966
    Danke erhalten:
    214
    Danke vergeben:
    153
    Ich dachte mir dass das jetzt nicht so einfach geht wenn man keine Ahnung hat....

    Hintergrund: In meinem Shop habe ich einen alten Usermod, mit dem ich einen Teil der Datei
    checkout_shipping_modules.html abgeändert habe, um nicht verfügbare Versandmethoden auszublenden. Funktionierte bislang prima (3.14.3.0).

    Im Zuge eines Updates auf 4.5.1.1 wollte /muss) ich das ja nun per Smarty-Block lösen.
    Der fragliche Block in der themes/honeygrid/system/checkout_shipping_modules.html sieht so aus (gekürzt)

    Code:
    {block name="checkout_shipping_modules_item"}
        {foreach key=$counter name=aussen item=method_data from=$module_data.methods}
            <div class="row">
                {block name="checkout_shipping_modules_item_if"}
                    {if $module_data.methods && $module_data.methods|@count == 1 && !$module_data.error}
                        .....
                        .....
                        .....
                    {/if}
                {/block}
            </div>
        {/if}
    {/block}
    Ich wollte den durch ein if-else ergänzen (wie vorher), damit wenn ein Fehler in der Versandmethode auftritt (weil nicht verfügbar für die Artikelkombination), die Ausgabe dieser Versandart unterdrückt wird. Hat wie gesagt per usermod bestens geklappt.

    Code:
    {block name="checkout_shipping_modules_item"}
    <!-- hier wurde nun ein if und ein else eingefügt, das bewirkt wenn eine nicht mögliche versandart angezeigt würde (z.b. post-brief bei artikeln die zu schwer sind) diese erst gar nicht angezeigt wird -->
        {if $module_data.error}
        {else}
            {foreach key=$counter name=aussen item=method_data from=$module_data.methods}
                <div class="row">
                    {block name="checkout_shipping_modules_item_if"}
                        {if $module_data.methods && $module_data.methods|@count == 1 && !$module_data.error}
                        .....
                        .....
                        .....
                        {/if}
                        {/block}
                </div>
            {/if}
    <!-- das hier ist das endif zu dem if-block um nicht mögliche versandarten auszublenden -->
        {/if}
    {/block}
    Die Datei mit dem Block (also ab {block name="checkout_shipping_modules_item"} bis incl. {/block} habe ich benannt wie die zu versmartende Datei: checkout_shipping_modules.html

    Und diese abgelegt in:
    GXModules/realrecyclers/shipping_ausblenden/themes/Honeygrid/html/system/checkout_shipping_modules.html

    Caches geleert, auch vom Browser: Geht nicht.

    Wo ist mein Denkfehler?
     
  2. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.660
    Danke erhalten:
    1.262
    Danke vergeben:
    300
    @markus_wick
    Der Pfad müsste "GXModules/realrecyclers/shipping_ausblenden/themes/Honeygrid/checkout_shipping_modules.html" lauten.
     
  3. markus_wick

    markus_wick Erfahrener Benutzer

    Registriert seit:
    10. Oktober 2018
    Beiträge:
    966
    Danke erhalten:
    214
    Danke vergeben:
    153
    Danke Till, aber:
    Hmmm...neee....mag auch nicht....
    Ich habe mal zum test eine Änderung in der Originaldatei vorgenommen.
    Also in der themes/honeygrid/system/checkout_shipping_modules.html
    Modul und Seitenausgabecache geleert. Im Browser frisch geladen. Geht.
    Geht. Änderungen wieder rückgängige, caches, browser: Wieder normal.

    Dann in der GXModules/realrecyclers/shipping_ausblenden/themes/Honeygrid/checkout_shipping_modules.html das selbe. Geht nicht.
    Dann in der GXModules/realrecyclers/shipping_ausblenden/themes/Honeygrid/html/system/checkout_shipping_modules.html probiert. Auch nicht.

    Laut https://developers.gambio.de/tutorials.html?v=4.5.1.1&p=anlegen-neuer-html-inhalte müsste ja die Änderung eben auch genau so gehen:

    "Angenommen du möchtest Inhalte zur bestehenden themes/Honeygrid/html/system/index.html hinzufügen oder ersetzen, dann musst du eine neue Datei GXModules/{Modulhersteller}/{Modulname}/Shop/Themes/html/system/index.html erstellen und kannst den Inhalt des ursprünglichen HTMLs mit Hilfe der Smarty Blöcken erweitern bzw. verändern."

    Deswegen habe ich ja auch erst den GXModules/realrecyclers/shipping_ausblenden/themes/Honeygrid/html/system/checkout_shipping_modules.html Pfad genommen.

    Nur passiert nix.
    Ich hänge mal die Originaldatei und meine gesmartete an, vielleicht liegts daran:

    Urspungsdatei in Honeygrid und (Name angepasst zum Hochladen) meine smarty.
     

    Anhänge:

  4. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.660
    Danke erhalten:
    1.262
    Danke vergeben:
    300
    Das ist leider falsch in der Doku, diese Ordner müsse da nicht rein.

    Der Pfad müsste dann wie folgt lauten:

    GXModules/realrecyclers/shipping_ausblenden/Shop/Themes/Honeygrid/checkout_shipping_modules.html
    oder
    GXModules/realrecyclers/shipping_ausblenden/Shop/Themes/All/checkout_shipping_modules.html

    Und nicht vergessen den Modulcache und Seitencache leeren
     
  5. markus_wick

    markus_wick Erfahrener Benutzer

    Registriert seit:
    10. Oktober 2018
    Beiträge:
    966
    Danke erhalten:
    214
    Danke vergeben:
    153
    Danke Till!
    You made my day!

    So klappts.

    Ich werde bei Gelegenheit mal eine Anleitung für ähnlich untalentierte Coder wie mich schreiben :)