Как изменить текст кнопки сохранения узла?

10

Я нашел обсуждение некоторых методов для d6 здесь http://drupal.org/node/344802 о том, как изменить текст кнопки «Сохранить» узла на sg else.

Любые советы для d7? Я бы предпочел использовать форму API.

giorgio79
источник

Ответы:

19

Вы можете использовать модуль переопределения строк или использовать ловушку:

function yourmodule_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'name_of_form') {
    $form['actions']['submit']['#value'] = 'Your button text';
  }
}
Уве
источник
Спасибо, я хочу изменить его только для типа контента, поэтому переопределение строки не годится. Я попытался изменить код формы, но без изменений. Я проверил $ ​​form с помощью dpm, но у него нет массива submit, только #submit, который выглядит как sg else.
giorgio79
Это сработало для меня. $ Form_id уникален для формы отправки этого типа контента, поэтому он должен работать.
AndrewMRiv
для меня это была $ form ['ajax-submit'] ['# value'] = 'xyz', но я использую модуль afb для отправки узла через блочную форму.
SpiesInOrbit
6

Вот пример: я создал модуль с именем change_form_valuesи идентификатором формы моего типа контента content_type_test_node_form:

эта работа для меня в 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';
    }
}

эта работа для меня в 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';
    }
}

Я надеюсь, что информация будет полезной.

cigotete
источник
0

Я нашел отличный модуль для редактирования кнопок Node для этого, и он работает на самом деле из нашего окна, используя admin. Вот выдержка об этом со страницы проекта модуля:

Это простой маленький модуль, который позволяет изменять текст на кнопках «Сохранить», «Предварительный просмотр» и «Удалить» в форме узла.

qasimzee
источник
0

Для Drupal7 все просто:

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

Без дополнительных функций ...

ястреб
источник
Нах, тем you'ld перезаписать кнопку целого и сбросить другие возможные значения , указанные изначально ( #weight, #validate, #submit...). Вам лучше пойти только за #value, как написано в других ответах выше.
Leymannx
Я протестировал 3 формы моего сайта, и все они работают нормально ... Я думаю, что вы сказали, что это возможно, если вы используете какую-то функцию обратного вызова или функцию AJAX, связанную с кнопкой ....
Hawk