Personalizando Menus

19

Por desconhecimento, falta de prática ou dificuldade de entender a documentação do fabricante a personalização dos menus pode ser uma tarefa complicada nas últimas versões do WHMCS. Nesta publicação você irá aprender que os procedimentos são simples e em alguns passos será possível incluir um ícone, alterar o texto do menu, definir uma URL, determinar o alvo da URL ou apenas remover o menu. Como essas alterações são efetuadas via hook mesmo que ocorra atualização do WHMCS todas as customizações são preservadas.

 Identificando o menu

O primeiro passo é identificar o nome interno do menu, com o botão direito do mouse clique sobre o menu que deseja identificar e escolha “Inspecionar Elemento”, procure por “menuitemname” e confira o nome do menu. Neste exemplo se chama “Home”.

Personalizando

É possível criar diversas personalizações, para isso crie um arquivo com nome menu.php e envie para /includes/hooks/ em seguida edite o arquivo de acordo com a personalização que você deseja, confira alguns exemplos:

1) Remover menu:

<?php

if (!defined("WHMCS")) die("Ops... Acesso Restrito!");

use WHMCS\View\Menu\Item as MenuItem;

add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar)
{
	$primaryNavbar->removeChild('Home');
});

2) Inserir um ícone:

<?php

if (!defined("WHMCS")) die("Ops... Acesso Restrito!");

use WHMCS\View\Menu\Item as MenuItem;

add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar)
{
    $icone='fa-home'; // ícone, outras opções https://fontawesome.io/icons/		
    if (!is_null($primaryNavbar->getChild('Home'))) {
            $primaryNavbar->getChild('Home')->setIcon(''.$icone.'');			
    }
});

Caso queira aprender a escolher o ícone, basta visitar este site, confira o vídeo abaixo explicando como identificar:


3) Alterar o nome

<?php

if (!defined("WHMCS")) die("Ops... Acesso Restrito!");

use WHMCS\View\Menu\Item as MenuItem;

add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar)
{
    $nome='Página Principal'; // Nome da URL ou deixe em branco	
    if (!is_null($primaryNavbar->getChild('Home'))) {
            $primaryNavbar->getChild('Home')->setLabel(''.$nome.'');			
    }
});

É possível alterar o nome através da tradução, exemplo edite o arquivo portuguese-br.php que está localizado em /lang/ e localize a linha.

$_LANG['clientareanavhome'] = "Área do Cliente";

4) Definir URL de destino e Alvo

<?php

if (!defined("WHMCS")) die("Ops... Acesso Restrito!");

use WHMCS\View\Menu\Item as MenuItem;

add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar)
{
    $url='https://edvan.com.br/'; // Sua URL
    $alvo='_blank'; // Alvo, nova página utilize _blank	

    if (!is_null($primaryNavbar->getChild('Home'))) {
         $primaryNavbar->getChild('Home')->ssetURI(''.$url.'')->setAttribute('target', ''.$alvo.''); 			
    }
});

Exemplo de todas as customizações listadas (exceto a remoção):

<?php

if (!defined("WHMCS")) die("Ops... Acesso Restrito!");

use WHMCS\View\Menu\Item as MenuItem;

add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar)
{
	$icone='fa-home'; // ícone, outras opções https://fontawesome.io/icons/
	$nome=''; // Nome da URL ou deixe em branco
	$url='https://edvan.com.br/'; // Sua URL
	$alvo='_blank'; // Alvo, nova página utilize _blank
	
    if (!is_null($primaryNavbar->getChild('Home'))) {
            $primaryNavbar->getChild('Home')->
            setIcon(''.$icone.'')->setLabel(''.$nome.'')->
            setURI(''.$url.'')->setAttribute('target', ''.$alvo.''); 
    }
});

Resultado do exemplo acima:

Gostou? Comente!

19 COMENTÁRIOS

  1. boa noite como faço para aplicar o numero “2) Inserir um ícone:” esse mesmo código em outro lugar
    ele da erro quando duplico ele
    exemplo
    getChild(‘Announcements’))) {
    $primaryNavbar->getChild(‘Announcements’)->setIcon(”.$icone.”);
    }
    });

DEIXE UMA RESPOSTA

Please enter your comment!
Please enter your name here