Как удалить кнопку отправки из определенной веб-формы Drupal - PullRequest
5 голосов
/ 08 марта 2011

Я хотел бы удалить кнопку отправки из определенной веб-формы Drupal, возможно ли это, и если да, то как мне это сделать?

Я также хотел бы удалить предыдущую кнопку, если это возможно, из той же формы.

Ответы [ 6 ]

7 голосов
/ 08 марта 2011

Вам нужно нацелить и изменить эту форму с помощью hook_form_alter (), как указано @ googletop

Чтобы отменить отправку, что-то вроде этого в пользовательском модуле будет работать:

<?php
function my_custom_module_form_alter(&$form, &$form_state, $form_id) {

  if ($form_id == 'webform_client_form_130') {
    if ($thiscondition && $thatcondition){
      unset($form['actions']['submit']);
    }
  }
}
?>

То же самое для "предыдущей" кнопки, вам просто нужно найти ее в массиве форм

4 голосов
/ 12 декабря 2012
  1. Скопировать файл webform-form.tpl.php
  2. Переименуйте его webform-form-{nid}.tpl.php, где nid равен идентификатору вашего узла
  3. Редактировать - добавить только одну строку после print drupal_render($form['submitted']);,
    добавить эту строку: unset($form['actions']['submit']);

Это работает для меня.

1 голос
/ 08 сентября 2011

Если вы хотите быстро исправить прототип и т. Д., То вы можете просто спрятать кнопку в CSS.

.block-webform .form-actions {
visibility:hidden;
}

Невидимая кнопка по-прежнему будет занимать пробел, но вы не сможете ее увидеть.

1 голос
/ 08 марта 2011

Вы можете изменить любую форму в drupal, используя hook_form_alter.

0 голосов
/ 07 апреля 2015

Спасибо за это и за меня, решение Этно сработало: другие почему-то не сработали.

Единственное, что я хотел бы добавить к этому, это то, что упомянутый файл находится в "/sites/all/modules/webform/templates/webform-form.tpl.php", а НЕ в файле "/ drupal / sites / all /modules/webform/templates/webform-form.tpl.php "(если у вас есть такой файл) - мне потребовалось время, чтобы понять это:)

0 голосов
/ 02 октября 2013

Я использовал эти простые строки php в webform-form.tpl.php, потому что создание webform-form-{nid}.tpl.php или webform-form-[nid].tpl.php (как указано в файле шаблона) НЕ работает.Поэтому я просто использовал условие if для $nid веб-формы, просто чтобы сбросить кнопку отправки на определенных узлах веб-формы.

print drupal_render($form['submitted']);
$arrayWithoutSubmitButton = array( 29, 30, 31, 32);
if( in_array( $nid, $arrayWithoutSubmitButton)){
    unset($form['actions']['submit']);
}
...