вот кусок кода в котором формируються уровни вложености категорий виртуал марта, можеть подсказать как можно для третего уровня применить совой стиль subsublevel, в нем сейчас что глубже второго уровня применяеться стиль sublevel, нужно что бы мой применялся, потому что все три уровня вложености имеют разные стили уменя
* This function is used for the frontend to display a
* complete link list of top-level categories
*
* @param int $category_id The category to be highlighted
* @param string $links_css_class The css class that marks mainlevel links
* @param string $list_css_class (deprecated)
* @param string $highlighted_style The css styles that format the hightlighted category
* @return string HTML code with the link list
*/
function get_category_tree( $category_id=0,
$links_css_class="mainlevel",
$list_css_class="mm123",
$highlighted_style="font-style:normal;" ) {
global $sess;
$categories = ps_product_category::getCategoryTreeArray();
// Copy the Array into an Array with auto_incrementing Indexes
$key = array_keys($categories);
$size = sizeOf($key);
$category_tmp = Array();
for ($i=0; $i<$size; $i++)
$category_tmp[$i] = &$categories[$key[$i]];
$html = "";
/** FIRST STEP
* Order the Category Array and build a Tree of it
**/
$nrows = count( $category_tmp );
$id_list = array();
$row_list = array();
$depth_list = array();
$children = array();
$parent_ids = array();
for($k = 0 ; $k < $nrows ; $k++) {
$parent_ids[$k] = $category_tmp[$k]['category_parent_id'];
}
for($n = 0 ; $n < $nrows ; $n++)
if($category_tmp[$n]["category_parent_id"] == 0)
{ array_push($id_list,$category_tmp[$n]["category_child_id"]);
array_push($row_list,$n);
array_push($depth_list,0);
}
$loop_count = 0;
while(count($id_list) < $nrows) {
if( $loop_count > $nrows )
break;
$id_temp = array();
$row_temp = array();
$depth_temp = array();
for($i = 0 ; $i < count($id_list) ; $i++) {
$id = $id_list[$i];
$row = $row_list[$i];
$depth = $depth_list[$i];
array_push($id_temp,$id);
array_push($row_temp,$row);
array_push($depth_temp,$depth);
$pattern = '/\b'.$id.'\b/';
$children = preg_grep( $pattern, $parent_ids );
foreach($children as $key => $value) {
if( array_search($category_tmp[$key]["category_child_id"],$id_list) == NULL) {
array_push($id_temp,$category_tmp[$key]["category_child_id"]);
array_push($row_temp,$key);
array_push($depth_temp,$depth + 1);
}
}
}
$id_list = $id_temp;
$row_list = $row_temp;
$depth_list = $depth_temp;
$loop_count++;
}
/** SECOND STEP
* Find out if we have subcategories to display
**/
$allowed_subcategories = Array();
if( !empty( $categories[$category_id]["category_parent_id"] ) ) {
// Find the Root Category of this category
$root = $categories[$category_id];
$allowed_subcategories[] = $categories[$category_id]["category_parent_id"];
// Loop through the Tree up to the root
while( !empty( $root["category_parent_id"] )) {
$allowed_subcategories[] = $categories[$root["category_child_id"]]["category_child_id"];
$root = $categories[$root["category_parent_id"]];
}
}
// Fix the empty Array Fields
if( $nrows < count( $row_list ) ) {
$nrows = count( $row_list );
}
// Now show the categories
for($n = 0 ; $n < $nrows ; $n++) {
if( !isset( $row_list[$n] ) || !isset( $category_tmp[$row_list[$n]]["category_child_id"] ) )
continue;
if( $category_id == $category_tmp[$row_list[$n]]["category_child_id"] )
$style = $highlighted_style;
else
$style = "";
$allowed = false;
if( $depth_list[$n] > 0 ) {
// Subcategory!
if( isset( $root ) && in_array( $category_tmp[$row_list[$n]]["category_child_id"], $allowed_subcategories )
|| $category_tmp[$row_list[$n]]["category_parent_id"] == $category_id
|| $category_tmp[$row_list[$n]]["category_parent_id"] == @$categories[$category_id]["category_parent_id"]) {
$allowed = true;
}
}
else
$allowed = true;
$append = "";
if( $allowed ) {
if( $style == $highlighted_style ) {
$append = 'id="active_menu"';
}
if( $depth_list[$n] > 0 )
$css_class = "sublevel";
else
$css_class = $links_css_class;
$catname = shopMakeHtmlSafe( $category_tmp[$row_list[$n]]["category_name"] );
$html .= '
<a title="'.$catname.'" style="display:block;'.$style.'" class="'. $css_class .'" href="'. $sess->url(URL."index.php?page=shop.browse&category_id=".$category_tmp[$row_list[$n]]["category_child_id"]) .'" '.$append.'>'
. str_repeat("",$depth_list[$n]) . $catname
. ps_product_category::products_in_category( $category_tmp[$row_list[$n]]["category_child_id"] )
.'</a>';
}
}
return $html;
}