BLADE: Wie benutzerdefinierte Felder einfügen?

  • Hallo!


    Ich habe bei den Produkten benutzerdefinierte Felder erstellt und habe diese früher, ohne Blade, mit zb %customfield_rabatt% abgerufen -> das hat funktioniert.
    Wie muss ich das bei blade eingeben, damit ich dasselbe Feld dort angezeigt bekomme (a la {{$formatter->get_title( $product )})?
    Dachte an {!! $product->customfield_rabatt !!}, aber so geht es leider nicht und schaue mich in der Dokumentation nicht ganz raus.

    Danke und lg

    Günther

  • So verkehrt war Deine Idee nicht. Ich habe mal in meine funktionierenden Blade-Vorlagen geschaut und da greife ich in der Schleife so zu:

    Code
    @foreach ($products as $product)
    Maße:<br />{{$formatter->get_displayfield($product,'cf_laenge_aussen')}} x {{$formatter->get_displayfield($product,'cf_breite_aussen')}} {{$formatter->get_displayfield($product,'cf_hoehe_aussen')}}
    @endforeach

    Die Customfields heissen dabei laenge_aussen, breite_aussen und hoehe_aussen.


    Also sollte es bei Dir dann mit {{ $formatter->get_displayfield($product, 'cf_rabatt') }} funktionieren.


    Hier ist die Funktion in der Dokumentation beschrieben: https://docs.affiliate-toolkit.com/bladeone-template-engine/

  • Also sollte es bei Dir dann mit {{ $formatter->get_displayfield($product, 'cf_rabatt') }} funktionieren.

    Herzlichen Dank für deine Hilfe. An sich würde es so wie du geschrieben hast, gut funktionieren, wenn ich etwas direkt in das benutzerdefinierte Feld eintrage im jeweiligen Produkt.


    Allerdings habe ich eine Funktion auf das benutzerdefinierte Feld erstellt, die jetzt leider noch nicht funktioniert. (Dies hat wie gesagt bei %customfield_rabatt% noch funktioniert). Ich bekomme zwar keinen Fehler, allerdings auch kein Ergebnis, bzw bleibt dieses leer.

    Hier meine Funktion (man habe bzgl meinen laienhaften Programmierkenntnissen bitte Nachsicht :)).
    Diese berechnet die Differenz zwischen dem minimum Preis und dem maximum Preis und gibt diesen Wert als Zahl (customfield_rabatt) und als % (customfield_rabatt_prozent) aus. Die im Produkt benutzerdefinierten Felder heißen rabatt und rabatt_prozent.




    Muss ich vielleicht hier noch etwas anpassen, damit das funktioniert?

    Danke und lg

    Günther

  • Du bastelst Dir zwei neue Customfields in der Funktion und folgen nicht der automatisierten Programmierlogik.

    Daher sollte es dann mit {{ $formatter->get_displayfield($product, 'customfield_rabatt') }} und {{ $formatter->get_displayfield($product, 'customfield_rabatt_prozent') }} klappen.

    Das wäre zumindest mein nächster Versuch.

    • Offizieller Beitrag

    Muss ich vielleicht hier noch etwas anpassen, damit das funktioniert?

    Ja, die Logik im Blade ist da ein wenig anders. Da musst du die Funktion entsprechend direkt aufrufen.


    Also die Funktion atkp_modify_placeholders_callback( $placeholders ) aufrufen und die richtigen Platzhalter mitgeben.

    Am besten du kopierst die Funktion und machst aus dem "$placeholders" einzelene Parameter welche du aus der blade Engine mitgibst. Also z.b. aus $placeholders['maxprice'] wird dann $maxprice.


    LG Christof

  • Du bastelst Dir zwei neue Customfields in der Funktion und folgen nicht der automatisierten Programmierlogik.

    Daher sollte es dann mit {{ $formatter->get_displayfield($product, 'customfield_rabatt') }} und {{ $formatter->get_displayfield($product, 'customfield_rabatt_prozent') }} klappen.

    Das wäre zumindest mein nächster Versuch.

    Danke, so hab ich mir das auch gedacht. Aber leider hat das auch nicht funktioniert.



    Ja, die Logik im Blade ist da ein wenig anders. Da musst du die Funktion entsprechend direkt aufrufen.

    Danke!
    Ich werde das so versuchen, wenn ich wieder dazu komme - derzeit sind die Kinder zuhause und da finde ich leider keine Zeit fürs arbeiten ^^.
    Melde mich wieder, wenn ich es geschafft oder eben nicht geschafft habe.

    Danke und frohe Ostern!

    lg

    Günther