Skip to content
Snippets Groups Projects
Commit d93ed5c9 authored by Brett Bieber's avatar Brett Bieber
Browse files

Add some validator improvements. Add a json validation results handler. Add...

Add some validator improvements. Add a json validation results handler. Add some js for validating links. Modify page logger to always show the validation status, if known. Add some simple CSS.
parent fea8a4d9
No related branches found
No related tags found
No related merge requests found
...@@ -45,18 +45,18 @@ class UNL_WDN_Assessment ...@@ -45,18 +45,18 @@ class UNL_WDN_Assessment
$this->removeEntries(); $this->removeEntries();
$vlogger = new UNL_WDN_Assessment_ValidationLogger($this); $vlogger = new UNL_WDN_Assessment_ValidationLogger($this);
$slogger = new UNL_WDN_Assessment_ValidityStatusLogger($this); //$slogger = new UNL_WDN_Assessment_ValidityStatusLogger($this);
$spider = $this->getSpider(); $spider = $this->getSpider();
$spider->addLogger($vlogger); $spider->addLogger($vlogger);
$spider->addLogger($slogger); //$spider->addLogger($slogger);
$spider->spider($this->baseUri); $spider->spider($this->baseUri);
} }
function logPages() function logPages()
{ {
$slogger = new UNL_WDN_Assessment_ValidityStatusLogger($this); //$slogger = new UNL_WDN_Assessment_ValidityStatusLogger($this);
$spider = $this->getSpider(); $spider = $this->getSpider();
$spider->addLogger($slogger); //$spider->addLogger($slogger);
$spider->spider($this->baseUri); $spider->spider($this->baseUri);
} }
......
...@@ -15,7 +15,9 @@ class UNL_WDN_Assessment_PageLogger extends Spider_LoggerAbstract ...@@ -15,7 +15,9 @@ class UNL_WDN_Assessment_PageLogger extends Spider_LoggerAbstract
function log($uri, $depth, DOMXPath $xpath) function log($uri, $depth, DOMXPath $xpath)
{ {
echo PHP_EOL.'|'.str_repeat('-', $depth).$uri;
$this->assessment->addUri($uri); $this->assessment->addUri($uri);
echo PHP_EOL.'<div id="uri_'.md5($uri).'" class="depth_'.$depth.' '.$this->assessment->getValidityStatus($uri).'">
<span class="uri">'.$uri.'</span>
</div>'.PHP_EOL;
} }
} }
...@@ -15,6 +15,7 @@ class UNL_WDN_Assessment_ValidityStatusLogger extends Spider_LoggerAbstract ...@@ -15,6 +15,7 @@ class UNL_WDN_Assessment_ValidityStatusLogger extends Spider_LoggerAbstract
function log($uri, $depth, DOMXPath $xpath) function log($uri, $depth, DOMXPath $xpath)
{ {
echo ' '.$this->assessment->getValidityStatus($uri); $status = $this->assessment->getValidityStatus($uri);
echo '<span id="validity_'.md5($uri).'" class=" validity '.$status.'">'.$status.'</span>'.PHP_EOL;
} }
} }
\ No newline at end of file
@CHARSET "UTF-8";
.true {
background-color:green;
}
.false {
background-color:red;
}
\ No newline at end of file
function validateAll()
{
WDN.jQuery('.uri').each(function(){
// Grab the URI
var uri = WDN.jQuery(this).html();
var uriDiv = WDN.jQuery(this).parent();
checkValidity(uri, uriDiv);
});
}
function validateInvalid()
{
WDN.jQuery('.uri:not(.true)').each(function(){
// Grab the URI
var uri = WDN.jQuery(this).html();
var uriDiv = WDN.jQuery(this).parent();
checkValidity(uri, uriDiv);
});
}
function checkValidity(uri, uriDiv)
{
uriDiv.removeClass('true false')
// Tell the user we're loading the result
uriDiv.append('<img class="loading" src="/wdn/templates_3.0/css/header/images/colorbox/loading.gif" />');
// Fetch the validator results in JSON format.
WDN.get('validator.php?u='+escape(uri), null, function(result) {
handleJSONResult(result, uriDiv);
}, 'json');
}
function handleJSONResult(result, uriDiv)
{
uriDiv.children('.loading').remove();
if (result.validity) {
// It is valid, say no more!
uriDiv.addClass('true');
return;
}
uriDiv.addClass('false');
}
...@@ -47,6 +47,8 @@ if (isset($_GET['uri']) ...@@ -47,6 +47,8 @@ if (isset($_GET['uri'])
<title>UNL | WDN | Batch Validator</title> <title>UNL | WDN | Batch Validator</title>
<!-- InstanceEndEditable --><!-- InstanceBeginEditable name="head" --> <!-- InstanceEndEditable --><!-- InstanceBeginEditable name="head" -->
<link rel="stylesheet" type="text/css" href="/wdn/templates_3.0/css/content/forms.css" /> <link rel="stylesheet" type="text/css" href="/wdn/templates_3.0/css/content/forms.css" />
<link rel="stylesheet" type="text/css" href="batchval.css" />
<script type="text/javascript" src="batchval.js"></script>
<!-- InstanceEndEditable --> <!-- InstanceEndEditable -->
</head> </head>
<body class="fixed"> <body class="fixed">
...@@ -80,6 +82,7 @@ if (isset($_GET['uri']) ...@@ -80,6 +82,7 @@ if (isset($_GET['uri'])
<div id="maincontent"> <div id="maincontent">
<!--THIS IS THE MAIN CONTENT AREA; WDN: see glossary item 'main content area' --> <!--THIS IS THE MAIN CONTENT AREA; WDN: see glossary item 'main content area' -->
<!-- InstanceBeginEditable name="maincontentarea" --> <!-- InstanceBeginEditable name="maincontentarea" -->
<div class="three_col left">
<form method="get" action="" class="cool"> <form method="get" action="" class="cool">
<fieldset> <fieldset>
<legend>Batch Validator</legend> <legend>Batch Validator</legend>
...@@ -106,8 +109,12 @@ if (isset($_GET['uri']) ...@@ -106,8 +109,12 @@ if (isset($_GET['uri'])
</fieldset> </fieldset>
<p class="submit"><input type="submit" id="submit" name="submit" value="Submit" /></p> <p class="submit"><input type="submit" id="submit" name="submit" value="Submit" /></p>
</form> </form>
</div>
<div class="col right">
<p class="submit"><a href="#" onclick="validateInvalid(); return false;">Validate Invalid</a></p>
<p class="submit"><a href="#" onclick="validateAll(); return false;">Validate All</a></p>
</div>
<div class="clear"> <div class="clear">
<pre>
<?php <?php
if (!empty($uri)) { if (!empty($uri)) {
...@@ -143,18 +150,7 @@ if (isset($_GET['uri']) ...@@ -143,18 +150,7 @@ if (isset($_GET['uri'])
$assessment->logPages(); $assessment->logPages();
} }
} }
//if (isset($assessment)) {
// if ($subPages = $assessment->getSubPages()) {
// echo '<ul>';
// foreach ($subPages as $page) {
// echo '<li class="'.$page['valid'].'">'.$page['url']. ' valid = '.$page['valid'].'</li>';
// }
// echo '</ul>';
// }
//}
?> ?>
</pre>
</div> </div>
<!-- InstanceEndEditable --> <!-- InstanceEndEditable -->
<div class="clear"></div> <div class="clear"></div>
......
<?php
require_once 'config.inc.php';
if (!isset($_GET['u'])) {
throw new Exception('You must pass a uri to validate.');
}
$v = new Services_W3C_HTMLValidator();
$result = $v->validate($_GET['u']);
echo json_encode($result);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment