Alle Hauptkategorien auf Startseite anzeigen

Ich würde mir gerne alle Hauptkategorien (also keine Subs) mit Ihren Icons auf der Startseite anzeigen lassen. Stehe dabei allerdings auf dem Schlauch wie ich das anstelle.
In der list.tpl ist das ganze ja schon für Unterkategorien gemacht, wie übertrage ich das auf die start.tpl mit Hauptkategorien?

Durchlaufe einfach alle Kategorien in einer Schleife - bei der vorherigen Oxid Version war es die Variable $oxcmp_categories. Diese oder eine Ähnliche wird es ja in der 4er auch geben. Dort überprüfst Du dann einfach alle Kategorien ob die oxparentid auf oxrootid sitzt. (Denk das hat sich nicht geändert) Wenn ja, anzeigen, wenn nein, nicht anzeigen.

$ocat->isTopCategory() gibt dir auch true oder false zurück, ob eine Kategorie Topkategorie ist oder nicht.

Wie bekomme ich denn eine Liste mit allen verfügbaren Kategorien? Suche schon seit Ewigkeiten in der Dokumentation, kann aber nichts entsprechendes finden :confused:

Okay, ging ganz einfach:

[{foreach from=$oxcmp_categories item=category name=MoreCat}]

Den Rest dann wie in der list.tpl

Vielen Dank für Eure Hilfe!

[QUOTE=Albert43;15103]Okay, ging ganz einfach:

[{foreach from=$oxcmp_categories item=category name=MoreCat}]

Den Rest dann wie in der list.tpl

Vielen Dank für Eure Hilfe![/QUOTE]

Das klingt sehr verlockend, da ich genau nach diesem Feature suche.
Kann mir bitte jemand mehr Details geben?
Wo muss ich den Code in der start.tpl eingeben und was und wie muss in der list.tpl eingeben?
Vielleicht gibt es ja auch einen Link dazu, den ich noch nicht gefunden habe.

Danke

  1. Da wo Du es angezeigt haben willst

  2. In der List tpl musst Du garnichts ändern

  3. Verstehe ich Dein Problem nicht. Albert hat geschrieben wie die Schleife funktioniert, Roland wie man prüft ob es eine Hauptkategorie ist und jetzt musst Du doch nurnoch die Ausgabe machen wenn die if-Bedingung zutrifft.

[QUOTE=Michael Fritsch;15207]1. Da wo Du es angezeigt haben willst

  1. In der List tpl musst Du garnichts ändern

  2. Verstehe ich Dein Problem nicht. Albert hat geschrieben wie die Schleife funktioniert, Roland wie man prüft ob es eine Hauptkategorie ist und jetzt musst Du doch nurnoch die Ausgabe machen wenn die if-Bedingung zutrifft.[/QUOTE]

Danke,

mein Problem liegt offensichtlich im Aufbau der Ausgabe.
Ich werde mich da mal im Forum zu umschauen und mir mehr Grunsätzliches über smarty
aneignen.

Mal als Denkanstoß:

[{foreach from=$oxcmp_categories item=ocat}]

[{if $ocat->isTopCategory() }]
[INDENT][{$ocat->oxcategories__oxtitle->value}]
[{/if}][/INDENT]

[{/foreach}]

Herzlichen Dank Michael,

ich habe wohl viel zu kompliziert gedacht.

Jetzt versuche ich mich an einer ansprechenden Ausgabe mit Kategorie-Bildern und last not least an den Link-Verweisen.

Ich hoffe, ich nerve dann nicht, wenn ich weitere Fragen habe.

Nochmals vielen Dank

Gruß
Peter

Hallo zusammen!
Hab diesen thred von letztem Jahr gefunden. Betrifft genau mein Anliegen.
ppbonn, wie sieht denn der ganze code aus mit thumbs und verlinkung???
Gruß
Peter

Tja, wäre ich auch interessiert - aber dem Alter nach, mache ich mich wohl selbst an die Arbeit.

Hallo Jan,

sofern Du noch keine Lösung hast, hilft Dir eventuell das weiter:

inc/category_list.tpl:


[{if $tree || $oView->getContentCategory() }]
[{strip}]
    [{assign var="iCatCnt" value="1"}]
    [{foreach from=$tree item=ocat key=catkey name=one}]
            [{if $ocat->getIsVisible() }]
                [{if $ocat->getSubCats()}]
                    [{foreach from=$ocat->getSubCats() item=ocat key=catkey name=two}]
                        [{if $iCatCnt <= 10}]
                            <dd>
                                <a id="" 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}]</a>
                            </dd>
                        [{/if}]
                        [{assign var="iCatCnt" value=$iCatCnt+1 }]
                    [{/foreach}]
                [{/if}]
            [{/if}]     
    [{/foreach}]
