Artikelvergleich nur für bestimmte Kategorie

Hi,

mal wieder habe ich ein kleines Problem.

Ich möchte gerne den Button “vergleichen” für eine bestimmte Kategorie entfernen.

Kategorie 1 - Vergleich macht Sinn und soll verfügbar sein
Kategorie 2 - Vergleich macht keinen Sinn und soll ausgeblendet werden

Den Vergleich Global zu deaktivieren ist für mich leider keine Option :frowning:

Habe bis jetzt keine Möglichkeit gefunden, weder im Admin, noch im Forum oder über Google.

Danke und lg

Hallo Tinic,

Du könntest z.B. mit unterschiedlichen Templates pro Kategorie arbeiten :wink:

Gruß

klingt gut, jedoch habe ich keine Ahnung wie sich das umsetzen lässt :frowning:

oder du suchst dir die oxId der Kategorie raus und dann kannst du im Template den Vergleich Knopf finden und dann so ein [{if … ][ drum rum bauen:


[{if $oDetailsProduct->inCategory(" *hier die category oxid* ")}] vergleichen bla bla [{/if}]

hmm, das sollte eigentlich funktionieren.
Jedoch zerhaut es mir bei deinem Code das Template.
also habe ich mir mit dem CopyPaste-Prinzip folgendes zusammen gebaut

[{if $oDetailsProduct->oxcategories__oxid->value == ‘1a12ab4214434d7c64714bc806e663d1’}]

Damit ist “vergleichen” allerdings im betroffenem Template überall weg confused

der gesamte Block sieht so bei mir aus:

[{if $oDetailsProduct->oxcategories__oxid->value == ‘1a12ab4214434d7c64714bc806e663d1’}]
[{if $oViewConf->getShowCompareList()}]
[{oxid_include_dynamic file=“widget/product/compare_links.tpl” testid=“_$testid” type=“compare” aid=$product->oxarticles__oxid->value anid=$altproduct in_list=$product->isOnComparisonList() page=$oView->getActPage()}]
[{/if}]
[{/if}]

Kann es sein, dass das doppelte if anders formuliert werden muss? :confused:

$oDetailsProduct->oxcategories__oxid geht nicht, weil $oDetailsProduct ein oxarticle Objekt ist, und die Property oxcategories__oxid zu oxcategory Objekten gehört, mach’s doch so wie Vanilla vorgeschlagen hat:

[{if $oDetailsProduct->inCategory(" *hier die category oxid* ")}]

hmm so, konnte leider jetzt erst weiter probieren, allerdings funktioniert das nicht so richtig
bekomme ständig Fehlermeldungen wie zum beispiel

Fatal error: Call to a member function inCategory()…

gefühlt mittlerweile 100 verschiedene Varianten ausprobiert, nichts scheint zu funktionieren :frowning:

Edit:

So nun letztendlich doch eine Lösung gefunden.
Auf den richtigen Ansatz brachte mich folgender thread
http://forum.oxid-esales.com/showthread.php?t=10598&highlight=%24sCatId

Das ganze habe ich nun nach meinen Vorstellungen angepasst (da ist mit Sicherheit noch jede Menge Feintuning möglich, aber es Funktioniert nach unzähligen Stunden erstmal, so wie es soll)

[{foreach from=$product->getCategoryIds() item=sCatId}]
     [{assign var=oCat value='oxcategory'|@oxNew}]
         [{capture}][{$oCat->load($sCatId)}][{/capture}]
             [{ if $oCat->oxcategories__oxparentid->value== '1a14ac5e3e3003302d36606a4e684d10'}]
               [{if $oViewConf->getShowCompareList()}]
                  [{oxid_include_dynamic file="widget/product/compare_links.tpl" testid="_`$testid`" type="compare" aid=$product->oxarticles__oxid->value anid=$altproduct in_list=$product->isOnComparisonList() page=$oView->getActPage()}]
               [{/if}]
             [{/if}]
[{/foreach}]