1. Wenn Ihr uns das erste Mal besucht, lest euch bitte zuerst die Foren-Regeln durch.
    Information ausblenden

Neu Smarty Variablen in cart_dropdown_label.tpl nicht verfügbar

Dieses Thema im Forum "Templateangelegenheiten JTL-Shop" wurde erstellt von Tomas, 13. Februar 2018.

  1. Tomas

    Tomas Mitglied

    Registriert seit:
    8. Januar 2018
    Beiträge:
    79
    Zustimmungen:
    5
    Punkte für Erfolge:
    8
    Hallo,

    ich habe aktuell das Problem, dass ich in der cart_dropdown_label.tpl einige Template-Einstellungen abrufen möchte.
    Wenn ich die Seite neu lade, dann sieht auch alles gut aus. Sobald ich aber den Dropdown des Warenkorbs aufrufe, lädt der Bereich neu und in dem Moment gibt es wohl keinen Zugriff mehr auf die Variablen.

    Meine tpl sieht wie folgt aus:

    Code:
    <a href="{get_static_route id='warenkorb.php'}" class="dropdown-toggle" data-toggle="dropdown">
        <span class="fa fa-shopping-cart"></span>
        {if $WarenkorbArtikelPositionenanzahl >= 1}
            <sup class="badge">
                <em>{$WarenkorbArtikelPositionenanzahl}</em>
            </sup>
        {/if}
        {if $Einstellungen.template.headerNavigation.showIconText === 'Y'}<span class="iconText">{lang key="basket" section="global"}</span>{/if}
    </a>
    <ul class="cart-dropdown dropdown-menu dropdown-menu-right">
        {include file='basket/cart_dropdown.tpl'}
    </ul>
    Hat jemand von euch einen Rat? Muss ich etwas beachten, wenn Template-Dateien (scheinbar) per Ajax nachgeladen werden?

    Die Variablen "$WarenkorbArtikelPositionenanzahl" und "$WarenkorbArtikelPositionenanzahl" bleiben dabei übrigens gefüllt.


    Shopversion: 3.2 Community Edition
    Server: Lokaler Xampp Server


    Vielen Dank!

    Tomas
     
  2. Mirko.Schmidt

    Mirko.Schmidt Super-Moderator Mitarbeiter

    Registriert seit:
    14. August 2015
    Beiträge:
    1.314
    Zustimmungen:
    60
    Punkte für Erfolge:
    48
    Ort:
    Mönchengladbach
    Ich denke mal es handelt sich hier um einen Shop 4 und nicht Shop 3, da die angegebene Datei nur im Shop 4 existiert. Wenn ich mich gerade nicht ganz täusche wird der Mini Warenkorb durch die io_inc.php mit der getBasketItems() Funktion nachträglich bearbeitet. Mit letzterInclude.php wird der Mini Warenkorb aufgebaut. Daran müsste sich dann orientiert werden.
     
  3. Tomas

    Tomas Mitglied

    Registriert seit:
    8. Januar 2018
    Beiträge:
    79
    Zustimmungen:
    5
    Punkte für Erfolge:
    8
    Du hast natürlich vollkommen Recht. Ist die Version 4.05. Hatte mich verguckt :/

    Das werde ich mir gleich mal anschauen. Ist irgendwie merkwürdig das Verhalten. Ich dachte ich hätte evtl noch Einstellungen vornehmen müssen, damit die $Einstellungen auch in der Ajaxanfrage geladen werden.

    Vielen Dank!
     
  4. Tomas

    Tomas Mitglied

    Registriert seit:
    8. Januar 2018
    Beiträge:
    79
    Zustimmungen:
    5
    Punkte für Erfolge:
    8
    So, ich habe mir das mal angeschaut. Es scheint so als wären die $Einstellungen in der io_inc.php nicht gefüllt. Ich frage mich nun ob das so Standard ist oder ob auf meinem lokalen Webserver etwas schief läuft.

    Hat vielleicht jemand einen Tipp für mich?
     
  5. Tomas

    Tomas Mitglied

    Registriert seit:
    8. Januar 2018
    Beiträge:
    79
    Zustimmungen:
    5
    Punkte für Erfolge:
    8
    Vielleicht könnte das jemand für mich testen? Eine Variable aus $Einstellungen in der cart_dropdown_label.tpl einbinden und schauen, ob diese nach auslösen des Dropdowns noch da ist?

    Falls die dann noch da sein sollte, stimmt etwas mich meiner Entwicklungsumgebung nicht. Würde die dann einstampfen und einfach einen Shop bei JTL hosten lassen.
     
  6. css-umsetzung

    css-umsetzung Offizieller Servicepartner SPBanner

    Registriert seit:
    6. Juli 2011
    Beiträge:
    2.612
    Zustimmungen:
    289
    Punkte für Erfolge:
    83
    Beruf:
    Freiberuflich
    Ort:
    Berlin
    Also wenn ich mich richtig erinnere kannst du da nicht eingreifen da das alles nur per js und nicht über tpls geregelt wird.
    Es ist lange her das ich das mal angeschaut habe.
     
  7. Tomas

    Tomas Mitglied

    Registriert seit:
    8. Januar 2018
    Beiträge:
    79
    Zustimmungen:
    5
    Punkte für Erfolge:
    8
    @css-umsetzung in der io_inc.php die per Ajax aufgerufen wird, wird die tpl geladen. Es sind auch alle Smarty-Variablen da (Warensumme, WarenkorbText etc.) - nur die $Einstellungen nicht.
    Ich habe das jetzt auf einem JTL Server testen können - dort war genau das gleiche Verhalten.

    Ich habe mir bereits ein Workaround erarbeitet der mein Problem löst. Ich werde mir das aber trotzdem noch mal im Detail anschauen. Es geht mir weniger darum, dass es nicht geht - sondern eher darum, dass ich nicht verstehe wieso es nicht funktioniert. ;)

    Vielen Dank für Eure Beiträge! :)
     
  8. FPrüfer

    FPrüfer Super-Moderator Mitarbeiter

    Registriert seit:
    19. Februar 2016
    Beiträge:
    653
    Zustimmungen:
    92
    Punkte für Erfolge:
    28
    Ort:
    Halle
    Hallo,
    die globale Variable $Einstellungen wird je nach aktuellem Context mal mehr mal weniger gefüllt - jenachdem was gerade an Einstellungsparametern gebraucht wird. Für den Aufruf von getBasketItems über die io.php werden im Core keine weiteren Einstellungsparameter benötigt, sodass die Variable komplett leer bleibt. Wenn man hier eingreifen möchte, so ginge das nur über ein kleines Plugin, das über den Hook
    HOOK_IO_HANDLE_REQUEST für den Request {"name":"getBasketItems","params":[null]} die Variabe mit den benötigten Einstellungen füllt. (z.B.
    global $Einstellungen = Shop::getSettings([CONF_TEMPLATE]);)
     
    Tomas gefällt das.
  9. Tomas

    Tomas Mitglied

    Registriert seit:
    8. Januar 2018
    Beiträge:
    79
    Zustimmungen:
    5
    Punkte für Erfolge:
    8
    Der Hammer! Vielen Dank! Werde ich mich die Tage mal ran machen. Ich arbeite mich grad noch in die Templates ein und gehe dann über zu den Plugins. Das hilft mir aber schon sehr weiter.

    Ich danke Dir! :D

    LG
    Tomas
     

Diese Seite empfehlen

Verstanden Weitere Informationen

JTL-Software benutzt Cookies, teilweise von Drittanbietern, um Funktionalitäten auf unseren Webseiten zu ermöglichen.