obtenha categoria de terceiro nível no opencart

Eu quero foreach terceiro nível no módulo da categoria OpenCart, aqui é o código que gera somente categoria de 2 níveis, por favor, ajude e modifique para que ele seja genarado em terceiro nível:

  

Você poderia tentar isso, não é elegante, mas deveria funcionar:

  
    '; foreach ($category['children'] as $category_level2) : echo '
  • '.$category_level2['name'].''; if (!empty($category_level2['children'])) : echo ''; endif; echo '
  • '; endforeach; echo '
'; endif; echo ''; endforeach; echo ''; ?>

Para isso, você precisa editar o Controlador de Cabeçalho:

Vá para Catálogo-> controlador-> common-> header.php

Edite a seção que cria a variável $ category. atualize pelo seguinte script:

 $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) { $sec_children_data = array(); $sec_children = $this->model_catalog_category->getCategories($child['category_id']); foreach ($sec_children as $sec_child) { $sec_children_data[] = array( 'name' => $sec_child['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $child['category_id'] . '_' . $sec_child['category_id']) ); } $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'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']), 'children' => $sec_children_data ); } // 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']) ); } } 

Em seguida, atualize o arquivo de exibição para exibir as categorias de terceiro nível.

Supondo que você tenha o lado da administração já feito, então você deve verificar se existem algumas categorias no segundo nível. Se sim, então faça for construção (ou foreach ) e exiba-os como 3º nível.

Você gerará uma pequena construção

    . Deve ser estilizado sob CSS.

    Você pode até criar subcategorias de infinidade usando function recursiva.

    Deixe-me saber se você não entendê-lo.

    Primeiro, faça o download do vqmod a partir daqui , extraie-o. Agora, a pasta vqmod continue no diretório raiz do seu site. Em seguida, vá para o navegador, escreva o URL do seu site, em seguida, “/ vqmod / install” e pressione Enter e receba uma mensagem para que você possa instalar o vqmod em seu site com sucesso. Agora você baixou um formulário de extensão aqui e extrai-lo. e continue extraindo o arquivo em seu site, indique o arquivo exdm do menu: menu3rdlevel-opencart-2_2 \ vqmod \ xml / Menu3rdLevel.xml em seu site, por exemplo: vqmod \ xml / Menu3rdLevel.xml outros arquivos com a pasta “menu3rdlevel”. De sua pasta de extensão “javascript” para a pasta do seu site “javescript”, pasta de extensão “imagem” para pasta do site “imagem” pasta de extensão “stylsheet” para a pasta do site “stylsheet”. então atualize seu site no navegador, está ok agora.

    NB: transfira o arquivo xml apenas o arquivo e outro arquivo com a pasta.

    Para editar o menu do terceiro nível, faça as seguintes alterações no arquivo do controlador header.php.

      foreach ($sec_children as $sec_child) { $sec_children_data[] = array( 'name' => $sec_child['name'] . ($this->config->get('config_product_count') ? '' : ''), 'href' => $this->url->link('product/category', 'path=' . $child['category_id'] . '_' . $sec_child['category_id']) ); } 

    E também faça as seguintes alterações no arquivo header.tpl.

     ?php if (isset($category['children'][$i]['level3'])) { $level3menus = $category['children'][$i]['level3']; ?>  

    Consulte o meu tutorial para explicação passo a passo e demonstração.

    http://www.pearlbells.co.uk/third-level-category-menu-opencart/