Обработчик отправки формы может только распечатать сообщение, используя drupal_set_message()
или записав сообщение в журнал с помощью watchdog()
.
Альтернативой является сохранение необходимых данных в сеансе и перенаправление пользователя (с помощью $form_state['redirect'] = 'page path';
) на страницу, где отображается содержание сеанса.
function firstmodule_menu() {
$items['the path for your page'] = array(
'page callback' => 'firstmodule_show_submitted_data';
// ...
);
return $items;
}
function firstmodule_form1_submit($form, &$form_state) {
$_SESSION['firstmodule_username'] = $username;
// ...
$form_state['redirect'] = 'the path for your page';
}
function firstmodule_show_submitted_data() {
// Populate $result with the string to show.
return $result;
}
Как примечание стороны, первый аргумент t()
должен быть литеральной строкой, а не строкой, полученной конкатенацией двух строк, как в вашем случае. Вы должны использовать заполнители, как в следующем коде.
drupal_set_message(t("The user is %username", array('%username' => $username)));
В Drupal 7 вместо возврата строки вы можете вернуть массив визуализации .
То, что вам нужно сделать, это иметь обратный вызов меню, в основном это будет страница, которую вы настроили, и отобразить информацию о ней.
Более подробная информация доступна здесь: http://api.drupal.org/api/drupal/includes!menu.inc/group/menu/7, и вам нужно больше узнать о hook_menu ()
Надеюсь, это поможет, скажите мне, если вам нужен пример.
источник