Posted by oskar_calvo on November 29, 2011 at 12:42pm
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
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
comprobado. Funciona, era eso.
Gracias tunic.
Oskar
Tunic. siguiendo con el tema
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
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
Con retraso.
Gracias
Oskar