Wie ändere ich den Text der Schaltfläche zum Speichern von Knoten?

10

Ich habe hier http://drupal.org/node/344802 eine Diskussion mit einigen Methoden für d6 gefunden, wie man den Text der Schaltfläche "Speichern" des Knotens in sg else ändert.

Irgendwelche Tipps für d7? Ich würde es vorziehen, Form API zu verwenden.

giorgio79
quelle

Antworten:

19

Sie können das Modul zum Überschreiben von Zeichenfolgen oder den Hook verwenden:

function yourmodule_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'name_of_form') {
    $form['actions']['submit']['#value'] = 'Your button text';
  }
}
uwe
quelle
Vielen Dank, ich möchte es nur für einen Inhaltstyp ändern, sodass das Überschreiben von Zeichenfolgen nicht gut ist. Ich habe versucht, das Formular zu ändern, aber keine Änderung. Ich habe das $ -Formular mit dpm überprüft, aber es hat kein Submit-Array, nur ein #submit, das wie sg else aussieht.
Giorgio79
Das hat bei mir funktioniert. Die $ form_id ist eindeutig für das Übermittlungsformular dieses Inhaltstyps, daher sollte es funktionieren.
AndrewMRiv
Für mich war es ein $ form ['ajax-submit'] ['# value'] = 'xyz', aber ich verwende das afb-Modul, um einen Knoten über ein Blockformular zu senden.
SpiesInOrbit
6

Hier ein Beispiel: Ich habe ein Modul mit dem Namen erstellt change_form_valuesund die Formular-ID meines Inhaltstyps lautet content_type_test_node_form:

diese Arbeit für mich in Drupal 7:

function change_form_values_form_alter(&$form, &$form_state, $form_id) {
    //dsm($form_id); // to see form ID
    if ($form_id == "content_type_test_node_form") {
    $form['actions']['submit']['#value'] = 'New button text';
    }
}

diese Arbeit für mich in Drupal 6:

function change_form_values_form_alter(&$form, &$form_state, $form_id) {
    //dsm($form['form_id']['#id']);
    if ($form_id == "content_type_test_node_form") {
    $form['buttons']['submit']['#value'] = 'New button text';
    }
}

Ich hoffe, dass Informationen nützlich sind.

cigotete
quelle
0

Ich habe das ausgezeichnete Editiermodul für Node-Buttons dafür gefunden und es funktioniert wirklich mit der Admin-Box. Hier ist ein Auszug davon von der Projektseite des Moduls:

Dies ist ein einfaches kleines Modul, mit dem Sie den Text auf den Schaltflächen "Speichern", "Vorschau" und "Löschen" in einem Knotenformular ändern können.

Qasimzee
quelle
0

Für Drupal7 ist es einfach:

$form['buttons'] = array(
    '#type' => 'submit',
    '#value' => t('Your desire text here'),
    );

Ohne zusätzliche Funktionen ...

Falke
quelle
Nein, durch das you'ld die ganze Taste überschreibt und Reset möglich , andere Werte gegeben ursprünglich ( #weight, #validate, #submit...). Du solltest dich besser nur für das entscheiden #value, wie in den anderen Antworten oben geschrieben.
Leymannx
Ich habe mit 3 Formen meiner Website getestet und alle funktionieren einwandfrei. Ich denke, was Sie gesagt haben, könnte möglich sein, wenn Sie eine Rückruffunktion oder eine Ajax-Funktion verwenden, die mit der Schaltfläche zusammenhängt.
Hawk