Me gustaría escribir un nuevo formateador de campo para un tipo de campo existente. No quiero reemplazar ningún formateador existente, pero ofrezco una nueva opción.
¿O es mejor usar un theme_preprocess_field () para hacer modificaciones menores? Pero esto parece ser más difícil de mantener y me gustaría mantener abiertas las opciones de mis editores de contenido (y en la GUI).
¿Alguien puede señalarme un ejemplo de la forma correcta de hacer esto?
puede desarrollar un módulo personalizado o utilizar el módulo "Formateadores personalizados".
En el primer caso hay que escribir un módulo que implementa algunas de Drupal 7 ganchos:
hook_field_formatter_info()
,hook_field_formatter_view()
yhook_theme()
.hook_field_formatter_info()
Se utiliza para declarar el tipo de formateador. Esta función devuelve una matriz con la descripción del formateador. La clave será el nombre del formateador y tendrá una matriz con la etiqueta y los tipos de campo. Después de que tenga que implementarhook_field_formatter_view()
yhook_theme()
para definir la plantilla. Puede encontrar más detalles sobre la API de formateador de campo en los documentos .En el segundo caso, puede usar el módulo Formateadores personalizados que permite crear formateadores de pantalla personalizados para cada campo. Con este módulo puede crear el formateador utilizando código PHP personalizado o código HTML con tokens.
Sugiero la segunda forma porque es muy fácil de usar y configurar.
fuente