Hey, gibt es eine einfache Möglichkeit die Artikelanzahl hinter den Kategoriename zu bekommen? Sprich die Anzahl der Artikel, welche die Kategorie beinhaltet? EDIT. Ich habs übersehen, sorry. countArticle heißt die Varibale ;( Gute Nacht
Zufrüh gefreut. Es klappt nicht. Warum? Der Code sollte eig. stimmen: [code] {function name=categories level=0}
{block name=“frontend_index_categories_left_ul”}{/block} {foreach from=$categories item=category} - [{$category.description} ({$category.countArticles})]({if $category.external}{$category.external}{else}{$category.link|rewrite:$category.description}{/if}) {if $category.subcategories} {call name=categories categories=$category.subcategories level=$level+1} {/if}
{/foreach} {/function} [/code]
Du hast doch nur das hier ergänzt, oder? ({$category.countArticles}) Das klappt bei mir auf jeden Fall ohne Probleme…
Richtig. Ich habe nur die Variable hinzugefügt, mehr nicht! Allerdings habe ich keine Werte erhalten. Ich Versuchs morgen noch mal
Morgen, ich habe es nun noch mal geprüft. Bei mir klappt es nicht. Bzw. klappt es auf allein Seiten, außer der Home/Startseite, hier erhalte ich keine Anzahl. Klicke ich aber auch eien Kategorie und diese wird gelade, habe ich dann auf einmal alle Werte. Firebug zeigt mir aber auch auf der Startseite die Variablen an. So sieht die categories_left.tpl aus: [code] {* Maincategories left *} {function name=categories level=0}
{block name=“frontend_index_categories_left_ul”}{/block} {foreach from=$categories item=category} - [{$category.description} ({$category.countArticles})]({if $category.external}{$category.external}{else}{$category.link|rewrite:$category.description}{/if}) {if $category.subcategories} {call name=categories categories=$category.subcategories level=$level+1} {/if}
{/foreach} {/function} {if $sCategories} {call name=categories categories=$sCategories} {elseif $sMainCategories} {call name=categories categories=$sMainCategories} {/if} [/code]
Nabend, in countArticles stehen werden leider auch inaktive Artikel mit gezählt. Nun habe ich versucht dies in der sCategories.php zu verhindern, leider ohne Erfolg. Hat jmd eine Idee? $sql = " SELECT c.\*, (SELECT COUNT(\*) FROM s\_articles\_categories inner join s\_articles on s\_articles\_categories.articleID = s\_articles.ID WHERE s\_articles\_categories.categoryID = c.id and s\_articles.active = 1 GROUP BY categoryID) AS countArticles FROM s\_categories c WHERE parent = ? AND c.active = 1 AND ( SELECT categoryID FROM s\_categories\_avoid\_customergroups WHERE categoryID = c.id AND customergroupID = ".$this-\>sSYSTEM-\>sUSERGROUPDATA["id"]." ) IS NULL HAVING countArticles\>0 ORDER BY position, description ";
Hat hierzu noch jmd eine Idee? Ich will, dass in der countArticle Variable in der Kategorie nur die aktiven Artikel gezählt werden!
Probiere das mal so: … SELECT COUNT(*) FROM s_articles_categories INNER JOIN s_articles_details ON s_articles_categories.articleID = s_articles_details.articleID AND s_articles_details.kind = 1 AND s_articles_details.active =1 WHERE s_articles_categories.categoryID = c.id …
Morgen Stefan, ich wollte gerade dein Query testen, jetzt ist mir aber aufgefallen, dass ein Artikel welcher einer Kategorie zugewiesen ist, welcher ich nun auf inaktiv gesetzt habe immer noch angezeigt wird. Woran kann das liegen? Cache habe ich mehrmals geleert.
Wo hast du den denn auf inaktiv gesetzt? Im Backend oder manuell in DB?
[quote=„Stefan Hamann“]Wo hast du den denn auf inaktiv gesetzt? Im Backend oder manuell in DB?[/quote] Im Backend in den Stammdaten. Hab aber auch in der DB geschaut. Hier steht bei dem Datensatz active = 0
Sorry, geht! Die VM macht es einem nicht einfach Nachdem ich die VM neugestartet habe, wurde der Artikel auch nicht mehr angezeigt. (Da klappt wohl das Cache löschen nicht immer). Dein SQL Query geht so also auch. Danke dir.