Chciałbym napisać nowy formater pola dla istniejącego typu pola. Nie chcę zastępować żadnych istniejących formatów, ale oferuję nową opcję.
Czy może lepiej użyć theme_preprocess_field () do drobnych zmian? Wydaje się to jednak trudniejsze w utrzymaniu i chciałbym pozostawić otwarte opcje edytorów treści (i GUI).
Czy ktoś może wskazać mi przykład właściwego sposobu na zrobienie tego?
możesz opracować moduł niestandardowy lub użyć modułu „Niestandardowe formatory”.
W pierwszym przypadku trzeba napisać moduł, który implementuje kilka Drupal 7: haki
hook_field_formatter_info()
,hook_field_formatter_view()
ihook_theme()
.hook_field_formatter_info()
Służy do deklarowania typu formatyzatora. Ta funkcja zwraca tablicę z opisem formatera. Klucz będzie nazwą formatyzatora i będzie zawierał tablicę z etykietą i typami pól. Po zaimplementowaniuhook_field_formatter_view()
ihook_theme()
zdefiniowaniu szablonu. Więcej informacji na temat interfejsu API formatera pola można znaleźć w dokumentacji .W drugim przypadku możesz użyć niestandardowego modułu formatowania, który umożliwia tworzenie niestandardowych formatów wyświetlania dla każdego pola. Za pomocą tego modułu możesz utworzyć formatyzator przy użyciu niestandardowego kodu PHP lub kodu HTML z tokenami.
Sugeruję drugi sposób, ponieważ jest bardzo łatwy w użyciu i konfiguracji.
źródło