Lieferzeit block

Thema wurde von Garnelion, 15. Juli 2018 erstellt.

  1. Garnelion

    Garnelion Erfahrener Benutzer

    Registriert seit:
    4. Oktober 2011
    Beiträge:
    61
    Danke erhalten:
    3
    Danke vergeben:
    17
    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:
    61
    Danke erhalten:
    3
    Danke vergeben:
    17
    #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.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    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.122
    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.122
    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:
    61
    Danke erhalten:
    3
    Danke vergeben:
    17
    #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:
    61
    Danke erhalten:
    3
    Danke vergeben:
    17

    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.409
    Danke erhalten:
    709
    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}