Como Organizar la Información En Site Con Drupal

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
Jose Oliver's picture

Hola chicos, a ver si me podeis echar una mano con esto. Estoy empezando con Drupal y no me entero muy bien como organizar la información con el gestor. Estoy acostumbrado a ver el diseño de paginas a mano, como si un sistema de archivo se tratase, haciendo paginas estaticas con unos menus y enviando mediante enlaces a otras paginas hasta llegar a la información que quiera el usuario.

Pues bien, supongo que en Drupal hacer esto es sacarle poco partido, el caso
es que quiero hacer una pagina muy sencilla, 3 apartados, cada uno con varios subniveles hijos, y subniveles nietos, etc etc. Probé con los Taxonomy menu, y le encuentro 2 fallos, el primero menús enormes, y el segundo a la hora de crear contenido pues lo mismo un menú enorme para un campo asociado al vocabulario ya que este tiene pues terminos padres, hijos, nietos....... y muchos más.

Mi segundo intento fue con varios campos asociados, tipo padre-hijo, animal-raza, el usuario al elegir un Animal, solo puede elegir unas razas determinadas, pero claro, me fallaba el intento ya que no todos tenian los mismo subniveles, y si quiero que sean referencias obligatorias no puedo poner todos el mismo tipo de datos, asi que tengo que crear un tipo de dato y taxonomias distintas.

Ahora me he panteado hacer un tipo de dato por cada dato final de los niveles de información, es decir si hay 3 padres, 5 hijos, y 5 nietos pues 75 tipos de datos en los que un campo tipo vocabulario este predefinido y oculto al usuario final, pero claro,,,,,,de esta forma creo un menu que me va llevando por distintas pantallas hasta el nieto que deseo y hay creo un tipo de dato tipo nieto 45, o nieto 30, o nieto20, pero .....son 75 tipos de datos y en mi caso serian incluso mas.

Estoy seguro que debe de haber una manera mejor de pantear esto. Me ayudan??? Gracias.

Comments

Jose, si tu objetivo es

estoyausente's picture

Jose, si tu objetivo es categorizar contenido. Las taxonomías serán siempre la solución (o casi) dado que están creadas precisamente para categorizar, es su función.

Si el menú es muy grande porque hay muchas categorías entonces el problema no está relacionado con como hacerlo en Drupal, sino con el requisito.

En cualquier caso eso es un problema bastante complejo (y con tan pocos datos no creo que nadie pueda darte un apoyo preciso), si te pasas por algunos de los eventos locales (como Drupal&Beers) que se organizan igual pueden darte un feedbak más correcto.

Sino, en el canal de IRC #drupal-es (en el server de freenode) hay también apoyos que igual pueden venirte bien. Yo estoy por allí. Un saludo!

Estoy por las redes @estoyausente

Gracias por la respuesta.

Jose Oliver's picture

Saludos, igual puedo hacer una idea más clara de lo que quiero. Aunque os voy a plantear la duda que actualmente tengo primero y que creo que me podría solucionar lo que planteo y si aun no me hago entender al final indico el problema completo.

Teniendo un nodo Tipo de Contenido Articulo, que posee un campo Tags que es una referencia a termino, ¿como hago para enviarle a Tags un valor, al crear un link a "http://localhost/drupal/node/add/article" ?

No me vale predefinir el tipo de referencia a termino, porque entonces tendría que crear distintos Tipos de contenido. Y tampoco quiero que sea el usuario el que lo seleccione, sino que sea yo el que lo indique en función desde el lugar donde se llame.

Bueno si os queréis hacer una mejor idea de lo que quiero:

Tenemos un servidor de disco donde hay 3 carpetas compartidas. Una por cada departamento. Todos los usuarios pueden leer el contenido de esas y sus subcarpetas, pero no modificar la estructura de ese arbol de carpetas.

Todas las siguientes con carpetas:

Departamento1
-Funcion1
--Tarea1.1
---Proceso1.1.1
----..............
---Proceso1.1.2
-----............
---Proceso1.1.3
----............
--Tarea2.1
---Proceso2.1.1
---- ..............
.............
--Tarea3.1
----.........
-Funcion2
--Tarea2.1 ...
--Tarea2.2 ...
--Tarea2.3 ...
-- ...........
-Funcion3
-- ..........

