Anfänger Blade-Engine Fragen

  • Hallo!

    Ich schaue mir zum ersten Mal die Blade Template Engine an und habe Fragen bzw. Probleme:

    Ich bräuchte einen Button, der mich zum Shop mit dem kleinsten Preis weiterleitet und dieser auch im Button drinnen steht. In den alten Vorlagen hab ich das mit %minprice_url% und %minprice% gelöst:


    Code
     <div id="bestpreis"><a href="%minprice_url%" class="button"><b>Bestpreis:</b>
            <div style="font-size: 32px; color:red">%minprice%</div>

    So weit ich sehe, gibt es aber kein Pendant in der Blade-Engine, oder? Wie könnte ich das lösen.

    Da ich wie gesagt gerade am testen bin, schau ich mir manche formatter functions an, erhalte aber bei vielen sofort einen fatalen Fehler, bis ich wieder den Code entferne. Was mache ich da falsch?
    (Habe den Verwendungszweck zwischen {!!$variable1!!} und {{$variable1}} noch nicht wirklich begriffen):


    Wenn ich zb


    {{$formatter->get_minoffer($product, $includemainoffer)}}

    oder {!!$formatter->get_minoffer($product, $includemainoffer)!!}

    oder auch ohne $includemainoffer


    unter die Description in der wide.blade.php hinzufüge erhalte ich einen fatalen Fehler und das Seitenlayout bricht zusammen.

    auch wenn ich


    {!!$formatter->get_offercount($offers)!!} (mit oder ohne Rufzeichen) einfüge ist es dasselbe. -> hat das was mit dem @foreach zu tun?

    Kenn mich da leider überhaupt noch nicht aus und somit keinen wirklichen Plan was ich mache.


    --------------------------------------------------


    Also was ich eben Blade-technisch umgesetzt brauche ist dieser Button mit dem Link zur %minprice_url% mit dem Text "Bestpreis: %minprice%"
    und (nicht in einem Button) eben die Anzahl der Angebote.


    Danke und lg

    Günther

    • Offizieller Beitrag

    (Habe den Verwendungszweck zwischen {!!$variable1!!} und {{$variable1}} noch nicht wirklich begriffen):

    {!!$variable1!!}

    Zeigt die $variable als html an. Also du siehst dort: "text"

    {{$variable1}}

    zeigt ide $variable als encoded html ein. Also du siehst dort das html: "<span>text</span>"


    unter die Description in der wide.blade.php hinzufüge erhalte ich einen fatalen Fehler und das Seitenlayout bricht zusammen.

    Du musst drauf achten das die Produkt-schleife mit drin ist.



    Code
    @foreach ($products as $product)

    dazwischen deine aufrufe


    Code
    @endforeach

    Da ich wie gesagt gerade am testen bin, schau ich mir manche formatter functions an, erhalte aber bei vielen sofort einen fatalen Fehler, bis ich wieder den Code entferne. Was mache ich da falsch?

    Du kannst dir auch die atkp_template_helper.php ansehen. Dort kannst du z.b. den Platzhalter suchen und siehst wie der Aufruf für einen Platzhalter ist.


    z.b. für minprice-url


    PHP
    @foreach ($products as $product)
    
    <?php $minoffer  = $formatter->get_minoffer( $product, true, $null); ?>
    {{ $formatter->get_offer_url( $minoffer ) }}
    
    @endforeach


    lg Christof

  • ok, Danke.

    Wenn ich die php Zeile einfüge geht es ohne fatalen Fehler.

    Könntest du mir noch erklären, warum ich diese oder ähnliche php Zeilen für manche Platzhalter (zb {{$formatter->get_offercount( $alloffers )}}) in die Vorlage einbauen muss, damit diese funktionieren und für manche ({!! $formatter->get_infotext($product) !!}) nicht?

    Muss ich, wenn ich die Platzhalter (minoffer, offercount...) in mehreren Vorlagen verwende, diese php Zeile in jede Vorlage einbauen, oder könnte ich diese einmalig zb. in die functions.php auslagern?


    Danke.

    lg

  • Wieder habe ich herumprobiert und wieder ein Problem wo ich nicht weiterkomme.
    Wie du mir geraten hast, habe ich mir die atkp_template_helper.php angesehen und versucht etwas daraus zu basteln.

    Hier auf dieser Testseite: Die besten Brettspiele - Bestpreis & Preisvergleich | bestenbrettspiele.de
    baue ich gerade mein "normales" Template in Blade um.

    Mein Code schaut derzeit so aus:


    Wie du oben am Link sehen kannst, funktioniert es auch irgendwie.
    Es funktioniert, wenn ich nach zb.: "erde", "flügelschlag", "glasgow" und sicher viele andere suche.
    Aber aus einem mir unerfindlichen Grund nicht, wenn ich zb.: "zug um zug", "great western trail" suche. -> Da erhalte ich einen fatalen Fehler.

    Ich konnte herausfinden, dass es an dieser Zeile liegt:


    Code
    <td>Bestpreis: <b>{{$formatter->get_offer_price( $minoffer )}} bei {{$minoffer->shop->get_title()}}  </b>


    Ich bin mir sicher, dass das vermutlich nicht stimmt, obwohl das Ergebnis dennoch herauskommt:

    Code
    {{$minoffer->shop->get_title()}}

    Aber selbst, wenn ich das weglasse, funktioniert es nicht.



    Habe natürlich alle Caches gelöscht und es auch im privaten Fenster probiert.

    Danke und lg

    • Offizieller Beitrag

    Hallo,

    schau mal ob es damit klappt: