Trabajando con CCK en el archivo template.php

Desde hace buen tiempo quería encontrar una forma de no tener que editar el archivo node.tpl.php para personalizar un campo generado por el modulo Content Construction Kit (CCK). Era una deuda que tenía que saldar algún día.

La oportunidad apareció hace unos días cuando desarrollaba una web. Como sabrán Drupal genera el contenido del archivo node.tpl.php totalmente completo con todo css y no queríamos estar manipulándolo.

Entonces busqué en el API de CCK ubicado en http://drupalcontrib.org y armé un snippet en mi archivo template.php de la siguiente manera:

function MY_THEME_preprocess_node(&$vars) {
 
  if ($vars['type'] == 'MY_CONTENT_TYPE') {
    $field_imagen = content_fields('field_my_image','my_content_type');
    $vars['content'] = content_view_field($field_imagen,$vars['node']);
    $vars['content'] .= $vars['node']->content['body']['#value']; 
  }
 
}

La variable $field_imagen captura la definición del campo y luego lo pasamos como parámetro en la función content_view_field que será la que cargue el contenido total del campo con todo su css respectivo. Finalmente no debemos olvidar asignar todo a la variable $vars['content'] para que se cargue en el archivo node.tpl.php como $content.

Leyenda:
field_my_image : es el nombre estandarizado por Drupal del campo que deseas.
my_content_type: es el tipo de contenido al que pertenece el campo