Neu Wie Smarty Variable aus Plugin heraus verändern

John

Sehr aktives Mitglied
3. März 2012
2.140
352
Berlin
Hallo,

ich bin eher in der Windwos Welt zu Hause, versuche aber meine ersten Schritte im JTL Plugin.

Ich möchte die Sarty Variable $showMatrix, die auf der Artikeldetailseite steuert, ob Varko Artikel mit Auswahl oder Matrix angezeigt werden aus einem Plugin heraus steuern.
Ziel des ganzen: Bestimmte Kundegruppen sollen im Shop Matrix sehen, Standardkunden nicht.

Im Plugin habe ich

Code:
class Bootstrap extends Bootstrapper
{
    /**
     * @inheritDoc
     */
    public function boot(Dispatcher $dispatcher)
    {
        parent::boot($dispatcher);
        if (!Shop::isFrontend()) {
            return;
        }
        $dispatcher->listen('shop.hook.' . \HOOK_SMARTY_INC, function () {
            Shop::Smarty()->assign('showMatrix ', true);
        });
    }
}

Aber leider weise ich damit $showMatrix nicht true zu, sondern erzeuge eine zweite Variable mit gleichem Namen?
So sieht es zumindest im JTL-Debug aus.

Hat jemand einen Anfänger-Tip für mich?

John
 

Anhänge

  • smarty.png
    smarty.png
    21 KB · Aufrufe: 6

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
5.415
1.112
Berlin
Die erste Frage die sich stellt ist:
warum nutzt du nicht die vorhandene Möglichkeit über das bereitgestellte Funktionsattribut "warenkorbmatrix" das für Artikel bereitgestellt wird?

Du machst das da zu früh, weil der Hook HOOK_ARTIKEL_PAGE das überschreiben würde.

Die Variable showMatrix wird über den ProductController gesetzt, du müsstest das also mit dem Hook HOOK_ARTIKEL_PAGE setzen
 

John

Sehr aktives Mitglied
3. März 2012
2.140
352
Berlin
Das Funktionsattribut kann ich nicht nutzen, weil auf Basis von Kundengruppen entschieden werden soll.

Unsere Endkunden kaufen i.d.R nur eine Größe und erwarten Auswahl der Variation.
Unsere Händler kaufen in der Regel je Vater eine Palette Kinder und sind dabei per Matrix einfacher und übersichtlicher bedient.

Leide rmacht mein Code auf dem Hook HOOK_ARTIKEL_PAGE genau das gleiche.
Es wird wieder eine zweite Variable mit dem Namen showMatrix erzeut aber keine Matrix ausgegeben. Sie Screenshot im ersten Post.

Ist denn Shop::Smarty()->assign('showMatrix ', true); überhaupt korrekt, um eine bestehende Variable mit einem anderen Wert zu belegen? Oder legt Assign grundsätzlich eine zweite Variable an?
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
5.415
1.112
Berlin
Das passiert mit dem Hook wenn deine Variable ohne leerzeichen übergeben wird im HOOK_ARTIKEL_PAGE

Shop::Smarty()->assign('showMatrix', true);

CSS-RECHNER-info-2023-02-04-002[1].jpg
 
  • Gefällt mir
Reaktionen: John

John

Sehr aktives Mitglied
3. März 2012
2.140
352
Berlin
Och nö, ja, klar. Ich merke schon, Wochenende naht.

Letztes für heute: Wieso kann ich so nicht die Kundegruppe abfragen?

Code:
            if ($Artikel->Preise->kKundengruppe == 2) {
                Shop::Smarty()->assign('showMatrix', true);
            return;

$Artikel->Preise->kKundengruppe steht laut JTL Debugger zu Verfügung aber in meinem Code ist sie immer == 0

Für mich ist das ganze Ding ein noch nicht zu durchblickender Haufen...wie kommt man vom PHP ins Smarty und zurück.
Ich merke schon, "mal eben zwischdurch reinschnuppern" ist schwierig ;)
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
5.415
1.112
Berlin
Die aktuelle Kundengruppe steht unter anderem in der SESSION
$_SESSION['Kundengruppe']

oder im Template z.B.: $smarty.session.kundengruppe

Und ja, einfach mal so ich schaue es kurz an und mache richtig viel Action geht nicht, dazu sollte man sich etwas intensiver mit der Materie Beschäftigen.

Das Smarty ist am Ende nur das Framework was aus meinen definierten Variablen und ein wenig HTML etwas zaubert, die Programmierung findet auf PHP Ebene statt.
https://jtl-devguide.readthedocs.io/projects/jtl-shop/de/latest/shop_plugins/index.html
 

John

Sehr aktives Mitglied
3. März 2012
2.140
352
Berlin
Das mit der Matrix habe ich und der Abfrage der Kundengruppe klappt sowie aber bei der Lagerbestandsanzeige bekomme ich es noch nicht hin.

Ich möchte aus meine Plugin eine Smarty Variable überschreiben, die sich im verschachtelten Array Einstellungen.artikeldetails.artikel_lagerbestandsanzeige befindet.

Aber mit

Code:
Shop::Smarty()->assign('Einstellungen.artikeldetails.artikel_lagerbestandsanzeige', 'ampel');

komme ich da nicht ran.

Wie geht das?
 

Anhänge

  • SmartyZugriff.png
    SmartyZugriff.png
    10,9 KB · Aufrufe: 3

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
5.415
1.112
Berlin
Zum einen macht man so etwas nicht, zum anderen kannst du nicht irgendwelche Arrays einfach über ein assign ändern.

Du müsstest das einer Smarty Funktion übergeben die das dann für dich macht.
 

John

Sehr aktives Mitglied
3. März 2012
2.140
352
Berlin
Konkret möchte ich im nun im zweiten Schritt für Endkunden den Lagerbestand als Ampel anzeigen, für Händler aber die genau Menge ausgeben.

Problem: JTL setzt nicht wie im Beispiel von Dir genannten ProductController die Variable $showMatrix und prüft dann im Weiteren nur noch auf diese Variable.

Statt dessen wird in zig verschiedenen tpl Files immer wieder dies hier gemacht

Code:
{assign var=anzeige value=$Einstellungen.artikeldetails.artikel_lagerbestandsanzeige}

und dann nur lokal in dem jeweilen tpl File auf $anzeige vezweigt.

Die Variable $anzeige im HOOK_ARTIKEL_PAGE zu überschreiben bingt also nichts, weil JTL sie in der jeweiligen tpl Datei wieder neu aus dem Array $Einstellungen.artikeldetails einliest.

Daher war meine Idee, in diesem Array selbst zu ändern, um auf alle tpl Dateien wirken zu können. Oder ist der Ansatz doof?
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
5.415
1.112
Berlin
Du musst das ganze Shop::Smarty()->assign('Einstellungen'....) nehmen und nicht nur den array den du ändern möchtest.
also $Einstellungen ändern und dann komplett wieder zurückspielen.
 
