Tab content, durch attribute Abfrage

Ich dachte es wäre leichter mit den if Abragen. Ich wollte einen neuen Tab im content einfügen. Das funktioniert.

Der Tab soll dann mit Inhalt durch cms gefüllt werden. Das funktioniert soweit auch.

Ich habe also in der tab.tpl diesen code eingefügt:

[{block name="details_tabs_pflege"}]
     [{if $oView->getAttributes()}]
        [{capture append="tabs"}]<a href="#pflege" data-toggle="tab">[{oxmultilang ident="PFLEGE_MATERIAL"}]</a>[{/capture}]
        [{capture append="tabsContent"}]
            <div id="pflege" class="tab-pane[{if $blFirstTab}] active[{/if}]">[{include file="custom/tabpflege.tpl"}]</div>
            [{assign var="blFirstTab" value=false}]
        [{/capture}]
   [{/if}]
[{/block}]

dann im eigenen tpl “tabpflege.tpl” folgenden code:

 [{ if $oView->getAttributes() =="BW"}]
 
 [{foreach from=$oView->getAttributes() item=oAttr name=BW}]
        <div id="attrTitle_[{$smarty.foreach.attribute.iteration}]"  > [{ oxcontent ident=baumwolle }]</div>        
    [{/foreach}]


  [{elseif $oView->getAttributes() =="WO"  }] 
  
   [{foreach from=$oView->getAttributes() item=oAttr name=WO}]
        <div id="attrTitle_[{$smarty.foreach.attribute.iteration}]"  > [{ oxcontent ident=wolle }]</div>        
    [{/foreach}]

   [{/if}]

Natürlich habe ich Attribute mit dem Namen “BW” und “WO” erstellt und denen auch Artikel zugewiesen.

Jetzt funktioniert aber die If abrage nicht. Wenn ich die weglasse habe ich aber nur den ersten content drin.
Was mache ich mit der if Abrage falsch?

Du beantwortest Dir die Frage eigentlich selbst, warum es nicht gehen kann (s. $oView->getAttributes() == “xx” && foreach)

Soll wohl eher sowas sein:

[{foreach from=$oDetailsProduct->getAttributes() item=oAttr name=attribute}]
[{ if $oAttr->oxattribute__oxtitle->value =="BW"}]
<div id="attrTitle_[{$smarty.foreach.attribute.iteration}]">[{ oxcontent ident=baumwolle }]</div>      
[{elseif $oAttr->oxattribute__oxtitle->value =="WO"  }] 
<div id="attrTitle_[{$smarty.foreach.attribute.iteration}]">[{ oxcontent ident=wolle }]</div>        
[{/if}] 
[{/foreach}]

Irgendwie so ähnlich hatte ich das schon mal ausprobiert. Nur wir wird mir dabei nichts angezeigt.

Nur zur Info. Ich habe unter “Artikel verwalten” -> “Attribute”, jeweils ein Attribut mit den Namen BW und WO erstellt. BW habe ich Produkte zugewiesen und WO habe ich Produkte zugewiesen.

Ich hatte gehofft durch den script dann jeweils den zugehörigen CMS Text angezeigt zu bekommen. Aber leider bleibt das Feld weiterhin leer.

Wenn es darum geht, Artikel in zwei Gruppen aufzuteilen und je nach Zugehörigkeit eine cms Seite anzuzeigen, würde ich das über Kategorien machen.
If $oDetailsProduct->inCategory(‘id-der-kategirie’) … (sorry, auf dem Handy ist kein brauchbarer Code möglich)

[QUOTE=Medicus;185124]Irgendwie so ähnlich hatte ich das schon mal ausprobiert. Nur wir wird mir dabei nichts angezeigt.[/QUOTE]

Ich habe das oben noch mal leicht angepasst. Damit sollte Dir etwas angezeigt werden.

Mit der if abfrage funktioniert das nicht.

Gebe ich nur:

  [{foreach from=$oDetailsProduct->getAttributes() item=oAttr name=attribute}]
[{  $oAttr->oxattribute__oxtitle->value }]
<div id="attrTitle_[{$smarty.foreach.attribute.iteration}]">[{ oxcontent ident=baumwolle }]</div>      
 
[{/foreach}]
 

ein. Wird der Content angezeigt.

Das ist mir rätselhaft. Hat Oxid irgendwie eine besondere Abfrage dafür? Oder ist das wieder so ein Oxid Ding, was man so nicht abfragen kann, weil…:confused::eek::confused:

Doch, das geht. Der Titel muss dazu natürlich übereinstimmen: In der Beschreibung…

Na ja. So war das eigentlich nicht gedacht. Dann würde ja im Tab Specification Z.B. WO WO stehen. Dort soll das aber nicht auftauchen.

Ich könnte, Also damit es ordentlich aussieht das Attribut z.B. Material nennen, dann müsste ich diesen Attribut das Attribut WO zuweisen/eintragen.
Dann würde in der Spezifikation stehen: Material WO
Auch nicht schön.

Trage ich dann beim Attribut z.B. Material das Attribut 100% Wolle ein und ändere dementsprechend das Script ab, erscheint wieder nichts.

Fazit: Viel Zeit für nichts. Aber dein Scipt funktioniert. Ich hatte das nur anders gedacht.

Ich wollte es eigentlich vermeiden, den Zusatz einzubauen. Es geht natürlich auch mit dem neuen Tab und macht keinen Unterschied. Bei mir werden beide Contents angezeigt, weil beide Attribute dem Artikel zugeordnet sind.

Ja, das funktioniert bei mir auch so.

Ich hatte geplant. Nur das Hauptattribut einzutragen. Das wird einem Produkt zugewiesen.
Um aber einen Wert nachher in den Tabs angezeigt zu bekommen, muss ich dieses Attribut ja noch mit einen weiteren wert/Attribut füllen. Diesen Teil will ich aber nicht.

Ich will sozusagen ein unsichtbares Attribut anlegen was nur dazu dient, bei der entsprechenden If Abfrage, den zugewiesenen Content auszugeben.
Ich will damit die Bulk-Funktion der Attribute nutzen, um Artikel zuzuweisen. Also diese Funktion missbrauchen.

Ich hoffe, da ich mich etwas verständlicher ausgedrückt habe.

Eine Kategorie? :smiley: es gibt auch versteckte Kategorien genau für so etwas

Achso, dafür gibt es 2 Möglichkeiten:
http://www.foxido.de/visible-attributes oder die Methode

loadAttributes

bearbeiten und vielleicht

and o2a.oxvalue != '' 

entfernen. Um es zu komplettieren, sollte noch eine Differenzierung zwischen sichtbar und unsichtbar eingebaut werden. . :wink:

Ich habe jetzt eine Abfrage mit Anzeige hinbekommen. Auf meiner Testseite funktioniert das einwandfrei. Auf meiner Originalseite nicht. Da wird der Content nicht angezeigt.

Jetzt bin ich überfragt.
Die Testseite ist inclusive Datenbank eine Spiegelung meiner Originalseite. Selbe Daten, ein Zwilling sozusagen. Ist auch der selbe Server.

Hat jemand schon so eine Erfahrung gemacht und das gelöst bekommen? TMP geleert habe ich auch schon. Möchte ich aber nicht zu häufig auf meiner laufenden Shopseite machen.