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
Ändere doch einfach das kleine Bild... tausche es gegen ein durchsichtiges Bild aus... Warum so kompliziert?
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 ...
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.
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... ?!
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.
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
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
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}