March 10, 201214 yr Hi all! I appeal to your kindness and expertise to solve my problem. I work at a site OpenCart platform. There is a php file to be changed, and I need help. That file is basically the source code for displaying a menu in a page (online store), namely displaying categories and subcategories of that shop. Below I posted the original php code file to see what was normally file and to understand where it goes. At this point, the original file menu on the left page (categories) are displayed as: -Clothing --- Nike --- Adidas --- Puma -Shoes -Accessories (Clothing, shoes and accessories are the main categories, ie level 1 menu. Nike, Aidas, Puma are subcategories that belong to the first pategorie, which are level 2 menu). Now .... I need to display a menu with 4 levels, ie the form: - Clothing --- Nike ---- Trousers -------- Shorts -------- Trousers ---- shirts ---- Hanoraks --- Adidas --- Puma - Shoes - Accessories (level 1 and level 2 are exactly as in the original, but now has come up level 3 with pants, shirts and jackets, and also appeared to level 4 trousers and shorts). I need to level 3 and 4 display besides the first 2 of the original file. I tried something, but I came out all right, that's because I do not know to work very well in PHP. Meanwhile, I found a file on the net which displays up to level 3 (which you'll find just below), and I need to display and level 4. Code the original file (menu 2 levels): <?php class ControllerModuleCategory extends Controller { protected function index() { $this->language->load('module/category'); $this->data['heading_title'] = $this->language->get('heading_title'); if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); } else { $parts = array(); } if (isset($parts[0])) { $this->data['category_id'] = $parts[0]; } else { $this->data['category_id'] = 0; } if (isset($parts[1])) { $this->data['child_id'] = $parts[1]; } else { $this->data['child_id'] = 0; } $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) { $children_data = array(); $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( 'category_id' => $child['category_id'], 'name' => $child['name'] . ' (' . $product_total . ')', 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); } $data = array( 'filter_category_id' => $category['category_id'], 'filter_sub_category' => true ); $product_total = $this->model_catalog_product->getTotalProducts($data); $this->data['categories'][] = array( 'category_id' => $category['category_id'], 'name' => $category['name'] . ' (' . $product_total . ')', 'children' => $children_data, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']) ); } if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/category.tpl')) { $this->template = $this->config->get('config_template') . '/template/module/category.tpl'; } else { $this->template = 'default/template/module/category.tpl'; } $this->render(); } } ?> Code file menu 3 levels: <?php class ControllerModuleCategory extends Controller { protected function index() { $this->language->load('module/category'); $this->data['heading_title'] = $this->language->get('heading_title'); if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); } else { $parts = array(); } if (isset($parts[0])) { $this->data['category_id'] = $parts[0]; } else { $this->data['category_id'] = 0; } if (isset($parts[1])) { $this->data['child_id'] = $parts[1]; } else { $this->data['child_id'] = 0; } if (isset($parts[2])) { $this->data['sisters_id'] = $parts[2]; } else { $this->data['sisters_id'] = 0; } $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) { $children_data = array(); $sister_data = array(); $children = $this->model_catalog_category->getCategories($category['category_id']); foreach ($children as $child) { $sister_data = array(); $sisters = $this->model_catalog_category->getCategories($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 = array( 'filter_category_id' => $category['category_id'], 'filter_sub_category' => true ); $product_total = $this->model_catalog_product->getTotalProducts($data); $this->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']) ); } if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/category.tpl')) { $this->template = $this->config->get('config_template') . '/template/module/category.tpl'; } else { $this->template = 'default/template/module/category.tpl'; } $this->render(); } } ?> Thank you in advance and expect an answer that I need urgently as possible to fix this!
Create an account or sign in to comment