Witam,
mam taki problem. Tworze sobie stronę i opieram się na opensource. Mam tam menu dropdown z kategoriami, póżniej mam podkategorie i jeszcze podpodkategorie które się niestety już nie pokazuję na tym menu dropdown. Problem jest w tym, że te dodatkowe kategorie trzeba dodać w php, którego ja kompletnie nie znam...

Dodanie listy w css, to spoko, ale przy tym php, trzeba to jakoś też opisać, bo jest baza danych. Z tego co wiem, jakieś to strasznie trudne nie jest, ale dla mnie to czrna magia...
Tutaj kod php:
<?php
class ControllerCommonHeader extends Controller {
protected function index() {
$this->data['title'] = $this->document->getTitle();
if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) { $this->data['base'] = $this->config->get('config_ssl');
} else {
$this->data['base'] = $this->config->get('config_url');
}
$this->data['description'] = $this->document->getDescription();
$this->data['keywords'] = $this->document->getKeywords();
$this->data['links'] = $this->document->getLinks();
$this->data['styles'] = $this->document->getStyles();
$this->data['scripts'] = $this->document->getScripts();
$this->data['lang'] = $this->language->get('code');
$this->data['direction'] = $this->language->get('direction');
$this->data['google_analytics'] = html_entity_decode($this->config->get('config_google_analytics'), ENT_QUOTES
, 'UTF-8');
$this->language->load('common/header');
if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) { $server = HTTPS_IMAGE;
} else {
$server = HTTP_IMAGE;
}
if ($this->config->get('config_icon') && file_exists(DIR_IMAGE
. $this->config->get('config_icon'))) { $this->data['icon'] = $server . $this->config->get('config_icon');
} else {
$this->data['icon'] = '';
}
$this->data['name'] = $this->config->get('config_name');
if ($this->config->get('config_logo') && file_exists(DIR_IMAGE
. $this->config->get('config_logo'))) { $this->data['logo'] = $server . $this->config->get('config_logo');
} else {
$this->data['logo'] = '';
}
// Calculate Totals
$total = 0;
$taxes = $this->cart->getTaxes();
if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
$this->load->model('setting/extension');
$results = $this->model_setting_extension->getExtensions('total');
foreach ($results as $key => $value) {
$sort_order[$key] = $this->config->get($value['code'] . '_sort_order');
}
foreach ($results as $result) {
if ($this->config->get($result['code'] . '_status')) {
$this->load->model('total/' . $result['code']);
$this->{'model_total_' . $result['code']}->getTotal($total_data, $total, $taxes);
}
}
}
$this->data['text_home'] = $this->language->get('text_home');
$this->data['text_wishlist'] = sprintf($this->language->get('text_wishlist'), (isset($this->session->data['wishlist']) ?
count($this->session->data['wishlist']) : 0
)); $this->data['text_cart'] = $this->language->get('text_cart');
$this->data['text_items'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ?
count($this->session->data['vouchers']) : 0
), $this->currency->format($total)); $this->data['text_search'] = $this->language->get('text_search');
$this->data['text_welcome'] = sprintf($this->language->get('text_welcome'), $this->url->link('account/login', '', 'SSL'), $this->url->link('account/register', '', 'SSL')); $this->data['text_logged'] = sprintf($this->language->get('text_logged'), $this->url->link('account/account', '', 'SSL'), $this->customer->getFirstName(), $this->url->link('account/logout', '', 'SSL')); $this->data['text_account'] = $this->language->get('text_account');
$this->data['text_checkout'] = $this->language->get('text_checkout');
$this->data['text_language'] = $this->language->get('text_language');
$this->data['text_currency'] = $this->language->get('text_currency');
$this->data['home'] = $this->url->link('common/home');
$this->data['wishlist'] = $this->url->link('account/wishlist');
$this->data['logged'] = $this->customer->isLogged();
$this->data['account'] = $this->url->link('account/account', '', 'SSL');
$this->data['cart'] = $this->url->link('checkout/cart');
$this->data['checkout'] = $this->url->link('checkout/checkout', '', 'SSL');
if (isset($this->request->get['filter_name'])) { $this->data['filter_name'] = $this->request->get['filter_name'];
} else {
$this->data['filter_name'] = '';
}
$this->data['action'] = $this->url->link('common/home');
if (!isset($this->request->get['route'])) { $this->data['redirect'] = $this->url->link('common/home');
} else {
$data = $this->request->get;
$route = $data['route'];
$url = '';
if ($data) {
$url = '&' . urldecode(http_build_query
($data)); }
$this->data['redirect'] = $this->url->link($route, $url);
}
if (($this->request->server['REQUEST_METHOD'] == 'POST') && isset($this->request->post['language_code'])) { $this->session->data['language'] = $this->request->post['language_code'];
if (isset($this->request->post['redirect'])) { $this->redirect($this->request->post['redirect']);
} else {
$this->redirect($this->url->link('common/home'));
}
}
$this->data['language_code'] = $this->session->data['language'];
$this->load->model('localisation/language');
$this->data['languages'] = array();
$results = $this->model_localisation_language->getLanguages();
foreach ($results as $result) {
if ($result['status']) {
$this->data['languages'][] = array( 'name' => $result['name'],
'code' => $result['code'],
'image' => $result['image']
);
}
}
if (($this->request->server['REQUEST_METHOD'] == 'POST') && isset($this->request->post['currency_code'])) { $this->currency->set($this->request->post['currency_code']);
unset($this->session->data['shipping_methods']); unset($this->session->data['shipping_method']);
if (isset($this->request->post['redirect'])) { $this->redirect($this->request->post['redirect']);
} else {
$this->redirect($this->url->link('common/home'));
}
}
$this->data['currency_code'] = $this->currency->getCode();
$this->load->model('localisation/currency');
$this->data['currencies'] = array();
$results = $this->model_localisation_currency->getCurrencies();
foreach ($results as $result) {
if ($result['status']) {
$this->data['currencies'][] = array( 'title' => $result['title'],
'code' => $result['code'],
'symbol_left' => $result['symbol_left'],
'symbol_right' => $result['symbol_right']
);
}
}
// Menu
$this->load->model('catalog/category');
$this->load->model('catalog/product');
$this->data['categories'] = array();
$categories = $this->model_catalog_category->getCategories(0);
foreach ($categories as $category) {
if ($category['top']) {
$children_data = array();
$children = $this->model_catalog_category->getCategories($category['category_id']);
foreach ($children as $child) {
'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'])
);
}
// Level 1
$this->data['categories'][] = array( 'name' => $category['name'],
'children' => $children_data,
'column' => $category['column'] ? $category['column'] : 1,
'href' => $this->url->link('product/category', 'path=' . $category['category_id'])
);
}
}
if (file_exists(DIR_TEMPLATE
. $this->config->get('config_template') . '/template/common/header.tpl')) { $this->template = $this->config->get('config_template') . '/template/common/header.tpl';
} else {
$this->template = 'default/template/common/header.tpl';
}
$this->render();
}
}
?>
Z tego co zrozumiałem to za komentarzem menu jest tego kod, jest level1, a ja bym jeszcze chciał level 2 i może 3. Jeśli potrzebny kod czegoś jeszcze to proszę pisać, bo nie wiem, czy to wystarczy czy np.: header.tpl nie będzie potrzebny
Z góry dziękuję za pomoc:)