Neu Category by ID - WIE?

M23

Aktives Mitglied
4. November 2017
17
1
Hallo liebe Community,

kann mir einer sagen, wie ich eine Kategorie in meinem Template erhalte, wenn ich die dazugehörige ID habe?

Die Website für die JTL- Shop Developer-Dokumentation hat zwar eine leichte Überarbeitung des Designs, aber der Inhalt ist nach wie vor so, wie man es eben von JTL erwartet. Damit kann man nur bedingt etwas anfangen.
Und bevor hier manche laut werden und mich berichtigen, dass man das und jenes auch ohne der Doku wissen sollte, sei gesagt, dass das kein Normalzustand ist und das Wissen nicht vom Himmel in den Schädel fällt.

An die, die eine Antwort auf meine Frage haben und das Wissen nicht für sich behalten möchten, wäre ich sehr dankbar, wenn ihr anhand eines kurzen Snippets zeigt, wie man die Kategorie als Objekt anhand der ID im Template gefüllt bekommt.

Besten Dank.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.214
1.950
Berlin
Dafür schreibt man sich am besten eine smartyfunktion in der Bootstrap die einem die Variablen befüllt.
(ich gehe davon aus, dass du nicht die Artikel sondern nur die Kategorie selbst haben möchtest, weil du das ja nicht schreibst.)

hier ganz schmutzig ohne Prüfungen und allem drumherum, denn wie das geht solltest du ja wissen.

Bootstrap erweitern um
Code:
Code:
use JTL\Catalog\Category\Kategorie;

und in der Klasse dann:

Code:
    protected function registerPlugins(): void {
        parent::registerPlugins();
        $this->getSmarty()->registerPlugin(Smarty::PLUGIN_FUNCTION, 'getKat', [$this, 'getKat']);
    }

    public function getKat($args,$smarty) {
        $cat = new Kategorie((int) $args['cat']);
        $smarty->assign('cssCat',$cat);
    }


im template kannst du jetzt das einfügen:

Code:
    {getKat cat=2}
    {(array) $cssCat|dump}

dann siehst du was du ausgelesen hast die 2 ist deine KategorieID

Das sind wirklich Sachen, die nicht beschrieben sind, was aber auch zu weit führen würde, die anderen Programmierer sowie ich, wurschteln sich alle durch den Code und suchen sich heraus was wie initialisiert wird.
Der Aufbau der Klassen und Funktionen ist relativ logisch, so dass man das, wenn man eine Stunde investiert und ein wenig Fit in PHP ist, auch finden kann.
 

M23

Aktives Mitglied
4. November 2017
17
1
Dafür schreibt man sich am besten eine smartyfunktion in der Bootstrap die einem die Variablen befüllt.
(ich gehe davon aus, dass du nicht die Artikel sondern nur die Kategorie selbst haben möchtest, weil du das ja nicht schreibst.)

hier ganz schmutzig ohne Prüfungen und allem drumherum, denn wie das geht solltest du ja wissen.

Bootstrap erweitern um
Code:
Code:
use JTL\Catalog\Category\Kategorie;

und in der Klasse dann:

Code:
    protected function registerPlugins(): void {
        parent::registerPlugins();
        $this->getSmarty()->registerPlugin(Smarty::PLUGIN_FUNCTION, 'getKat', [$this, 'getKat']);
    }

    public function getKat($args,$smarty) {
        $cat = new Kategorie((int) $args['cat']);
        $smarty->assign('cssCat',$cat);
    }


im template kannst du jetzt das einfügen:

Code:
    {getKat cat=2}
    {(array) $cssCat|dump}

dann siehst du was du ausgelesen hast die 2 ist deine KategorieID

Das sind wirklich Sachen, die nicht beschrieben sind, was aber auch zu weit führen würde, die anderen Programmierer sowie ich, wurschteln sich alle durch den Code und suchen sich heraus was wie initialisiert wird.
Der Aufbau der Klassen und Funktionen ist relativ logisch, so dass man das, wenn man eine Stunde investiert und ein wenig Fit in PHP ist, auch finden kann.

Hi!

Vielen Dank für deine Antwort und deine Mühe auf meine Frage einzugehen! 🙏

