Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks y PHP orientado a objetos (http://www.forosdelweb.com/f68/)
-   -   Menu Arbol Con Soporte Php (http://www.forosdelweb.com/f68/menu-arbol-con-soporte-php-567645/)

PICOROFG 19/03/2008 15:01

Menu Arbol Con Soporte Php
 
QUISIERA VER SI ME PUEDES AYUDAR EN ALGO DE UN PROYECTO QUE ESTOY REALIZANDO

TENGO UN MENU TIPO ARBOL CON UNA TABLA RECURSIVA QUE ME JALA LOS DATOS AL ARBOL
LA GRAFICA BIEN PERO NECESITO QUE AL SELECCIONAR UNO DE LOS CAMPOS DEL MENU
EJEMPLO:
- AZUAY
- CANTON
- PARROQUIA (SELECCIONO CON EL MOUSE)

ME CAPTURE ESA SELECCION EN UN CUADRO DE TEXTO DE ESTE MODO : AZUAY/CANTON/PARROQUIA
Código PHP:

class tree{
    
    var $elementArray = array();
    var $nameOfCookie = "menu_expandido"; 
    
    function tree()
    {
        
        
    }

    function writeCSS()
    {
        ?>
        <style type="text/css">
        
        #tree li{
            list-style-type:none;    
            font-family: arial;
            font-size:11px;
        }
        #dhtmlgoodies_topNodes{
            margin-left:0px;
            padding-left:0px;
        }
        #dhtmlgoodies_topNodes ul{
            margin-left:20px;
            padding-left:0px;
            display:none;
        }
        #tree .tree_link{
            line-height:13px;
            padding-left:2px;

        }
        #tree img{
            padding-top:2px;
        }
        #tree a{
            color: #000000;
            text-decoration:none;
        }
        .activeNodeLink{
            background-color: #316AC5;
            color: #FFFFFF;
            font-weight:bold;
        }
        </style>        
        <?php        
    
}
    
    function 
writeJavascript()
    {
        
?>
        <script type="text/javascript">
        
        var plusNode = 'estilos/mas.gif';
        var minusNode = 'estilos/menos.gif';
        
        var nameOfCookie = '<?php echo $this->nameOfCookie?>';
        <?php
        $cookieValue 
"";
        if(isset(
$_COOKIE[$this->nameOfCookie]))$cookieValue $_COOKIE[$this->nameOfCookie];        
        echo 
"var initExpandedNodes =\"".$cookieValue."\";\n";
        
?>        
        
        function Get_Cookie(name) { 
           var start = document.cookie.indexOf(name+"="); 
           var len = start+name.length+1; 
           if ((!start) && (name != document.cookie.substring(0,name.length))) return null; 
           if (start == -1) return null; 
           var end = document.cookie.indexOf(";",len); 
           if (end == -1) end = document.cookie.length; 
           return unescape(document.cookie.substring(len,end)); 
        } 
        
        function Set_Cookie(name,value,expires,path,domain,secure) { 
            expires = expires * 60*60*24*1000;
            var today = new Date();
            var expires_date = new Date( today.getTime() + (expires) );
            var cookieString = name + "=" +escape(value) + 
               ( (expires) ? ";expires=" + expires_date.toGMTString() : "") + 
               ( (path) ? ";path=" + path : "") + 
               ( (domain) ? ";domain=" + domain : "") + 
               ( (secure) ? ";secure" : ""); 
            document.cookie = cookieString; 
        } 
        
        
        function expandAll()
        {
            var treeObj = document.getElementById('tree');
            var images = treeObj.getElementsByTagName('IMG');
            for(var no=0;no<images.length;no++){
                if(images[no].className=='tree_plusminus' && images[no].src.indexOf(plusNode)>=0)expandNode(false,images[no]);
            }
        }
        function collapseAll()
        {
            var treeObj = document.getElementById('tree');
            var images = treeObj.getElementsByTagName('IMG');
            for(var no=0;no<images.length;no++){
                if(images[no].className=='tree_plusminus' && images[no].src.indexOf(minusNode)>=0)expandNode(false,images[no]);
            }
        }
        
        
        function expandNode(e,inputNode)
        {
            if(initExpandedNodes.length==0)initExpandedNodes=",";
            if(!inputNode)inputNode = this; 
            if(inputNode.tagName.toLowerCase()!='img')inputNode = inputNode.parentNode.getElementsByTagName('IMG')[0];    
            
            var inputId = inputNode.id.replace(/[^\d]/g,'');            
            
            var parentUl = inputNode.parentNode;
            var subUl = parentUl.getElementsByTagName('UL');

            if(subUl.length==0)return;
            if(subUl[0].style.display=='' || subUl[0].style.display=='none'){
                subUl[0].style.display = 'block';
                inputNode.src = minusNode;
                initExpandedNodes = initExpandedNodes.replace(',' + inputId+',',',');
                initExpandedNodes = initExpandedNodes + inputId + ',';
                
            }else{
                subUl[0].style.display = '';
                inputNode.src = plusNode;    
                initExpandedNodes = initExpandedNodes.replace(','+inputId+',',',');            
            }
            Set_Cookie(nameOfCookie,initExpandedNodes,60);
            
            
            
        }
            
        function initTree()
        {
            
            var parentNode = document.getElementById('tree');
            var lis = parentNode.getElementsByTagName('LI'); // Get reference to all the images in the tree
            for(var no=0;no<lis.length;no++){
                var subNodes = lis[no].getElementsByTagName('UL');
                if(subNodes.length>0){
                    lis[no].childNodes[0].style.visibility='visible';    
                }else{
                    lis[no].childNodes[0].style.visibility='hidden';
                }
            }    
            
            var images = parentNode.getElementsByTagName('IMG');
            for(var no=0;no<images.length;no++){
                if(images[no].className=='tree_plusminus')images[no].onclick = expandNode;                
            }    

            var aTags = parentNode.getElementsByTagName('A');
            var cursor = 'pointer';
            if(document.all)cursor = 'hand';
            for(var no=0;no<aTags.length;no++){
                aTags[no].onclick = expandNode;
                    
                aTags[no].style.cursor = cursor;
            
            }
            
            var initExpandedArray = initExpandedNodes.split(',');

            for(var no=0;no<initExpandedArray.length;no++){
                if(document.getElementById('plusMinus' + initExpandedArray[no])){
                    var obj = document.getElementById('plusMinus' + initExpandedArray[no]);    
                    expandNode(false,obj);
                }
            }                
        }
        
        window.onload = initTree;
        
        </script>    
        <?php
        
    
}
    
    function 
