elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 13:20  


Tema destacado: Nueva página de elhacker.net en Google+ Google+

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  Estoy realizando un CMS (pequeña duda de lógica)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Estoy realizando un CMS (pequeña duda de lógica)  (Leído 2,456 veces)
dimitrix


Desconectado Desconectado

Mensajes: 4.059



Ver Perfil WWW
Estoy realizando un CMS (pequeña duda de lógica)
« en: 4 Marzo 2011, 00:58 »

Vamos a ver, estoy realizando un pequeño CMS tipo Joomla (digo el panel y como está dividido), no tengo ningún problema en nada... excepto... en como hacer cuando por ejemplo hay un menú dentro de otro menu por ejemplo:

- Inicio
- Donde Estamos

--> En Valencia
--> En Barcelona

-----> En Tarrassa
-----> Otros lugares
--> En Alicante
--> En Madrid

- Servicios que ofrecemos



Es decir, un sección dentro de otra, así hasta 3 nivele en este caso.
El problema es que en el desplegable para seleccionar la 'sección' me salen en lista:

Citar
Inicio
Donde Estamos
En Valencia
En Barcelona
En Tarrassa
Otros lugares
En Alicante
En Madrid
Servicios que ofrecemos

y yo quiero que me salgan tipo

Citar
Inicio
Donde Estamos
 |-> En Valencia
 |-> En Barcelona
 |---> En Tarrassa
 |---> Otros lugares
 |-> En Alicante
 |-> En Madrid
Servicios que ofrecemos

Y no tengo ni idea de como hacerlo. Los tengo en la base de datos y todas las secciones tienen un ID y un ID_Padre que el ID_Padre es la sección dentro de la que van o si es el Índice(la principal el valor es 0).

Había pensado en un While dentro de otro While dentro de otro, pero me gustaría algo que no sea tan cutre, sobretodo por que si tiene 5 niveles ya la he cagado.

¡Un saludo!


En línea




Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.187



Ver Perfil WWW
Re: Estoy realizando un CMS (pequeña duda de lógica)
« Respuesta #1 en: 4 Marzo 2011, 03:54 »

entonces quiere decir que:
Citar
Inicio   ID_PADRE=0
Donde Estamos   ID_PADRE=0
 |-> En Valencia   ID_PADRE=1
 |-> En Barcelona   ID_PADRE=1
 |---> En Tarrassa   ID_PADRE=2
 |---> Otros lugares    ID_PADRE=2
 |-> En Alicante   ID_PADRE=1
 |-> En Madrid   ID_PADRE=1
Servicios que ofrecemos   ID_PADRE=0

Si esto es asi, trata de tener una idea segun este codigo:
Código
//$items[] es un array('nombre','id','id_padre')
foreach($items as $item){
echo (($item['id_padre']>0)?'|'.str_repeat('-',$item['id_padre']).'>':NULL)." {$item['nombre']}";
}

Lógicamente faltan links y tendrias que adaptarlo a TU diseño HTML, que si trabajas con listas, en vez de agregar caracteres ("|-->"), agregar <ul>.

Espero serte de ayuda, si no trabajas de esta forma con los items, o no podes implementarlo, un poco de código no viene mal, aunque esta bien que por ahora no quieras dar código.

PD: Yo también estoy con un proyectito algo asi: "Blotg!" un blog programado unicamente por mi, llevo ya 3 semanas de su comienzo y ya estoy imprimiendo/subiendo/modificando posts,tags,categorias y comentarios. Ya lo vas a ver por aca...


En línea

Lunfardo


Desconectado Desconectado

Mensajes: 560


Ver Perfil
Re: Estoy realizando un CMS (pequeña duda de lógica)
« Respuesta #2 en: 4 Marzo 2011, 04:13 »

fijate en usar una solucion recursiva sino te queres enroscar con los while
En línea
Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.187



Ver Perfil WWW
Re: Estoy realizando un CMS (pequeña duda de lógica)
« Respuesta #3 en: 4 Marzo 2011, 04:59 »

Yo creo que de esa solucion recursiva que hablas ya se encargo, porque por lo que pienso guarda en la base de datos con un "ID_PADRE" y ya ahi entra en juego la logica con respecto a este id.
En línea

