Ändern Sie den Seitentitel auf der Seite "Knoten hinzufügen"

7

Welchen Hook / Filter muss ich verwenden, um den Seitentitel "Knoten hinzufügen" (Dieser Titel) zu ändern? Wenn Sie beispielsweise "/ node / add /" anzeigen, möchte ich den Titel von "Erstellen" in "Neu hinzufügen" ändern.

Citricguy
quelle

Antworten:

15

Es gibt verschiedene Möglichkeiten, wie Sie dies tun können, aber die Art und Weise, nach der Sie gefragt haben, würde hook_form_alter () verwenden :

<?php
function custom_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'mynodetype_node_form') {
    drupal_set_title('My new title');
  }
}
?>

Dies wäre in einem benutzerdefinierten Modul mit dem Namen custom.module ... drupal_set_title (), wenn es irgendwo auf der Seite geladen wird, wird der Titel entsprechend festgelegt. Sie sind im Grunde genommen in den Renderprozess für Knotenformulare eingebunden und sagen an dieser Stelle "Setzen Sie den Titel auf das, was ich will".

Wenn Sie den Titel weiter unterscheiden möchten, je nachdem, ob der Benutzer einen neuen Knoten erstellt oder einen vorhandenen Knoten bearbeitet , drucken Sie das Array $ form_state mit der Funktion dpm () des Devel- Moduls aus und prüfen Sie, ob es einen gibt Knoten-ID bereits oder nicht - falls vorhanden, bearbeiten Sie einen Knoten. Wenn nicht, erstellen Sie einen neuen Knoten. Stellen Sie den Titel entsprechend ein.

Während hook_form_alter () wahrscheinlich die robusteste Seite ist (falls jemand das Node-Add-Formular von einem anderen Ort als node / add / [type] aus betrachtet), können Sie auch den Pfad in hook_init () überprüfen und dort den Titel festlegen. oder von einer Vielzahl anderer Orte (in Drupal 7 vielleicht hook_page_alter ()).

geerlingguy
quelle
Wie kann ich feststellen, ob ein Formular neu ist oder bearbeitet wird? Wenn ich beispielsweise wollte, dass ein neuer Knoten "Neuen Knoten hinzufügen" sagt und der Knoten bearbeitet wird, "Diesen Knoten bearbeiten". Vielen Dank für die obige Antwort. Dies ist jedoch sehr hilfreich!
Citricguy
Überprüfen Sie, ob der Knoten bereits eine NID im Array $ form hat. Ich habe vergessen, welcher Wert die NID enthält, aber er ist dort oder der $ form_state ... Wenn eine NID vorhanden ist , bearbeitet der Benutzer den Knoten. Wenn nicht , ist der Knoten ein Knoten hinzufügen Formular ...
Geerlingguy
4

Ich hatte das gleiche Problem und musste dafür ein Modul schreiben.

Sie finden meinen Beitrag zu meinem Modul Node Add Title für Drupal 7

Mit Node Add Title können Sie den Titel der Knotenerstellungsseiten und der Knotenbearbeitungsseiten ändern.

Hoffe es kann helfen.

GoingDrupal
quelle