addToArray($id,$name,$parentID,$url="",$target="",$imageIcon="estilos/arrow.gif"){
        
        if(empty(
$parentID))$parentID=0;
            
        
$this->elementArray[$parentID][] = array($id,$name,$url,$target,$imageIcon);
    }
    
    function 
drawSubNode($parentID){
    
        if(isset(
$this->elementArray[$parentID])){

            echo 
"<ul>";
            for(
$no=0;$no<count($this->elementArray[$parentID]);$no++){
                
$urlAdd "";

                if(
$this->elementArray[$parentID][$no][2]){

                    
$urlAdd " ";
                    if(
$this->elementArray[$parentID][$no][3])$urlAdd.="";    
                }
                echo 
"<li class=\"tree_node\"><img class=\"tree_plusminus\" id=\"plusMinus".$this->elementArray[$parentID][$no][0]."\" src=\"estilos/mas.gif\"><img src=\"".$this->elementArray[$parentID][$no][4]."\"><a class=\"tree_link\"$urlAdd>".$this->elementArray[$parentID][$no][1]."</a>";
                
                
$this->drawSubNode($this->elementArray[$parentID][$no][0]);
                
                echo 
"</li>";
            }            
            echo 
"</ul>";            
        }        
    }
    
    function 
drawTree(){
        echo 
"<div id=\"tree\">";
        echo 
"<ul id=\"dhtmlgoodies_topNodes\">";
        for(
$no=0;$no<count($this->elementArray[0]);$no++){
            
$urlAdd "";
            if(
$this->elementArray[0][$no][2]){
                
$urlAdd " ";
                if(
$this->elementArray[0][$no][3])$urlAdd.="";    
            }
            echo 
"<li class=\"tree_node\" id=\"node_".$this->elementArray[0][$no][0]."\"><img id=\"plusMinus".$this->elementArray[0][$no][0]."\" class=\"tree_plusminus\" src=\"estilos/mas.gif\"><img src=\"".$this->elementArray[0][$no][4]."\"><a class=\"tree_link\"$urlAdd>".$this->elementArray[0][$no][1]."</a>";        
            
$this->drawSubNode($this->elementArray[0][$no][0]);
            echo 
"</li>";    
        }    
        echo 
"</ul>";    
        echo 
"</div>";    
        
    }
    
}


GatorV 19/03/2008 15:15

Re: Menu Arbol Con Soporte Php
 
Hola PICOROFG,

Tu duda no tiene que ver con PHP en si, ya que el menú que indicas esta programado en JavaScript, te recomiendo re-plantees tu duda en ese foro.

Saludos.

PICOROFG 19/03/2008 15:31

Re: Menu Arbol Con Soporte Php
 
Gracias Por La Ayuda Ya Lo Planteo Alla


La zona horaria es GMT -6. Ahora son las 10:45.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.