Translate to

Buscar

24 de enero de 2011

Agregar formato de fecha

Drupal 6.2. Para formatear un campo de tipo date (por ejemplo, en una vista), uno puede elegir de un combo. Normalmente, las alternativas incluyen las opciones Predeterminado, Long, Medio, Short. Pero es posible agregar más opciones.

Eso se puede hacer entrando a Administración, Configuración de sitio, Fecha y hora, Formatos, Configurar. En Añadir tipo de formato dar un nombre, por ejemplo DiaMes (es lo que aparece en el combo), y un tipo, por ejemplo diames (es para la máquina).

Luego, ir a Añadir formato. En la caja Cadena de formato ingresar uno siguiendo la sintaxis del manual php. Por ejemplo d/m para mostrar sólo día y mes en la forma dd/mm.

Finalmente, volver a Configurar y, en el combo del tipo de formato que definimos (Formato de fecha DiaMes), elegir el formato que acabamos de crear.

Copiando un campo CCK

Hoy, en un tipo de contenido llamado Trabajo tenía un campo tipo date llamado Duración (field_duracion), para guardar las fechas Desde y Hasta.

Por diversas razones (una era que no era posible que Hasta guardara un valor vacío si Desde era obligatorio), decidi usar dos campos de tipo date que se llamaran Inicio (field_inicio) y Terminado (field_terminado).

Para pasar los valores de un campo a otro, exploré cuales eran los nombres de las tablas y campos involucrados, y cuáles eran las tablas que cambiaban después de una inserción con la interfaz. Encontré que, fuera del cache y tablas similares, cuando se hacía una inserción sólo se agregaba un registro en la tabla content_type_trabajo.

Así que, usando phpmyadmin, ejecuté:

UPDATE content_type_trabajo SET
field_inicio_value=field_duracion_value,
field_terminado_value=field_duracion_value2

Limpié el cache y pude ver los valores en los nuevos campos.

Luego, eliminé el campo Duración.

Esta operación sería más fácil si CCK tuviera alguna opción de renombrar campos (uso drupal-6.2). Aunque hay un plugin beta para eso, preferi hacerlo de este modo.

Otra cosa que noté es que sería conveniente que CCK permitiera también desactivar un campo. Por ejemplo, me hubiera gustado tener desactivado Duración unos días, para ver que todo marchaba bien, antes de eliminarlo.

12 de enero de 2011

Yendo con Drupal

En desarrollo web, uso habitualmente HTML, CSS y Javascript. También un poco de retoque de imágenes y Flash.

Al ver un site, es interesante imaginar la secuencia de pasos que uno podría seguir para hacer algo similar.

Se pueden aprender muchas cosas al intentarlo. También ayuda a responder si uno puede hacer algo, qué tan extensa es la tarea y en cuánto tiempo se podría realizar.

Aunque el resultado que se visualiza sea el mismo, puede haber muchas formas de codificar un site y de producir ese código. Sin embargo, con el tiempo, uno va notando que hay maneras estándar de organizar los archivos y el código fuente, y también la producción de éstos. Esa especie de orden establecido ayuda a que un desarrollador pueda compartir su trabajo con otros. O incluso consigo mismo, porque después de un tiempo hasta el propio código puede parecer un recuerdo ajeno. Cuanto más claro y evidente sea, mejor. Y compartir cosas ayuda a que éstas evolucionen más rápido.

Uno de los problemas que encuentro a la hora de aprender a usar un framework como Drupal es el volver a aprender cómo hacer las mismas cosas que puedo hacer con otro framework.

Mi framework más simple consiste en ir construyendo el site a partir de un index.html vacío e ir implementando funcionalidades capa por capa. Voy enlazando estilos, declarando bibliotecas, esbozando la estructura, y completando las cosas poco a poco, haciendo y probando, hasta que queda completo. Y hacerlo de modo que sea relativamente simple cambiar, quitar o agregar algo despúés, que es lo usual.

Tiendo a pensar un site en términos de ese framework mínimo. A imaginar cómo lo construiría con ese framework. Puede ser simple, ordenado, disciplinado. Pero es como ir descalzo. Uno puede caminar. Pero no puede correr, al menos no muy rápido. Ni ir demasiado lejos, a menos que tengas alas.

Un framework como CodeIgniter o CakePHP puede ser como tener zapatillas o botas. Puedes hacer carreras, maratones, campo traviesa, quizas cruzar un pantano, escalar o esquiar. Pero, ¿qué tan lejos puedes llegar?.

Un framework como Drupal, en cambio, puede ser como ir en un automovil primitivo. Vas sentado mientras las ruedas giran y te llevan. Tiene un motor. Puedes agregar cosas como bocinas, luces, o una carroceria más bonita. Con algo de pericia puedes incluso mejorar el motor y darle mas potencia. Quizás a veces te sobrepase alguien corriendo o a caballo pero, a la larga, puedes llegar más lejos y hacer más cosas. Es lo suficientemente simple como para que lo comprenda un aficionado. Es lo suficientemente pequeño como para no necesitar caminos, o para ser empujado o remolcado fácilmente, si fuera necesario.

Siguiendo la analogía, me gustaría mucho un framework que fuera como una bicicleta. Un mecanismo relativamente simple y ligero que magnifique nuestro esfuerzo (tambien seria interesante ir contando con motocicletas, botes, veleros, alas deltas y avionetas). Aún ahora, la bicicleta sigue siendo el medio de transporte más eficiente. Muchas veces permite llegar a dónde no llega un automovil. Además, puede ser divertido avanzar sin el ruido de ningún motor, sintiendo la brisa en la cara. Ojalá haya alguna versión de Drupal así también :)


Más artículos