Сделал таки до третьего уровня:
<ul class="list-group">
{% for category in categories %}
{% if category.category_id == category_id %}
{% if category.children %}
{% for child in category.children %}
<a href="{{ child.href }}" class="list-group-item {% if child.category_id == child_id %}active{% endif %}">{{ child.name }}</a>
{% if child.sister_id %}
{% for sisters in child.sister_id %}
<a href="{{ sisters.href }}" class="list-group-item child{% if sisters.category_id == sisters_id %} active{% endif %}">{{ sisters.name }}</a>
{% endfor %}
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
</ul>
Но еще пришлось поправить контроллер /catalog/controller/extension/module/category.php и заменить его весь код на:
<?php
class ControllerExtensionModuleCategory extends Controller {
public function index() {
if (isset($this->request->get['path'])) {
$parts = explode('_', (string)$this->request->get['path']);
} else {
$parts = array();
}
if (isset($parts[0])) {
$data['category_id'] = $parts[0];
} else {
$data['category_id'] = 0;
}
if (isset($parts[1])) {
$data['child_id'] = $parts[1];
} else {
$data['child_id'] = 0;
}
if (isset($parts[2])) {
$data['sisters_id'] = $parts[2];
} else {
$data['sisters_id'] = 0;
}
$this->load->model('catalog/threelevel');
$this->load->model('catalog/product');
$data['categories'] = array();
$categories = $this->model_catalog_threelevel->getCategories(0);
foreach ($categories as $category) {
$total = $this->model_catalog_product->getTotalProducts(array('filter_category_id' => $category['category_id']));
$children_data = array();
$sister_data = array();
$children = $this->model_catalog_threelevel->getCategories($category['category_id']);
foreach ($children as $child) {
$sister_data = array();
$sisters = $this->model_catalog_threelevel->getChildCategories($child['category_id']);
if($sisters) {
foreach ($sisters as $sisterMember) {
$sister_data[] = array(
'category_id' =>$sisterMember['category_id'],
'name' => $sisterMember['name'],
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']. '_' . $sisterMember['category_id'])
);
}
$children_data[] = array(
'category_id' => $child['category_id'],
'sister_id' => $sister_data,
'name' => $child['name'],
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
);
}
else {
$children_data[] = array(
'category_id' => $child['category_id'],
'sister_id' =>'',
'name' => $child['name'],
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
);
}
}
$data['categories'][] = array(
'category_id' => $category['category_id'],
'name' => $category['name'] ,
'children' => $children_data,
'sister' => $sister_data,
'href' => $this->url->link('product/category', 'path=' . $category['category_id'])
);
}
return $this->load->view('extension/module/category', $data);
}
}