Un sitio en Drupal paso a paso. Parte 5

Un sitio en Drupal paso a paso. (Parte 5 de 6)

Con la mayor parte del sitio funcionando lo que sigue son los pequeños detalles, no por ello dejan de ser importantes.

Hasta aquí, el sitio tiene listados y contenidos listos para crear. Sin embargo hay una serie de cuestiones que no deben pasarse por alto antes de poner el sitio en producción.

Permisos de usuario

Si bien generalmente es lo último que se configura de un sitio, los permisos de usuarios son los que determinan que nivel de acceso tendrán los visitantes de un sitio.

Drupal organizar a los usuarios asignándole roles. Cada rol puede otorgarle determinado privilegio que hace que un usuario por ejemplo pueda crear o no un artículo, o instalar nuevos módulos en un sitio.

Para este sitio utilicé un solo rol. Llamado editor. El rol editor permite que usuarios creen artículos. Al momento de escribir estas lineas el único usuario con permisos para crear artículos soy yo. Entonces. ¿Para que crear un nuevo rol? ¿No basta con utilizar el usuario administrador para esta tarea?

Esto tal vez escape al alcance de este artículo. Pero una de las razones principales por la que no debería, nadie, utilizar el administrador del sitio, como usuario principal, es por cuestiones de seguridad. Los ataques XSS muchas, veces no tomados en cuenta por su aparente inocuidad, son muy peligrosos sin son ejecutados por el administrador del sitio.

Por esta razón, lo primero que hice al poner este sitio en producción, fue crear otro usuario y asignarle el rol Editor.

De esta manera me aseguro que si por alguna casualidad se logra filtrar un código malicioso en el sitio, por supuesto en javascript, no afecte a todo el funcionamiento del sitio, sino solo a este usuario con menos privilegios.

Dicho esto, la creación de roles generalmente desencadena toda una serie de configuraciones extra que están ligadas a los roles.

En la sección Administrar -> Usuarios -> Permisos, se pueden configurar que niveles de acceso tendrá cada usuario.

En este caso un usuario con el rol Editor puede crear Artículos y Videos, entre otras cosas.

Permisos de usuario

Filtros de entrada

Para que cada artículo pueda contener imágenes, es necesario que estas puedan ser referenciadas de algún modo dentro del nodo. Existen varios métodos para esto, pero todos requieren que la imagen se encuentre en el servidor. Para adjuntar imágenes utilicé el módulo upload que trae Drupal.

Ahora, como insertar la imagen en el texto. Si bien muchos editores de texto del tipo WYSIWYG traen entre sus funcionalidades la opción de insertar una imagen, yo opte por el módulo inline. Este módulo permite agregar una imagen al nodo con una sintaxis simple

[inline:nombre_del_archivo.png=Texto de información sobre el archivo]
o más simplemente
[inline:1=Texto de información]

Esto se conoce como un filtro de entrada la etiqueta inline es reemplazada por algún valor. De esto se encarga en parte el modulo filter que usualmente es extendido en funcionalidad por otro módulo, en este caso el módulo inline.

La mayoría de los módulos que trabajan con filtros de entrada necesitan ser configurados desde la sección Administrar -> Opciones del Sitio -> Filtros de Entrada.

En este caso, para el rol Editor, utilicé un nuevo filtro de entrada llamado, en un rapto de creatividad, Contenido.

El filtro de entrada contenido me permite incluir etiquetas h2, h3, h4, img y divs dentro del texto. De esta forma tengo más control sobre el formato que le quiero dar a mis artículos.

Por otro lado el Filtro de entrada por defecto es el HTML Filtrado. Este pequeñin es el encargado de que nadie incluya etiquetas maliciosas en sus comentarios que puedan arruinar el sitio o su contenido.

Comentarios

Los comentarios en los artículos son activados desde el momento en que se crea el contenido. Esta opción se configura por primera vez cuando se crear el tipo de Contenido en la sección "Opciones de comentarios"

