/** * Generate the HTML code for the monitoring settings panel. * * @param string $api_key The CloudProxy API key. * @return string The parsed-content of the monitoring settings panel. */ function sucuriscan_monitoring_settings($api_key = '') { $template_variables = array('Monitoring.APIKey' => '', 'Monitoring.SettingsVisibility' => 'hidden', 'Monitoring.SettingOptions' => ''); if ($api_key) { $settings = SucuriScanAPI::get_cloudproxy_settings($api_key); $template_variables['Monitoring.APIKey'] = $api_key['string']; if ($settings) { $counter = 0; $template_variables['Monitoring.SettingsVisibility'] = 'visible'; $settings = sucuriscan_explain_monitoring_settings($settings); foreach ($settings as $option_name => $option_value) { // Change the name of some options. if ($option_name == 'internal_ip') { $option_name = 'hosting_ip'; } $css_class = $counter % 2 == 0 ? 'alternate' : ''; $option_title = ucwords(str_replace('_', chr(32), $option_name)); // Generate a HTML list when the option's value is an array. if (is_array($option_value)) { $css_scrollable = count($option_value) > 10 ? 'sucuriscan-list-as-table-scrollable' : ''; $html_list = '<ul class="sucuriscan-list-as-table ' . $css_scrollable . '">'; foreach ($option_value as $single_value) { $html_list .= '<li>' . $single_value . '</li>'; } $html_list .= '</ul>'; $option_value = $html_list; } // Parse the snippet template and replace the pseudo-variables. $template_variables['Monitoring.SettingOptions'] .= SucuriScanTemplate::get_snippet('monitoring-settings', array('Monitoring.OptionCssClass' => $css_class, 'Monitoring.OptionName' => $option_title, 'Monitoring.OptionValue' => $option_value)); $counter += 1; } } } return SucuriScanTemplate::get_section('monitoring-settings', $template_variables); }