Menu dinâmico com ícones personalizados. COMO FAZER?

Olá pessoal alguem poderia me ajudar, criei um menu dinâmico do tipo árvore, e gostaria de personaliza-lo cada item com um ícone diferente.
como devo proceder?

Abaixo me onload para exibir meu menu:

sc_appmenu_reset(menu_dinamico);
sc_appmenu_create(menu_dinamico);

sc_lookup (dsmenu,"
SELECT
ID,
PAI,
DESCRICAO,
LINK
FROM
DI_MENU_DINAMICO
ORDER BY
PAI,
ORDEM");
foreach ({dsmenu} as $arr_menu){
$id_item = ‘item_’.$arr_menu[0];
if($arr_menu[1] == 0){
$id_parent =’’;
}else{
$id_parent = ‘item_’.$arr_menu[1];
}

sc_appmenu_add_item(
'menu_dinamico',
$id_item,
$id_parent,
$arr_menu[2],
$arr_menu[3],
"","","",""
);

}

No OnApplicationInit:

sc_appmenu_create(‘meu_menu’);

sc_appmenu_add_item(‘meu_menu’, …);

Os ícones funcionam 100%

Olá Wennys, estou tentando mas não consigo adicionar ícones nos itens do menu dinâmico.

Utilizo o caminho: “…/_lib/img/<imagem.png” no campo “Icone” da macro sc_appmenu_add_item, e não aparece nada tanto no OnAplicationInit ou OnLoda.

Poderia me ajudar com o seu código?

Estou com esse problema tb. Já pesquisei no fórum e não encontro Solucao . Já coloquei vários path da imagem sem sucesso . Coloquei o caminho completo , usei variáveis com o caminho , enfim nada funcionou . Estou tentando encontrar uma saída , caso descubra relato aqui ok?

1 Curtida

Se esse problema for ‘bug’, o SC deveria corrigir também as macros de menu dinâmico para permitirem icones com fonte Awesome, assim como já existe nos menus fixos/normais.

Paulo, o amigo fo Forum de nome LUPA , me deu a dica:

O icone tem que estar na pasta LIB do projeto. No meu caso _lib/img .
E colocar a nomenclatura o Scriptcase.
Pra mim funcionou.

sc_appmenu_add_item(“menu”, “item_99”, “”, “”, “login”, “”, scriptcase__NM__ico__NM__exit_16.png, “Sair do sistema”, “_parent”);

Abs

1 Curtida

A pasta correta é lib/img mesmo, já corrigir lá! :+1:t4:

O arquivo está salvo na pasta ‘…/_lib/img’ assim ‘exit_16.png’ ou asssim: ‘scriptcase__NM__ico__NM__exit_16.png’.

O caminho das imagens do projeto, no windows, é ’/scriptcase/file/img/', a imagem ’sino_gray.png’ do icone está neste local, mas não é mostrada no menu nem assim: ’sino_gray.png’ e nem assim: ’scriptcase__NM__ico__NM__sino_gray.png’ no campo Icone da macro ‘sc_appmenu_add_item’. Fiz o mesmo procedimento acima na pasta ’…/_lib/img’, onde a imagem png também está, e nada.

Não entendo como uma coisa tão simples, ás vezes, pode ser tão estressante no SC. Estou sem saber se a imagem deve ser salva com o prefixo padrão para ícone (scriptcase__NM__ico__NM__) ou esse prefixo deve ser concatenado com o nome do icone, na macro.

Caro Paulo , pra mim funcionou.
Fiz assim, não sei se existe outra maneira melhor mas atendeu.

// este exemplo pego o nome do icone no banco de dados do meu projeto.
$icone=$array_menu[6];

if(empty($icone)){ // caso esteja vazio coloco um icone padrao
$icone=‘grp__NM__ico__NM__ArrowPoint_Menu.png’;
}
sc_appmenu_add_item(‘BCR022_menu’,$id_item,$id_parent,$array_menu[2],$array_menu[3],’’,$icone,’’,’’);

No meu caso resolvi colocando no banco o nome completo do icone no formato SC.

Para chegar a essa terminologia usei o gerenciador de imagens do SC realizando
o upload das minhas imagens.

Desta forma o SC guarda esse formato na pasta _lib/img do projeto.

No meu caso :
C:\Program Files\NetMake\v9\wwwroot\scriptcase\app\BCR_lib\img
Quando o projeto for publicado essa pasta _lib/img sera incluida no pacote.

Para chegar a essa terminologia usei o gerenciador de imagens do SC realizando
o upload das minhas imagens.

Estou usando um campo do tipo Imagem(Nome de Arquivo) e o upload não cria o arquivo com o prefixo SC, mas vou tentando aqui. Uma hora consigo

Com ceteza se vc conseguir avisa.
Eu fazia desta forma por upload.
Ai modifiquei o campo para texto e colo o nome da imagem.
Foi assim que consegui.
Uma outra coisa que ainda não consigo é colocar o icone na aba do menu da aplicação aberta.
Mas estou estudando essa viabilidade.
abs

Consegui, mas como no windows o upload da imagem(Nome do Arquivo) não cai na pasta _lib/img e sim na pasta /scriptcase/img, o SC não reconhece. Copiei o arquivo (CTRL-C, CTRL-V) para a pasta _lib/img e funcionou sem necessidade do prefixo SC.

Como no meu projeto o usuário poderá criar itens de menu, preciso do campo para upload do arquivo no formulário pegando só o seu nome. O segredo é você não informar o caminho do arquivo, pois o SC só procura na pasta _lib_img onde as imagens dos ícones serão salvos em produção.

Boa. Vou tentar aqui.
abs

Quando é somente de aplicações do SC, o menu fixo funciona, mas no caso em que é necessário usar links (páginas web, youtube, …), é necessário deixar esses itens de menus abertos para o usuário cadastrar e manter.

O nome do arquivo, não faz diferença.

O arquivo precisa está na pasta lib/img.

Provavelmente, criar um comando para copiar o arquivo para a pasta lib/img, no onAfterUpdate, deve resolver.

Dá uma pesquisa no comando copy do php