dimitrix


Desconectado Desconectado

Mensajes: 4.059



Ver Perfil WWW
Re: Estoy realizando un CMS (pequeña duda de lógica)
« Respuesta #4 en: 4 Marzo 2011, 12:47 »

Me gustaría publicarlo para uso no empresarial, pongo parte del código:

Código
   <option value="0">&Iacute;ndice</option>');
while ($valores = mysql_fetch_array($resultados)){
echo('
<option value="'.$valores["ID"].'">'.$valores["Titulo"].'</a><br>');
};

El $valores es un array que contiene: ID, ID_padre y Titulo.

El value de la opción tiene que ser el ID y el título lo que aparezca en el seleccionador. Lo único que me falta es poner lo de -> -->.

Lo que está claro que esa parte la tengo que cambiar, que no puede ir con WHILE.
En línea




Lunfardo


Desconectado Desconectado

Mensajes: 560


Ver Perfil
Re: Estoy realizando un CMS (pequeña duda de lógica)
« Respuesta #5 en: 4 Marzo 2011, 16:05 »

edit: jaja entendi el problema tarde , =P
« Última modificación: 4 Marzo 2011, 18:56 por SmogMX » En línea
dimitrix


Desconectado Desconectado

Mensajes: 4.059



Ver Perfil WWW
Re: Estoy realizando un CMS (pequeña duda de lógica)
« Respuesta #6 en: 4 Marzo 2011, 17:42 »

No SmogMX, no tiene nada que ver con eso, pero gracias por el intento.
Tiene algo que ver más bien con lo de 'Castg!'.
En línea




Spider-Net


Desconectado Desconectado

Mensajes: 1.052


Un gran poder conlleva una gran responsabilidad


Ver Perfil WWW
Re: Estoy realizando un CMS (pequeña duda de lógica)
« Respuesta #7 en: 4 Marzo 2011, 18:37 »

No me he fijado del todo bien en el código, pero así por encima yo hice un proyecto parecido e hice algo así:

El mismo while que tú, mas o menos, pero dentro del while pones un swtich.

Si el ID_PADRE == 0 por ejemplo no pones nada, si es 1 pones delante -> y si es 2, pones delante -->, de esta forma conseguirás la estructura en árbol que buscas. Así al menos lo hice yo y me funcionó bastante bien.
En línea

"Si cuando hablas nadie se molesta, eso es que no has dicho absolutamente nada."
dimitrix


Desconectado Desconectado

Mensajes: 4.059



Ver Perfil WWW
Re: Estoy realizando un CMS (pequeña duda de lógica)
« Respuesta #8 en: 4 Marzo 2011, 18:44 »

No me he fijado del todo bien en el código, pero así por encima yo hice un proyecto parecido e hice algo así:

El mismo while que tú, mas o menos, pero dentro del while pones un swtich.

Si el ID_PADRE == 0 por ejemplo no pones nada, si es 1 pones delante -> y si es 2, pones delante -->, de esta forma conseguirás la estructura en árbol que buscas. Así al menos lo hice yo y me funcionó bastante bien.

Pero no serviría puesto que en la base de datos no está el nivel de cada uno 0, 1 o 2, por que puede llamar hasta 10.
En línea




Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.187



Ver Perfil WWW
Re: Estoy realizando un CMS (pequeña duda de lógica)
« Respuesta #9 en: 4 Marzo 2011, 19:10 »

Código
//...
'<option value="0">&Iacute;ndice</option>');
while ($valores = mysql_fetch_array($resultados)){
echo('<option value="'.$valores["ID"].'">'(($valores['ID_padre']>0)?'|'.str_repeat('-',$valores['ID_padre']).'>':NULL)..$valores["Titulo"].'</a><br>');
};
 

Así tendría que funcionar bien, eso creo... jeje.
En línea

dimitrix


Desconectado Desconectado

Mensajes: 4.059



Ver Perfil WWW
Re: Estoy realizando un CMS (pequeña duda de lógica)
« Respuesta #10 en: 4 Marzo 2011, 19:43 »

