Session abfragen im Warenkorb

Thema wurde von Anonymous, 2. März 2019 erstellt.

  1. Anonymous

    Anonymous Mitglied

    Registriert seit:
    29. März 2018
    Beiträge:
    18
    Danke erhalten:
    0
    Danke vergeben:
    8
    Hallo,

    Ich möchte im Warenkorb (shopping_cart.html) die Session abfragen und eine Meldung/Text anzeigen, nur wenn bestimmte Länder aktiv sind. In der shopping_cart.php ist ja die Session vorhanden weil die application_top.php eingebunden ist... Wie kann ich das am besten lösen (die session an die html übergeben und dort mit php oder smary-variable abragen...)?

    LG
     
  2. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    30.984
    Danke erhalten:
    6.097
    Danke vergeben:
    1.079
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    ich bin ja kein Programmierer, aber denke die Session steht eh schon zur verfügung.
    Wäre es für dein Vorhaben nicht sinniger sich an die Länderauswahl zu hängern?
    Wann genau und so soll die Meldung den kommen?
    Wenn jemand den WK aufruft?
     
  3. Anonymous

    Anonymous Mitglied

    Registriert seit:
    29. März 2018
    Beiträge:
    18
    Danke erhalten:
    0
    Danke vergeben:
    8
    Hallo,
    Die Session steht in der php-Datei zur Verfügung und entspricht der Länderauswahl.
    Wenn ich in der PHP Datei zB "if ( $_SESSION['customer_country_id'] == 21 )" abfrage, wäre das Belgien.
    Ich würde gerne wissen, wie ich diese Information bzw. eine Variable in die html-Datei übergeben kann und dann damit einen Text anzeigen kann, quas sinngemäß "if Belgien {<div>Hallo Text für Belgien</div>}".
    LG
     
  4. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    30.984
    Danke erhalten:
    6.097
    Danke vergeben:
    1.079
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    hier: (Link nur für registrierte Nutzer sichtbar.)
    da solltest alles mögliche finden an Infos.
    Bitte ncht in den Shopdateien basteln sondern die overload und smarty Blöcke dazu nutzen.
     
  5. Anonymous

    Anonymous Mitglied

    Registriert seit:
    29. März 2018
    Beiträge:
    18
    Danke erhalten:
    0
    Danke vergeben:
    8
    Diese Doku ist eher allgemein gehalten, vielleicht hat noch jemand einen Tipp für meinen konkreten Anwendungsfall.
     
  6. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Normalerweise hast du eine einigermassene Trennung zwischen Datenbeschaffung und Layoutschicht. Du willst also nicht im Template mit der Session arbeiten. Du willst eher in der Schicht darunter Daten besorgen und dann eine Variable ins Templte übergeben, die du dort dann benutzt, oder du willst eine Smarty Funktion schreiben, die im Prinzip denselben Job tut.
     
  7. Anonymous

    Anonymous Mitglied

    Registriert seit:
    29. März 2018
    Beiträge:
    18
    Danke erhalten:
    0
    Danke vergeben:
    8
    Hallo Wilken,
    Das ist eigentlich egal, was besser geeignet ist. Wenn ich Hilfe bekomme wie ich die smarty session in die html bekomme müsste es auch funktionieren denke ich.
     
  8. Anonymous

    Anonymous Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.748
    Danke vergeben:
    137
    Öhm … https://www.smarty.net/docs/en/language.variables.smarty.tpl

    Wie Wilken schon schrieb: So richtig sauber ist das nicht, wenn das Template eigenmächtig auf das $_SESSION-Superglobal reagiert. Aber das obliegt natürlich deiner eigenen Abwägung, ob und wie du so etwas in deinem Shop benutzt.

    Ich würde tendenziell eher den Umweg über einen Overload des ShoppingCartContentViews gehen.
     
  9. Developer

    Developer Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    2.885
    Danke erhalten:
    617
    Danke vergeben:
    113
    #9 Developer, 4. März 2019
    Zuletzt bearbeitet: 4. März 2019
    Die Lösung ist relativ "einfach". Da würdest Du auch drauf kommen, wenn Du dir die Doku anschauen würdest, wo welche Klassen/Funktionen/Variablen beispielsweise zur Verfügung stehen. Bei solchen Vorhaben, kommst Du nicht drumherum dir die Doku anzuschauen. Diese Lektüre ist ein muss, auch wenn es eine Flut an Informationen für dich ist. :rolleyes:

    Der Marco war jetzt mit dem Beitrag schneller, aber es ist exakt die ShoppingCartContentView und die general.lang.inc.php, wo Du alles mit steuern kannst. Mehr brauchst Du nicht. :)
     
  10. Anonymous

    Anonymous Mitglied

    Registriert seit:
    29. März 2018
    Beiträge:
    18
    Danke erhalten:
    0
    Danke vergeben:
    8
    Danke für den Tipp, das hilft mir schon mal weiter.
    Ich habe mir die ShoppingCartContentView angesehen und ein Overload dafür erstellt.
    Mir ist jetzt noch nicht ganz klar, wie ich aus der PHP-Datei in den HTML-Content schreiben kann.
     
  11. Anonymous

    Anonymous Mitglied

    Registriert seit:
    29. März 2018
    Beiträge:
    18
    Danke erhalten:
    0
    Danke vergeben:
    8
    #11 Anonymous, 4. März 2019
    Zuletzt bearbeitet: 4. März 2019
    Ich habe in der /templates/Honeygrid/module/shopping_cart.html eine smarty variable eingefügt: {$myCartText}

    Ich habe Datei angelegt: /GXUserComponents/overloads/shopping_cart/MyCartText.inc.php und darin geschrieben:

    PHP:
    class MyCartText extends MyCartText_parent
    {
        public function 
    _setMyCartText()
        {  
    $this->v_output_buffer['myCartText'] = 'Das ist mein Cart Text'; }
    }
    Caches geleert, der Text erscheint nicht, auch nicht wenn ich die Funktion in die originale ShoppingCartContentView.inc.php kopiere. Mit "v_output_buffer..." sollte man ja auf die smarty variable schreiben können, oder?
     
  12. Anonymous

    Anonymous Mitglied

    Registriert seit:
    29. März 2018
    Beiträge:
    18
    Danke erhalten:
    0
    Danke vergeben:
    8
    Mit $this->set_content_data('myCartText', 'Das ist mein Cart Text'); funktioniert es, zwar nur wenn ich es in die ShoppingCartContentView.inc.php schreibe und nicht mit dem Overload aber damit kann ich leben.
     
  13. Developer

    Developer Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    2.885
    Danke erhalten:
    617
    Danke vergeben:
    113
    Verstehe nicht wirklich dein Problem. Du kannst doch die ShoppingCartContentView.inc.php updatesicher gestalten bzw. überladen?
     
  14. Anonymous

    Anonymous Mitglied

    Registriert seit:
    29. März 2018
    Beiträge:
    18
    Danke erhalten:
    0
    Danke vergeben:
    8
    Das habe ich versucht, wenn ich das set_content_data in einen Overload schreibe, dann funktioniert es nicht. Wahrscheinlich habe ich beim Erstellen des Overloads irgednwas falsch gemacht, vergessen oder übersehen, aber für mich ist diese Lösung auch ok.
     
  15. Developer

    Developer Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    2.885
    Danke erhalten:
    617
    Danke vergeben:
    113
    Dann zeig mal, was Du da gemacht hast. :)
     
  16. Anonymous

    Anonymous Mitglied

    Registriert seit:
    29. März 2018
    Beiträge:
    18
    Danke erhalten:
    0
    Danke vergeben:
    8
    Siehe oben meinen Beitag von gestern um 15:28 Uhr
     
  17. Developer

    Developer Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    2.885
    Danke erhalten:
    617
    Danke vergeben:
    113
    Halten wir fest, dass es eigentlich um die ShoppingCartContentView.inc.php geht, wo Du deine Funktionalitäten platzieren sollst. Den Tipp hast Du von Marco und mir ja bekommen.

    Jetzt sprichst Du von deinem Script, dass nichts mit der ShoppingCartContentView.inc.php zu tun hat.

    Dann erwähnst Du was von $this->set_content_data, was man in deinem Script nicht sieht.

    Du scheinst ja nicht wirklich auf die Nase gefallen zu sein und verstehst etwas davon bzw. hast ein gewisses Verständnis dafür, was ich auch gut finde, aber im Moment weiß ich nicht genau, wo es wirklich hakt, weil Du eigentlich mit den Informationen, die ich dir gegeben habe, quasi die Lösung hast. :rolleyes: