Menu Dinamico (PHP + MySQL) - 5 niveis
Publicado por Rodrigo Rodrigues dos Santos 26/12/2003
[ Hits: 38.535 ]
Download menu_dinamico_5niveis.zip
Esse script é um menu dinâmico hierarquico de 5 níveis.
A url dos links carrega no iframe q se encontra do lado direito.
Arquivos Principais:
classe_main.php - Classe principal
index.php - Visualização do Menu
index_manager.php - Gerenciamento do Menu
sql_db_menu_dinamico.sql - Front-End
Esse menu funciona no I.E. 6.0 e Opera 7.11
Qualquer sugestão ou dúvida entre em contato comigo(rsantos@gelre.com.br).
File - classe_main.php
**
<?php
/*
Autor: Rodrigo Rodrigues dos Santos
Email: rsantos@gelre.com.br
Data: 26/12/2003
Descrição: Menu dinâmico - 5 Níveis
*/
class ClasseMain {
function ClasseMain() {
$this->usuario = "root";
$this->senha = "xxxx";
$this->local = "localhost";
}
function doConexaoMysql() {
$this->con = @mysql_pconnect($this->local,$this->usuario,$this->senha) or die("Erro de Conexão: ".mysql_error());
if($this->con)
$this->dataBase = @mysql_select_db("framework",$this->con) or die("Não achou a DataBase: ".mysql_error());
}
function doMontaMenu() {
$sql = "SELECT id_link_modulo, id_link_pai, nome, path_url FROM tb_link_modulo WHERE ativo = 't' AND id_link_pai = 0 ORDER BY nome";
$sqlQuery = @mysql_query($sql,$this->con) or die("Error Sql Select Menu: ".mysql_error());
return $sqlQuery;
}
function doMontaSubMenu($idLinkPai) {
$sql = "SELECT id_link_modulo, id_link_pai, nome, path_url FROM tb_link_modulo WHERE ativo = 't' AND id_link_pai = $idLinkPai ORDER BY nome";
$sqlQuery = @mysql_query($sql,$this->con) or die("Error Sql Select SubMenu: ".mysql_error());
return $sqlQuery;
}
function doMontaMenuManager() {
$sql = "SELECT id_link_modulo, id_link_pai, nome, path_url, ativo FROM tb_link_modulo WHERE id_link_pai = 0 ORDER BY nome";
$sqlQuery = @mysql_query($sql,$this->con) or die("Error Sql Select Menu Manager: ".mysql_error());
return $sqlQuery;
}
function doMontaSubMenuManager($idLinkPai) {
$sql = "SELECT id_link_modulo, id_link_pai, nome, path_url, ativo FROM tb_link_modulo WHERE id_link_pai = $idLinkPai ORDER BY nome";
$sqlQuery = @mysql_query($sql,$this->con) or die("Error Sql Select SubMenu Manager: ".mysql_error());
return $sqlQuery;
}
function doUpdateMenuManager($idModuloAtivo,$idModuloInativo) {
if(!empty($idModuloAtivo)){
$idModuloAtivo = explode(";",$idModuloAtivo);
for($i = 0; $i < count($idModuloAtivo); $i++){
if($idModuloAtivo[$i] != "")
$updateModulo = @mysql_query("UPDATE tb_link_modulo SET ativo = 't' WHERE id_link_modulo = ".$idModuloAtivo[$i],$this->con) or die("Error Sql Update Menu True: ".mysql_error());
}
}
if(!empty($idModuloInativo)){
$idModuloInativo = explode(";",$idModuloInativo);
for($i = 0; $i < count($idModuloInativo); $i++){
if($idModuloInativo[$i] != "")
$updateModulo = @mysql_query("UPDATE tb_link_modulo SET ativo = 'f' WHERE id_link_modulo = ".$idModuloInativo[$i],$this->con) or die("Error Sql Update Menu False: ".mysql_error());
}
}
if($updateModulo)
echo "<script>window.location = '$_SERVER[PHP_SELF]';</script>";
}
function doLimiterString($string,$lengthNumber) {
$lengthNumber = (int)($lengthNumber);
if(strlen($string) >= $numeroLimite){
$newString = "";
for($i = 0; $i < $lengthNumber; $i++)
$newString .= $string[$i];
return $newString;
} else
return $string;
}
}
$classeMain = new ClasseMain();
$classeMain->doConexaoMysql();
?>
**
File - index_manager.php
**
<?php
/*
Autor: Rodrigo Rodrigues dos Santos
Email: rsantos@gelre.com.br
Data: 26/12/2003
Descrição: Menu dinâmico - 5 Níveis
*/
include_once("classe_main.php");
if($_POST['acao'])
$classeMain->doUpdateMenuManager($_POST['idLinkModuloAtivo'],$_POST['idLinkModuloInativo']);
?>
<html>
<head>
<title>Home</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script>
function doMenuCheckbox() {
if(confirm("Deseja alterar os links?")){
var checkBoxPai = document.form1.checkbox;
var idLinkModuloAtivo = "";
var idLinkModuloInativo = "";
for(i = 0; i < checkBoxPai.length; i++){
if(checkBoxPai[i].checked){
idLinkModuloAtivo += checkBoxPai[i].value + ";";
} else {
idLinkModuloInativo += checkBoxPai[i].value + ";";
}
}
document.form1.idLinkModuloAtivo.value = idLinkModuloAtivo;
document.form1.idLinkModuloInativo.value = idLinkModuloInativo;
document.form1.submit();
}
}
</script>
<link href="dynmenu.css" rel="stylesheet" type="text/css">
</head>
<body leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0" marginheight="0" marginwidth="0">
<form name="form1" action="<?=$_SERVER['PHP_SELF']?>" method="post">
<input type="hidden" name="acao" value="true">
<input type="hidden" name="idLinkModuloAtivo">
<input type="hidden" name="idLinkModuloInativo">
<table border="0" width="203" cellspacing="0" cellpadding="0">
<tr height="30" valign="middle">
<td width="203" height="22" align="center" class="titleMenu">Links Ativos</td>
</tr>
</table>
<br>
<table width="185" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><div id="Layer1" style="position:relative; left:0; top:0; width:580px; height:280px; z-index:1; overflow: auto;">
<table width="564" border="0" cellpadding="0" cellspacing="0" class="clsPopup_Itens">
<?php
$contController = 0;
$sqlQuery = $classeMain->doMontaMenuManager();
while($lineMenu = @mysql_fetch_array($sqlQuery)){
?>
<tr>
<td align="right" width="22"> <input type="checkbox" class="cls_INPUT_CHECK_BOX" name="checkbox" value="<?=$lineMenu['id_link_modulo']?>" <?=($lineMenu['ativo'] == "t" ? "checked" : "")?>>
</td>
<td colspan="5" class="titleModulo" width="542">
<?=$lineMenu['nome']?>
</td>
</tr>
<?php
$subLink = $classeMain->doMontaSubMenuManager($lineMenu['id_link_modulo']);
if($subLink){
$contController++;
while($lineSubLink = @mysql_fetch_array($subLink)){
?>
<tr height="20">
<td width="22"> </td>
<td width="22" align="center"> <input type="checkbox" class="cls_INPUT_CHECK_BOX" name="checkbox" value="<?=$lineSubLink['id_link_modulo']?>" <?=($lineSubLink['ativo'] == "t" ? "checked" : "")?>>
</td>
<td colspan="4" class="titleMenu" width="520">
<?=$lineSubLink['nome']?>
</td>
</tr>
<?php
$subSubLink = $classeMain->doMontaSubMenuManager($lineSubLink['id_link_modulo']);
if($subSubLink){
$contController++;
while($lineSubSubLink = @mysql_fetch_array($subSubLink)){
?>
<tr height="20">
<td width="22"> </td>
<td width="22"> </td>
<td width="22" align="center"> <input type="checkbox" class="cls_INPUT_CHECK_BOX" name="checkbox" value="<?=$lineSubSubLink['id_link_modulo']?>" <?=($lineSubSubLink['ativo'] == "t" ? "checked" : "")?>>
</td>
<td colspan="3" valign="middle" class="titleMenu" width="498">
<?=$lineSubSubLink['nome']?>
</td>
</tr>
<?php
$subSubSubLink = $classeMain->doMontaSubMenuManager($lineSubSubLink['id_link_modulo']);
if($subSubSubLink){
while($lineSubSubSubLink = @mysql_fetch_array($subSubSubLink)){
?>
<tr height="20">
<td width="22"> </td>
<td width="22"> </td>
<td width="22"> </td>
<td width="22" align="center"> <input type="checkbox" class="cls_INPUT_CHECK_BOX" name="checkbox" value="<?=$lineSubSubSubLink['id_link_modulo']?>" <?=($lineSubSubSubLink['ativo'] == "t" ? "checked" : "")?>>
</td>
<td valign="middle" colspan="2" class="titleMenu" width="476">
<?=$lineSubSubSubLink['nome']?>
</td>
</tr>
<?php
$subSubSubSubLink = $classeMain->doMontaSubMenuManager($lineSubSubSubLink['id_link_modulo']);
if($subSubSubSubLink){
while($lineSubSubSubSubLink = @mysql_fetch_array($subSubSubSubLink)){
?>
<tr height="20">
<td width="22"> </td>
<td width="22"> </td>
<td width="22"> </td>
<td width="22"> </td>
<td width="22" align="center"> <input type="checkbox" class="cls_INPUT_CHECK_BOX" name="checkbox" value="<?=$lineSubSubSubSubLink['id_link_modulo']?>" <?=($lineSubSubSubSubLink['ativo'] == "t" ? "checked" : "")?>>
</td>
<td valign="middle" class="titleMenu" width="454">
<?=$lineSubSubSubSubLink['nome']?>
</td>
</tr>
<?php
}
}
}
}
}
}
}
}
$contController++;
}
?>
</table>
</div></td>
</tr>
<tr>
<td align="center"><input name="button" type="button" onClick="doMenuCheckbox();" value="Alterar"></td>
</tr>
</table>
</form>
</body>
</html>
**
File - index.php
**
<?php
/*
Autor: Rodrigo Rodrigues dos Santos
Email: rsantos@gelre.com.br
Data: 26/12/2003
Descrição: Menu dinâmico - 5 Níveis
*/
include_once("classe_main.php");
?>
<html>
<head>
<title>Home</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="dynmenu.css" rel="stylesheet" type="text/css">
<script src="dynmenu.js"></script>
<script>
menu_path="imagens/menu"
m=new dynmenu()
m.width=176
m.pipe="<img src=\""+menu_path+"/pipe.gif\" class=pipe>"
<?php
$sqlQuery = $classeMain->doMontaMenu();
while($lineMenu = @mysql_fetch_array($sqlQuery)){
?>
menu_add("<?=(strlen($lineMenu['nome']) >= 20 ? $classeMain->doLimiterString($lineMenu['nome'],20)."..." : $lineMenu['nome'])?>|carregarPagina('<?=$lineMenu['path_url']?>')")
<?php
$subLink = $classeMain->doMontaSubMenu($lineMenu['id_link_modulo']);
if($subLink){
while($lineSubLink = @mysql_fetch_array($subLink)){
?>
menu_add(" \\<?=$lineSubLink['nome']?>|carregarPagina('<?=$lineSubLink['path_url']?>','')")
<?php
$subSubLink = $classeMain->doMontaSubMenu($lineSubLink['id_link_modulo']);
if($subSubLink){
while($lineSubSubLink = @mysql_fetch_array($subSubLink)){
?>
menu_add(" \\ \\<?=$lineSubSubLink['nome']?>|carregarPagina('<?=$lineSubSubLink['path_url']?>','')")
<?php
$subSubSubLink = $classeMain->doMontaSubMenu($lineSubSubLink['id_link_modulo']);
if($subSubSubLink){
while($lineSubSubSubLink = @mysql_fetch_array($subSubSubLink)){
?>
menu_add(" \\ \\ \\<?=$lineSubSubSubLink['nome']?>|carregarPagina('<?=$lineSubSubSubLink['path_url']?>','')")
<?php
$subSubSubSubLink = $classeMain->doMontaSubMenu($lineSubSubSubLink['id_link_modulo']);
if($subSubSubSubLink){
while($lineSubSubSubSubLink = @mysql_fetch_array($subSubSubSubLink)){
?>
menu_add(" \\ \\ \\ \\<?=$lineSubSubSubSubLink['nome']?>|carregarPagina('<?=$lineSubSubSubSubLink['path_url']?>','')")
<?php
}
}
}
}
}
}
}
}
}
?>
</script>
</head>
<body leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0" marginheight="0" marginwidth="0">
<br>
<table width="750" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="259">
<div id="MyDiv" style="position:absolute; width:194px; height:70%; z-index:1; left: 20px; top: 60px; overflow:auto;">
<script language="javascript">
document.write(m.geraHTML())
</script>
<script language="javascript">
function carregarPagina (pagina, titulo) {
if(typeof(titulo)!="string")
titulo=""
top.mainFrame.location=pagina
}
</script>
</div></td>
<td width="491"><iframe src="#" name="mainFrame" width="500" marginwidth="0" height="420" marginheight="0" scrolling="auto" frameborder="0"></iframe></td>
</tr>
</table>
</body>
</html>
**
Monitoramento de Temperatura do Servidor
Classe de Internacionalização(Multi linguagens)
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Pergunta: Meu teclado não está respondendo direito como e consertar? (1)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)
Secure boot, artigo interessante, nada técnico. (5)