Mmmm... Castg! me da error, he intentado arreglarlo pero no anda bien.

Pero una cosa, timas el ID_padre como la cantidad de guines que hay que poner ¿No?
Es que eso no es :-/
En línea




Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.187



Ver Perfil WWW
Re: Estoy realizando un CMS (pequeña duda de lógica)
« Respuesta #11 en: 4 Marzo 2011, 20:03 »

aaaaaaaaa, entonces, id_padre que es? Por qué no me dlo dijiste antes con el ejemplo que te di?  :¬¬ :¬¬
Citar
Inicio   ID_PADRE=0
Donde Estamos   ID_PADRE=0
 |-> En Valencia   ID_PADRE=1
 |-> En Barcelona   ID_PADRE=1
 |---> En Tarrassa   ID_PADRE=2
 |---> Otros lugares    ID_PADRE=2
 |-> En Alicante   ID_PADRE=1
 |-> En Madrid   ID_PADRE=1
Servicios que ofrecemos   ID_PADRE=0

Que error te da?
En línea

Freeze.


Desconectado Desconectado

Mensajes: 2.731



Ver Perfil WWW
Re: Estoy realizando un CMS (pequeña duda de lógica)
« Respuesta #12 en: 4 Marzo 2011, 20:15 »

Esa variable ID_PADRE no tiene sentido de la manera en que la están implementando. o.O

Me parece que para hacer ese menu, nunca lo he intentado con niveles "infinitos". Solamente lo hago de 2 niveles. Nivel Padre y Nivel Hijos, por decirlo asi. Y luego las relaciono.
En línea

Lunfardo


Desconectado Desconectado

Mensajes: 560


Ver Perfil
Re: Estoy realizando un CMS (pequeña duda de lógica)
« Respuesta #13 en: 4 Marzo 2011, 20:15 »

Mmmm... Castg! me da error, he intentado arreglarlo pero no anda bien.

Pero una cosa, timas el ID_padre como la cantidad de guines que hay que poner ¿No?
Es que eso no es :-/


basicamente la funcion de cast hace lo mismo que lo que te habia puesto pero nada mas que yo no sabia que id_padre era un datos.

creo que recien entiendeo el problema


estoy igual que freeze, no entiendo la funcion de la varible "ID_PADRE" , solo te dice el nivel al que pertenece pero no da informacio util de los niveles superiores
« Última modificación: 4 Marzo 2011, 20:29 por SmogMX » En línea
Lunfardo


Desconectado Desconectado

Mensajes: 560


Ver Perfil
Re: Estoy realizando un CMS (pequeña duda de lógica)
« Respuesta #14 en: 4 Marzo 2011, 20:40 »

solo para saber si entendi, vos queres algo asi pero mas elegante?


Código
 '  <option value="0">&Iacute;ndice</option>');
 $valores = mysql_fetch_array($resultados);
while ($valores){
 
             $nivelActual=$valores["ID_PADRE"];
             while($valores["ID_PADRE"]==$nivelActual){
 
             echo('<option value="'.$valores["ID"].'">'.$valores["Titulo"].'</a><br>');
            $valores = mysql_fetch_array($resultados);
            }
};
 
 
 
« Última modificación: 4 Marzo 2011, 20:42 por SmogMX » En línea
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pequeña duda con un comando batch (NUEVA DUDA RELACIONADA)
Scripting
revenge1252 9 2,500 Último mensaje 13 Febrero 2008, 21:41
por revenge1252
Hola duda con logica en programa cliente servidor
Programación C/C++
witchyfairy 1 486 Último mensaje 24 Julio 2009, 03:19
por andi1991
Duda con una función lógica
Electrónica
Cervantes_xD 5 2,587 Último mensaje 2 Noviembre 2009, 05:21
por le_roi
[Duda] Lógica
Dudas Generales
DarK_FirefoX 1 843 Último mensaje 25 Octubre 2011, 17:06
por Ferno
Duda Redes wep Wlan_00 ,Lo que dice esta web tiene logica?
Hacking Wireless
Anonymous250 3 810 Último mensaje 3 Noviembre 2011, 14:49
por Anonymous250
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines