Tutoriales
Curso de Drupal - Primera parte
Curso de Drupal - 01 from ivan mejia on Vimeo.
Despues de algun tiempo logre subir esta primera parte del curso que di en el Work shop Camp Mexico
Subir un sitio al hospedaje
Por correo me han preguntado como mover un sitio que esta siendo desarrollado localmente a su hospedaje. Si bien cada ambiente tiene sus detalles creo que estos seria más o menos los pasos:
1- Tener la misma versión de Drupal tanto localmente como en linea
2- Tener los mismos módulos de los dos lados
3- Crear un respaldo de la base de datos local
4- Instalar el respaldo de la base de datos sobre la base de datos del sitio en linea estos dos últimos pasos se pueden hacer con phpmyadmin (si te gusta usar la terminal también se puede)
5- Copia todos los archivos de imágenes o attachments que tengas, puede variar mucho su ubicación dependiendo como los subas, desde en una carpeta de Files directamente en raíz hasta en la carpeta de files.
Teóricamente con estos pasos puedes tener tu sitio listo en el hospedaje.
¿Se les ocurre alguna otra cosa a considerar?
Migrando un blog a Drupal
Uno de mis primeros sitios fue un blog llamado tantascosas.com lo hice hace mucho tiempo, en un sistema que en su momento ofrecía varias ventajas sobre wordpress. El problema es que con el tiempo el proyecto dejo de avanzar y la publicación del blog resultaba cada vez más difícil, sobre todo a la hora de agregar un bloque nuevo al lado de los textos, si se quería agregar algo, se tenia que ir directamente a la plantilla y añadir el código para que apareciera. Con Drupal el asunto es mucho más sencillo.
La cuestión era como mover aproximadamente 400 posts, en muchos casos con imágenes o ligas a vídeos. La solución fue usar dos módulos que trabajan en conjunto Table Wizard y Migrate, el primero analiza y convierte una tabla de mysql a una view que es usada por el modulo Migrate para transformar la información de la tabla en nodos, comentarios o hasta términos de taxonomías.
Lo primero fue identificar las tablas que se usarían, al final escogí solo una tabla que contenía todos los textos (con sus ligas) y los títulos de los mismos, una vez exportada de la base de datos original, la importe con phpmyadmin a la base de datos de Drupal

Es importante aclarar que todo el proceso lo hice local y solo hasta el final subí el resultado a el sitio original.

Una vez importada la tabla, me fui a la sección de Table Wizard en la administración de contenido y busque en la lista de tablas disponibles el nombre de la tabla que usaría y la añadí, al hacer esto el modulo analiza la tabla e indica si encuentra algún problema

si no marca nada, se selecciona la tabla y se toca el botón de export views definitions for select tables.
Esto genera el código de una view

Si se va a la sección de views se pueden ver las views creadas al seleccionar varias tablas

A estas views no se les tiene que hacer nada, solo verificar que existen, el siguiente paso es ir al modulo de Migrate
este se encuentra también en la sección de administración de contenido, en se entra a la sección de Content sets

Aquí lo que se selecciona es el view que se usara, se le asigna un nombre y se le indica en que se convertirá por ejemplo un nodo. hasta abajo esta un botón de añadir (add)

Esto envía a una pantalla donde se muestra primero las columnas que tiene la tabla original, en medio se da la opción de poner un valor general y a la derecha se muestra en que valor se convertirá cada columna por ejemplo si se convertirá en el titulo del nodo o en el teaser o en el cuerpo de texto.
Una vez definidos estos campos se pasa a la sección de Process donde se selecciona la tabla (en realidad view) que se quiere procesar

Se pueden asignar algunos valores, por ejemplo dar un numero de muestra, de ese modo si se tienen 400 post no se convierten todos de una vez si no que se convierten unos cuantos y se ve cual es el resultado.
En el caso de este blog los 400 posts pasaron rapidamente.

Al final toda la base de datos la importe a una instalación nueva de Drupal en el sitio original y paso casi todo
perfectamente, tres errores faltaron por buscar solución, el primero que el orden de los post no fue respetado, abra que buscar más a detalle como hacer que se respete el orden, el segundo es que automáticamente el teaser de Drupal me asigno una cantidad de caracteres que no me muestra las imágenes, se tiene que entrar a cada post para ver las imágenes o vídeos, finalmente más por un facilidad que otra cosa, ya no intente ligar los post a categorías, esto lo tendré que hacer a mano, a no ser que encuentre, una manera de seleccionar muchos artículos y signarles una.
Traducir terminos uno por uno
Al tener Drupal traducido al español se encuentra uno con botones o partes de la interfaz que no estan traducidos, esto tiene que ver con que algunas partes de la traducción no estan terminadas o bien se cargo un modulo que no tiene traducción propia.
Para traducir un termino se tiene que entrar a la sección de traducir interfaz (translate interface) y tocar en la pestaña de buscar (search) en ella se escribe el termino y se selecciona el idioma al que se quiere traducir y si se tiene que buscar este termino en la traducción ya hecha o en lo que no tiene traducción, a veces (y lamentablemente) se puede uno encontrar con textos sin traducir dentro de lo que se supone ya esta traducido. Un detalle importante a tomar en cuenta es que se debe tener en cuenta es que el termino o la frase tiene que incluirse tal cual esta escrita, pues la búsqueda toma las mayúsculas.
Desactivando fckeditor en un campo de texto
Muchas veces se requiere que el editor WYSIWYG este desactivado en un campo de texto, ya que interfiere con el funcionamiento del mismo ya que agrega código html.
En el caso del editor fckeditor abajo de cada campo de texto se ve este mensaje:

Que indica cual es la ruta con la cual se excluye ese campo, existe la opción de colocar el nombre del campo o bien la ruta del mismo, esto se hace en los profiles de fckeditor en la administración, cada profile tiene una sección que se llama parámetros de visibilidad (Visibility settings)

En el existen dos campos donde se coloca o bien el nombre del campo o la ruta del campo a excluir, se tiene que poner una ruta por renglón.
Drupal y flash
Lo más básico
En su nivel más sencillo un archivo de flash dentro de Drupal no es si no un archivo más, como puede ser una imagen, un audio o un pdf. Es posible integrar dentro del cuerpo de un nodo un SWF pegando el código html que genera flash, todo lo que esta dentro de <object> </object> se tiene que tener dos cosas en cuenta: primero se debe revisar que formato de entrada (input format) se esta usando, si es el html filtrado no se vera el flash. Segundo, si se copia el código para que se vea el archivo swf se tiene que copiar en raiz, a no ser claro que se edite la dirección en el código html.

Una mejor manera de insertar un flash es instalando un editor wswyg como es fckeditor que traen un botón que sirve para insertar archivos swf y que resuelven la parte de tener que colocar el código html y mantiene todos los archivos (imágenes, swf, pdfs) dentro de la carpeta de sites y no se deja regados los archivos swf en raiz.
También existe un module que se llama flashnode que añade un tipo de contenido llamado flash y permite agregar un nodo para cada flash, puede ser una solución limitada, pero útil.
Audio y video players
Un uso muy especifico y util de flash esta en usarlo como reproductor, generalmente más que desarrollarse un player nuevo se usan los muchos que ya existen como son el conocido 1pixelout player de audio, originalmente creado para wordpress o bien JW FLV Player o Flowplayer para reproducir video.
Existen varios módulos en Drupal que permiten interactuar con estos reproductores como son SWFtools, flashvideo o jquery media, en muchos casos su función no es reproducir archivos swf, si no usar un reproductor desarrollado en flash y también reproducir archivos FLV (video en flash) u otro tipo de archivos de audio o video.
Por separado estaría el modulo Embedded Media Field que si bien no tiene como función básica reproducir los archivos flv dentro del sitio, permite integrar una gran cantidad de fuentes de video y audio, los dos ejemplos más claros serian vídeos de youtube y de vimeo.
Charts y Diapositivas.
Existen varios módulos que permiten conectar proyectos que usan flash para desplegar información y aprovechar
para gráficas esta el modulo de charts que permite integrar el proyecto de open flash charts
Si bien el despliegue de imágenes se soluciona mejor con CCK y JQuery; Para mostrar imágenes también existen módulos que integran soluciones ya hechas en flash como es Simpleviewer, el modulo que permite esto se llama flash gallery
Comunicación
El nivel más sofisticado de interacción entre flash y drupal esta con modulos como amfphp y services en conjunto, permiten comunicar información entre Drupal y un archivo de flash y de vuelta. si bien entro en terrenos que poco conozco, hasta donde entiendo, lo que se logra es hacer interactuar las dos partes, por ejemplo crear campos en flash y pasar la información a Drupal o bien usando drupal para recopilar datos y desplegarlos usando flash
existe una presentación que desarrolla mejor el tema
Flex y Drupal
todo este mundo lo conozco aun menos, pero pongo algunas ligas para empezar a investigar
de entrada el showcase de flex esta desarrollado con Drupal para la publicación y flex (y flash?) para el frontend
esta el articulo
Creating Drupal sites with Flash or Flex
http://www.adobe.com/devnet/flash/articles/drupal_flash.html
El grupo de services http://groups.drupal.org/services/
Terminaria mencionando un libro que se llama flash with Drupal que da un panorama más a fondo de como desarrollar diferentes tipos de proyectos con estas dos tecnologías.
CCK, imagecache y Thickbox
Este es una explicación de como usar estos módulos para crear imágenes con diferentes tamaños y presentaciones.
CCK
para empezar se requiere tener instalado el modulo de CCK, FileField, imagefield para poder crear un campo que permita subir una imagen directamente a un nodo. Una vez instalados estos módulos y activado el modulo de upload para permitir que los usuarios suba archivos, se tiene que ir a la sección de tipos de contenido y o bien crear un nuevo tipo de contenido, por ejemplo un tipo de contenido que se llame imagen para identificar muy bien su uso, o bien usar un tipo de contenido ya existente como story o page.

Cuando se ha activado el modulo CCK aparece una nueva opción en los tipos de contenidos creados, es la opción de configurar los campos.
Quizás vale la pena explicar para que sirve CCK. Es un modulo que sirve para crear tipos de contenido a la medida, esto se logran añadiendo campos nuevos a los que tradicionalmente tiene un nodo como son el titulo y el cuerpo de texto, con CCK es posible añadir un campo para subir imágenes o audio, o agregar un campo para poner un texto por separada, por ejemplo un precio o una dirección o hasta crear campos que hace cálculos o despliegan listados a seleccionar.
En este caso usaremos el modulo imagefield para subir imágenes y asignarles diferentes tamaños y formas de desplegarse.

Al entrar a la opción de Manejar campos se ven los campos que generalmente tiene un nodo y en la parte de abajo se ven dos opciones una para crear un nuevo campo y otra para agregar un campo ya existente.
.jpg)
Como se ve en la imagen de arriba, se nombra el campo y se selecciona el tipo de información que se guardara y de que manera se editara ese campo en este caso se selecciona imagen e imagen. los tipos de campos que se pueden seleccionar depende de los módulos que se tengan instalados en este caso por ser imagefield nos permite escoger imágenes. Al apretar el botón de guardar aparecerá una forma donde se configura el campo, se asignan cosas como que tipo de terminaciones pueden tener el archivo o que peso máximo se permite.
ImageCache
Este modulo sirve para manipular imágenes y crear configuraciones que puedan ser usadas por otros módulos en este caso por CCK, con imagecache es posible hacer cosas como reducir las imágenes que se suben a un tamaño determinado ya sea en pixeles o en porcentaje, también es posible recortar las imágenes a una proporción determinada, también se pueden hacer cosas como des saturar o rotar una imagen.
Es importante saber que para que funcione el modulo se requiere tener activada la opción de clear urls, así como el modulo imageapi

Al entrar por primera vez a la configuración de imagecache se tiene que crear un nuevo preset, se pueden crear la cantidad que uno necesite, puede tenerse un para crear miniaturas y otro para reducir el tamaño de las imágenes y otro para ajustarlas a un tamaño particular etc. En cada preset se asigna la action que se realizara y dependiendo la action aparece la configuración por ejemplo para definir el tamaño de la imagen, es posible tener varias action por cada preset, en la parte de abajo de cada preset se ve un logo de Drupal en el que se muestra el resultado, un logo a un tamaño especifico o bien recortado dependiendo del action que se use, si este logo no aparece indica que imagecache no esta funcionando.
Thickbox

Este es un modulo que permite usar una libreria (¿efecto?) de jquery que abre las imágenes con una animación y en una ventana separada que se sobre impone al contenido, con lo que se puede tener una vista de la imagen original en un buen tamaño y cerrarla cuando se desea seguir navegando.
Este modulo solo requiere ser activado, si bien es posible en su configuración hacer algo muy interesante que es asignarle un preset de imagecache con lo cual se puede por ejemplo darle un limite al tamaño de la imagen.
De regreso a el tipo de contenido
Ya configurado un preset de imagecache y activado el modulo de thickbox, se regresa a la sección de tipo de contenido y se entra a el tipo de contenido donde tenemos el campo de imagen, se vuelve a entrar a la liga de manejo de campos y se toca en la tercera pestaña que dice despliegue de campos (display fields).

En esta pestaña se define de que manera se verán los campos cck que se han activado, se define desde si se mostrara o no la etiqueta que se le asigno al campo (digamos que el titulo de campo) de que manera se desplegara en el teaser y de que manera se desplegara en el nodo. Para nuestro ejemplo seleccionaremos thickbox con un preset de miniatura que se creo en imagecache. al definir de esta manera cuando se muestra la imagen es en una versión pequeña y cuando se le da click aparece la imagen en su tamaño original.
Borrar archivos
A veces cuando se borra una instalación de Drupal quedan algunos archivos que no se pueden borrar generalmente son los archivos default-settings.php y settings.php, muchas veces desde la administración del sitio se pueden borrar estos archivos, pero si no desde el programa de FTP cambiar a chmod 755 cada archivo y cada folder que no se borra ¿Alguien sabe otra manera?
Existe una
al respecto en el sitio de Drupal.
Formatos de entrada
Esta es una explicación de algo relativamente sencillo de ajustar, pero que a veces resulta en un dolor de cabeza. Drupal trae por default dos filtros del código que se coloca cuando se crea un nuevo nodo.
Con estos filtros o mejor dicho configuraciones se le da formato a el código html o simplemente al texto que se insertar, filtrando o de plano prohibiendo el que se coloque algún código que afecte a la pagina o simplemente etiquetas que no se desea que se usen.

Dos son los formatos que existen trae Drupal al ser instalado, Filtered HTML y Full HTML, el primero prácticamente implica tener un texto simple que no permite insertar imágenes o estilos o colores a el texto. Este es el estilo que trae por default Drupal y generalmente es mejor cambiarlo en la administración en la sección de Configuración del sitio en la sección de Input format En ella aparece una pagina como la que se ve arriba se debe seleccionar Full HTML para que al escribir un nodo nuevo se puedan insertar imágenes.

También dentro de cada formato de entrada es posible configurar que filtros se usan, por ejemplo en la imagen de arriba se muestra en filtro html que trae un filtro para corregir el código html para cortar los párrafos y para reconocer direcciones de correo y paginas web y colocarles automáticamente la liga.
También en la pestaña de Rearrage (reajustar) es posible reacomodar en que orden se aplican estos filtros, algunos módulos sobre todo los que permiten aplicar algún tipo especifico de etiqueta para hacer que se inserte algo dentro de un nodo requieren ajustar el orden de los filtros para poder hacer que funcionen.

Para finalizar, en la forma para crear un nodo nuevo abajo del campo body es posible ver una pestaña de input format que muchas veces cuando no se ha configurado apropiadamente se tiene que esta cambiando en cada nodo, con el cambio adecuado simplemente se tiene que soportar que siga apareciendo.
Argumentos de Views

Bien interesante el video tutorial de como usar la parte de arguments en el modulo de Views que esta en gotdrupal.com.
Para quien no lo sepa Views es uno de los tres módulos que creo se volverán parte del core de Drupal en algún momento. Views permite crear listados y paginas personalizadas con todo tipo de datos cosas del estilo, los últimos diez post de un usuario en la categoría tal. En el caso de este video se explica como hacer eso exactamente hacer que las listas dependan de el usuario.