Jump to content
SleepingDog

[Gelöst] Produktmerkmal in Template auswählen

Recommended Posts

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 by SleepingDog (see edit history)

Share this post


Link to post
Share on other sites

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 by BluTiGeS (see edit history)

Share this post


Link to post
Share on other sites

 

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 :)

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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 ;)

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More