intentando crear un cck formater field, no consigo que ejecute la función del theme.

Events happening in the community are now at Drupal community events on www.drupal.org.
oskar_calvo's picture

El código.

Las funciones project_cckformatters_field_fomatter_info works y project_cckformatters_theme() funcionan. O por lo menos si le pongo un die(), se para la ejecución.

La función theme_project_cckformatters_curriculum es la que no hace nada..

<?php


/*
* Implementation of hook_field_formatter_info().
*
* Aqui definimos en un array las opciones que vamos a ofrecer en display fields
* los keys se usan para luego en hook_theme y theme_
*/

function project_cckformatters_field_formatter_info(){
 
//define el campo a ser formateado
 
$formatters = array(
   
'curriculum' => array(
     
'label' => t('Select custom project curriculum donwload'),
     
'field types' => array('filefield'),
     
'description' => t('Displays a link to download the curriculum.'),
    ),
  );

  return
$formatters;
}


/*
* Implementation of hook_theme().
*
* Declaramos nuestras funciones de theme_ de acuerdo a los keys en hook_field_formatter_info
*/
function project_cckformatters_theme() {
 
//define el tema que se utilizará en el formateo.
 
$theme = array(
   
'project_cckformatters_curriculum' => array(
     
'arguments' => array('element' => NULL),
    ),
  );

  return
$theme;
}


/*
* Theming functions for our formatters
*
* Y aqui ya hacemos lo que queremos. usar dsm($element) para ver que tienes para trastear.
*/
function theme_project_cckformatters_curriculum($element) {

  die(
'tema de cck');
 
// definimos la variable output
 
$output = '';

 
$output .= 'hola mundo';


  return
$output;
}
?>

Gracias

Oskar

Comments

formatter

tunic's picture

Yo diría que esto:

$theme = array(
    'project_cckformatters_curriculum' => array(
      'arguments' => array('element' => NULL),
    ),
  );

Debería ser esto:

$theme = array(
    'project_cckformatters_formatter_curriculum' => array(
      'arguments' => array('element' => NULL),
    ),
  );

Y

function theme_project_cckformatters_curriculum($element) {

Pasaría a ser:
function theme_project_cckformatters_formatter_curriculum($element) {

Es decir, añadir 'formatter' al nombre, tal y como parece en otros formateadores de CCK.
¿Puede ser?

Lo pruebo y te digo.Gracias

oskar_calvo's picture

comprobado. Funciona, era eso.

Gracias tunic.

Oskar

Tunic. siguiendo con el tema

oskar_calvo's picture

Tunic.

siguiendo con el tema del cck formatters.

Se puede montar un tpl para el formateo?

lo dejo sin tpl?

Estoy intentando pasar al archio.tpl.php las variables de la función de tema. Pero solo lo consigo mediante un preprocess, y dudo si hay que usar el preprocess o no.

Oskar

http://api.drupal.org/api/dru

manuel garcia's picture

http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hoo...

En tu hook_theme declaras 'template' => 'nombreficherosinextension',

Efectivamente las variables las preparas en el preprocess (que yo sepa).

Si no te hace falta el tpl no lo uses, ya que usar solo la funcion de theme_ es bastante más rapido de ejecutar.

Acuerdate de usar la funcion get_defined_vars() para ver que variables te llegan al tpl (con dpm()).

Con retraso. Gracias Oskar

oskar_calvo's picture

Con retraso.

Gracias

Oskar

Madrid

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: