Pular para o conteúdo principal

Menu

Classe Responsável por gerar a saída HTML dos menus de navegação do site. Usa cache em arquivo, empilhamento não recursivo e substituição dinâmica para itens de autenticação.

Menu::list()

```

Parâmetros:
$args array (opcional)
Argumentos de configuração do menu. Define nome, classes CSS e identificadores.

Retorno: void
Imprime o HTML do menu no formato de lista aninhada.

Exemplo de uso:

Menu::list([
    'name'        => 'principal',
    'list_id'     => 'nav',
    'list_class'  => 'menu',
]);

Argumentos padrão:

  • 'name' string Padrão: '' Nome (slug) do menu.
  • 'list_id' string|null Padrão: null ID do elemento <ul> principal.
  • 'list_class' string Padrão: 'menu' Classe CSS padrão da lista principal.
  • 'parent_item_class' string Padrão: 'hasub' Classe CSS aplicada a itens com submenu.
  • 'sublist_class' string Padrão: 'isub' Classe CSS para listas internas (submenus).
```

Menu::render_menu()

```

Parâmetros:
$items array
$args array
$depth int (opcional)
Empilha e monta a estrutura HTML de listas e sublistas com base na árvore de itens.

Retorno: string
Retorna o HTML do menu montado.

```

Menu::build_tree()

```

Parâmetros:
$items array
$root int (opcional)
Constrói a hierarquia dos itens do menu, agrupando filhos e pais.

Retorno: array
Estrutura hierárquica (em árvore) dos itens do menu.

```

Menu::get_menu_items()

```

Parâmetros:
$menu_name string
Nome (slug) do menu a ser consultado no banco.

Retorno: array
Lista de itens do menu obtidos do banco de dados, em formato plano.

```

Menu::render_auth_item()

```

Parâmetros:
$label string
Texto exibido no link de autenticação.

Retorno: string
HTML do item de autenticação (Login ou link do usuário logado).

Notas:
- O item de autenticação não é armazenado em cache, pois depende do status do usuário.
- A substituição é feita por leitura de {{AUTH_ITEM}} após a ou criação do cache.

```

Notas:

  • A classe utiliza cache em arquivo via OneCache para evitar consultas ao banco. O cache é puramente estático, exceto pelo item de autenticação.
  • O método render_menu() empilha a estrutura hierárquica, evitando recursão. Isso torna a renderização mais eficiente e previsível.
  • Menus são exibidos com 0 consultas após o primeiro carregamento, enquanto o cache estiver válido.
  • Os seletores CSS padrão são: .menu para o principal, .isub para submenus e .hasub para itens com filhos.
  • A classe pode ser usada tanto em temas quanto no painel, mas seu foco é a saída web pública.

Setores: Classes Methods