Nachdem ich auf Knoten ein "Geändert von" hinzugefügt habe , muss ich nun den Benutzer, der jeden Knoten geändert hat, im node_admin_content
Formular (at admin/content
) direkt neben der Spalte "Autor" anzeigen .
Ich habe es geschafft, dies einfach zu lösen, indem ich node.admin.inc geändert und nur 2 Codezeilen hinzugefügt habe:
...
'changed_by' => t('Changed By'),
...
...
'changed_by' => theme('username', array('account' => user_load($node->changed_by))),
...
Dies ist natürlich keine richtige Lösung, da es den Kern verändert.
Also habe ich dann versucht, das Formular zu ändern über:
function hook_form_node_admin_content_alter(&$form, &$form_state, $form_id) {
$form['admin']['nodes']['#header']['changed_by'] = t('Changed By');
// ... ?
}
Mit dpm
kann ich sehen, dass das Formular die Knoten in Optionen hat. Das Problem ist, dass dies das Ergebnis des Renderns der Knoten als Tabellenoptionen ist. Ich habe keinen Zugriff auf die ursprünglichen Knoten und möchte die Knotenabrufabfrage nicht erneut ausführen, um die Informationen "Geändert von" zu erhalten. Ich denke, dies im Formular-Hook zu tun, würde es nicht in der richtigen Ebene lösen. Oder ist es?
Was ist also eine gute Möglichkeit, das node_admin_content
Formular zu ändern , um weitere Daten hinzuzufügen, die auf Knoten vorhanden sind?
Ersetzen Sie einfach admin / content durch eine Ansicht und fügen Sie dann die gewünschten Felder hinzu. Admin Views erledigt das sogar für Sie.
quelle
hook_schema()
/hook_schema_alter()
Implementierungen?Ein wenig abseits des Themas, aber diese Antwort zeigt, wie Sie dies programmgesteuert tun können (z. B. indem Sie es als Modulaktualisierung in die Datei MY_MODULE.install einfügen).
Sie benötigen etwas mehr Arbeit, wenn Sie Ihr neues Feld vor dem letzten vorhandenen Feld hinzufügen möchten. Führen Sie es vor dem Ende des Arrays $ view-> display ['default'] -> display_options ['fields'] ein.
quelle