Blog

En nuestro blog queremos explicar las cosas que nos pasan, los proyectos que realizamos, compartir nuestra experiencia como empresa para aprender de la experiencia de nuestros lectores.

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):

<?php

function foo_field_formatter_info() {
  $formatters = array();
  $formatters['bar'] = array(
        'label' => 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à!

Comentarios

Aunque digas que "sencillo a

Aunque digas que "sencillo a la par que absurdo", no sabes como me ccabas de ayudar.
Gracias!

Enviar un comentario nuevo

El contenido de este campo se mantiene privado y no se mostrará públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato

Al enviar éste formulario, usted acepta la política de privacidad de Mollom.