Im Grunde habe ich es ähnlich angefangen zu lösen, jedoch ohne eigene smarty-Funktion. Das ist aus meiner Sicht oversized für diesen Zweck, zumal die, von dir erwähnte Klasse "JTL\Catalog\Category\Kategorie" eigentlich die Funktionalität bereitstellen sollte.

Ich hole mir die Kategorien über die "get_category_array" Funktion. Eine Category ist in dem Fall vom Typ "JTL\Catalog\Category\Kategorie".
Mein Problem ist derzeit Folgendes: Die Klasse hat eigentlich die Methode "getSubCategories()" (Zeile: 874) und sollte eigentlich die Sub-Kategorien liefern. Tut sie allerdings nicht. Ich habe es heute nicht geschafft nachzuforschen warum nicht.

Hier mein Code, mit welchem ich an spezifischen Seiten die Unterkategorien einer Kategorie auslesen möchte.

Code:
{get_category_array categoryId=$activeId assign='categories'}
            
{foreach $categories as $category}
    {if $category->getID() === $activeId}
        {if $category->hasSubcategories()}
            {assign var=subcategories value=$category->getSubCategories()}
            {$category->getSubCategories()|count} // > 0
        {/if}
    {/if}
{/foreach}

Die Methode "hasSubcategories()" funktioniert dabei korrekt.
Keine Ahnung, was mit der Methode nicht stimmt.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.214
1.950
Berlin
Und das was du da machst findest du also toll?
5 Zeilen Code in der Bootstrap die im Grunde komplett mit dem Cache arbeiten als oversized zu bezeichnen ist leicht übertrieben.

Einen Kategoriebaum von x Kategorien zu prüfen um eine bestimmte Kategorie zu finden, empfinde ich als katastrophalen Fehler.
Vor allem, du machst nichts anderes als eine von JTL bereitgestellte Funktion zu benutzen, die auch als smarty Funktion im NOVA angelegt wurde, nur das du diese dann in einer foreach schleife noch misshandelst.
 

M23

Aktives Mitglied
4. November 2017
17
1
Und das was du da machst findest du also toll?
5 Zeilen Code in der Bootstrap die im Grunde komplett mit dem Cache arbeiten als oversized zu bezeichnen ist leicht übertrieben.

Einen Kategoriebaum von x Kategorien zu prüfen um eine bestimmte Kategorie zu finden, empfinde ich als katastrophalen Fehler.
Vor allem, du machst nichts anderes als eine von JTL bereitgestellte Funktion zu benutzen, die auch als smarty Funktion im NOVA angelegt wurde, nur das du diese dann in einer foreach schleife noch misshandelst.

Hi.

Na toll finde ich es nicht. Deswegen habe ich ja die Frage gestellthier im Forum. 🤔

Das, was du an meinem Snippet siehst, ist das „Herantasten“. Ist natürlich nicht in Produktion.

Das Argument mit dem Cache hebt sich nach meinem Verständnis auf, weil die bereits vorhandene Smarty Funktion, die ich hier nutze, auch mit dem Cache arbeitet.

Somit solltest du es nicht toll finden und gleich den Weg der großen Kritik einschlagen. Es geht ja darum, dass ich die Community nach möglichen, funktionierenden Lösungen gefragt habe, weil ich noch nicht 100% sicher bin und JTL Doku so „gut“ ist und nichts darüber sagt, wie man eine Kategorie per ID herausholt.

Die ID habe ich bereits. Eine Schleife hätte es nicht mal gegeben, wenn die Methode für die SubCategories() aus der Klasse Kategorie.php einfach das tun würde, wofür sie deskriptiv steht, nämlich Unterkategorien per ID hergeben. 🤦‍♂️

Und eine Schleife bei 8 Kategorien wäre aus meiner Sicht nicht katastrophal. Sind keine 8000.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.214
1.950
Berlin
Du machst da im Grunde nichts anderes als das du eben auch eine extra definierte Smarty funktion aufrufst, die für das was du möchtest "wirklich oversized" ist
Hinzu kommt, das du diese Frage gestellt hast:
kann mir einer sagen, wie ich eine Kategorie in meinem Template erhalte, wenn ich die dazugehörige ID habe?
deine Funktion die du da hast, hat nichts mit deiner Frage zu tun
 

NoOne

Aktives Mitglied
16. März 2024
172
76
Hi.

Na toll finde ich es nicht. Deswegen habe ich ja die Frage gestellthier im Forum. 🤔

