00001 <?php
00002
00027 class reportCodeHighlight extends quailReporter {
00028
00032 var $classnames = array(QUAIL_TEST_SEVERE => 'quail_severe',
00033 QUAIL_TEST_MODERATE => 'quail_moderate',
00034 QUAIL_TEST_SUGGESTION => 'quail_suggestion',
00035 );
00036
00042 function getReport() {
00043 $problems = $this->guideline->getReport();
00044 if(is_array($problems)) {
00045 foreach($problems as $testname => $test) {
00046 if(!isset($this->options->display_level) || $this->options->display_level >= $test['severity'] && is_array($test)) {
00047 foreach($test as $k => $problem) {
00048 if(is_object($problem)
00049 && property_exists($problem, 'element')
00050 && is_object($problem->element)) {
00051
00052
00053
00054 $severity_wrapper = $this->dom->createElement($this->classnames[$test['severity']]);
00055 $severity_wrapper->setAttribute('class', $this->classnames[$test['severity']] .' '. $testname);
00056 $severity_wrapper->setAttribute('test', $testname);
00057 $severity_wrapper->appendChild($problem->element->cloneNode(TRUE));
00058 $parent = $problem->element->parentNode;
00059 $parent->replaceChild($severity_wrapper, $problem->element);
00060 }
00061 }
00062 }
00063 }
00064 }
00065 $this->dom->formatOutput = true;
00066 $html = htmlspecialchars($this->dom->saveHTML());
00067 $html = str_replace('"', '"', $html);
00068 foreach($this->classnames as $severity => $name) {
00069 $html = preg_replace('/<'. $name .'([^&]+)+\>/', '<span \\1>', $html);
00070 $html = str_replace('</'. $name .'>', '</span>', $html);
00071 }
00072 return $html;
00073 }
00074 }
00075