Example #1
0
/**
 * 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);
}