Das, was du an meinem Snippet siehst, ist das „Herantasten“. Ist natürlich nicht in Produktion.

Das Argument mit dem Cache hebt sich nach meinem Verständnis auf, weil die bereits vorhandene Smarty Funktion, die ich hier nutze, auch mit dem Cache arbeitet.

Somit solltest du es nicht toll finden und gleich den Weg der großen Kritik einschlagen. Es geht ja darum, dass ich die Community nach möglichen, funktionierenden Lösungen gefragt habe, weil ich noch nicht 100% sicher bin und JTL Doku so „gut“ ist und nichts darüber sagt, wie man eine Kategorie per ID herausholt.

Die ID habe ich bereits. Eine Schleife hätte es nicht mal gegeben, wenn die Methode für die SubCategories() aus der Klasse Kategorie.php einfach das tun würde, wofür sie deskriptiv steht, nämlich Unterkategorien per ID hergeben. 🤦‍♂️

Und eine Schleife bei 8 Kategorien wäre aus meiner Sicht nicht katastrophal. Sind keine 8000.
Hast du bei deinem Code schon mal durch $subcategories iteriert? Oder dir auch nur mal {$subcategories[0]->getName()} ausgeben lassen?

Edit: Oder lass mich anders fragen: Warum benutzt du nicht $AktuelleKategorie und $oUnterKategorien_arr?

Code:
        {if $AktuelleKategorie->hasSubcategories && $AktuelleKategorie->getID()===$activeId}
            {foreach $oUnterKategorien_arr as $subCategory}
                {$subCategory->getName()}<br>
                {if $subCategory->hasChildren}
                    {$subCategory->getChildren() assign=subsubCat}<br>
                    {foreach $subsubCat as $subsubCategory}
                        {$subsubCategory->getName()}
                    {/foreach}
                {/if}
            {/foreach}
        {/if}
 
