Un sitio en Drupal paso a paso. Parte 3

En el artículo anterior mostré los pasos iniciales para instalar y configurar Drupal de forma básica.

En este artículo voy a basarme en la instalación y configuración de los módulos que le darán la mayor parte de la funcionalidad a Cuenco Digital.

Los esenciales:

CCK y Views son dos módulos muy populares entre los que trabajan con Drupal frecuentemente.

CCK es el Kit Constructor de Contenidos, básicamente su función es crear tipos de contenido. Un tipo de contenido puede interpretarse como un conjunto de información que se distingue por la forma en que organiza la misma.

Por ejemplo, en este sitio, un artículo es un tipo de contenido, las novedades son otro tipo de contenido y una página estática otro. No son lo mismo pues un artículo contiene una fecha, un autor, un resumen, un listado de artículos relacionados, y una novedad no contiene ninguno de los dos campos nombrados, etc. De hecho el tipo de contenido está intimamente relacionado al significado que tenga para el diseñador la información. Claramente el concepto de "novedad", "artículo" y "video" representan grupos de información distintos, y por lo tanto se representan como tipos de contenido distintos.

CCK permite además definir que campos contendrá un tipo de contenido. Un campo es como un casillero a rellenar con información. Puede ser un número, o una dirección de correo, o un enlace a una pagina web, pasando por videos, códigos postales y muchísimas otras cosas más.

Views, es un módulo para hacer listados. Listados de información en este sitio se utilizan views para hace el listado de artículos, de videos, de novedades y cualquier otro listado de contenidos que se necesite.

Descargando un módulo:

Los módulos se descargan del sitio oficial de Drupal. www.drupal.org/project/Modules

Una vez descargado un modulo se puede descomprimir en tres posibles lugares

En cualquiera de los tres directorios el modulo será reconocido por el sitio en Drupal. Sin embargo la tercera opción no es recomendable, hay quienes opinan lo mismo, pues dificulta los procesos de actualización futuros.

Entre las dos primeras formas se suele utilizar la primera si el módulo va a ser compartido entre varias instalaciones de Drupal en un mismo servidor, o la segunda si el módulo será utilizado sólo por el sitio actual.

Todos los módulos se instalan de la misma forma. Se descargan desde Drupal, se descomprimen en el directorio modules indicado y se activan desde Administrar -> Construcción del sitio -> Módulos

Página de la descarga del módulo CCK

Configurando CCK:

CCK, como se dijo antes, permite crear tipos de contenido. Para empezar se crearán tres tipos de contenidos nuevos. artículos, novedades y videos.

[inline:tipos_contenido.png=Tipos de contenido]

Si observan bien en la lista anterior, hay dos tipos de contenidos más. Página, es creado por drupal en su instalación original, y Tema del Foro es creado automáticamente por el módulo forum.

Cada tipo de contenido tiene una serie de campos que lo identifican. Poniendo como ejemplo al tipo de contenidos artículo, los campos son Resumen, Fecha de publicación, además de los comunes para todos los tipos de contenido, el título y el cuerpo.

Pequeña aclaración:
Para que un tipo de contenido se diferencie de otro no es necesario que posean distintos campos. De hecho podrian existir los tipos de contenido, pagina e historia y ambos utilizar un título y un cuerpo.

Lo que diferencia a un tipo de contenido de otro es lo que el desarrollador quiera expresar con ellos.

De todas formas, creo que es más fácil de entender para los recién iniciados en cck este tipo de diferencias.

Cada campo generalmente es controlado por un módulo específico. Por poner un ejemplo, el módulo date provee toda una serie de funcionalidades para trabajar con campos del tipo fecha. Las validaciones, los calendarios desplegables, las formas de mostrar la fecha, etc, son controladas por este modulo date.

Los módulos que interactuan con CCK se ubican generalmente en el paquete llamado CCK, la siguiente figura ilustra los módulos instalados en este sitio.

Módulos que incluye el paquete CCK

Cada tipo de contenido permite configurar los campos que mostrará. El tipo de contenido Artículo posee, un título, un cuerpo, un campo de tipo texto y un campo de tipo fecha. Drupal 6 introduce un sistema de ordenamiento dinámico de las filas de las tablas, esto significa que para ordenar el formulario de creación de un Artículo solo hace falta arrastrar y soltar las filas de la tabla siguiente en el orden deseado.

