New question

Question:

Date: 02-12-2016 19:10:50 (In Spanish)

Ayuda con Lista ordenable[Resolved]

Hola amigos de la comunidad,
En este momento estoy comenzando con un nuevo proyecto, y me gustaría agregarle una lista ordenable para el menú, como lo hace WordPress, para editar iconos y de más



Hazta ahora, el más completo que he visto es este, mi pregunta sería como hago para añadir un nuevo campo, para editarlo o tal vez ponerlo así:



Muchas gracias
Saludos
Tags: HTML - Javascript - JQuery - MySQL - PHP - Question - Suggestion - Web - WordPress Votes: 1 - Answers: 6 - Views: 11 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 04-12-2016 03:09:39 Por o que veo esto lo hace a traves de la base de datos , es alli donde tienes que agregar o eliminar los elementos que quieras.

    Saludos
      Votes: 0 - Link answer
     
  • Date: 04-12-2016 04:43:34 Buen día, tengo hecho un menú a partir de los datos que están guardados en una bbdd.

    Dependiendo el perfil y estados de cada opción de menú, los muestro o no.

    No se si es eso lo que estás buscando porque, por lo que vi en el enlace, no es lo que buscás o no entendí bien.

    Si lo que querés haces es un menú "administrable" tengo hecho algo para eso.

    Saludos

    DIEGO
      Votes: 1 - Link answer
     
  • Date: 06-12-2016 08:19:54 Hola,
    Si puedes podrías enviármelo
    Saludos
      Votes: 0 - Link answer
     
  • Date: 06-12-2016 11:21:06 Hola, como estás? Esto lo tengo en index

    		<div id="menuh">
    			<form action="" method="post">
    		<?php
    			if(isset($_SESSION['sperfil'])){
    				include('menu.php');
    			}
    		?>
    			</form>
    		</div>
    


    En menu.php, esto otro

    include('buscar_menu.php');
    		$menu = '<ul>';
    		$menu = '<nav class="navbar navbar-default">';
      		$menu .= '<div class="container-fluid">';
        	$menu .= '<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">';
          	$menu .= '<ul class="nav navbar-nav">';
    		for($i=0;$i<$cantidad;$i++){ 
    			$valor = $arr[$i][0];			
    			$link = substr($arr[$i][1],0,strlen($arr[$i][1])-4);
    			if($arr[$i][2]==''){
    				$menu .= '<button type="submit" class="btn btn-default navbar-btn" name="'.$link.'" id="'.$link.'">'.$valor.'</button>';
    			}else{				
    				$menu .= '<button type="submit" class="btn btn-default navbar-btn" name="'.$link.'" id="'.$link.'">'.$valor.'</button>';
    			}
    			$menu .= '</li>';
    		}		
    		$menu .= '<button type="submit" class="btn btn-default navbar-btn" name="salir" id="salir">Salir</button>';
    		$menu .= '</ul>';
    		$menu .= '<ul class="nav navbar-nav navbar-right">';
            $menu .= '<li class="dropdown">';
            $menu .= '<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">';
            $menu .= $_SESSION['snombreusuario'].'<span class="caret"></span></a>';
            //$menu .= '<ul class="dropdown-menu">';
            //$menu .= '<li><a href="../vistas/cambiopass.htm">Cambiar Contraseña</a></li>';
            //$menu .= '<li role="separator" class="divider"></li>';
            //$menu .= '<li><a href="#">Salir</a></li>';
            //$menu .= '</ul>';
            $menu .= '</li>';
          	$menu .= '</ul>';	
    		$menu .= '</div>';
      		$menu .= '</div>';
    		$menu .= '</nav>';
    
    		echo $menu;
    


    Acá lo importante es esta parte

           for($i=0;$i<$cantidad;$i++){ 
    	    $valor = $arr[$i][0];			
    	    $link = substr($arr[$i][1],0,strlen($arr[$i][1])-4);
    	     if($arr[$i][2]==''){
    		$menu .= '<button type="submit" class="btn btn-default navbar-btn" name="'.$link.'" id="'.$link.'">'.$valor.'</button>';
    	      }else{				
    		 $menu .= '<button type="submit" class="btn btn-default navbar-btn" name="'.$link.'" id="'.$link.'">'.$valor.'</button>';
    	      }
    	      $menu .= '</li>';
    	}	
    

    En este código se va armando el menú. De donde sale $arr, del script buscar_menu.php que tiene

    	if(isset($_SESSION['sperfil'])){
    		$perfil = $_SESSION['sperfil'];
    		$sql = "SELECT nombre, link, padre, esopcion "; 
    		$sql .= "FROM programa p, perfilprograma pp ";
    		$sql .= "WHERE p.programaid = pp.programaid AND ";
    		$sql .= "pp.perfilid = ? AND (p.estado = 0 OR p.estado = 2) ORDER BY orden";
    		$mysqli = Conexion::abrir();
    		$mysqli->set_charset("utf8");
    		$stmt = $mysqli->prepare($sql);
    		if($stmt!==FALSE){
    			$stmt->bind_param('i',$perfil);
    			$stmt->execute();
    			$rs = $stmt->get_result();
    			$cantidad = $rs->num_rows;
    			while($fila = $rs->fetch_array()){				
    				$arr[] = $fila;
    			}
    		}
    	}
    


    La estructura de la tabla programa es
     `programa` (
      `programaid` int(10) UNSIGNED NOT NULL,
      `nombre` varchar(45) NOT NULL DEFAULT '',
      `link` varchar(45) NOT NULL DEFAULT '',
      `padre` varchar(45) NOT NULL DEFAULT '0',
      `esopcion` tinyint(3) UNSIGNED NOT NULL DEFAULT '0',
      `orden` int(10) UNSIGNED NOT NULL DEFAULT '0',
      `estado` tinyint(3) UNSIGNED NOT NULL DEFAULT '0'
    ) 
    


    Donde

    nombre es el texto que querés que aparezca en el botón o link
    link es el nombre del programa php
    padre aca va quien es el padre de esa opción de menu (para los submenu), si este campo está vacío, es padre (opción principal de menu)
    esopcion 1 si es opción de menú, si no, es programa o script php
    orden valor que indica el orden en que aparece la opción de menú
    estado 0 o 2 (o el valor que quieras) indica que esa opción está disponible. Esto es el caso de que no querés que una opción de menú no aparezca, le asignas 1 y listo

    La tabla perfilprograma, tiene las relaciones entre el perfil y el programa, es decir, cuando ingresa perfil1, muestra solo las opciones de menu de perfil1, y asi con el resto de los perfiles

    Después tenés las tablas usuario y perfil (y si el sistema lo requiere, perfilusuario), donde indicas los datos de usuario, los datos de los perfiles y las relaciones de perfil con el usuario, para el caso de que le permitas a un mismo usuario tener más de un perfil.

    No se si está claro pero esto es más o menos lo que tengo. Seguramente es mejorable

    Saludos

    DIEGO
      Votes: 0 - Link answer
     
  • Date: 06-12-2016 16:30:43 Gracias   Votes: 0 - Link answer
     
  • Date: 03-07-2017 22:03:15 Hola,
    En este caso mejore el script para ser un menú completamente sin muchas lineas de código, fácil e intuitivo
    function nav_menu($pId=0, $array = null){
    	$result = query("select","menu","id, label, link, parent, sort","parent",$pId);
    	if(mysqli_num_rows($result)>0){
    		while ($row = mysqli_fetch_array($result)) {
    			$menu.= "<li><a href=\"".bloginfo("blog_url")."{$row['link']}\">{$row['label']}</a></li>";
    			$menu.= nav_menu($row['id']);
    		}
    		if($array["class"] != null){
    			$class = $array['class'];
    			$menu="<ul class=\"{$class}\">$menu</ul>";
    		}else{
    			$menu="<ul>$menu</ul>";
    		}
    		return print($menu);
    	}
    }
    

    Saludos a todos
      Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In
 
frjcbbae garagebible.com