/** * Read and parse the content of the ignore-scanning settings template. * * @return string Parsed HTML code for the ignore-scanning settings panel. */ function sucuriscan_settings_ignorescanning() { $template_variables = array('IgnoreScanning.ResourceList' => '', 'IgnoreScanning.DisabledVisibility' => 'visible', 'IgnoreScanning.NoItemsVisibility' => 'visible'); $ignore_scanning = SucuriScanFSScanner::will_ignore_scanning(); // Allow disable of this option temporarily. if (SucuriScanRequest::get('no_scan') == 1) { $ignore_scanning = false; } // Scan the project and get the ignored paths. if ($ignore_scanning === true) { $counter = 0; $template_variables['IgnoreScanning.DisabledVisibility'] = 'hidden'; $dir_list_list = SucuriScanFSScanner::get_ignored_directories_live(); foreach ($dir_list_list as $group => $dir_list) { foreach ($dir_list as $dir_data) { $valid_entry = false; $snippet_data = array('IgnoreScanning.CssClass' => '', 'IgnoreScanning.Directory' => '', 'IgnoreScanning.DirectoryPath' => '', 'IgnoreScanning.IgnoredAt' => '', 'IgnoreScanning.IgnoredAtText' => 'ok', 'IgnoreScanning.IgnoredCssClass' => 'success'); if ($group == 'is_ignored') { $valid_entry = true; $snippet_data['IgnoreScanning.Directory'] = urlencode($dir_data['directory_path']); $snippet_data['IgnoreScanning.DirectoryPath'] = SucuriScan::escape($dir_data['directory_path']); $snippet_data['IgnoreScanning.IgnoredAt'] = SucuriScan::datetime($dir_data['ignored_at']); $snippet_data['IgnoreScanning.IgnoredAtText'] = 'ignored'; $snippet_data['IgnoreScanning.IgnoredCssClass'] = 'warning'; } elseif ($group == 'is_not_ignored') { $valid_entry = true; $snippet_data['IgnoreScanning.Directory'] = urlencode($dir_data); $snippet_data['IgnoreScanning.DirectoryPath'] = SucuriScan::escape($dir_data); } if ($valid_entry) { $css_class = $counter % 2 == 0 ? '' : 'alternate'; $snippet_data['IgnoreScanning.CssClass'] = $css_class; $template_variables['IgnoreScanning.ResourceList'] .= SucuriScanTemplate::get_snippet('settings-ignorescanning', $snippet_data); $counter += 1; } } } if ($counter > 0) { $template_variables['IgnoreScanning.NoItemsVisibility'] = 'hidden'; } } return SucuriScanTemplate::get_section('settings-ignorescanning', $template_variables); }
function sucuriscan_settings_ignorescan_ajax() { if (SucuriScanRequest::post('form_action') == 'get_ignored_files') { $response = ''; // Scan the project and get the ignored paths. if (SucuriScanOption::is_enabled(':ignore_scanning')) { $counter = 0; $ignored_dirs = SucuriScanFSScanner::get_ignored_directories_live(); foreach ($ignored_dirs as $group => $dir_list) { foreach ($dir_list as $dir_data) { $valid_entry = false; $snippet = array('IgnoreScan.CssClass' => '', 'IgnoreScan.Directory' => '', 'IgnoreScan.DirectoryPath' => '', 'IgnoreScan.IgnoredAt' => '', 'IgnoreScan.IgnoredAtText' => 'ok', 'IgnoreScan.IgnoredCssClass' => 'success'); if ($group == 'is_ignored') { $valid_entry = true; $snippet['IgnoreScan.Directory'] = urlencode($dir_data['directory_path']); $snippet['IgnoreScan.DirectoryPath'] = $dir_data['directory_path']; $snippet['IgnoreScan.IgnoredAt'] = SucuriScan::datetime($dir_data['ignored_at']); $snippet['IgnoreScan.IgnoredAtText'] = 'ignored'; $snippet['IgnoreScan.IgnoredCssClass'] = 'warning'; } elseif ($group == 'is_not_ignored') { $valid_entry = true; $snippet['IgnoreScan.Directory'] = urlencode($dir_data); $snippet['IgnoreScan.DirectoryPath'] = $dir_data; } if ($valid_entry) { $snippet['IgnoreScan.CssClass'] = $counter % 2 === 0 ? '' : 'alternate'; $response .= SucuriScanTemplate::getSnippet('settings-ignorescan', $snippet); $counter++; } } } } else { $response = '<tr><td colspan="3">Enable the ignore scanning option first.</td></tr>'; } print $response; exit(0); } }