mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 12:05:37 +00:00
#2094: Make ContentNegotiator send XHTML to the W3C validator
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@47875 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
parent
05051ef484
commit
2427c0c50c
@ -44,20 +44,27 @@ class ContentNegotiator {
|
|||||||
$chosenFormat = $_GET['forceFormat'];
|
$chosenFormat = $_GET['forceFormat'];
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
foreach($mimes as $format => $mime) {
|
// The W3C validator doesn't send an HTTP_ACCEPT header, but it can support xhtml. We put this special case in here so that
|
||||||
$regExp = '/' . str_replace(array('+','/'),array('\+','\/'), $mime) . '(;q=(\d+\.\d+))?/i';
|
// designers don't get worried that their templates are HTML4.
|
||||||
if (preg_match($regExp, $_SERVER['HTTP_ACCEPT'], $matches)) {
|
if(substr($_SERVER['HTTP_USER_AGENT'], 0, 14) == 'W3C_Validator/') {
|
||||||
$preference = isset($matches[2]) ? $matches[2] : 1;
|
$chosenFormat = "xhtml";
|
||||||
if(!isset($q[$preference])) $q[$preference] = $format;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if($q) {
|
|
||||||
// Get the preferred format
|
|
||||||
krsort($q);
|
|
||||||
$chosenFormat = reset($q);
|
|
||||||
} else {
|
} else {
|
||||||
$chosenFormat = "html";
|
foreach($mimes as $format => $mime) {
|
||||||
|
$regExp = '/' . str_replace(array('+','/'),array('\+','\/'), $mime) . '(;q=(\d+\.\d+))?/i';
|
||||||
|
if (preg_match($regExp, $_SERVER['HTTP_ACCEPT'], $matches)) {
|
||||||
|
$preference = isset($matches[2]) ? $matches[2] : 1;
|
||||||
|
if(!isset($q[$preference])) $q[$preference] = $format;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($q) {
|
||||||
|
// Get the preferred format
|
||||||
|
krsort($q);
|
||||||
|
$chosenFormat = reset($q);
|
||||||
|
} else {
|
||||||
|
$chosenFormat = "html";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user