- App
- WoltLab Suite Blog
Es wäre hilfreich, wenn die li-Elemente innerhalb der dashboardBoxCategories eine ID hätten um sie einzeln ansprechen zu können.
Es wäre hilfreich, wenn die li-Elemente innerhalb der dashboardBoxCategories eine ID hätten um sie einzeln ansprechen zu können.
Ich habe mich mal hingesetzt und folgenden Vorschlag ausgearbeitet:
<ol class="sidebarNestedCategoryList">
{foreach from=$categoryList item=categoryItem}
<li{if $activeCategory && $activeCategory->categoryID == $categoryItem->categoryID} class="active"{/if} id="blogCategory-{$categoryItem->categoryID}">
<a href="{link application='blog' controller='EntryList' object=$categoryItem->getDecoratedObject()}{/link}">{$categoryItem->getTitle()}</a>
<span class="badge">{#$categoryItem->getEntries()}</span>
{if $activeCategory && ($activeCategory->categoryID == $categoryItem->categoryID || $activeCategory->isParentCategory($categoryItem->getDecoratedObject())) && $categoryItem->hasChildren()}
<ol>
{foreach from=$categoryItem item=subCategoryItem}
<li{if $activeCategory && $activeCategory->categoryID == $subCategoryItem->categoryID} class="active"{/if} id="blogCategory-{$subCategoryItem->categoryID}">
<a href="{link application='blog' controller='EntryList' object=$subCategoryItem->getDecoratedObject()}{/link}">{$subCategoryItem->getTitle()}</a>
<span class="badge">{#$subCategoryItem->getEntries()}</span>
{if $activeCategory && ($activeCategory->categoryID == $subCategoryItem->categoryID || $activeCategory->parentCategoryID == $subCategoryItem->categoryID) && $subCategoryItem->hasChildren()}
<ol>
{foreach from=$subCategoryItem item=subSubCategoryItem}
<li{if $activeCategory && $activeCategory->categoryID == $subSubCategoryItem->categoryID} class="active"{/if} id="blogCategory-{$subSubCategoryItem->categoryID}">
<a href="{link application='blog' controller='EntryList' object=$subSubCategoryItem->getDecoratedObject()}{/link}">{$subSubCategoryItem->getTitle()}</a>
<span class="badge">{#$subSubCategoryItem->getEntries()}</span>
</li>
{/foreach}
</ol>
{/if}
</li>
{/foreach}
</ol>
{/if}
</li>
{/foreach}
</ol>
Alles anzeigen
Damit würde jeder Kategorieeintrag über eine ID ansprechbar über:
Sinnvoller wäre es diese via data-category-id="{@$categoryItem->categoryID}" zugänglich zu machen, es erlaubt dann auch eine einfachere Verarbeitung via JavaScript.
Soweit hab ich garnicht gedacht, stimmt aber
wobei mir ein data-blog-category-id="{@$categoryItem->categoryID}" irgendwie besser gefiele.
Mir aber nicht, denn das zugrunde liegende Template stammt vom WCF
Du meinst die categoryID?
Stimmt schon. Wieder nicht weit genug gedacht
Allerdings werden die drei Ebenen des Blogs nicht "global" befüllt sondern folgen scheinbar einer internen Logik. Sonst gäbs keinen unterschied zwischen categoryItem, subCategoryItem und subSubCategoryItem und man bekäme immer die globale ID zurück , oder?
So wie es gegenwärtig aufgebaut ist bekommt man mit $categoryItem immer nur die Hauptkategorie zurück.
Innerhalb der Schleife gibt es noch zwei weitere um die jeweiligen Ebenen abzubilden, selbstverständlich kann man $categoryItem nicht auf jeder Ebene nutzen sondern muss die jeweilige Schleife berücksichtigen. Es ging mir bei meinem Code-Schnipsel auch eher um die grundsätzliche Logik, weniger um die endgültige Implementierung.
Davon ab bezog ich mich auf das Template, die Kategorieauflistung wird durch das Template flexibleCategoryList erzeugt, dies wird an der passenden Stelle im Template vom Blog eingebunden.
Egal wie es am Ende umgesetzt wird, ich denke wir stimmen überein, dass eine direkte Ansprechbarkeit durch einen Identifier seinen Nutzen hätte
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!