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.

Comentarios

Entradas populares de este blog

Debug con Xdebug y Aptana (y Notepad++)

Drupal sí, drupal no

CSS3 para mejorar el breadcrumb de un tema Zen