Unsichtbares Attribut mit if Abfrage

Basierend auf den Thread “Tab content, durch attribute Abfrage” will ich noch mal auf die if Abfrage bei den Attributen zurückkommen.

Ich habe die Varianten aufgeräumt und lasse bei einzelnen Farben die Variante “Farbe” weg und ersetze diese durch das Attribut “Farbe”. Funktioniert wunderbar. Zumindest wenn man ein Produkt nicht mehrere Attribute zuweist.

Nun ist Oxid ja ein bisschen dämlich, wenn es um die Anzeige von “Ähnliche Produkte” geht. Also müsste da noch ein Attribut zugewiesen werden, welches einzigartig ist. Dann funktioniert das.

Natürlich will ich nicht, dass dieses Attribut mit angezeigt wird. Soll ja nur intern zur Identifizierung sein. Ich dachte, das ließe sich durch eine einfache if Abfrage erreichen. Leider bekomme ich das nicht hin. Unterschiedliche Konstellationen habe ich bereits ausprobiert.

Geht das überhaupt so?

<div class="form_attr">
 
      [{foreach from=$oView->getAttributes() item=oAttr name=attribute}]
[{ if $oAttr->oxattribute__oxtitle->value ==="Kleid"}]
<span style="display: none;"></span>
     
[{elseif $oAttr->oxattribute__oxtitle->value !="Kleid"  }] 

<div id="attrTitle_[{$smarty.foreach.attribute.iteration}]"><b>[{$oAttr->title}]:</b> <span id="attrValue_[{$smarty.foreach.attribute.iteration}]" title="[{$oAttr->value}]">[{$oAttr->value}]<i class="fa fa-check fa_check_color" aria-hidden="true"></i>
</span></div> 
      
[{/if}] 
   [{/foreach}]

</div>

Noch eine ältere Version und kein Flow (weshalb der Quelltext etwas anders aussieht als bei) aber mit der einen Zeile direkt unterm foreach funktioniert das bei mir

 [{foreach from=$oView->getAttributes() item=oAttr name=attribute}]
    [{if $oAttr->title != "DEINTITEL"}]
    <tr>
        <th id="attrTitle_[{$smarty.foreach.attribute.iteration}]"><strong>[{$oAttr->title}]</strong></th>
        <td id="attrValue_[{$smarty.foreach.attribute.iteration}]">[{$oAttr->value}]</td>
    </tr>
    [{/if}]
[{/foreach}

Vielen Dank. Das funktioniert so.
Wo kann man eigentlich die Logik dahinter lernen?

Ich habe das noch ein wenig abgeändert. Und das “alles andere auschließen” Verfahren benutzt.

<div class="form_attr">
      [{foreach from=$oView->getAttributes() item=oAttr name=attribute}]
  [{if $oAttr->title == "Farbe"}]
      <div id="attrTitle_[{$smarty.foreach.attribute.iteration}]"><b>[{$oAttr->title}]:</b> <span id="attrValue_[{$smarty.foreach.attribute.iteration}]" title="[{$oAttr->value}]">[{$oAttr->value}]<i class="fa fa-check fa_check_color" aria-hidden="true"></i></span>
 </div> 
  [{/if}] 
   [{/foreach}]
</div>

Jetzt muss ich nur noch hinbekommen, das ein weiteres Attribut als Ausnahme hinzugefügt wird.

Edit: Ich habe das gelöst. Ich habe eine weiter Abfrage eingefügt.

<div class="form_attr">
      [{foreach from=$oView->getAttributes() item=oAttr name=attribute}]
  [{if $oAttr->title == "Farbe"}] 
  
      <div id="attrTitle_[{$smarty.foreach.attribute.iteration}]"><b>[{$oAttr->title}]:</b> <span id="attrValue_[{$smarty.foreach.attribute.iteration}]" title="[{$oAttr->value}]">[{$oAttr->value}]<i class="fa fa-check fa_check_color" aria-hidden="true"></i></span>
 </div>
 
 [{elseif $oAttr->title == "Oberfläche"}]
      <div id="attrTitle_[{$smarty.foreach.attribute.iteration}]"><b>[{$oAttr->title}]:</b> <span id="attrValue_[{$smarty.foreach.attribute.iteration}]" title="[{$oAttr->value}]">[{$oAttr->value}]<i class="fa fa-check fa_check_color" aria-hidden="true"></i></span>
 </div> 
 
  [{/if}] 
  
   [{/foreach}]
</div>