Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Menu Dinâmico Como principiante que sou, e ainda não coloquei a mão na massa, tenho algumas dúvidas que vão afetar a modelagem de um projeto iniciante. Pelos videos que assisti, o menu é baseado um um xml. É possível criar um menu dinamicamente baseado em uma tabela no banco de dados? Com opções de excluir um item do menu, incluir, desabilitar? ...
HP
Menu Dinâmico  
Fechado
Como principiante que sou, e ainda não coloquei a mão na massa, tenho algumas dúvidas que vão afetar a modelagem de um projeto iniciante.

Pelos videos que assisti, o menu é baseado um um xml.

É possível criar um menu dinamicamente baseado em uma tabela no banco de dados? Com opções de excluir um item do menu, incluir, desabilitar?

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (13)


JD

Sim, é possível.
Eu mesmo faço isso, monto o menu de acordo com os programas que o usuário tem acesso, pegando pelo banco de dados.
HP

Pode citar um exemplo?
HP

Pode citar um exemplo?
PD

Haroldo,

Não é necessário, pois no template, o arquivo XML é filtrado conforme as permissões cadastradas na base de dados, ou seja, ele é um gabarito, porém o usuário somente visualizará as opções que possui permissão de acesso mesmo.
www.adianti.com.br/framework-template

Att,
JD

Com a resposta do Pablo eu fiquei na dúvida srsrsrs.
Você quer criar permissões para a exibição do menu ?
Ou você quer gerar um menu dinamicamente sem ter que modificar o menu.xml?

Se for a primeira situação, isso ja tem nativo, como o Pablo disse.
Se for a segunda você pode criar um script php "menu.php" que vai retornar um xml de acordo com os programas cadastrados no banco de dados, foi assim que eu fiz.
Assim você não precisa ficar mexendo no menu.xml toda vez que adicionar um programa no sistema.
No meu caso eu modifiquei o cadastro de programas, criei categorias e subcategorias e adicionei a opção de selecionar um ícone para o programa, com essas informações eu gero o xml do menu dinâmicamente.
Fica a seu critério definir o que é mais interessante no seu caso.

Att.
HP

Então realmente não é possível criar um menu dinamicamente, pois esse já tem sua estrutura pronta no xml.

Minha questão necessita da criação do menu dinamicamente:

$menu->Create("meu menu")
$menu->AddItem(id, descricao, hint,, icone.png, app, parametros, menu_item_pai)
$menu->DeleteItem(id)
$menu->DisableItem(id)

Pois a criação seria dependente do usuário, empresa logada.

Se fosse possível carregar o menu com base um xml em memória, cujo esse xml fosse criado dinamicamente após login.



JD

Dê uma olhada no Template ERP II.
JD

Pablo de uma olhada no forum.
Após a atualização do site esta ocorrendo erro 500 ao tentar criar um post.
Att.
HP

Em Contribs vi uma contribuição do Menu Compose, acho que é o que procuro mas esta numa versão antiga.
PD

teste
HP

Ele foi feito na primeira versão do framework, vou estudar e ver se consigo atualizar.
PD

Hoje o menu é filtrado conforme as permissões de usuário x grupo.
Se você tem outro elemento (empresa), pode aperfeiçoar o método de filtragem do menu.
O menu.xml deve conter todas as opções disponíveis no sistema.
As opções devem ser "filtradas" conforme o usuário/grupo logado.
Para aperfeiçoar o algoritmo de filtragem, dê uma olhada no método SystemPermission::checkPermission()
Este método recebe a ação, e precisa retornar TRUE ou FALSE para dizer se ela vai aparecer no menu.

Atenciosamente,
Pablo
AU

Desculpem reabrir este topico, mas o Jheferson Fonseca fez o que eu preciso:
Apartir do banco de dados mostrar dinamicamente o menu, pois no meu caso quero listar no menu o grupo de produtos e quando clicar no grupo vou acessar o cadastro de produtos vinculados ao grupo selecionado.