Hallo,
ich versuche gerade das erste mal eine view-Klasse zu schreiben. Diese Klasse soll einige select-boxen zeigen und abhängig davon werden dem Nutzer die Artikel nach den ausgewählten Kriterien angezeigt. Das funktioniert soweit auch.
Mein Problem ist, dass ich diese View-Klasse einer bestimmten Kategorie zuordnen will, sprich, es soll nur in einer Kategorie diese “Suche nach Artikeln” laufen. Das habe ich so gelöst, indem ich die id der Kategorie in der inc/category_tree.tpl abfange und statt der normalen Ausgabe des Links, die view-Klasse aufrufen:
[{* wenn betreffende Kategorie, eigenen Link zum Aufruf der eigenen view-Klasse *}]
[{if $ocat->oxcategories__oxid->value == "f64ff793f13c6820d384ddc4b35f1a6b"}]
<li>
<a id="test_BoxLeft_Cat_[{if $ocat->isTopCategory()}][{$ocat->oxcategories__oxid->value}]_[{$smarty.foreach.$test_catName.iteration}][{else}][{$testSubCat}]_sub[{$smarty.foreach.$test_catName.iteration}][{/if}]" href="[{ oxgetseourl ident=$oViewConf->getSelfLink()|cat:"cl=meineviewklasse"}]" class="[{if $ocat->isTopCategory()}]root [{/if}][{if $ocat->hasVisibleSubCats}][{if $ocat->expanded }]exp [{/if}]has [{else}]last [{/if}][{if isset($act) && $act->getId()==$ocat->getId() && !$oContentCat }]act [{/if}] [{$manufacturer}]">[{$ocat->oxcategories__oxtitle->value}] [{if $ocat->getNrOfArticles() > 0}] ([{$ocat->getNrOfArticles()}])[{/if}]</a>
[{if $ocat->getSubCats() && $ocat->expanded}]
[{fun name="category_tree" tree=$ocat->getSubCats() act=$act class="" testSubCat=$ocat->oxcategories__oxid->value }]
[{/if}]
</li>
[{else}]
<li>
<a id="test_BoxLeft_Cat_[{if $ocat->isTopCategory()}][{$ocat->oxcategories__oxid->value}]_[{$smarty.foreach.$test_catName.iteration}][{else}][{$testSubCat}]_sub[{$smarty.foreach.$test_catName.iteration}][{/if}]" href="[{$ocat->getLink()}]" class="[{if $ocat->isTopCategory()}]root [{/if}][{if $ocat->hasVisibleSubCats}][{if $ocat->expanded }]exp [{/if}]has [{else}]last [{/if}][{if isset($act) && $act->getId()==$ocat->getId() && !$oContentCat }]act [{/if}] [{$manufacturer}]">[{$ocat->oxcategories__oxtitle->value}] [{if $ocat->getNrOfArticles() > 0}] ([{$ocat->getNrOfArticles()}])[{/if}]</a>
[{if $ocat->getSubCats() && $ocat->expanded}]
[{fun name="category_tree" tree=$ocat->getSubCats() act=$act class="" testSubCat=$ocat->oxcategories__oxid->value }]
[{/if}]
</li>
[{/if}]
Habe also einzig den Inhalt bei “href” ausgetauscht. Nun wird aber nicht mehr erkannt, wann bzw ob diese Kategorie aktiv ist. Im smarty-debug habe ich gesehen, dass die Variable $actCategory nicht mehr zur Verfügung steht.
Hat jemand einen Tipp für mich, wie die Variable $actCategory wieder erscheint und damit auch meine aktive Kategorie erkannt wird?
Vielen Dank,
Kathrin