[{/strip}]
[{/if}]

Ich gebe damit nur die 2. Ebene der angelegten Kategorien aus und beschränke die Ausgabe auf 10. Das ist natürlich veränderbar. Dieser Code beruht im Original auf dem in der inc/category_tree.tpl.

Der Aufruf erfolgt (z.B. aus “_footer.tpl”) via:


[{include file="inc/category_list.tpl" tree=$oxcmp_categories act=$oxcmp_categories->getClickCat() class="tree"}]

Grüße
Sebastian

Ohh aus der Versenkung - vielen lieben Dank! Habe mir zwar schon selber etwas gebastelt, schaue mir das aber gerne nochmal an… Danke! :wink:

Ich binde auf der Startseite eine /inc/*.tpl mit folgendem Inhalt ein:


[{if $tree || $oView->getContentCategory() }]
[{assign var="oContentCat" value=$oView->getContentCategory() }]
[{defun name="category_tree_topNav" tree=$tree act=$act class=$class level=$level }]
[{strip}]
    [{foreach from=$tree item=ocat key=catkey name=$test_catName}]
        [{if $ocat->getIsVisible() }]	
	        [{if $ocat->oxcategories__oxicon->value }]
	        	<div align="center" style="border: 1px solid #EEEEEE; width:180px; float: left; margin-bottom: 35px;margin-top:10px;">
				<a  href="[{$ocat->getLink()}]" >
          				<img src="[{$ocat->getIconUrl()}]" alt="[{ $ocat->oxcategories__oxtitle->value }]">
        			</a>
        		        <div style="color: #565656; font-weight: bold; font-size: 1.2em;">[{ $ocat->oxcategories__oxtitle->value }]
</div>
        		</div>
        	[{/if}]
        [{/if}]
    [{/foreach}]
[{/strip}]
[{/defun}]
[{/if}]

Ist halt nen bissel zusammengeraubt und muss dringend noch bearbeitet werden - aber funzt! :rolleyes:

Hallo zusammen,

wie muss ich diesen Code anpassen damit die Sub-Kategorien ausgegeben werden?
Hat vielleicht jemand eine Idee?

<div id="content">
<ul class="subcatList clearfix">
<li>
[{foreach from=$oxcmp_categories item=ocat key=catkey name=root}]
[{* -- Zauberschlüssel -- *}]
[{if $ocat->load($catkey)}][{/if}]
[{if $ocat->getIsVisible()}]
<div class="box">
<a href="[{$ocat->getLink()}]" title="[{$ocat->oxcategories__oxtitle->value}]">
<h3>[{$ocat->oxcategories__oxtitle->value}]</h3>
<div class="content catPicOnly">
<div class="subcatPic">
<img src="[{$ocat->getPromotionIconUrl()}]" alt="[{$ocat->oxcategories__oxtitle->value}]">
</div>
</div>
</a>
</div>
</li>
[{/if}]
[{/foreach}]
</ul> 
</div>  

Beste Grüße
Flo

[QUOTE=Michael Fritsch;15215]Mal als Denkanstoß:[/QUOTE]

Hi Michael,

danach habe ich schon ewig gesucht. Lässt sich übrigens gut erweitern mit

[{ $ocat->getLink() }]

Gruss Wolfgang

Hat der Theme Ersteller keine Zeit bzw. tipp für dich?

Grüße
Rafig

Fragt doch direkt bei Kai nach was Ihr ändern müsst, oder ob er euch die Anpassung macht. Wenn einer Roxive kennt, dann er.

Der Thread hier ist uralt und es ist fraglich, ob das überhaupt noch in neueren OXID-Versionen funktioniert.

Ja, vermutlich dürften die vorgenannten Lösungen nicht funktionieren, weil die Datenbankfelder inzwischen anders heissen. Im Übrigen nutzen wir die Version 4.9.7.

Ich gehe aber davon aus, dass es nicht unbedingt eine spezielle Lösung fürs RoxIVE sein muss, sondern evtl. auch ein Schnipsel nutzbar ist, der in Azure funktioniert.
Vielleicht hat hier schon jemand eine funktionierende Lösung, die er gerne teilt. Wäre mir, wie bereits gesagt, auch etwas wert.

Werde aber gerne, wie von euch geraten, beim Kai anfragen.