Нужно переделать минимум 2 функции. Весь код писать не буду, напишу один пример, остальное сделаете также .
Для категорий:
1. Добавляте стили (вы уже сделали)
.class_color1 {
background-color: #FFA500;
}
.class_color2 {
background-color: #9932CC;
}
.class_color3 {
background-color: #00FF00;
}
.class_color4 {
background-color:#008B00;
}
2. В файле /modules/blocktopmenu/blocktopmenu.php меняете функции:
строчка 465
private function makeMenu()
{
$menu_items = $this->getMenuItems();
$id_lang = (int)$this->context->language->id;
$id_shop = (int)Shop::getContextShopID();
$i = 0;
foreach ($menu_items as $item)
{
if (!$item)
continue;
preg_match($this->pattern, $item, $value);
$id = (int)substr($item, strlen($value[1]), strlen($item));
$i++;
$color = 'class_color'.$i;
switch (substr($item, 0, strlen($value[1])))
{
case 'CAT':
$this->_menu .= $this->generateCategoriesMenu(Category::getNestedCategories($id, $id_lang, true, $this->user_groups),0,$color);
break;
...
и в линии 599
private function generateCategoriesMenu($categories, $is_children = 0,$color = 0)
{
$html = '';
foreach ($categories as $key => $category)
{
if ($category['level_depth'] > 1)
{
$cat = new Category($category['id_category']);
$link = Tools::HtmlEntitiesUTF8($cat->getLink());
}
else
$link = $this->context->link->getPageLink('index');
$color = $color ? 'class="'.$color.'"': '';
$html .= '<li '.(($this->page_name == 'category' && (int)Tools::getValue('id_category') == (int)$category['id_category']) ? ' class="sfHoverForce"' : ' '.$color.'').'>';
$html .= '<a href="'.$link.'" title="'.$category['name'].'">'.$category['name'].'</a>';
...