Neues 'Feature'

Hallo Gemeinde,

ich hab mir folgende .tpl erstellt:

[{strip}]
<ul class="info">
    [{foreach from=$oxcmp_categories item=ocat key=catkey name=root}]
              [{if $ocat->getIsVisible() }]

                [{if $ocat->getContentCats()}]
                    [{foreach from=$ocat->getContentCats() item=ocont key=contkey name=cont}]
                        [{if $iCatCnt <= $oView->getTopNavigationCatCnt()}]
                            <li><a id="root[{$iCatCnt}]" href="[{$ocont->getLink()}]" [{if $ocont->expanded}]class="exp"[{/if}]>[{$ocont->oxcontents__oxtitle->value}] </a></li>
                        [{/if}]
                        [{assign var="iCatCnt" value=$iCatCnt+1 }]
                    [{/foreach}]
                [{/if}]

                [{if $iCatCnt <= $oView->getTopNavigationCatCnt()}]
                <li>
                    <a id="root[{$iCatCnt}]" href="[{$ocat->getLink()}]" [{if $ocat->expanded}]class="exp"[{/if}]>[{$ocat->oxcategories__oxtitle->value}] [{ if $ocat->getNrOfArticles() > 0}] ([{$ocat->getNrOfArticles()}])[{/if}] </a>
                    [{if $ocat->getSubCats()}]
                    [{strip}]
                    <ul class="menue vertical dropdown">
                    [{foreach from=$ocat->getSubCats() item=osubcat key=subcatkey name=SubCat}]
                        [{if $osubcat->getContentCats()}]
                            [{foreach from=$osubcat->getContentCats() item=osubcont key=subcontkey name=subcont}]
                            <li><a id="test_Top_root[{ $iCatCnt }]_Cms_[{$smarty.foreach.SubCat.iteration}]_[{$smarty.foreach.subcont.iteration}]" href="[{$osubcont->getLink()}]">[{$osubcont->oxcontents__oxtitle->value}] </a></li>
                            [{/foreach}]
                        [{/if}]
                        [{if $osubcat->getIsVisible() }]
                            <li><a id="test_Top_root[{ $iCatCnt }]_SubCat_[{$smarty.foreach.SubCat.iteration}]" href="[{$osubcat->getLink()}]">[{$osubcat->oxcategories__oxtitle->value}] [{ if $osubcat->getNrOfArticles() > 0}] ([{$osubcat->getNrOfArticles()}])[{/if}] </a></li>
                        [{/if}]
                    [{/foreach}]
                    </ul>
                    [{/strip}]
                    [{/if}]
                </li>
                [{/if}]
                [{assign var="iCatCnt" value=$iCatCnt+1 }]

              [{/if}]
            [{/foreach}]
</ul>
[{/strip}]


Diese zeigt mir nun die TopCats mit ihren SubCats aus. Ich bräuchte jetzt aber nur eine bestimmte TopCat und deren Subcats. Wo kann ich das festlegen im Code?

Grüße und Danke!

Valero

Einfach mit ner if Anweisung überprüfen ob es sich um deine TopCat handelt und wenn ja einblenden ansonsten weiter

[QUOTE=Michael Fritsch;17960]Einfach mit ner if Anweisung überprüfen ob es sich um deine TopCat handelt und wenn ja einblenden ansonsten weiter[/QUOTE]

Hey Michael, danke schonmal!

Ich hab nen anderen Lösungsansatz:

category_tree.tpl hab ich umgebaut in:

[{if $tree || $oView->getContentCategory() }]
[{assign var="oContentCat" value=$oView->getContentCategory() }]
[{defun name="category_tree" tree=$tree act=$act class=$class testSubCat=''}]
[{strip}]
    <ul [{if $class}]class="[{$class}]"[{/if}]>
    [{foreach from=$tree item=ocat key=catkey name=$test_catName}]
        [{if ( !$ocat->isTopCategory() || !$oView->showTopCatNavigation() ) && $ocat->getContentCats() }]
            [{foreach from=$ocat->getContentCats() item=ocont key=contkey name=cont}]
            <!--<li><a id="test_BoxLeft_Cms_[{if $ocat->isTopCategory()}][{$ocat->oxcategories__oxid->value}]_[{$smarty.foreach.cont.iteration}][{else}][{$testSubCat}]_sub[{$smarty.foreach.cont.iteration}][{/if}]" href="[{$ocont->getLink()}]" class="[{if $ocat->isTopCategory()}]root[{/if}][{if $oContentCat && $oContentCat->getId()==$ocont->getId()}] act last[{/if}]">[{ $ocont->oxcontents__oxtitle->value }]</a></li>-->
            [{/foreach}]
        [{/if}]
        [{if $ocat->getIsVisible() }]
        <!--<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}]">[{$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}]
    [{foreachelse}]
        [{if $oContentCat }]            
            <li><a id="test_BoxLeft_Cms_0" class="root act" href="[{$oContentCat->getLink()}]">[{ $oContentCat->oxcontents__oxtitle->value }]</a></li>
        [{/if}]
    [{/foreach}]
    </ul>
