Почему мой обработчик отправки не вызывается, когда моя форма отправляется? Следующая функция вызывается из шаблона страницы ... в модальном окне бутстрапа ... так что модальные нагрузки при загрузке страницы. Я чувствую, что условия мешают обработчику отправки, или я ничего не возвращаю? Этот код находится в модуле для формы. Я использую обработчик отправки по умолчанию.Drupal Form Submit Handler не работает, но почему?
function winner_modal_form_communication($node) {
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
я тест, чтобы увидеть, если он уже был размещен, в противном случае две даты вычитается из поля, так как она будет называться дважды (один раз при загрузке, а затем один раз на посту). Если он уже опубликован (так как это означает, что они заполнили форму выигрыша), я распечатываю сообщение с подтверждением.
// WINNING DATES
if (!empty($node->field_win_dates{'und'}{0}{'value'})) {
$winDatesString = $node->field_win_dates{'und'}{0}{'value'};
$winDatesArray = explode(", ", $winDatesString);
}
// TODAYS DATE
$todaysDatePST = date("Y-m-d H:i:s");
// EVENT DATES
$eventDateUTC = $node->field_date{'und'}{0}{'value'};
$eventDateObject = new DateTime($eventDateUTC, new DateTimeZone('UTC'));
$eventDateObject->setTimezone(new DateTimeZone('America/Los_Angeles'));
$eventDatePST = $eventDateObject->format('Y-m-d H:i:s');
Я просто настраиваю некоторые переменные ... и затем некоторые условия.
// EXPIRED EVENT
if ($todaysDatePST > $eventDatePST) {
print "Sorry, this event has expired.<br /><button type='button' class='btn btn-default' data-dismiss='modal'>Continue</button>";
}
// WINNER
else if (($todaysDatePST > $winDatesArray[0]) && (!empty($winDatesString))) {
print "You've just won<br />TWO FREE TICKETS<br />to see " . $node->title . "!";
$form = drupal_get_form('winner_modal_form');
print drupal_render($form);
unset($winDatesArray[0]);
$newWinningDatesString = implode(", ",$winDatesArray);
$node->field_win_dates{'und'}{0}{'value'} = $newWinningDatesString;
node_save($node);
}
// NO WINNER
else {
print "You didn't win tickets to " . $node->title. ", but you can still learn more by pressing the continue button.";
print "<br /><button type='button' class='btn btn-default' data-dismiss='modal'>Continue</button>";
}
}
// WINNER CONFIRMATION
else {
print "Thank you! This is the confirmation modal window. That's right, you were the winner!<br /><button type='button' class='btn btn-default' data-dismiss='modal'>Continue</button>";
}
}
Если я удаляю вышеупомянутые условия, работает обработчик отправки.
function winner_modal_form_submit($form, &$form_state) {
dpm("It worked!");
}
Что я делаю неправильно? Любое понимание было бы очень благодарным (я новичок в программировании).
Ну, это более читаемо, но это не так. – know1