Jak zmienić tekst przycisku zapisu węzła?

10

Znalazłem dyskusję z niektórymi metodami dla d6 tutaj http://drupal.org/node/344802 o tym, jak zmienić tekst przycisku Zapisz w węźle na inny.

Jakieś wskazówki dla d7? Wolałbym używać interfejsu API.

giorgio79
źródło

Odpowiedzi:

19

możesz użyć modułu przesłonięcia łańcucha lub użyć haka:

function yourmodule_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'name_of_form') {
    $form['actions']['submit']['#value'] = 'Your button text';
  }
}
uwe
źródło
Dzięki, chcę go zmienić tylko dla typu zawartości, więc zastąpienie łańcucha nie jest dobre. Próbowałem zmienić kod formularza, ale bez zmian. Sprawdziłem formularz $ przy pomocy dpm, ale nie ma on tablicy wysyłania, tylko #submit, który wygląda jak sg else.
giorgio79
To zadziałało dla mnie. $ Form_id jest unikalny dla formularza przesyłania tego typu treści, więc powinien działać.
AndrewMRiv,
dla mnie był to $ form ['ajax-submit'] ['# value'] = 'xyz', ale używam modułu afb do przesłania węzła przez formularz blokowy.
SpiesInOrbit
6

Oto przykład: utworzyłem moduł o nazwie, change_form_valuesa identyfikator formularza mojego typu treści to content_type_test_node_form:

ta praca dla mnie w 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';
    }
}

ta praca dla mnie w 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';
    }
}

Mam nadzieję, że informacje będą przydatne.

cigotete
źródło
0

Znalazłem do tego doskonały moduł edycji przycisków Node i działa on naprawdę w naszym pudełku za pomocą administratora. Oto fragment ze strony projektu modułu:

Jest to prosty, mały moduł, który pozwala zmieniać tekst w przyciskach „Zapisz”, „Podgląd” i „Usuń” w formularzu węzła.

qasimzee
źródło
0

Dla Drupal7 jest to proste:

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

Bez dodatkowych funkcji ...

Jastrząb
źródło
Nah, przez które you'ld nadpisać cały przycisk resetowania i ewentualne inne wartości podanych pierwotnie ( #weight, #validate, #submit...). Lepiej pójdź tylko na #value, jak napisano w innych odpowiedziach powyżej.
leymannx
przetestowałem z 3 formami mojej strony i wszystkie działają dobrze ... myślę, że to, co powiedziałeś, może być możliwe, jeśli używasz jakiejś funkcji wywołania zwrotnego lub funkcji ajax związanej z przyciskiem ....
Hawk