Opciones de comentarios

De igual forma, para que un visitante pueda comentar sobre un artículo o un video debe tener permisos para crear comentarios sin moderación. Los comentarios sin moderación son publicados automáticamente en el sitio sin que un administrador los revise antes.

Permitir comentarios en el sitio

Alto ahí, ¿es un humano?

Verdaderamente debe dar rédito el spam para que haya tanto dando vueltas por ahí. Como sea, este sitio es para hablar de Drupal y no de pastillas a mitad de precio. Por lo tanto hay que buscar alguna forma de bloquear a esos robots que nunca duermen.

Si se permite que visitante anónimos publiquen comentarios en un sitio, hay que utilizar algún método para asegurarnos que ese comentario proviene de un humano y no una máquina enviando spam.

Es aquí donde entran en juego los módulos del tipo Captcha. Existen muchísimo, de hecho no he profundizado demasiado en el tema. Generalmente utilizo un simple captcha que le hace una pregunta matemática al usuario. Cuanto es 1 + 3. Si responde cuatro, felicitaciones usted puede crear su comentario!. ¿Increíble no?...

En fin, el modulo captcha incluye entre sus submódulos la posibilidad de hacer preguntas matemáticas. Algunos toques de configuración en Administrar -> Usuarios -> Captcha, y el sitio es "un poco más seguro".

Videos... ¿Cómo hiciste eso?

Para agregar los videos al sitio utilicé un proveedor externo para alojarlos. Digamos, YouTube, Blip.tv, Vimeo, da igual. La pregunta del millón es, ¿como agrego ese video a mi sitio en drupal?

Existen varias formas... (sí, siempre existen varias formas para hacer algo en drupal)

Una de las más simples es copiar ese texto "amigable" que proveen los sitios como Youtube

<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/WvNMFPYflFw&hl=es&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/WvNMFPYflFw&hl=es&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>

Opción 1: Dentro del cuerpo del artículo.

Bien, ventajas y desventajas de esto.

Ventajas: Copio y pego eso, y anda. Bien!
Desventajas: La etiqueta object no es aceptada por el filtro HTML de Drupal. Hay que agregar una excepción. Además. Entorpece bastante el código del artículo, y son, "demasiados" parámetros.

Opción 2: Como un filtro de entrada.

Ventajas: [video:http://www.youtube.com/v/WvNMFPYflFw&hl] dentro de un nodo y anda. Bien!
Desventajas: Hay que configurar el filtro dentro de los Formatos de entrada. Además se pierde dentro del texto del artículo, dificulta la localización y modificación en un futuro, si llegara a ser necesaria.

Opción 3: Como un campo dentro del Tipo de contenido.

Como esta es la opción que elegí, no voy a dividirlo en ventajas y desventajas.

Básicamente la idea es, el tipo de contenido Videos tendrá una pequeña descripción para el video, y un campo en donde, indicando la url del video, aparecer embebido el video citado.

Lo bueno de esto es que existe un módulo llamado emField (Embedded Media Field) que permite justamente referenciar videos (y otras cosas) dentro de un campo cck. De hecho, contiene muchísimas más opciones que los filtros de entrada o pegar el html directamente. Como por ejemplo, crear miniaturas automáticamente.

Configurar este campo no se diferencia mucho a lo que podría ser configurar un campo de fechas. El único detalles es que hay que habilitar los proveedores de videos desde Administrar -> Administración de contenidos -> Embedded Media Field y luego crear un nuevo campo en el tipo de contenidos Video para que se puedan enlazar videos.

Creando un campo del tipo Embedded Media Field

Quicktabs

En la página incial, para ahorrar espacio y no perder funcionalidad, he utilizado el módulo quicktabs para crear pestañas.

Este modulo tiene una interfaz gráfica realmente simple y funcional. Permite crear grupos de pestañas indicandoles que bloque mostrará en su interior.

Para este sitio creé un solo grupo de pestañas que mostraría los ultimos temas del foro, los ultimos comentarios, los ultimos artículos y los últimos videos publicados. Estos dos últimos bloques los configuré desde views, para más información ver la parte tres de este artículo.

Configurando pestañas

Para agregarle los iconos de colores tuve que reescribir la función que imprime quicktabs, pero eso ya escapa al alcance de este artículo, tal vez en un próximo.

Artículos relacionados

En un principio pensé mantener una lista de artículos relacionados "a mano". O sea, por cada artículo que escribiera, indicar que artículos se relacionaban con el a través de un campo en el tipo de contenido. Mala idea, si la cantidad de artículos crece, como espero que crezca, llegará un momento en que será muy difícil mantener un listado de artículos relacionados.

La gente de Civic Actions publicó hace tiempo, un artículo en el que comparaba módulos para gestionar artículos relacionados.

En este sitio no utilizo taxonomías para categorizar los artículos. Por esa razón el modulo similar entries me pareció el más apropiado.

Este módulo solo funciona para instalaciones de Drupal con MySql por lo que puede ser una limitación para aquellos que usen PostgreSql.

La configuración es bastante simple, aunque por una mala documentación (a mi criterio), estuve cerca de media hora intentando que funcione.

Similar Entries busca entre los tipos tipos de contenido y las categorías que le indiquemos, comparando el título y el cuerpo de cada artículo y generando una lista ordenada por porcentaje de "coincidencias". Luego genera un bloque que se puede agregar en alguna sección del Theme y solo se muestra cuando se esta leyendo un artículo. ¿Que más se le puede pedir?

Resumen

Como se puede observar a simple vista, hacer un sitio en Drupal no es solo instalarlo, configurar CCK y Views e instalar un Theme. Cada detalle que se quiera modificar requiere de configuraciones de módulos específicos que coordinados lograr el objetivo deseado. La buena noticia de todo esto es que existen más de 4000 módulos para configurar cuanta funcionalidad pueda imaginarse. Y si no existe, puede programarse. La parte complicada de todo esto es conocer que instalar y como configurarlo. No se preocupe, leyendo y practicando, se aprende y siempre habrá personas dispuesta a ayudarlo.

Te invito a leer también...

Compartir este material en...

Comentarios

Primero enhorabuena por la web!! muy bien explicadas las cosas, una pregunta con el similar entries no has tenido problemas con el cache de bloques activado y los Contenido Relacionados que les aparecen a los usuarios anónimos? no te salían siempre las mismas entradas? en mi web si, yo tuve que desactivar el cache de bloques y tu?

Gracias por tu comentario. Por ahora no estoy utilizando el cache de bloques en este sitio por lo que no he tenido esa experiencia. sin embargo, probablemente se trate de un problema de configuracion. Se puede indicar en la configuración de cada bloque cuanto tiempo transcurrirá hasta definir reconstruir el bloque y guardarlo en el cache. Si este tiempo es corto, por ejemplo 1 día. Los usuarios verían lo mismo por un día. Es importante que el cron este funcionando correctamente para que dispare las tareas de recontrucción de bloques.

Saludos

Hola de nuevo:

Hoy revisando los releases de los módulos encontré este issue http://drupal.org/node/253299

La versión 6-1.1 de Similar Entries soluciona tu problema.

Saludos

Hola Jose:

Muchas gracias por tu comentario. Es cierto que no hay muchos sitios sobre Drupal en Español, sin embargo tampoco es el único. El blog de Carlos Rincon, Documentados y Cambrico entre otros son buenos lugares para aprender drupal también. Tal vez este sitio haga que otras personas se animen a crear sus propios sitios.

Con respecto al libro, bueno que puedo decir. Creo que me queda un poco grande la tarea. Por ahora prefiero seguir escribiendo estos artículos con la informalidad que me permiten.

Les recuerdo a todos que pueden solicitar algún tema en especial. Muchas veces mis intereses no son los mismos que lo de los que leen, y al final de cuentas, yo los escribo para otras personas los lean, no sólo para mi.

Hola buenas.. a ver resulta que acabo de empezar con drupal y bueno ando ahiii trasteando a ver si consigo algo.
Tengo que poner un captcha en los comentarios al escribir uno y no me sale, instalo el módulo, lo configuro para que salga en los comentarios y doy los permisos y nada.. alguien me puede echar un cable??... no encuentro el motivo por el que no salga el captcha...
M gracias.

Hola Jore:

Ante todo muchas gracias por tu comentario.

Con respecto a la referencia. Pues por supuesto que podés crear un enlace a mi página. Podes dejar una referencia en un comentario para que google indexe la tuya desde este sitio si querés.

Sobre los módulos. No entiendo la pregunta, ¿que te recomiendo a nivel general? ¿Qué clase de funcionalidad estas buscando?

Saludos

Mariano:
Gracias por éste tutorial, éste tipo de materiales nos ahorra tiempo.

Una pregunta qué módulo utilizaste para que se mostrara en la sección de artículos el menú:

Ordernar listado por:
Fecha de Publicación |Cantidad de Votos|Cantidad de visitas

Para crear un menú similar, en mi caso utilice un quicktabs dentro de un panel tipo página; me gustaría saber qué aplicaste tú, por qué no se si lo que utilice es lo más óptimo.

Saludos
Antigona

Estoy muy satisfecho de encontrar este site.I quería darle las gracias por este gran lectura! Definitivamente disfrutando cada pedacito de ella y le he agregado un marcador a echa un vistazo a cosas nuevas que escribes.

Me alegro que haya sido de tu agrado. Sin embargo el link oculto con css no fue un detalle agradabe.

Saludos

Este tutorial esta muy bueno y bien explicado, es excelente idea que hallan propuestas de este tipo para ayudar a los que nos adendentramos en los primeros paso con drupal. Me gusta que se expliquen bien los pasos y las opciones de este CMS como las posibles variantes, sobre todo para aquellos que nos gusta "meter mano" en le codigo y personalizarlos. Me alegra que hayan personas que traduzcan del "chino reformado" al español para sacarle el jugo a estos formidables sistemas.

Algunas sugerencias de usabilidad para este sitio que si bien "se va pa' arriba" otro empujoncito a la sencillez no le caeria nada mal:
para avanzar por los pasos desde el primero hasta el último tuve que hacer unos malavares porque no estan "enganchados" no se encontran los clasicos links "siguiente y anterior". Para llegar hasta el paso 5 tuve que buscar los link en forma desordenada o por otras paginas que justo tenian ese link (de casualidad)

Creo que un menu bien simple con los pasos a un lado de cada página seria genial

Otra cosa algunos link a otros "sitios drupal amigos" no estaría nada mal y nos evitaría tener que seguir "googleando" buscando destrancar nuestras dudas (una opcion de busqueda en el sitio y ademas a google lo "catapultaria al estrellato", no es por desmerecer la valiosa informacion que brindas en este sito, pero creo que seria bueno que tambien compartas aquellos links que te ha servido para llegar a donde has llegado

Excelente sitio continua asi, que te daremos una mano en perfecionarlo, recuerda cuanto mas sencillo y facill sea, sera mas preferido, eso fue lo que me atrajo de este sitio.

Hola Alejandro:

Muchas gracias por tus comentarios.

Si, al sitio le faltan algunos ajustes, tengo planeado un rediseño integral del sitio, incluyendo theme, cuestiones de usabilidad, de performance y nuevos contenidos muy pronto.

Pero como siempre sucede, el tiempo no está de mi lado, y mi dedicación al sitio esta atada a mis tiempos libres, o sea cuando no trabajo o estudio (y solo aquellos tiempos libres en donde no hago las cosas que suelo hacer en mis tiempos libres, como vivir...)

Pero sí, la idea está, y me apunto los consejos que me diste. Esperemos tener pronto la nueva versión del sitio.

Saludos!