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!
Como seria pra bota no submenu ?
existe algum codigo ou e da mesma forma e o mesmo passa passo ?
Não é possível criar sub-menu.
Estou falando sobre isso >> https://prntscr.com/ggy6t1
Não seria possível ?
Sim, os ícones em sub-menus é possível ( a imagem até comprova isso ).
Na sua pergunta não ficou claro eu entendi sub-níveis.
Como seria pra bota no submenu ?
existe algum codigo ou e da mesma forma e o mesmo passa passo ?
Não é possível criar sub-menu.
Estou falando sobre isso >> https://prntscr.com/ggy6t1
Não seria possível ?
Sim, os ícones em sub-menus é possível ( a imagem até comprova isso ).
Na sua pergunta não ficou claro eu entendi sub-níveis.
Muito bom
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.”);
}
});
Não compreendi sua pergunta.
valeu @@whmcsblogbr:disqus Consegui resolver brigadooo
blz
da uma olhada nesse code
getChild(‘Actions’)
->removeChild(‘Domain Renewals’);
});
Funcionou mas o index.php da um erro
Não encontrei nenhum problema.
Edvan, como posso fazer para chamar e colocar um ícone no menu secondário – contas, e seus sub menus?
Basta utilizar o “setIcon” da mesma forma que os exemplos da página.
Oi como eu consigo alterar o nome da url knowledgebase ou store para outra coisa?
Você precisa criar uma regra via .htaccess
Entra em contato com o Edvan e solicita um orçamento.