Campos del tipo de contenido Artículo

La forma de agregar y configurar campos para cada tipo de contenido es bastante intuitiva por lo que no voy a detenerme en explicar paso a paso como configurar cada campo de cada tipo de contenido.

Configurar Views

El sitio debe proveer una forma simple de acceder a todos los artículos disponibles. Idealmente debería mostrar el nombre del artículo y su resumen. Para lograr este objetivo utilizaré Views.

Views es un módulo que permite generar listados de información de una forma muy flexible. Puede compararse como una herramienta para hacer consultas SQL a la base de datos a través de una interfaz gráfica.

Lo primero que haremos es crear una vista nueva. En Administrar -> Construcción del sitio -> Views, se observa la pestaña 'Add view'

Para aquellas personas que recién comienzan con Drupal, la interfaz de views puede parecer intimidante. (Lo admito, para mi también lo fue cuando la vi por primera vez). No explicaré aquí que significa cada sección, eso será parte de otro artículo. Lo que si haré en cambio es describir como se configuró la vista utilizada en los artículos.

Antes de continuar la explicación quisiera hacer un pequeño comentario sobre las versiones de Views disponibles para Drupal. Hace unos meses, cuando escribí este mismo artículo para Drupal 5, explicar la configuración de una vista, me llevó cerca de tres páginas tamaño A4. Múltiples capturas de pantalla explicando las diferentes configuraciones y aún así el proceso era bastante difícil de entender. Con la nueva versión de Views para Drupal 6, Earl Miles y los desarrolladores de views han hecho realmente un trabajo estupendo. Toda la interfaz se reduce a una sola página que se recarga con AJAX y facilita la creación de views en un modo realmente notable.

Al crear una nueva vista se nos solicitarán una serie de datos. En la primera sección, el nombre de identificación y la descripción. También es necesario indicar el tipo principal de objetos que manipulará la vista. En este caso se elige nodos pues son vistas sobre contenido.

Datos básicos de la vista

En Views 1.x (para drupal 5) habría sido necesario crear una vista para los artículos y otra para los videos. Views 2.x permite crear una vista general y hacer vistas personalizadas sobre esa general. Compartiendo aspectos y personalizando otros. De esta manera el mantenimiento de los listados se simplifica enormemente y bien usado, facilita las tareas de theming que veremos luego.

La configuración general del listado

La siguiente imagen ilustra como está configurada la sección default de la vista. Esta sección es como la vista "madre" y los usuarios no pueden verla directamente. Sin embargo funciona como matriz para las demás vistas que se generen heredando su configuración.

Configuración general del Views

Basic settings: Aquí se definen los aspectos generales de la vista. Cuantas filas mostrará, el título general de la página, la forma en que se mostrarán los campos (Tabla, Grilla, Nodos completos, etc), si se utilizará AJAX para cambiar entre página y página. El encabezado, el footer y el texto a mostrar si no hay contenido disponible para la vista.

Relationships: Las relaciones no son utilizadas en este sitio. Y serán motivo de otro artículo (Ya está disponible un video sobre este tema). Básicamente permiten conectar distintos tipos de objetos por un campo en común. Por ejemplo, se podría relacionar el nodo, con un usuario, utilizando una referencia a un usuario (CCK User reference). Y automáticamente, los datos de ese usuario estarían disponibles para su uso en esta vista, como un columna más para la tabla.

Arguments: Los argumentos tampoco son utilizados en esta vista. Los argumentos permiten pasarle parámetros al view, generalmente a través de la URL.

Campos: Todo listado contiene información. Los campos representan parte de esa información. Para este listado se desea mostrar: El título, el resumen, la fecha y la cantidad de comentarios de cada nodo.

Sort criteria: El criterio para ordenar la lista. En este caso, la fecha ingresada en el campo field_fecha ordenado de mayor a menor (o sea los más nuevos, primero).

Filtros: Los filtros definen condiciones que los objetos (en este caso, los nodos) deben cumplir para figurar en el listado. Para esta vista, el nodo debe estar publicado y debe poseer un tipo en especial (aunque no se define cual en la vista por defecto).

