Wie kann ich einer Ansicht, die mit anderen Feldern berechnet wird, ein neues Feld hinzufügen?
Gibt es eine Möglichkeit native Ansichten dies zu erreichen?
Wenn die ursprüngliche Ansicht die Zeile zurückgibt: X | Y | Z
Und ich habe eine Funktion, die neue Daten berechnet: $new = do_something(X, Y, Z);
Wie kann ich $ new als vierte Spalte einfügen, um Folgendes zu erzielen: X | Y | Z | $new
Ich habe versucht, eine Ansichtsvorlage zu verwenden, um dies zu erreichen, bin aber gespannt, ob es einen besseren Weg gibt, dies mit Ansichten-Hooks oder einem anderen Modul zu tun.
Welche Vorlagen, Hooks oder Module sind dafür am besten geeignet?
Sie können Ihren eigenen Ansichtsfeldhandler in einem benutzerdefinierten Modul erstellen. Implementieren Sie hook_views_api und hook_views_data_alter (& $ data), als Sie Ihren eigenen Feldhandler schreiben können.
quelle
Sie können
hook_views_data
in einem benutzerdefinierten Modul verwenden. Die Implementierung dauert etwas länger, ist jedoch eine sehr modulare Lösung, da Sie ein VIRTUELLES Ansichtsfeld erhalten.Deklarieren Sie Ansichten API-Version in Ihrer
MODULE_NAME.module
DateiDatei
MODULE_NAME.views.inc
mit Inhalt hinzufügenDatei
MODULE_NAME_handlers.inc
mit Inhalt hinzufügenIhre
MODULE_NAME.info
Datei sollte ähnlich aussehenAktivieren Sie Ihr Modul (oder bereinigen Sie Ihr Modul,
class registry
wenn Sie ein vorhandenes / aktiviertes Modul ändern), und Sie sollten in der Lage sein, das aufgerufene virtuelle Feld anzuzeigen / hinzuzufügenVirtual views field from X Y Z
Dies kann verwendet werden und hat die Vorteile aller anderen regulären Ansichtsfelder.
quelle
Ich denke, Ihre beste Option ist die Verwendung des Moduls views_customfield . Auf diese Weise können Sie benutzerdefinierte Felder (einschließlich PHP) für eine Ansicht definieren, ohne dieses Feld an anderer Stelle haben zu müssen (z. B. Inhaltstyp).
Wenn Sie Drupal 7 verwenden, wird dies jetzt als Views PHP bezeichnet, da einige der Funktionen im neueren Views-Modul enthalten sind
quelle