I have a custom form, on submission of which I am calling ctools modal with a node form(content type: turn).
Code for Custom Form.
function _my_module_name_files_listing_form($form, &$form_state) { $form = array(); $form_state['storage']['values'] = $files; $form['download_submit'] = array( '#type' => 'submit', '#value' => t('Download'), '#submit' => array('_my_module_name_files_download_submit'), ); $form['create_segment'] = array( '#type' => 'submit', '#value' => t('Create Segment'), '#attributes' => array('class' => array('ctools-use-modal')), '#ajax' => array( 'callback' => '_my_module_name_files_create_segment', ), ); $form['upload_content'] = array( '#type' => 'submit', '#value' => t('Upload Content'), '#submit' => array('_my_module_name_files_upload_content'), ); $form['delete_submit'] = array( '#type' => 'submit', '#value' => t('Delete'), '#submit' => array('_my_module_name_files_delete_submit'), ); return $form; }
Callback code for ajax submission rendering node form.
function _my_module_name_files_create_segment($form, &$form_state) { global $user; $form_id = 'turn_node_form'; ctools_include('node.pages', 'node', ''); ctools_include('ajax'); ctools_include('modal'); ctools_modal_add_js(); ctools_add_js('ajax-responder'); $destination = 'node/1'; $form_state = array( 'ajax' => TRUE, 'title' => t('Form Title'), ); $node = (object) array( 'uid' => $user->uid, 'name' => (isset($user->name) ? $user->name : ''), 'type' => 'turn', 'language' => LANGUAGE_NONE, 'status' => TRUE, ); $form_state['build_info']['args'] = array($node); $output = ctools_modal_form_wrapper($form_id, $form_state); if (!empty($form_state['ajax_commands'])) { $output = $form_state['ajax_commands']; } if (!empty($form_state['executed'])) { $output = array(); // Redirect to destination. $output[] = ctools_ajax_command_redirect('node/8', 0); } print ajax_render($output); drupal_exit(); }
Problem: Node Form is coming fine on modal and hitting save button triggers ajax call but node form does not submit. Am I missing something here?
Sponsored by SupremePR