Ähnliche Themen
Titel Forum Antworten Datum
OTTO Akzeptiert keinen DPD Beilegeretoure wie kann man nun DPD als Versanddienstleister nutzen und DHL Beilegeretoure erstellen JTL-Wawi 1.6 0
Neu Wie Kategorien zu WooCommerce Kategorien mappen? WooCommerce-Connector 0
Neu Wie muss ich die Codes trennen? Um das die Funktionieren Templates für JTL-Shop 4
Pagespeed, WebVitals, Server-Wahl, Shopgröße: wie läufts bei euch? Einrichtung JTL-Shop5 3
Neu Leere Wawi Kategorie nur mit OPC Inhalt befüllen - wie unter Kategorieüberschrift kommen? Templates für JTL-Shop 0
Neu Sortierung Pickliste wie im Auftrag Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Wie lese ich "Eigene Inhalte" > "Checkboxen" im Code aus? Allgemeine Fragen zu JTL-Shop 2
Neu wie kann ich Rabatte der Kategorie nutzen, aber die Kategorie selbst im Shop offline lassen? Allgemeine Fragen zu JTL-Shop 0
Neu Stücklisten- oder Konfigurations-Artikel wie baue ich das logisch auf? User helfen Usern - Fragen zu JTL-Wawi 4
Neu Wie löst ihr den Emailversand? User helfen Usern - Fragen zu JTL-Wawi 1
Neu Wie fügt man das Canonical-Tag am besten ein? Allgemeine Fragen zu JTL-Shop 0
Neu Ameise: Wie kann man Exportvorlagen löschen? User helfen Usern - Fragen zu JTL-Wawi 1
JTL-Shop 5.2.1 - Wie umgehen mit Versandklassen (z.B. Sperrgut, Spedition, etc.)? Wie zusätzliches Sperrgutlogo anzeigen? Einrichtung JTL-Shop5 2
Verkauf Onlineshop reduziertt verfügbaren Bestand an allen POS. Wie verhindern? JTL-Wawi 1.6 0
Neu Wie korrigiert man einen Auftrag nach Rechnungsstellung und Versand? Ich hab da Logikprobleme. Arbeitsabläufe in JTL-Wawi 9
Neu Wie kann ich die Kundengruppe in einem aus dem JTL-Shop eingegangenen Auftrag ändern JTL-Wawi 1.6 1
Neu Mehrere Eigene Übersichten gleichzeitig öffnen und dynamisch, wie bei Dashboard verschieben JTL-Wawi - Ideen, Lob und Kritik 0
Umstellung auf FileStream wie am besten? JTL-Wawi 1.7 33
Neu TIPP: Abfrage in einer Bestellung wegen höherwertigen Versand wie z.B. Paket User helfen Usern - Fragen zu JTL-Wawi 0
Neu JTL Shop 5, wo kann man Inhalt/Menge im Shop anzeigen lassen (wie vorher in JTL Shop4) Betrieb / Pflege von JTL-Shop 0
Kundenguthaben: wie kommt es zustande? Einrichtung JTL-Shop5 1
Neu WMW CLP Plugin Shopware. Wie aus der Wawi befüllen? Shopware-Connector 5
Neu JTL-Wawi 1.7.8.3 - Artikel -> Reiter "Verkaufskanäle", wie aktivieren und pflegen? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wie kann man ein Produktionartiel löschen JTL-Plan&Produce - Fehler und Bugs 1
Neu Streik bei Deutsche Post / DHL - Wie geht Ihr damit um, welche Auswirkungen bemerkt Ihr? Smalltalk 8
Neu Stücklistenartikel / Bundle funktioniert nicht wie es soll User helfen Usern - Fragen zu JTL-Wawi 0
Neu Unerwünschte Werbung für Paypal Ratenzahlung beim Warenkorb Button. WIe wird man das los? Allgemeine Fragen zu JTL-Shop 0
Neu Wie dokumentiert man die Ergebnisse der USt-ID-Prüfung, wenn man sie per Workflow prüft? User helfen Usern - Fragen zu JTL-Wawi 18
Neu Wie ordne ich Ebay Artikeln verschiedener Länder, separat Bilder zu? User helfen Usern - Fragen zu JTL-Wawi 2
Neu wie ? in eine Druckvorlage einen Berichtscontainer einbauen User helfen Usern - Fragen zu JTL-Wawi 0
Neu h1-h5 anpassen - aber wie? Technische Fragen zu Plugins und Templates 15
Neu Coupon - Versand im Shop 5.2.2. -Wie macht ihr das jetzt? JTL-Shop - Ideen, Lob und Kritik 0
Neu Google Search - Gutscheine mit Wert 0.- anzeigen, aber wie? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wie kann ich SVG als Logo erzwingen? Templates für JTL-Shop 2
Neu Rechungsadresse AT und Lieferland DE --> Wie 19% im Auftrag? JTL-Wawi 1.6 8
Neu wie kann man zurückgehaltene Aufträge NICHT auf die Pickliste setzen lassen Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 2
Neu FBA Umbuchung noch wie im JTL Guide beschrieben? User helfen Usern - Fragen zu JTL-Wawi 1
Neu DHL Versenden 3.0 - Herkunftsland und Taric-Code auf Exportdokument, wie? JTL-ShippingLabels - Ideen, Lob und Kritik 23
Neu OSS wie genau handhaben? User helfen Usern 2
Neu Auf Rechnung ausversehen eine Gutschrift und eine Stornorechnung angefertigt. Wie eine rausbekommen? User helfen Usern - Fragen zu JTL-Wawi 2
Neu Versand in die Schweiz - Wie löst ihr es ? User helfen Usern - Fragen zu JTL-Wawi 13
Neu Darstellungsbedingungen eines Textfeldes, wie zusätzliche Variabel einfügen? Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Neu Vorlage mit Projektassistent angelegt, mit Namen gespeichert und dann nicht mehr auffindbar... Wie kann man dieses Projekt wiederfinden? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Vorlage mit Projektassistent angelegt, mit Namen gespeichert und dann nicht mehr auffindbar... Wie kann man dieses Projekt wiederfinden? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wie wäre bei email-Vorlagen wie "Lieferschein mailen" auch das SETZEN von Variablen (im Auftrag) möglich? Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Vorlage mit Projektassistent angelegt, mit Namen gespeichert und dann nicht mehr auffindbar... Wie kann man dieses Projekt wiederfinden? Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Auftrag Seite wie früher? -> neuer Rechner und Update User helfen Usern - Fragen zu JTL-Wawi 2
Neu Überverkäufe, wie Lieferzeiten angeben? User helfen Usern - Fragen zu JTL-Wawi 3
Webinar - IT-sicher durch die digitale Welt: Wie Du JTL-Wawi und Deine Daten optimal schützt Messen, Stammtische und interessante Events 0
Neu Wareneingang direkt in Boxen für Umlagerungsaufträge sortieren - WIE? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0

Ähnliche Themen