Menu Dinamico [RESOLVIDO]

Pessoal, boa noite!!

Segui este exemplo abaixo exatamente igual ao apresentado porém não consigo fazer aparecer os itens no menu. Alguma ideia do que possa ser??

http://www.scriptcase.com.br/knowledge/index.php?/Knowledgebase/Article/View/576/29/criando-um-menu-dinamico

Já pesquisei aqui no fórum e não encontrei nada que me resolvesse esse problema.

Grato

Thyago,

Esse código esta funcionando:

sc_appmenu_reset("menu_dinamico")
sc_appmenu_create ("menu_dinamico");

$_sel="Select id, descricao, aplicacao, id_pai from menu order by id_pai, id";
sc_select(rs,$_sel);
if ({rs} === false)
{
	echo "Erro de acesso. Mensagem = " . {rs_erro};
}
else
{
	while (!$rs->EOF){
		
		$_id = md5($rs->fields[0]);
		
        $_id_pai=$rs->fields[3]>0?md5($rs->fields[3]):"";
		
		$_desc=trim($rs->fields[1]);

		$_app=trim($rs->fields[2]);
		
        if ($rs->fields[2]=="app_Login") { 
			sc_appmenu_add_item('menu_dinamico',$_id,$_id_pai,$_desc,$_app,"","","","_parent");
		}else{
			sc_appmenu_add_item('menu_dinamico',$_id,$_id_pai,$_desc,$_app);
		}
  
		sc_apl_status($_app, 'on');
		$rs->MoveNext();
	}
	$rs->Close();
}

– Adminer 4.1.0 SQLite 3 dump

DROP TABLE IF EXISTS “menu”;
CREATE TABLE [menu] (
[Id] integer NOT NULL PRIMARY KEY AUTOINCREMENT,
[Descricao] varchar(35) DEFAULT NULL,
[Aplicacao] varchar(100) DEFAULT NULL,
[Id_Pai] int(11) DEFAULT NULL);

INSERT INTO “menu” (“Id”, “Descricao”, “Aplicacao”, “Id_Pai”) VALUES (1, ‘Home’, ’ container_home’, ‘0’);
INSERT INTO “menu” (“Id”, “Descricao”, “Aplicacao”, “Id_Pai”) VALUES (2, ‘Cadastros’, ‘’, ‘0’);
INSERT INTO “menu” (“Id”, “Descricao”, “Aplicacao”, “Id_Pai”) VALUES (3, ‘Clientes’, ‘form_clientes’, 2);
INSERT INTO “menu” (“Id”, “Descricao”, “Aplicacao”, “Id_Pai”) VALUES (4, ‘Vendedores’, ‘form_vendedores’, 2);
INSERT INTO “menu” (“Id”, “Descricao”, “Aplicacao”, “Id_Pai”) VALUES (5, ‘Produtos’, ‘form_products’, 2);
INSERT INTO “menu” (“Id”, “Descricao”, “Aplicacao”, “Id_Pai”) VALUES (6, ‘Consultas’, ‘’, ‘0’);
INSERT INTO “menu” (“Id”, “Descricao”, “Aplicacao”, “Id_Pai”) VALUES (7, ‘Pedidos’, ‘grid_orders’, 14);
INSERT INTO “menu” (“Id”, “Descricao”, “Aplicacao”, “Id_Pai”) VALUES (8, ‘Produtos’, ‘form_products’, 6);
INSERT INTO “menu” (“Id”, “Descricao”, “Aplicacao”, “Id_Pai”) VALUES (9, ‘Vendedores’, ‘grid_vendedores’, 6);
INSERT INTO “menu” (“Id”, “Descricao”, “Aplicacao”, “Id_Pai”) VALUES (10, ‘Controles’, ‘control_macros’, ‘0’);
INSERT INTO “menu” (“Id”, “Descricao”, “Aplicacao”, “Id_Pai”) VALUES (11, ‘Administrativo’, ‘’, ‘0’);
INSERT INTO “menu” (“Id”, “Descricao”, “Aplicacao”, “Id_Pai”) VALUES (12, ‘Cadastro Menu’, ‘form_menu’, 11);
INSERT INTO “menu” (“Id”, “Descricao”, “Aplicacao”, “Id_Pai”) VALUES (13, ‘Cadastro de Pedido’, ‘form_orders’, 2);
INSERT INTO “menu” (“Id”, “Descricao”, “Aplicacao”, “Id_Pai”) VALUES (14, ‘Lançamentos’, ‘’, 2);
INSERT INTO “menu” (“Id”, “Descricao”, “Aplicacao”, “Id_Pai”) VALUES (15, ‘Sair’, ‘app_Login’, ‘0’);
INSERT INTO “menu” (“Id”, “Descricao”, “Aplicacao”, “Id_Pai”) VALUES (16, ‘Módulo de Segurança’, ‘app_menu’, 11);

Valeu Haroldo, vou testar!!

Conforme exemplo do Haroldo deve funcionar, uma obs no exemplo a app menu deve chamar menu_dinamico
Caso seja outro nome da aplicação altere todas as linhas menu_dinamico pelo nome da app.

Uma pergunta só…Em itens do menu não precisa colocar algo?

Para adicionar os itens é a macro
sc_appmenu_add_item
com o nome do menu e demais parâmetros

Haroldo, muito obrigado. Deu certinho

Uma dúvida que surgiu foi a seguinte: Pra inserir um item no menu para fazer logoff, como eu teria que fazer?

Vi que na resposta do Haroldo, veio com o item sair apontando pra aplicação de login. Porém, ele não faz logoff ou seja, se eu digitar na barra de endereço o meu menu eu consigo usar normalmente o sistema mesmo eu tendo “saído” do programa.

Alguma sugestão?

Bom dia, se for o que eu entendi, eu crio uma blank:

sc_reset_global(‘Sua variável de login’);
sc_redir(‘sua tela de login’.php);

E para caso fique muito tempo logado e expire a sessão faço uma função como Biblioteca Interna:

if (isset([‘Sua variável de login’]))
{
if (empty([‘Sua variável de login’]))
{
echo(’ ');
}
}

Espero que seja isso que precise.

Show de bola Douglas. Entendi sua sugestão. Vou tentar isso…

Qualquer coisa posto aqui.

Abraço

em vez de direcionar para login.php pode direcionar para uma blank com um die();

Obrigado Haroldo!! Vou fazer isso.

Douglas, sua dica funcionou perfeitamente. Obrigado pela ajuda!!

Abraço!

De nada, qualquer coisa estamos aqui. =)

Onde coloco este direcionamento para a tela de login ?