SleepingDog Posted December 29, 2013 Share Posted December 29, 2013 (edited) Hallo, ich bin immer noch dabei, ein Projekt für die Uni zu erstellen, bei dem es um das Thema Chili geht. Dazu wurde eine Schärfeskala entwickelt, die unter den Produkten in der Produktübersicht angezeigt wird. Jedes Produkt hat einen Merkmalswert in Schärfe, der zwischen 1 und 10 liegt. Der soll ausgelesen werden und je nach Ausprägung soll ein anderes Bild angezeigt werden. Meine Frage ist also, wie ich diesen speziellen Merkmalswert im Template auslesen bzw anwenden kann. Pseudocode wäre da quasi If Produkt(Merkmal->Schärfe = 1) ... elseif Produkt(Merkmal->Schärfe = 2) ... Gibt es da einfach eine Variable? Leider konnte ich dazu nichts finden und ich hoffe mir kann jemand helfen! Edited December 29, 2013 by SleepingDog (see edit history) Link to comment Share on other sites More sharing options...
BluTiGeS Posted December 29, 2013 Share Posted December 29, 2013 (edited) für die schärfe gibt es sicher kein direkten wert, wo hast du die schärfe denn gespeichert? Du solltest es dem Product dann direkt zuweisen, sprich aus der DB holen und dann per smarty dem product objekt zuweisen und dann auslesen udn die entsprechende Skala anzeigen. Oder du prüfst per smarty ab welche produkt id zu welcher stufe past und zeigst es je nach dem an. Oder du baust dir ein Modul welches sich in die Prouktseite hängt und definierst dort, für welches produkt, welche Skala Stufe angezeigt wird. Wie du siehst viel möglich , wobei das Modul das sauberste wäre zweckes upgrades und co Grüße EDIT: Sorry hatte überlesen das es ein merkmal ist, die Merkmale werden in einer Schleife ausgegeben sprich du musst die schleife durchlaufen und dann dein if case anwenden. product.tpl: {foreach from=$features item=feature} {if isset($feature.value)} <li><span>{$feature.name|escape:'htmlall':'UTF-8'}</span> {$feature.value|escape:'htmlall':'UTF-8'}</li> {/if} {/foreach} Da haste beide werte $feature.name wird bei dir dann "Schärfegrad" sein und $feature.value die 1-10 Edited December 29, 2013 by BluTiGeS (see edit history) Link to comment Share on other sites More sharing options...
SleepingDog Posted December 29, 2013 Author Share Posted December 29, 2013 EDIT: Sorry hatte überlesen das es ein merkmal ist, die Merkmale werden in einer Schleife ausgegeben sprich du musst die schleife durchlaufen und dann dein if case anwenden. product.tpl: {foreach from=$features item=feature} {if isset($feature.value)} <li><span>{$feature.name|escape:'htmlall':'UTF-8'}</span> {$feature.value|escape:'htmlall':'UTF-8'}</li> {/if} {/foreach} Da haste beide werte $feature.name wird bei dir dann "Schärfegrad" sein und $feature.value die 1-10 Super das ist genau wonach ich gesucht habe! Danke dir Link to comment Share on other sites More sharing options...
SleepingDog Posted December 29, 2013 Author Share Posted December 29, 2013 Noch eine kurze Frage. In der product.tpl funktioniert das super, aber in der product-list.tpl ist das leider nicht möglich. Gibt es eine Möglichkeit, dort auch auf diese Variable zugreifen zu können? Link to comment Share on other sites More sharing options...
BluTiGeS Posted December 29, 2013 Share Posted December 29, 2013 In der der Product-list.tpl musst du das selbst lösen. aber du hast die werte ebenso aber als array:: <pre> {$product.features|print_r} </pre> gibt dir dein array aus in der schleife. Jetzt musst du halt für jedes product wie in der product.tpl durchlaufen: {foreach from=$product.features item=feature} {$feature.name|escape:'htmlall':'UTF-8'} {$feature.value|escape:'htmlall':'UTF-8'} {/foreach} et voila same situation und solved . Natürlich noch mit isset usw sauber machen 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