[{/strip}]
[{/defun}]
[{/if}]

wo kann ich hier die TopCat angeben, die immer angesprochen werden soll?


<TopCat1>
    <SubCat1>
    <SubCat2>
    <SubCat3>
<TopCat2>
<TopCat3>

Ich will in dem oberen Code einfach sagen, lies mir die SubCats von TopCat1 aus…ich habs jetz soweit schonmal hingekriegt, dass er mir NUR die SubCats ohne dir TopCat ausgibt. Aber wenn ich halt in eine andere Kategorie wechsle liest er mir deren SubCats aus…da sollen aber die von der einen bestimmten bleiben.

Vielen Dank schonmal!

PS: Ich kann nicht wirklich Smarty!

Folgende Zeile ersetzen


 [{if $ocat->getIsVisible() }]

mit


[{if $ocat->getIsVisible() && $ocat->getId()=='die32stelligeoxidid'}]

Hey Markus,

vielen Dank schonmal!

Jetzt zeigt er mir zwar dauerhaft die eine Cat an nur die SubCats davon nicht…es sollte ja eigentlich umgekehrt sein! :wink: weißt du, woran das liegen könnte?

Gruß und Danke

oxidCategoryId muss natürlich ersetzt werden.


[{if $tree || $oView->getContentCategory() }]
[{assign var="oContentCat" value=$oView->getContentCategory() }]
[{defun name="category_tree" tree=$tree act=$act class=$class testSubCat='' mainCat='oxidCategoryId'}]
[{strip}]
    <ul [{if $class}]class="[{$class}]"[{/if}]>
    [{foreach from=$tree item=ocat key=catkey name=$test_catName}]
        [{if ( !$ocat->isTopCategory() || !$oView->showTopCatNavigation() ) && $ocat->getContentCats() }]
            [{foreach from=$ocat->getContentCats() item=ocont key=contkey name=cont}]
            <li><a id="test_BoxLeft_Cms_[{if $ocat->isTopCategory()}][{$ocat->oxcategories__oxid->value}]_[{$smarty.foreach.cont.iteration}][{else}][{$testSubCat}]_sub[{$smarty.foreach.cont.iteration}][{/if}]" href="[{$ocont->getLink()}]" class="[{if $ocat->isTopCategory()}]root[{/if}][{if $oContentCat && $oContentCat->getId()==$ocont->getId()}] act last[{/if}]">[{ $ocont->oxcontents__oxtitle->value }]</a></li>
            [{/foreach}]
        [{/if}]
        [{if $ocat->getIsVisible() && ($ocat->getId()==$mainCat||$mainCat===null)}]
        <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}]">[{$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 mainCat=null}]
            [{/if}]
        </li>
        [{/if}]
    [{foreachelse}]
        [{if $oContentCat }]            
            <li><a id="test_BoxLeft_Cms_0" class="root act" href="[{$oContentCat->getLink()}]">[{ $oContentCat->oxcontents__oxtitle->value }]</a></li>
        [{/if}]
    [{/foreach}]
    </ul>
[{/strip}]
[{/defun}]
[{/if}]

Okay…super! Vielen Dank!!!

Jetzt zeigt er mir aber die SubCat immernoch nur an, wenn ich auf der TopCat bin. Wenn ich in eine andere TopCat wechsle, klappt er mir die SubCats zu… :o

Danke dir!!!

Versuche mal anstatt
$tree
$oxcomp__categories.

[QUOTE=MBa;17987]Versuche mal anstatt
$tree
$oxcomp__categories.[/QUOTE]

An allen drei Stellen? Und auch zwingend mit dem Punkt?

Merci schonmal!

gruß

Geht nicht…kann mir denn irgendwer helfen? :frowning: