diff --git a/host.php b/host.php index b5ee06a93..4300ab545 100644 --- a/host.php +++ b/host.php @@ -581,9 +581,18 @@ function form_actions() { } } + // Legacy support for old version plugins + if (!isset($form_data['options'][get_request_var('drp_action')])) { + $save['drp_action'] = get_request_var('drp_action'); + $save['host_list'] = $ilist; + $save['host_array'] = $iarray; + } else { + $save = array(); + } + $form_data = api_plugin_hook_function('device_confirmation_form', $form_data); - form_continue_confirmation($form_data); + form_continue_confirmation($form_data, 'device_action_prepare', $save); } } diff --git a/lib/html_form.php b/lib/html_form.php index 926900947..2800dd8ce 100644 --- a/lib/html_form.php +++ b/lib/html_form.php @@ -1307,22 +1307,25 @@ function form_continue_confirmation($form_data, $plugin_hook = '', $save = array $iarray = $form_data['general']['item_array']; $ilist = $form_data['general']['item_list']; $drpval = get_nfilter_request_var($drpvar); + $poutput = ''; $form_name = 'form'; if (!isset($form_data['options'][$drpval]) && $plugin_hook != '' && cacti_sizeof($iarray)) { - top_header(); + $title = __('Proceed with Action'); - form_start($page); - - html_start_box($actions[$drpval], '60%', '', '3', 'center', ''); + if (!cacti_sizeof($save)) { + /* Legacy plugin form confirmation logic */ + $save['drp_action'] = $drpval; + $save['ds_list'] = $ilist; + $save['ds_array'] = $iarray; + } - /* Legacy plugin form confirmation logic */ - $title = __('Proceed with Action'); - $save['drp_action'] = $drpval; - $save['ds_list'] = $ilist; - $save['ds_array'] = $iarray; + // Trap the output + ob_start(); api_plugin_hook_function($plugin_hook, $save); + + $poutput = ob_get_clean(); } elseif (cacti_sizeof($iarray)) { $data = $form_data['options'][$drpval]; @@ -1369,9 +1372,11 @@ function form_continue_confirmation($form_data, $plugin_hook = '', $save = array html_start_box($actions[$drpval], '60%', '', '3', 'center', ''); - print ""; - print "

$message

"; - print ""; + if (isset($message)) { + print ""; + print "

$message

"; + print ""; + } if (isset($form_data['general']['header'])) { print "

"; @@ -1445,7 +1450,7 @@ function form_continue_confirmation($form_data, $plugin_hook = '', $save = array case 'checkbox': print ""; print ""; - print "

'; } + if ($poutput != '') { + print $poutput; + } + print ""; print "";