Zuletzt bearbeitet:
Ähnliche Themen
Titel Forum Antworten Datum
Neu Sonderpreise zum Mengenabverkauf von Überverkaufsprodukten - wie löst ihr das? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wie erstelle ich Bundles mit JTL Wawi? User helfen Usern 0
Auftrag Inlandskunde mit USt-Id - wie erfassen JTL-Wawi 1.7 6
Neu Konto an den Shop übertragen - wie funktioniert das praktisch? Umstieg auf JTL-Shop 0
Neu E-Mail Vorlage Versandbestätigung per Workflow ausführen, wie? JTL-Workflows - Ideen, Lob und Kritik 0
Neu Wie löscht man eine Lizenz aus der Lizenzverwaltung im KC? Allgemeine Fragen zu JTL-Shop 2
Neu REST-API - Auftrag erstellen - wie Versandposition hinzufügen? Schnittstellen Import / Export 0
Neu Wie handelt Ihr die GPSR Anforderung an Produktbilder bei Amazon ? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wie legt man neue Erlöskonten an Arbeitsabläufe in JTL-Wawi 2
Neu Wie kann ich die DOM-Size reduzieren? Technische Fragen zu Plugins und Templates 1
Neu Wie kann man Freipositionen in einem Auftrag gruppiert darstellen? Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 4
Neu Wie kann ich die Verfügbarkeiten eines Artikels bei Amazon steuern? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Sprachvariablen: Statt mehreren Variablen (wie z. B. %s %s) nur eine bestimmte ausgeben Allgemeine Fragen zu JTL-Shop 2
Neu Sendungsnummern an ebay übertragen? wie? eBay-Anbindung - Fehler und Bugs 6
Neu E-Rechnung verarbeiten, wie löst ihr das? Smalltalk 2
Wie versendet die Wawi E-Mails? JTL-Wawi 1.9 4
Neu Wie finde ich per SQL heraus welche Aufträge auf Teillieferbar stehen? JTL Ameise - Eigene Exporte 1
Neu Wie kann ich Artikel mit Lagerbestand 0 beim Import inaktiv setzen) JTL-Ameise - Ideen, Lob und Kritik 17
Neu JTL-Worker als Windows-Dienst - wie macht Ihr das? User helfen Usern - Fragen zu JTL-Wawi 8
Neu Wie entferne ich die Lastschrift Checkbox? Allgemeine Fragen zu JTL-Shop 2
Neu Ameise (WAWI 1.9.5.2) -> Wie funktioniert der Upload der Produktion JTL-Plan&Produce - Ideen, Lob und Kritik 0
Bestehender eBay-Shop -- JTL Shop neu -- Abgleich -- wie vorgehen? JTL-Wawi 1.9 1
Wie lange benötigt bei euch die Wawi zum starten JTL-Wawi 1.9 7
Neu .htaccess wie nun einstellen ? Installation / Updates von JTL-Shop 2
Neu Manueller Worklfow Rechnung für Mahnung, wie den offenen Rechnungsbetrag bei Teilrechnung ausgeben? JTL-Workflows - Ideen, Lob und Kritik 1
Neu Wie in der Wawi gebrauchte Artikel vom Endkunden einkaufen User helfen Usern - Fragen zu JTL-Wawi 4
Neu Wie kann ich den Titel bei Google Ergebnissen ändern? Allgemeine Fragen zu JTL-Shop 6
Neu Bildgrößen auf der Startseite (in den Boxen wie z.B. Top-Angebot) Allgemeine Fragen zu JTL-Shop 4
Neu Hersteller ändert SKU von Kind Artikel (Varianten) | Vater beleibt gleich - wie verfahren bei "gemischtem" Lager alt/neu User helfen Usern - Fragen zu JTL-Wawi 3
Neu Sortierung nach Bestand - so wie im JTL Shop 4 JTL-Shop - Ideen, Lob und Kritik 2
Neu Wie kann ich bestimmte Wörter in der Suchfunktion von JTL-Shop ausschließen? Allgemeine Fragen zu JTL-Shop 0
Neu Vererben der Bildern einer Variation auf alle anderen Variationen, wie beim Vererben von Vater zu Kind-Artikeln, möglich wie? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Drop Shipping - Beide Firmen mit JTL Wawi - Wie löse ich das? Arbeitsabläufe in JTL-Wawi 10
Neu Wie das neue Funktionsattribut storefront_presentation_main_product anlegen? Shopware-Connector 7
Neu GPSR Verordnung - Wie handhabt ihr das im Shop mit dem Nova Template? Betrieb / Pflege von JTL-Shop 19
Neu Bei VarKombi-Artikeln, wie immer eine Farbe und Größe vorauswählen, damit alle Bilder angezeigt werden? Allgemeine Fragen zu JTL-Shop 4
Neu Wechsel Auftragspaket im Kundencenter - wie und wann ? User helfen Usern - Fragen zu JTL-Wawi 6
Paypal Kontosperre / Verbot bestimmte Artikel in bestimmte Länder zu liefern - wie Umsetzen? JTL-Wawi 1.9 2
Neu Wie kann ich über eigene Felder eine Mehrfachauswahl erstellen? User helfen Usern - Fragen zu JTL-Wawi 4
Neu Wie andere Länder und Sprachen vom Google Shopping Plugin mit dem Merchant Center verbinden Plugins für JTL-Shop 6
Neu Wie macht ihr euch euch Testumgebung? Gelöste Themen in diesem Bereich 6
Neu Ebay Verkäufe - Auswahlartikel mit händischer Auswahl in der Rechnung - wie bei Wawi 1.9 vorgehen ?! Arbeitsabläufe in JTL-Wawi 0
Neu Unterschiedliche Lagerplätze, wie konfigurieren? Waage nur mit WMS? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 2
Neu Wie Reklamationen aus Statistik ausschließen? Arbeitsabläufe in JTL-Wawi 2
Wie FBA Gutschrift erzeugen ohne Auftragsbezug? JTL-Wawi 1.9 0
Neu Gebinde wie angelegt unter sonstiges als Barcode ausgeben Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 11
Neu Kunde zahlt bar bei Anlieferung, wie löse ich das? Arbeitsabläufe in JTL-Wawi 15
In Diskussion Geplante Abkündigung für JTL-POS für Android 7 Geräte wie Sunmi T2 in Sicht? JTL-POS - Fragen zu Hardware 16
Neu cKundenNr im JTL Shop nicht gesetzt. Auch kKundengruppe. Wie Rückkanal zum Shop aktualisieren? JTL-Wawi - Fehler und Bugs 3
Neu Wie handhabt ihr eure Buchhaltung mit JTL? Arbeitsabläufe in JTL-Wawi 9

Ähnliche Themen