Por supuesto surge una pregunta. ¿Como sabe Views que tiene que mostrar solo los videos en la página de videos y los artículos en la página de artículos? Bueno, la respuesta es, sobreescribiendo.

Sobreescribiendo valores por defecto:

En la esquina superior de la imagen anterior se pueden ver 3 rectángulos.

Diferentes visualizaciones

Cada uno de los dos rectángulos inferiores representa una instancia de la vista. Prefiero llamarle instancia porque son palpables para el usuario final. Recordemos que la vista Default no puede ser accedida. Las instancias pueden ser de diferentes tipos. En este caso son páginas html. Pero tambien pueden ser bloques, o feeds Rss, cada una con propiedades diferentes.

Una vez que se agregan las dos visualizaciones (Displays) views solicita que indiquemos los paths para esos displays. Aquí ya se está indicando el primer factor que las diferencia. Un display tendra como path articulos, la otra video.

Luego, por cada display se puede elegir modificar o no algún parámetro de la views original. El caso más claro es el del valor "Tipo de Nodo" en la sección filtros. El display para artículos filtrará por nodos con el tipo artículos y el de videos por tipo de nodo video.

Filtros de views

Los filtros se diferencian de los asignados por defecto presionando el boton "Override" (sobreescribir) que aparece en la parte superior derecha de cada configuración de algun parámetro.

Sobreescribir filtros de views

Con este concepto, es posible crear varios listados que mantengan aspectos en común y personalizando otros dependiendo de cada caso.

Resumiendo un poco el tema de las vistas:

Hasta Drupal 5, no había forma de compartir aspectos entre listados. Existía el clonado de vistas, pero esto implicaba actualizar cada vista por separado si se modificaba algun aspecto en común.

Con Drupal 6 y la version 2.x de Views, es posible generar una vista por defecto. Luego cada display, o sea la forma en que el usuario percibirá el listado (como un bloque, una página u otra forma) permite definir aspectos únicos y otros compartidos.

Los filtros, los campos, la forma de ordenamiento, el encabezado o hasta el título del listado pueden compartirse o Sobreescribirse haciendo que el manetenimiento de las vistas, se simplifique mucho si se organizan correctamente.

Unos últimos detalles de configuración de los listados incluyeron la creación de dos menús en la sección, Primary Links que aparecen listados automáticamente en la parte superior del sitio.

Con esto concluye este artículo. Es fácil de ver la potencia y las múltiples ramificaciones que tienen estos dos módulos, no en vano son los dos más utilizados y descargados por los desarrolladores de sitios con Drupal.

En el siguiente artículo veremos como darle un estilo visual al sitio.

Te invito a leer también...

Compartir este material en...

Comentarios

Tenía tiempo queriendo aprender como manejar views en drupal, soy nuevo tengo apenas unos meses trabjando en drupal, gracias me ha quedado muy claro todo.

Gracias por este manual me sera de muchisima ayuda..

Después de días de estar buscando y leyendo tutoriales para iniciarme con Drupal (incluyendo la documentación oficial) seguía sin tener en claro como empezar a usar el sistema, qué significaba cada cosa y/o a qué se referían.

Aún no lo he instalado (el unco archivo sql posible está dentro de la carpeta includes). así que preferí seguir investigando antes de ponerme a experimentar, ya que apenas soy una aficionada.

Tu artículo es esclarecedor. Mantiene una lógica impecable y nos porporciona elementos básicos para poder entender la estructura sobre la cual funciona el sistema, ahorrándonos a muchos horas de sentranos frente a la máquina a leer códigos (de los que personalmente entiendo poco o nada) y relacionar una cosa con otra.

Muchísimas Gracias!!

Te sigo leyendo con mucha atención :-))

Hola, muchas gracias por toda la informacion que compartes, no logro dar con la solucion para poner en un bloque los filters exposed de mi vista para poder imprimir la misma sin ellos, trate con la instancia bloque, que me genera uno automaticamente pero cuando le asigno alguna region desde bloques, no aparece en ningun lado. Me podrías dar alguna pista. Gracias.

Hola a todos, a ver si alguine puede ayurdarme, soy nuevo en drupal y tengo algunos inconvenientes. no en la instalacion inicial, en lo que me ha ayudado mucho tu paso a paso, relamente muy bueno, el video es espectacular.
ahora bien, una vez instalado los modulos cck y views, paso a configurar, como dice el tuto, en ck no tengo inconveninetes, pero es cuando llego a la segunda etapa en la conf, de views en que a cualquier cosa que intento hacer me parece un error, les detallos los mismos:

