En Drupal cuando construimos un content type y añadimos fields al mismo, dependiendo el tipo de field, podemos elegir como dicha field va a mostrarse y donde se mostrará. Para seleccionar donde se mostrará y como tenemos que ir a la solapa de “Manage Display” en el editor del content type.
El orden se setea con drag an drop y dependiendo de la field podemos seleccionar como la field va a mostrarse usando un formatter. Los formaters leen el valor de la field y aplican un tema para renderizarla, el tema es que los formatters son límitados y los requerimientos no.
Si necesitamos aplicar un renderizado particular muchas veces caemos en la primera opción, editar la template, para que se muestren los valores como queremos. Una alternativa un poco mas elegante y que nos proveerá mas flexibilidad en el futuro es crear nuestros propios formatters.
Para implementar un formatter debemos utilizar los siguientes hooks.
Los fundamentales
hook_field_formatter_info : Meta Información para que podamos usar el formatter del editor.
hook_field_formatter_view : Para definir el renderizado del formatter
Los formatters pueden configurarse, estos para definir las opciones del formatter
hook_field_formatter_settings_summary : Muestra en el Manage Display, en la field, las settings.
hook_field_formatter_settings_form : Define el form de setting para la field, requiere el anterior para funcionar.
Recuerden que las settings son por cada field en el content type que usen el formatter, no son globales, y pueden variar de display a display (Default, Teaster, Etc).
Uno de yapa
hook_field_formatter_prepare_view : Para levantar mas información en la field si se necesita.
Les dejo un par de links que tienen ejemplos
http://www.failover.co/blog/drupal-7-custom-field-formatter-hooks-overview
http://www.paulbooker.co.uk/dru……-custom-drupal-field-formatter-existing-field
http://www.whenwhowhere.com/tech-blog/create-custom-field-formatter-drupal-7
https://api.drupal.org/api/drupal/modules%21field_ui%21field_ui.api….
https://api.drupal.org/api/drup…._field_formatter_view/7
https://api.drupal.org/api/dru….tion/hook_field_formatter_info/7
Leave a Reply