function panopoly_magic_ajax_form_callback in Panopoly 7
Replaces system/ajax for pane configuration preview callback to work with ctools multi step form.
1 string reference to 'panopoly_magic_ajax_form_callback'
- panopoly_magic_menu in modules/
panopoly/ panopoly_magic/ panopoly_magic.module - Implements hook_menu()
File
- modules/
panopoly/ panopoly_magic/ panopoly_magic.module, line 72
Code
function panopoly_magic_ajax_form_callback() {
list($form, $form_state, $form_id, $form_build_id, $commands) = ajax_get_form();
ctools_include('content');
ctools_include('modal');
if (isset($form_state['no_redirect']) && !isset($form_state['form_info'])) {
$form_state += array(
're_render' => FALSE,
'no_redirect' => !empty($form_state['ajax']),
);
$form = drupal_build_form($form_state['build_info']['form_id'], $form_state);
}
else {
// These ensure the class files/form definations are included.
$content_type = ctools_get_content_type($form_state['pane']->type);
$subtype = ctools_content_get_subtype($content_type, $form_state['subtype_name']);
$form = ctools_content_form($form_state['op'], $form_state['form_info'], $form_state, $form_state['plugin'], $form_state['subtype_name'], $form_state['conf'], $form_state['step']);
}
// Hack to set the 'triggering_element' when previewing field formatter
// settings (where it strangely doesn't get set).
if (empty($form_state['triggering_element']) && !empty($form_state['input']['_triggering_element_value']) && !empty($form_state['complete form']['buttons'])) {
foreach ($form_state['complete form']['buttons'] as $button) {
if (is_array($button) && isset($button['#value']) && $button['#value'] == $form_state['input']['_triggering_element_value']) {
$form_state['triggering_element'] = $button;
}
}
}
if (!empty($form_state['triggering_element'])) {
$callback = $form_state['triggering_element']['#ajax']['callback'];
}
if (!empty($callback) && function_exists($callback)) {
return $callback($form, $form_state);
}
}