Ich möchte einen neuen Feldformatierer für einen vorhandenen Feldtyp schreiben. Ich möchte keine vorhandenen Formatierer ersetzen, sondern eine neue Option anbieten.
Oder ist es besser, ein theme_preprocess_field () zu verwenden, um kleinere Änderungen vorzunehmen? Dies scheint jedoch schwieriger zu pflegen zu sein, und ich möchte die Optionen meiner Inhaltseditoren offen halten (und in der GUI).
Kann mich jemand auf ein Beispiel für den richtigen Weg hinweisen?
Sie können ein benutzerdefiniertes Modul entwickeln oder das Modul "Benutzerdefinierte Formatierer" verwenden.
Im ersten Fall müssen Sie ein Modul schreiben , das einige Drupal 7 Haken implementiert:
hook_field_formatter_info()
,hook_field_formatter_view()
undhook_theme()
.hook_field_formatter_info()
Wird verwendet, um den Formatierertyp zu deklarieren. Diese Funktion gibt ein Array mit der Formatierungsbeschreibung zurück. Der Schlüssel ist der Formatierungsname und enthält ein Array mit der Bezeichnung und den Feldtypen. Nachdem Sie implementieren müssenhook_field_formatter_view()
undhook_theme()
um die Vorlage zu definieren. Weitere Informationen zur Field Formatter-API finden Sie in den Dokumenten .Im zweiten Fall können Sie das Modul Benutzerdefinierte Formatierer verwenden , mit dem Sie benutzerdefinierte Anzeigeformatierer für jedes Feld erstellen können. Mit diesem Modul können Sie den Formatierer mit benutzerdefiniertem PHP-Code oder HTML-Code mit Token erstellen.
Ich schlage den zweiten Weg vor, da er sehr einfach zu bedienen und zu konfigurieren ist.
quelle