Thanatos Posted February 21, 2014 Share Posted February 21, 2014 Hallo zusammen, ich bin aktuell dabei, mit prestashop einen Webshop zu erstellen und komme bei einer Herausforderung nicht mehr weiter. In dem Shop besitzen die Produkte 5 Attribute, welche mithilfe von Dropdown Menüs auf der Produktseite ausgewählt werden müssen. Anschließend kann das Produkt ausgewählt und bestellt werden. Leider werden beim Checkout (shopping-cart) in der Produktbeschreibung alle Attribute als Hyperlink hintereinander geklatscht. Die Anforderung ist jedoch, dass nur ein Attribut je Zeile in der Beschreibung dargestellt wird (siehe Anlage). Nachdem ich eine Weile gesucht habe, vermute ich, dass die Anpassung hierzu in der "shopping-cart-product-line.tpl" erfolgen muss. Hier existiert {$product.attributes}, welches leider alles Attribute als ein Link darstellt. Kann mir bitte jemand helfen, wie ich auf der Checkout Seite nur ein Attribute pro Zeile und nicht alle als Link ausgegeben bekomme? Ich weiß nicht, wie man die Werte der ausgewählten Attribute abfragen und darstellen kann. Bisher habe ich nur ein paar ksh Skripte geschrieben. Das hier übersteigt leider meinen Horizont... Viele Grüße, Christian shopping-cart-page_description.pdf Link to comment Share on other sites More sharing options...
BluTiGeS Posted February 22, 2014 Share Posted February 22, 2014 (edited) Du kannst den Attribut wert von presta splitten über das Komma und dann für jeden Eintrag den "wert:" mittels substring auslesen.Wäre jetzt meine erst idee.Grüße EDIT: {assign var=”splitted” value=”,”|explode:$product.attributes} {foreach from=$splitted item=splitValue} {assign var="trenner" value=$splitValue|strpos:":"} {$splitValue|substr:$trenner+1} {/foreach} Edited February 22, 2014 by BluTiGeS (see edit history) Link to comment Share on other sites More sharing options...
Thanatos Posted February 22, 2014 Author Share Posted February 22, 2014 Hi, erstmal vielen Dank für Deine Unterstützung. Den Ansatz finde ich gut. Wenn ich aber jetzt den "Code" in die Datei "shopping-cart-product-line.tpl" einfüge, bleibt die Seite weiß und sie wird nicht mehr geladen. Kann ich den Absatz in die "shopping-cart-product-line.tpl" kopieren oder muss der Absatz evtl. in eine andere Datei? Selbst wenn ich nur die 1. Zeile "{assign var=”splitted” value=”,”|explode:$product.attributes}" einfüge, kann bereits die Seite nicht mehr geladen werden. Viele Grüße, Christian Link to comment Share on other sites More sharing options...
Guest Conprestador Posted February 22, 2014 Share Posted February 22, 2014 Vielleicht darum, weil Presta wohl mit unbekannten Elementen von (undefinierten) arrays nichts anfangen kann. Was soll denn "item='splitValue" sein? Aber auch wenn das mit der Schleife funtionieren sollte, habe ich den Eindruck, die fängt immer wieder von vorn an. Link to comment Share on other sites More sharing options...
BluTiGeS Posted February 22, 2014 Share Posted February 22, 2014 (edited) Hi, @Thanatos nimm den Code hab ich getestet geht, fehler oben war "" , wurde nicht richtig übernommen im Forum, darum jetzt durch single quote ersetzt. {assign var='splitted' value=','|explode:$product.attributes} {foreach from=$splitted item=splitValue} {assign var='trenner' value=$splitValue|strpos:":"} {$splitValue|substr:($trenner+1)} {/foreach} @Conprestador: Wieso unbekannt? Kannst du programmieren? Weisst du was explode macht ;P ? Und foreach gibt es ja im PHP auch alles korrekt wie es oben ist. foreach (array_expression as $value) statement Edited February 22, 2014 by BluTiGeS (see edit history) Link to comment Share on other sites More sharing options...
Guest Conprestador Posted February 22, 2014 Share Posted February 22, 2014 Na, lass man gut sein. Ich weiß, daß explode ein array anlegt. Also wozu so aggressiv? Oder liegts am Nickname? Ok, du hast Recht. Dein Code funktioniert. Da war ich zu voreilig. Aber er bringt doch nichts, denn du kriegst so nicht mehr sondern weniger Infos! Jetzt wird erst recht alles aneinandergeklatscht. Vorher war da wenigstens noch vorangestellt Attributname mit Doppelpunkt. Den hast du jetzt wegprogrammiert. Link to comment Share on other sites More sharing options...
Thanatos Posted February 22, 2014 Author Share Posted February 22, 2014 Hallo BluTiGes, ich bin Dir unendlich dankbar. Ich ärgere mich hier seit Oktober bereits mit rum! Danke, danke und nochmals danke! Damit der Zeilenumbruch erfolgt, habe ich noch ein "<br>2 eingefügt. Des Weiteren musste ich bei den Preisen das Komma durch einen Punkt ersetzen, damit nicht alles zerpflückt wird. Nochmal Danke! Viele Grüße, Christian Link to comment Share on other sites More sharing options...
Thanatos Posted February 22, 2014 Author Share Posted February 22, 2014 Hi Conprestador, stimmt, der Attributname wird nun nicht mehr anzeigt, sondern nur noch der Attributwert. Habt Ihr eine Idee, wie man das noch lösen könnte? Dann wäre es für unsere Anforderungen "Perfekt"? Viele Grüße, Christian Link to comment Share on other sites More sharing options...
BluTiGeS Posted February 22, 2014 Share Posted February 22, 2014 (edited) Hi,Wenn du es mit Attribut Namen haben willst einfach nur{$splitValue} in der foreach ausgeben.Dein pdf hat das aber anders gezeigt aber egal.So geht es jedenfalls: {assign var='splitted' value=','|explode:$product.attributes} {foreach from=$splitted item=splitValue} {$splitValue|escape:'htmlall':'UTF-8'}<br/> {/foreach} oder als unorder list: {assign var='splitted' value=','|explode:$product.attributes} <ul> {foreach from=$splitted item=splitValue} <li>{$splitValue|escape:'htmlall':'UTF-8'}</li> {/foreach} </ul> @Conprestador nichts für ungut, aber von Kommentaren ohne SInn halte ich nicht viel , und wenn man schon am Code meckert, dann kann man ihn doch gleich korrigieren, wenn man es besser weiss Over and Out in dem Topic Edited February 22, 2014 by BluTiGeS (see edit history) Link to comment Share on other sites More sharing options...
Thanatos Posted February 22, 2014 Author Share Posted February 22, 2014 Sorry, bzgl. des PDF`s hast Du recht. Perfekt! Danke! Link to comment Share on other sites More sharing options...
Thanatos Posted February 23, 2014 Author Share Posted February 23, 2014 (edited) Hi, ich habe doch nochmal eine allerletzte abschließende Frage. Die Sortierung der ausgegebenen Produkt Attribute ist leider nicht sinnvoll. Die Ursache hierfür liegt darin, dass der Varianten-Generator leider die Attribute alphabetisch sortiert und dies somit bis zum Warenkorb so durchgereicht wird. Ich habe es nicht hinbekommen, die sortier Reihenfolge zu ändern. Besteht die Möglichkeit, dass man das Array so erweitert, dass man jedem Attribut einen Wert zuweist und anschließend eine Sortierung vor der Ausgabe durchführt? z.B. für die Attribute: Miet- und Kaufoption = 1 Transaktionspaket = 2 SIM-Karte = 3 Rechnungsversand =4 Kartenakzeptanzoption = 5 Kommunikationsart = 6 Anzahl Rollen = 7 Die Ausgabe soll hierbei aufsteigend erfolgen. Zu beachten ist, dass nicht immer alle Attribute vorhanden sind. Somit könnte man z.B. einem fehlenden Attribut im Array den Wert 0 zuweisen und nur dass, was zwischen 1 bis 7 vorhanden ist, ausgeben. Kann mich hierbei bitte jemand unterstützen? @EDIT: Vielleicht wäre es einfacher, wenn man beim Varianten-Generator die Sortier Reihenfolge anhand der Attribut_ID durchführt. Dann müsste ich nur die IDs mithilfe des Backoffices oder direkt in der Datenbank anpassen. Viele Grüße, Christian Edited February 23, 2014 by Thanatos (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now