Olá Paulo Vitor,
Desculpe a demora. Em qual das tabelas o campo PROFUNDIDADE deveria estar? Todo o projeto do menu está assim:
CREATE TABLE menu
(
ID
INTEGER NOT NULL AUTO_INCREMENT,
MENUID
INTEGER DEFAULT NULL,
NOME
VARCHAR(100) COLLATE utf8mb4_0900_ai_ci NOT NULL,
ENDERECOURL
VARCHAR(100) COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
IMAGEM
BLOB DEFAULT NULL,
ORDEM
INTEGER NOT NULL,
ATIVO
ENUM(‘True’,‘False’) COLLATE utf8mb4_0900_ai_ci NOT NULL,
TARGETMENU
VARCHAR(15) COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
HINTMENU
VARCHAR(255) COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
PRIMARY KEY USING BTREE (ID
),
KEY menu_ibfk_1
USING BTREE (MENUID
)
) ENGINE=InnoDB;
INSERT INTO menu (MENUID, NOME, ENDERECOURL, IMAGEM, ORDEM, ATIVO, TARGETMENU, HINTMENU)
VALUE (0, ‘Básico’, NULL, NULL, 1, ‘True’, NULL, NULL);
INSERT INTO menu (MENUID, NOME, ENDERECOURL, IMAGEM, ORDEM, ATIVO, TARGETMENU, HINTMENU)
VALUE (0, ‘Cadastro’, NULL, NULL, 2, ‘True’, NULL, NULL);
INSERT INTO menu (MENUID, NOME, ENDERECOURL, IMAGEM, ORDEM, ATIVO, TARGETMENU, HINTMENU)
VALUE (0, ‘Consulta’, NULL, NULL, 3, ‘True’, NULL, NULL);
INSERT INTO menu (MENUID, NOME, ENDERECOURL, IMAGEM, ORDEM, ATIVO, TARGETMENU, HINTMENU)
VALUE (0, ‘Ferramentas’, NULL, NULL, 4, ‘True’, NULL, NULL);
INSERT INTO menu (MENUID, NOME, ENDERECOURL, IMAGEM, ORDEM, ATIVO, TARGETMENU, HINTMENU)
VALUE (0, ‘Segurança’, NULL, NULL, 5, ‘True’, NULL, NULL);
INSERT INTO menu (MENUID, NOME, ENDERECOURL, IMAGEM, ORDEM, ATIVO, TARGETMENU, HINTMENU)
VALUE (0, ‘Relatórios’, NULL, NULL, 6, ‘True’, NULL, NULL);
INSERT INTO menu (MENUID, NOME, ENDERECOURL, IMAGEM, ORDEM, ATIVO, TARGETMENU, HINTMENU)
VALUE (1, ‘País’, ‘cadPais’, NULL, 1, ‘True’, NULL, NULL);
INSERT INTO menu (MENUID, NOME, ENDERECOURL, IMAGEM, ORDEM, ATIVO, TARGETMENU, HINTMENU)
VALUE (1, ‘Estado’, ‘cadEstado’, NULL, 2, ‘True’, NULL, NULL);
INSERT INTO menu (MENUID, NOME, ENDERECOURL, IMAGEM, ORDEM, ATIVO, TARGETMENU, HINTMENU)
VALUE (1, ‘Cidade’, ‘cadCidade’, NULL, 3, ‘True’, NULL, NULL);
INSERT INTO menu (MENUID, NOME, ENDERECOURL, IMAGEM, ORDEM, ATIVO, TARGETMENU, HINTMENU)
VALUE (1, ‘Tipo de Contato’, ‘cadTipoContato’, NULL, 4, ‘True’, NULL, NULL);
INSERT INTO menu (MENUID, NOME, ENDERECOURL, IMAGEM, ORDEM, ATIVO, TARGETMENU, HINTMENU)
VALUE (2, ‘Pessoa’, NULL, NULL, 1, ‘True’, NULL, NULL);
INSERT INTO menu (MENUID, NOME, ENDERECOURL, IMAGEM, ORDEM, ATIVO, TARGETMENU, HINTMENU)
VALUE (11, ‘Pessoa Física’, ‘cadPessoaFisica’, NULL, 1, ‘True’, NULL, NULL);
INSERT INTO menu (MENUID, NOME, ENDERECOURL, IMAGEM, ORDEM, ATIVO, TARGETMENU, HINTMENU)
VALUE (11, ‘Pessoa Jurídica’, ‘cadPessoaJuridica’, NULL, 2, ‘True’, NULL, NULL);
INSERT INTO menu (MENUID, NOME, ENDERECOURL, IMAGEM, ORDEM, ATIVO, TARGETMENU, HINTMENU)
VALUE (5, ‘Menu’, ‘cadMenu’, NULL, 1, ‘True’, NULL, NULL);
INSERT INTO menu (MENUID, NOME, ENDERECOURL, IMAGEM, ORDEM, ATIVO, TARGETMENU, HINTMENU)
VALUE (5, ‘Perfil’, ‘cadPerfil’, NULL, 2, ‘True’, NULL, NULL);
INSERT INTO menu (MENUID, NOME, ENDERECOURL, IMAGEM, ORDEM, ATIVO, TARGETMENU, HINTMENU)
VALUE (5, ‘Permissões’, ‘cadPermissao’, NULL, 3, ‘True’, NULL, NULL);
INSERT INTO menu (MENUID, NOME, ENDERECOURL, IMAGEM, ORDEM, ATIVO, TARGETMENU, HINTMENU)
VALUE (5, ‘Usuário’, ‘cadUsuario’, NULL, 4, ‘True’, NULL, NULL);
CREATE TABLE perfil
(
ID
INTEGER NOT NULL AUTO_INCREMENT,
NOME
VARCHAR(100) COLLATE utf8mb4_0900_ai_ci NOT NULL,
HABILITA
TINYINT(1) NOT NULL COMMENT ‘Habilitar este o registro para ser padrão quando o usuário se cadastrar no site.’,
PRIMARY KEY USING BTREE (ID
),
UNIQUE KEY NOME
USING BTREE (NOME
)
) ENGINE=InnoDB;
INSERT INTO perfil (NOME, HABILITA) VALUES (‘Público’, 0);
INSERT INTO perfil (NOME, HABILITA) VALUES (‘Administrador’, 1);
CREATE TABLE permissaomenu
(
ID
INTEGER NOT NULL AUTO_INCREMENT,
PERFILID
INTEGER NOT NULL,
MENUID
INTEGER NOT NULL,
ATIVO
ENUM(‘True’,‘False’) COLLATE utf8mb4_0900_ai_ci NOT NULL,
ORDEM
INTEGER DEFAULT NULL,
PRIMARY KEY USING BTREE (ID
),
UNIQUE KEY permissaomenu_idx1
USING BTREE (PERFILID
, MENUID
),
KEY permissaomenu_fk2
USING BTREE (MENUID
),
CONSTRAINT permissaomenu_fk1
FOREIGN KEY (PERFILID
) REFERENCES perfil
(ID
),
CONSTRAINT permissaomenu_fk2
FOREIGN KEY (MENUID
) REFERENCES menu
(ID
)
) ENGINE=InnoDB;
INSERT INTO permissaomenu (PERFILID, MENUID, ATIVO, ORDEM) VALUES (2, 7, ‘True’, 1);
INSERT INTO permissaomenu (PERFILID, MENUID, ATIVO, ORDEM) VALUES (2, 8, ‘True’, 2);
INSERT INTO permissaomenu (PERFILID, MENUID, ATIVO, ORDEM) VALUES (2, 9, ‘True’, 3);
INSERT INTO permissaomenu (PERFILID, MENUID, ATIVO, ORDEM) VALUES (2, 10, ‘True’, 4);
INSERT INTO permissaomenu (PERFILID, MENUID, ATIVO, ORDEM) VALUES (2, 11, ‘True’, 0);
INSERT INTO permissaomenu (PERFILID, MENUID, ATIVO, ORDEM) VALUES (2, 12, ‘True’, 1);
INSERT INTO permissaomenu (PERFILID, MENUID, ATIVO, ORDEM) VALUES (2, 13, ‘True’, 2);
INSERT INTO permissaomenu (PERFILID, MENUID, ATIVO, ORDEM) VALUES (2, 16, ‘True’, 1);
INSERT INTO permissaomenu (PERFILID, MENUID, ATIVO, ORDEM) VALUES (2, 17, ‘True’, 2);
INSERT INTO permissaomenu (PERFILID, MENUID, ATIVO, ORDEM) VALUES (2, 14, ‘True’, 3);
INSERT INTO permissaomenu (PERFILID, MENUID, ATIVO, ORDEM) VALUES (2, 16, ‘True’, 4);
CREATE TABLE usuario
(
ID
INTEGER NOT NULL AUTO_INCREMENT,
PERFILID
INTEGER NOT NULL,
LOGIN
VARCHAR(50) COLLATE utf8mb4_0900_ai_ci NOT NULL,
SENHA
VARCHAR(100) COLLATE utf8mb4_0900_ai_ci NOT NULL,
EMAIL
VARCHAR(100) COLLATE utf8mb4_0900_ai_ci NOT NULL,
ATIVO
ENUM(‘True’,’ ‘‘False’’’) COLLATE utf8mb4_0900_ai_ci NOT NULL,
AVATAR
BLOB DEFAULT NULL,
PRIMARY KEY USING BTREE (ID
),
UNIQUE KEY usuario_idx1
USING BTREE (EMAIL
, PERFILID
),
KEY usuario_fk1
USING BTREE (PERFILID
),
CONSTRAINT usuario_fk1
FOREIGN KEY (PERFILID
) REFERENCES perfil
(ID
)
) ENGINE=InnoDB;
INSERT INTO usuario (PERFILID, LOGIN, SENHA, EMAIL, ATIVO, AVATAR) VALUES (2, ‘Fulano de Tal’, MD5(‘123456’), ‘fulano@gmail.com’, ‘True’, NULL);
Código da aplicação de menu no evento OnLoad:
sc_appmenu_reset(“menu”);
sc_appmenu_create(“menu”);
sc_lookup(Ds,"SELECT ID, NOME
FROM menu
WHERE IFNULL(MENUID, 0) = 0
ORDER BY ORDEM ");
foreach({Ds} as $arr_menu) {
sc_appmenu_add_item(menu, “item_”.$arr_menu[0], , $arr_menu[1], ‘#’, menuid=$arr_menu[0];menunome=$arr_menu[1], , ,);
$sSQL = "SELECT A.ID, A.MENUID, B.NOME, B.ENDERECOURL, B.HINTMENU, B.TARGETMENU
FROM permissaomenu A
INNER JOIN menu B ON (B.ID = A.MENUID)
WHERE A.PERFILID = ".[glo_perfilid]."
AND B.MENUID = ".$arr_menu[0]."
AND B.ATIVO = 'True'
ORDER BY B.ORDEM, A.ORDEM ";
sc_lookup(DsItem, $sSQL);
if(!empty({DsItem}))
foreach({DsItem} as $arr_submenu) {
sc_appmenu_add_item('menu', 'item_'.$arr_menu[0].$arr_submenu[0], 'item_'.$arr_menu[0], $arr_submenu[2], $arr_submenu[3], , , $arr_submenu[4], $arr_submenu[5]);
}
}