Neu Wie Smarty Variable aus Plugin heraus verändern

John

Sehr aktives Mitglied
3. März 2012
3.790
897
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: 41

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.780
2.191
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
3.790
897
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
7.780
2.191
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
3.790
897
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
7.780
2.191
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
3.790
897
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: 14

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.780
2.191
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
3.790
897
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
7.780
2.191
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
Neu Verwendung mehrerer Artikeletikett Vorlagen, wie auswählen? Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1
Neu Wie exportiere ich Artikel ohne Lieferanten richtig? JTL Ameise - Eigene Exporte 0
Artikel mit Freitext Variation - oder wie "kundenindividuelle Artikel" handhaben? JTL-Wawi 1.10 1
Neu Kommissionsware --> via Chargen --> saubere Lagerbewerung aber wie? User helfen Usern - Fragen zu JTL-Wawi 7
Neu Versandklassen - wie richtig konfigurieren? Arbeitsabläufe in JTL-Wawi 0
Neu Versandadresse wird nicht wie gewünscht an Amazon übermittelt Einrichtung und Installation von JTL-eazyAuction 0
Neu robots.txt wie richtig einstellen ? Betrieb / Pflege von JTL-Shop 17
Neu Versandkostenberechnung ebay, Kleinpaket International. Wie berechnen in ebay ? eBay-Anbindung - Fehler und Bugs 0
Statistik nicht gleiches Ergebnis wie Ameise JTL-Wawi 1.10 4
Absenderadresse bei Amazon-Versandbestätigungen - wie anpassen? JTL-Wawi 1.10 0
Neu Wie füge ich dem News-System eigene Input-Felder hinzu? Technische Fragen zu Plugins und Templates 3
Neu Rechnungsdatenservice 2.0 : Wie initial Übergabe von Rechnungen mit Belegtyp (Belegkreis) "Rechnungsausgang" an Datev Unternehmen online? User helfen Usern - Fragen zu JTL-Wawi 1
Neu Wie bringe ich die Anzeige der Lieferzeit in alle Artikelseiten? Allgemeine Fragen zu JTL-Shop 7
Neu Leider funktioniert der Support im Forum nicht so, wie es eigentlich sein soll. JTL-Wawi - Fehler und Bugs 15
Neu Wie kann man einen Artikel auf einen bestehenden Artikel bei Amazon aufschalten? Amazon-Lister - Ideen, Lob und Kritik 4
Neu Wie kann ich den Token manuell hinzufügen? Allgemeine Fragen zu JTL-Shop 2
Neu Wie lange ist der JTL Token gültig? Ich bekomme rel. schnell die Meldung "Fehlerhafter Token" User helfen Usern - Fragen zu JTL-Wawi 0
Wie ist euer Fazit zur 1.10? JTL-Wawi 1.10 20
SCX -> ausländische Marktplätze zB Kaufland, Conrad - wie kann ich Titel und Beschreibung auf italienisch übergeben (oder generell Sprache wechseln) kaufland.de - Anbindung (SCX) 0
Neu PayPal Plugin 2.0 - Vaulting - Ist IMMER ein neues Onboarding nötig? Wie prüfen, ob OK? Plugins für JTL-Shop 6
Neu JTL FFN - wie ändert ihr einen Auftrag, nachdem er von Plenty in JTL FFN übertragen wurde? Schnittstellen Import / Export 0
Wie kann man eine Vorkasse-Rechnung / Proforma Rechnung nach Bezahlung als Rechnung ausweisen? JTL-Wawi 1.9 11
Neu Große Bilder im Shop (Slider, Blog, Galerie etc.) nachträglich optimieren – wie macht ihr das? Allgemeine Fragen zu JTL-Shop 2
Neu Amazon - Spar-Abo: Wie schnell identifizieren: Vorsicht es droht Margenverlust Amazon-Anbindung - Ideen, Lob und Kritik 0
Neu Artikel automatisch einstellen - wie aktiviere ich dieses Feld? JTL-Wawi - Fehler und Bugs 4
Neu Versand via Spring XBS - Eigentliche Versandart bei Auslieferung nicht bekannt, wie mit Amazon umgehen Amazon-Anbindung - Ideen, Lob und Kritik 0
Neu Umsatzsteuerfreie Shopify-Bestellungen an JTL-Wawi übertragen – wie macht ihr das? Shopify-Connector 1
Neu Abweichender Absendername auf DHL-/UPS-Etiketten im Fulfillment – wie umsetzbar? JTL-ShippingLabels - Ideen, Lob und Kritik 2
Neu Abweichender Absendername auf DHL-/UPS-Etiketten im Fulfillment – wie umsetzbar? JTL-ShippingLabels - Ideen, Lob und Kritik 0
Neu Kontaktformular auf einer eigenen Seite einfügen. Wie? Allgemeine Fragen zu JTL-Shop 1
JTL OSS Steuereinstellungen - BU-Schlüssel wie pflegen? JTL-Wawi 1.10 0
Neu Video auf Mobilgeräten startet automatisch im Vollbildmodus anstatt nur wie eingebettet auf der Website Allgemeine Fragen zu JTL-Shop 0
Neu Fehlende Übersetzungen - Wie findet man betroffene Seiten / URLs? Betrieb / Pflege von JTL-Shop 9
Neu Umstellung auf JTL Shop - Risk Management wie in Shopware ?! Allgemeine Fragen zu JTL-Shop 7
Neu Wie kann ich Zubehör, welches beim DropshippingLieferanten UND im Standardlager verfügbar ist dropshippen, Wenn der Hauptartikel Dropshipping ist? Arbeitsabläufe in JTL-Wawi 5
Google Merchant, wie mehrere Länder anlegen? Einrichtung JTL-Shop5 4
Neu Wie kann man die automatische Übernahme der letzten (falschen) Versandart verhindern? Allgemeine Fragen zu JTL-Shop 2
Neu Wie alte Vorlagen in der Ameise löschen? JTL-Ameise - Fehler und Bugs 2
Neu Wie kann es sein, dass ein "Rechnung erstellt" - Workflow 3 Tage später nochmal ausgelöst wird? User helfen Usern - Fragen zu JTL-Wawi 5
Wie mache ich das: Lieferschein - retoure- Rechnung für Rest JTL-Wawi 1.9 6
Neu JTL-Connector: Wie kann man Bestände nur von einem Lager (WMS) übertragen? WooCommerce-Connector 3
Neu Anzahl nötiger Bestellungen bei Zahlungsart, wie individuell setzen? Installation / Updates von JTL-Shop 0
Neu Komplettabgleich --> Bilder hängt sich auf - wie finde ich den Artikel Shopify-Connector 4
Wie kann ich in JTL WAWI 1.10.11.0 meine ServiceDesk Lizenz deaktivieren, damit ich Greyhound nutzen kann? JTL-Wawi 1.10 3
Neu Wie richte ich es so ein, dass alle vom Shop versendeten Mails per BBC an eine bestimmte Mail gehen (SMTP) Allgemeine Fragen zu JTL-Shop 1
In Diskussion Wie lässt sich die Ausführung eines Workflows stoppen, sobald ein Produkt in einer gewissen Kategorie ist? JTL-Workflows - Fehler und Bugs 1
Neu andere Artikelbeschreibung für neue Marktplätze per Ameise, wie ? Arbeitsabläufe in JTL-Wawi 4
Neu Insert code "Smarty" Smalltalk 0
Neu Smarty-Wert für Bestseller-Bild? Templates für JTL-Shop 3
In Diskussion Variable für die Anzahl eines Produkts auf der Pickliste JTL-Workflows - Ideen, Lob und Kritik 1

Ähnliche Themen