Добрый день! Подскажите как в модуле вывода категорий узнать что у категории есть подкатегории? Не могу сообразить как сделать если $curr -> level = 0 и есть подкатегории указать вроде этого <li class="subdir">.
Здесь на форуме было несколько тем по этому модулю и я его привёл сейчас к такому виду:
<?php
$level_prev = -1;
foreach($categories_arr as $curr){
$level = $curr -> level;
if($level < $level_prev){
For($i = $level; $i < $level_prev; $i++){
print '</li></ul>';
}
print '</li>';
}
if($level == $level_prev){print '</li>';}
if($level > $level_prev){print '<ul>';}
?>
<li>
<?php if ($show_image && $curr->category_image && $curr->level==0){?>
<img src = "<?php print $jshopConfig->image_category_live_path."/".$curr->category_image?>" alt = "<?php print $curr->name?>" />
<?php } ?>
<a href = "<?php print $curr->category_link?>"><?php print $curr->name?></a>
<?php
$level_prev = $curr -> level;
}
For($i = 0; $i <= $level; $i++){
print '</li></ul>';
}
?>
<?php
class jShopCategoriesHelper{
function getTreeCats($order, $ordering, $category_id, $categories_id, &$categories, $level=0){
$cat = &JTable::getInstance('category', 'jshop');
$cat->category_parent_id = 0;
$cats = $cat->getSisterCategories($order, $ordering);
foreach($cats as $key=>$value){
$cats[$key]->level = $level;
$categories[] = $value;
jShopCategoriesHelper::getTreeCats2($order, $ordering, $value->category_id, $categories_id, $categories, $level);
}
}
function getTreeCats2($order, $ordering, $category_id, $categories_id, &$categories, $level){
++$level;
$cat = &JTable::getInstance('category', 'jshop');
$cat->category_id = $category_id;
$cats = $cat->getChildCategories($order, $ordering);
foreach($cats as $key=>$value){
$cats[$key]->level = $level;
$categories[] = $value;
jShopCategoriesHelper::getTreeCats2($order, $ordering, $value->category_id, $categories_id, $categories, $level);
}
}
function getCatsArray($order, $ordering, $category_id, $categories_id = array()){
$res_arr = array();
jShopCategoriesHelper::getTreeCats($order, $ordering, $category_id, $categories_id, $res_arr, 0);
return $res_arr;
}
}
?>