- al querer modificar nombre:
An error occurred at /drupal6/admin/build/views/ajax/display/contenidos/default/display_title.

- en titulo:
An error occurred at /drupal6/admin/build/views/ajax/display/contenidos/default/title.

- en style:
An error occurred at /drupal6/admin/build/views/ajax/display/contenidos/default/style_plugin.
y asi en todas las posibles configuraciones de toda la seccion, cada uno de los items, salvo en "view setings" - "tag" donde puedo hacer la modificacion.

mi pregunta seria, puedo seguir configurando cosas y luego volver a views o no puedo seguir hasta no solucionar el problema.

esto me pasa en la configuracion ya sea en linux o en windows.

desde ya muchas gracias y espero tener alguna info que me saque de este embrollo.

pablo

Hola Pablo:

Te recomiendo que desactives el javascript del navegador, e intentes de nuevo. Seguramente vas a ver un mensaje de "Error en la linea tanto". Cuando lo tengas, copia todo este mensaje y el error que te dio, y pegalo en un mensaje en el foro de Drupal Hispano. Seguimos la conversación allí porque los comentarios de un artículo no son el lugar apropiado para este tipo de cosas.

Saludos

estos articulos son una basura hay imagenes que quien sabe de donde salieron

Dices que es paso a paso pero hay cosas que no explicas bien y estos articulos estan a medias!

Antes que nada gracias por introducir a novatos como yo en el fascinante mundo de Drupal.
Me estoy iniciando en el uso de Drupal y cometí el error que señala de instalar los temas en drupal/themes.
¿Puedo moverlos ahora que he comenzado a modificarlos a alguno de los directorios que señala como recomendables?

Sí, pero antes cambia el Theme del sitio a un Tema que no muevas, por ejemplo Garland. Sino al mover el Theme de un lugar a otro el sitio va a dejar de funcionar.

Una vez que hayas cambiado de tema y movido el directorio podes volver a poner el Theme que estabas utilizando.

Saludos

Hola:

Si, lamentablemente hay cosas que faltan. Tuve que hacer un balance entre detalles y el hilo conductor de la explicación.

Es claro que esto no es una receta de cocina para hacer un sitio, pero aún recortando cosas me llevó seis partes. No quiero imaginarme cuanto me hubiese llevado explicar con lujo de detalles cada parte estrictamente paso a paso.

Si necesitas más ayuda con algun tema en particular recomiendo seguir leyendo y practicando. Preguntar en los foros de Drupal Hispano, y unirte al IRC de Drupal en donde los usuarios de Drupal responden preguntas (incluso yo mismo participo a diario en el IRC), hay ayuda de sobra en la web, y mucha gente dispuesta a ayudar, solo hay que seguir buscando un poco más. Ánimo!

Por último, recomiendo este enlace en donde un usuario de la comunidad de Drupal Bolivia ha hecho una lista de sitios que hablan sobre Drupal en español: http://groups.drupal.org/node/84219

Saludos

Hola, acabo de empezar con Drupal, y voy bastante perdido. quiero mostrar los datos de una manera, pero no se si esto se hace con las Vistas o se hace de otra forma.

Mi web trata sobre animales para adoptar, por lo que recopilo información y fotos de esos animales, contacto, etc. (con la posibilidad de que el propio usuario inserte nuevos animales), y quiero categorizar en el menu por animales (perros, gatos y luego por provincias.

Te cuento lo que quiero conseguir:
Quiero que en la "home" se muestren todos los animales (paginado) disponibles ordenados por fecha, pero quiero conseguir un formato en concreto:

Foto, Descripcion amplia, contacto y fecha de alta. Y que se repita en bucle para todos los animales disponibles, sin que de la sensación de varios posts

Al hacer click en la foto por ejemplo acceder a una nueva página con todas las fotos e información ampliada para ese animal en concreto.

No tengo ni idea de como hacerlo, pero creo que con vistas se puede.

Espero que me orientes si puedes, Muchas Gracias!

Algo tan facil q nadie pordia explicarme!