Итак задача. Необходимо иметь возможность в админке настраивать – выводить или не выводить подкатегории в выпадающем списке в верхнем меню.
Вообще в админке в редактировании категории во вкладке ДАННЫЕ есть такое поле “Столбцы:“. Там настраивается количество столбцов в выпадающем списке для пункта меню. Это поле мы и будем использовать, добавив в файл контроллера header.php небольшой хак. Смысл модификации в том, что если в поле ” Столбцы: ” ввести цифру ноль, то выпадающее меню вообще не будет выводиться.
Итак модифицируем файл catalog/controller/common/header.php
Практически в самом низу файла находим
$children = $this->model_catalog_category->getCategories($category['category_id']);
foreach ($children as $child) {
$data = array(
'filter_category_id' => $child['category_id'],
'filter_sub_category' => true
);
$product_total = $this->model_catalog_product->getTotalProducts($data);
$children_data[] = array(
'name' => $child['name'] . ' (' . $product_total . ')',
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
);
}
И заменяем на
if($category['column']){
$children = $this->model_catalog_category->getCategories($category['category_id']);
foreach ($children as $child) {
$data = array(
'filter_category_id' => $child['category_id'],
'filter_sub_category' => true
);
$product_total = $this->model_catalog_product->getTotalProducts($data);
$children_data[] = array(
'name' => $child['name'] . ' (' . $product_total . ')',
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
);
}
}
Суть в том, что этот участок кода после модификации выполнится только в том случае, если в поле ” Столбцы: ” будет стоять число, отличное от нуля.
Статья не моя. Находил гдето в просторах Яндекса. Удачи!