Lieferzeit block

Thema wurde von Garnelion, 15. Juli 2018 erstellt.

  1. Garnelion
    Garnelion Erfahrener Benutzer
    Registriert seit:
    4. Oktober 2011
    Beiträge:
    82
    Danke erhalten:
    3
    Danke vergeben:
    33
    Hallo zusammen,

    ich habe eine Frage über {block}, da ich in dem Bereich neu bin.

    ich möchte Lieferzeit ausgabe so ändern, dass wenn der Produkt lieferbar ist, kommt keinen "images/icons/status/gruen.png" bild da rein, aber wenn nicht lieferbar sollte rotes Bild bleiben.

    Ich habe angefangen mit {block} zu experimentieren aber nicht weitergekommen.
    Z.b. ich möchte "\templates\Honeygrid\snippets\product_info\shipping_time.html" erweitern und probiere nur bei {block name="snippets_product_info_shipping_time_label"}{/block} was zu ergänzen (zur Testzwecke).
    Er sieht so aus:
    HTML:
    {block name="snippets_product_info_shipping_time_label"}
        <label>
             {$txt.text_shippingtime}
        </label>
    {/block}
    Dafür habe ich "\GXModules\ScHunter\Thema\Shop\Templates\Honeygrid\snippets\products_info\shipping_time.html" erstellt und folgendes reingeschrieben:

    HTML:
    {block name="snippets_product_info_shipping_time_label" append}
        <label>Ihre </label>
    {/block}
    Normalerweise sollte dann stehen "Ihre Lieferzeit:" aber es passiert nichts
    Was mache ich da falsch?

    MfG,
    Alex
     
  2. ReneT
    ReneT Erfahrener Benutzer
    Registriert seit:
    1. Dezember 2016
    Beiträge:
    708
    Danke erhalten:
    232
    Danke vergeben:
    67
    Ändere doch einfach das kleine Bild... tausche es gegen ein durchsichtiges Bild aus...
    Warum so kompliziert?
     
  3. Garnelion
    Garnelion Erfahrener Benutzer
    Registriert seit:
    4. Oktober 2011
    Beiträge:
    82
    Danke erhalten:
    3
    Danke vergeben:
    33
    #3 Garnelion, 15. Juli 2018
    Zuletzt bearbeitet: 15. Juli 2018
    wie ich gesagt habe ich möchte verstehen wie die {block} funktioniert und komme da einfach nicht weiter.
    Und es gibt andere Aufgaben die ich dann auf {block} umschreiben möchte, weil jetzt sind die mit USERMOD geändert wurden.

    Außerdem bei deiner Lösung verschwindet das Bild auch in der Kategorie Ansicht von Produkten, und da sollte es bleiben ...
     
  4. barbara
    barbara G-WARD 2014-2020
    Registriert seit:
    14. August 2011
    Beiträge:
    35.657
    Danke erhalten:
    11.371
    Danke vergeben:
    1.616
    Der Block dient eigentlich dazu, etwas an einen bestimmten Bereich anzuhängen, ohne die originale Datei anfassen zu müssen.
    Siehe dazu:
    (Link nur für registrierte Nutzer sichtbar.)

    Damit würdest Du besten falls unter die Lieferzeit ein "ihre" schreiben.

    Du möchtest aber gar nichts darunter anhängen, sondern die Ausgabe der Lieferzeit an sich ändern.
     
  5. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.831
    Danke erhalten:
    1.125
    Danke vergeben:
    947
    Geht so nicht. Da müsstest du idealerweise die shippingtime_id aus der Datenbank auslesen und an die shipping_time.html als Smarty Variable übergeben. Quick & Dirty Workaround der funktionieren könnte, wenn du sicher bist dass du den Text zu deinem Lieferstatus und die Versandzeiten nie mehr änderst:

    Code:
                   {block name="snippets_product_info_shipping_time_image"}
    {if $txt.text_shippingtime = 'Hier exakt den Text der bei dir im Shop auf der Artikelseite im Quelltext steht einfügen'}
    {/if}
    {else}
                       <span class="img-shipping-time">
                           <img src="{$SHIPPING_IMAGE}" alt="{$SHIPPING_IMAGE_ALT}" />
                       </span>
    {/if}
                   {/block}
    
    Ungetestet. Und eigentlich eine unsaubere Lösung.


    Off Topic: Was auch immer der Sinn einer solchen Konfiguration sein soll... ?!
     
  6. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.831
    Danke erhalten:
    1.125
    Danke vergeben:
    947
    Oder besser:

    Code:
    {block name="snippets_product_info_shipping_time_image"}
       {if $SHIPPING_IMAGE = 'images/icons/status/green.png'}
       {/if}
       {else}
                       <span class="img-shipping-time">
                           <img src="{$SHIPPING_IMAGE}" alt="{$SHIPPING_IMAGE_ALT}" />
                       </span>
       {/if}
    {/block}
    
    Das sollte auch mit Änderung des Versandzeiten-Texts immer funktionieren.
     
  7. Garnelion
    Garnelion Erfahrener Benutzer
    Registriert seit:
    4. Oktober 2011
    Beiträge:
    82
    Danke erhalten:
    3
    Danke vergeben:
    33
    #7 Garnelion, 16. Juli 2018
    Zuletzt bearbeitet: 16. Juli 2018
    habe es mit Overload gelöst (die Aufgabe wurde schon geändert-> Text ist grün wenn lieferbar, Bild komplett weg)
    PHP:
    function _assignShippingTime() {
            <
    any Code>
            if (
    $this->product->data['products_shippingtime'] == 1) {
                
    $name "<span style='color:green;'>" $name "</span>";
            }
            
    $image '';
            
    $this->set_content_data('SHIPPING_NAME'$name);
            
    $this->set_content_data('SHIPPING_IMAGE'$image);
        }
    aber irgendwas mit {block} zu machen geht bei mir immer noch nicht
     
  8. Garnelion
    Garnelion Erfahrener Benutzer
    Registriert seit:
    4. Oktober 2011
    Beiträge:
    82
    Danke erhalten:
    3
    Danke vergeben:
    33

    noch mal zu der Sache
    bei mir klappt es irgendwie nicht die Blocks zu überschreiben oder was da eigenes einfügen

    den Beispiel von oben ist noch aktuell, es passiert einfach nichts wenn ich solche Struktur mache.
    Und ja ich habe schon die Anleitung gelesen, ich probiere es jetzt einfach irgendwo eonen Punkt oder Minus dazumachen aber es geht nicht. Was kann ich da falsch machen?

    MfG
    Alex
     
  9. Kai Stejuhn
    Kai Stejuhn Beta-Held
    Registriert seit:
    26. September 2014
    Beiträge:
    1.454
    Danke erhalten:
    743
    Danke vergeben:
    92
    Ich weiß nicht ob das nur hier ein Tippfehler ist, aber Du hast "products_info" geschrieben, anstatt "product_info". Also das "s" muss da raus, wenn Dein Verzeichnis so benannt ist.

    Wenn die Verzeichnisstruktur dann stimmig ist, dann solte bei Deinem Beispiel in der ersten Zeile "Lieferzeit" und in der zweiten Zeile "Ihre" stehen. Mit dem "append" hängst Du die Ausgabe an den Block hinten ran.
    Als Code sieht das dann so aus:

    HTML:
    <label>
            Lieferzeit
       </label> <label>Ihre </label>
    um das zu erreichen, was Du haben möchtest, müsstest Du in der neuen Datei folgenden Code angeben
    HTML:
    {block name="snippets_product_info_shipping_time_label"}
        <label>Ihre {$txt.text_shippingtime}</label>
    {/block}