Crear un nuevo formatter para un campo CCK en Drupal 6

Un formatter permite seleccionar como se mostrará un campo CCK en diferentes lugares. Muchas veces los formatters que vienen configurados por defecto no nos sirven. Para desarrollar un formatter personalizado se deben implementar tres hooks:

  • [module]_field_formatter_info: registra el nuevo formatter en el sistema, devuelve un array con nombres, descripciones, tipos a los que se aplica el formatter, etc.
  • [module]_theme: registra las funciones theme encargadas de renderizar el campo. Debe registrar la función siguiente.
  • theme_[module]_formatter_[formatter]: una función para cada formatter, renderizan el campo y son las funciones theme registradas en la función anterior.

Por ejemplo, en un módulo de nombre "foo" un formatter sencillo de nombre "bar" que renderizará una cadena de texto en vez del valor de un campo (sencillo a la par que absurdo):

 t('Bar'),
        'field types' => array('text'),
        'multiple values' => CONTENT_HANDLE_CORE,
  );
  return $formatters;
}

function theme_foo_formatter_bar($element) {
  return "Hello, Bar!";
}

function foo_theme($existing, $type, $theme, $path) {
  return array(
    'foo_formatter_bar' => array(
      'arguments' => array('element' => NULL),
    ),
  );
}

Et voilà!

Contacto

¿Te interesan nuestros servicios?

Contáctanos