Gostaria de escrever um novo formatador de campo para um tipo de campo existente. Não quero substituir nenhum formatador existente, mas oferecer uma nova opção.
Ou estou melhor usando um theme_preprocess_field () para fazer pequenas alterações? Mas isso parece ser mais difícil de manter e eu gostaria de manter minhas opções de editores de conteúdo abertas (e na GUI).
Alguém pode me indicar um exemplo da maneira correta de fazer isso?
você pode desenvolver um módulo personalizado ou usar o módulo "Formatadores personalizados".
No primeiro caso, você tem que escrever um módulo que implementa algumas Drupal 7 ganchos:
hook_field_formatter_info()
,hook_field_formatter_view()
ehook_theme()
.hook_field_formatter_info()
É usado para declarar o tipo de formatador. Esta função retorna uma matriz com a descrição do formatador. A chave será o nome do formatador e terá uma matriz com o rótulo e os tipos de campo. Depois você tem que implementarhook_field_formatter_view()
ehook_theme()
para definir o modelo. Você pode encontrar mais detalhes sobre a API do formatador de campo nos documentos .No segundo caso, você pode usar o módulo Custom Formatters , que permite criar formatadores de exibição personalizados para cada campo. Com este módulo, você pode criar o formatador usando código PHP personalizado ou código HTML com tokens.
Sugiro o segundo caminho, porque é muito fácil de usar e configurar.
fonte