Departamento2......
Departamento3......

Osea 3 carpetas iniciales y un montón de subcarpetas en distintos niveles. Al final el usuario no puede hacer ningún tipo de modificación en la estructura de carpetas, solo ira entrando en cada subnivel y al llegar a la ultima carpeta podría ver el conjunto
de archivos que contiene esa carpeta o añadir un archivo. Yo hago el símil de un archivo en el sistema de archivos planteado sería el Tipo de Contenido Articulo que trae drupal predefinido. Por tanto lo único que quiero es que un usuario se fuese desplazando por pantallas entrando en subniveles. Eso lo puedo hacer usando el Tipo de Contenidos Pagina Básica e incluyendo links a las otras Páginas Básicas. Por tanto el Tipo Página Básica serian las carpetas, y el Tipo Articulo los archivos que el usuario podría incluir al llegar a la ultima Carpeta o Página Básica. Ya que esta ultima Página Básica en lugar de tener links a otras páginas(carpetas) tendría uno de agregar contenido, y otro link que lleva a una consulta por la referencia a termino Tags que tendría en el Tipo Articulo como campo. Así pues, si una de las Carpetas finales se llamara por ejemplo "ProcedimientoB3223" todos los archivos incluidos en esa carpeta, osea todos los nodos del Tipo Articulo tendrían como Tags="ProcedimientoB323". por tanto me resulta muy facil mostrar todos los archivos(nodos del Tipo ARticulo) con ese tags mediante gracias a la taxonomia.

Mi problema no esta en crear los subniveles, lo puedo hacer como ya he dicho creando nodos del Tipo Páginas Básicas o con el modulo BOOK, sino como hacer sin que el usuario se de cuenta que los nodos Tipo Articulos creados desde la carpeta "X" se generan siempre con el Tags="X".

Si me estoy equivocando en el planteamiento igual me pueden decir como debería plantearlo. Muchas gracias a todos.

Hola, primero aclararte que

mgzrobles's picture

Hola,

primero aclararte que el usuario no tiene que darse cuenta de nada que tu no quieras, con no mostrarle el campo te valdría, ya lo tratarás tu internamente según tus necesidades...

Pero tampoco entiendo por qué quieres generar un tag X para las carpetas hijas, con book tendrás una referencia al padre.
También puedes tener en vez de una taxonomía un campo entity reference y que en cada carpeta se diga cual es su carpeta superior.

Más opciones serían usar el módulo filedepot que te da un gestor documental que no se si es lo que quieres, con tu comentario no me queda nada claro. Sea como fuere, puedes ver su forma de tratar nodos como carpetas.

Además, si vas a trabajar con departamentos, carpetas, permisos por carpetas y departamentos, etc, te recomiendo que mires Organic Groups.
Echa un ojo http://www.forcontu.com/descarga/d7u66pdf

Un saludo

Martín González Robles
web: http://elsabrosista.com
email: martin.glez.robles@gmail.com
Unidad sobre OG para Drupal 7: http://www.forcontu.com/descarga/d7u66pdf

Saludos Martín

Jose Oliver's picture

Gracias por el comentario. La idea no es hacer un gestor documental sino algo mucho más sencillo. Antes de plantear usar drupal estuve mirando los gestores documentales pero me parece demasiado potente para lo que quiero, no necesito tanto de la aplicación y podría llegar a complicarle mucho la vida a los usuarios a los que va dirigido.

No queria usar "Tags" en las "Carpetas", solo en los "Ficheros".

Todos los "Ficheros" contenidos en la "Carpeta" de Nombre:88889 tendrán un Tags=88889.

Es la idea que se me ocurría para usar las taxonomía. Así que mi gran duda es como crear un enlace a "Crear Contenido" de forma que el nodo que se esta creando se rellene en su campo Tags, con el dato que le envíe desde el enlace.

Gracias.

Hola Jose, entiendo que lo

frankgil's picture

Hola Jose,

entiendo que lo que quieres hacer es algo así:

