У меня есть одна форма, которая открывается в ctools ajax drupal 7. При нажатии кнопки сохранения этой формы она должна сохранить данные и закрыть всплывающее окно, а затем открыть одно новое всплывающее окно.Это новое всплывающее окно получает один идентификатор при открытии через ссылку.Как я могу это сделать.Я новичок в Drupal 7.
function save_and_open_popup2_callback($form, &$form_state)
ctools_include('modal');
ctools_modal_add_js();
$output=ctools_modal_form_wrapper('my_game_result_form',$form_state,$ID);
$commands = array();
$commands[] = ctools_modal_command_display('Title', $output);
print ajax_render($commands);
}
Я не могу получить $ ID или form_state внутри этого всплывающего окна.
$game_link = l('<div>New Game</div>', 'game/nojs', array('attributes' => array('class' => 'ctools-use-modal'), 'html' => TRUE));
$game_result_link = l('<div>Game 1</div>', 'game_result/nojs/'.$ID, array('attributes' => array('class' => 'ctools-use-modal'), 'html' => TRUE));
function my_game_menu() {
$items = array();
$items['game/%ctools_js'] = array(
'page callback' => 'my_game_callback',
'page arguments' => array(1),
'access callback' => TRUE,
'type' => MENU_CALLBACK
);
$items['game_result/%ctools_js/%'] = array(
'page callback' => 'game_result_callback',
'page arguments' => array(1,2),
'access callback' => TRUE,
'type' => MENU_CALLBACK
);
}
function my_game_callback($ajax, $ID){
if ($ajax){
ctools_include('ajax');
ctools_include('modal');
$popup_title = "First popup";
$form_state = array(
'ajax' => TRUE,
'title' => $popup_title
);
$output = ctools_modal_form_wrapper('my_game_form', $form_state);
if (!empty($form_state['ajax_commands'])) {
$output = $form_state['ajax_commands'];
}
print ajax_render($output);
}else{
return drupal_get_form('my_game_form');
}
}
function my_game_form($form, $form_state) {
$form['game'] = array(
'#type' => 'submit',
'#value' => t('Save and Open'),
'#name' => 'game',
'#disabled' => false,
'#ajax' => array(
'callback' => 'save_and_open_popup2_callback'
),
);
}
function save_and_open_popup2_callback($form, &$form_state){
/** process of save data ...*/
/** Open another popup and close my_add_edit_form popup */
}
function game_result_callback($ajax, $ID){
/*** will open popup of game result thriugh call back same as in
"my_game_callback" ***/
$output = ctools_modal_form_wrapper('my_game_result_form', $form_state);
print ajax_render($output);
......
}
function my_game_result_form($form, $form_state){
/* form for my_game_result popup*/
}
В соответствии с кодом у меня есть два модальных, который открывается нассылка на сайт .Теперь я также хочу, чтобы второе модальное всплывающее окно "my_game_result_form" открывалось, когда я закрывал "my_game_form" с помощью обратного вызова ajax.Второе всплывающее окно должно получить $ ID, чтобы я мог получать данные на основе $ ID. Что я должен написать в save_and_open_popup2_callback (), что полностью соответствует моим требованиям.