Menu Dinamico (PHP + MySQL) - 5 niveis
Publicado por Rodrigo Rodrigues dos Santos 26/12/2003
[ Hits: 38.594 ]
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>
**
TxtXtrator: Classe para extração e conversão de dados de arquivos texto
video aleatórias no seu site..youtube
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Opções secretas em tema do Cinnamon
Como mapear unidade de rede no Linux
Como quebrar senha usando john the ripper
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (1)
Alguém já testou o novo COSMIC Desktop? O que achou? (4)
Não consigo instalar distro antiga no virtualbox nem direto no hd (29)
queria saber como posso alterar a frequencia do meu ryzen 2300u pro (3)