node/add/tipocontenido/35

Y que en el formulario de creación del nodo, de forma transparente al usuario, utilice ese valor 35 como término de taxonomía. Para esto tienes que programar un poco, pero es muy sencillo. Con hook_form_alter() interceptas el formulario que te interesa y ahí puedes hacer dos cosas:

  • Darle el valor por defecto al campo
  • Ocultar el campo

hook_form_alter(&$form, &$form_state, $form_id)

Los argumentos los tienes en $form_state['build_info']['args'], y sólo te faltaría localizar el campo en el $form al que se lo quieres asignar.

¿Has programado algo para drupal?

Un saludo,

Fran Gil
www.forcontu.com

Gracias Fran por tu

Jose Oliver's picture

Gracias Fran por tu respuesta, apenas estoy empezando con drupal y creo que me falta mucha base en todo, pero me da que has entendido bien lo que pretendo hacer así que me estudiaré eso que me indicas.

Por el momento me he basado en modulo "nodereference" para hacer que mis Carpetas Finales (El resto de Carpetas intermedias solo deben contener Carpetas)tengan un link para crear "Ficheros", y que estos estén asociados mediante un campo a la "Carpeta" que los contiene.

Ademas desde cada "Carpeta" usando el mismo modulo, creo sub-carpetas,
y siempre desde la cuenta de administrador, ya que los usuarios no deben tener la posibilidad de crear carpetas. Esto me ayuda
en base a diseño a ir creando el Arbol Jerarquico de Carpetas.

Pero ahora he estado pensando que mi idea de usar el campo Body para mostrar una
lista de links a otras Sub-Carpetas es bastante cutre. Porque sería muy estático y en caso de querer reordenar las "Carpetas" tendría que ir por cada una de las Paginas Basicas(Carpetas) modificando los Links. Hay forma de usar el Body para mostrar un listado contenidos de un tipo cuyo campo X sea igual a Y? he pensado en una view, pero no se como hacerlo aparecer en la Pagina Basica.

Es decir tengo los tipos:

-Fichero
-Carpeta Intermedia
-Carpeta Final

Cada contenido de tipo Fichero tiene un campo NodeReference que apunta a la Carpeta Final que lo contiene. Carpeta Final tiene un campo NodeReference
que apunta a la Carpeta Intermedia Padre. Y cada Carpeta Intermedia tiene un campo NodeReference que apunta a su Carpeta Padre.

Asi un usuario que este viendo el contenido de una Carpeta Final tiene un link que le permite crear contenido "Fichero" y que automaticamente esta enlazado con la Carpeta Final desde la que se crea.

Ahora, como hago para que cada carpeta Intermedia y Final Muestre sus hijos? y no usar links estaticos creados manualmente en el Body??

Saludos a todos y gracias.

Yo lo enfocaría como

frankgil's picture

Yo lo enfocaría como taxonomía jerarquizada. Cada carpeta en realidad es un término de taxonomía en una estructura en árbol, y cada "fichero" en esa carpeta sería un nodo (del tipo o tipos que definas) asociado al término de taxonomía, que lo puedes hacer de forma oculta como te comenté.

Por supuesto no debes usar el body para nada de eso. Para mostrar los términos que hay debajo puedes ir por vistas. En las vistas tienes una vista desactivada /taxonomy/term/% que te sirve para sobrescribir el comportamiento de las taxonomías (la página cuando haces clic sobre un término que te muestra todos los elementos asociados a ese término).

Otra forma de hacerlo podría ser por paneles, que también tiene un panel que sobrescribe la página de taxonomías y te deja jugar con más elementos en la página. Con panales tienes más margen para mostrar más "bloques", como podría ser los hijos del término (subcarpetas) y los elementos que contiene el término (otra vista con los ficheros).

En ambos casos la estructura de carpetas sería igual, por taxonomía. Además, recuerda que en Drupal 7 las taxonomías también son entidades y les puedes asociar campos adicionales (si los necesitaras).

Un saludo,

Fran Gil
www.forcontu.com

Spain

Group organizers

Group categories

Región geográfica

Group events

Add to calendar

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week