From 1e0a2a9387a6affad61fd94146862d9571df6dd8 Mon Sep 17 00:00:00 2001 From: alvaro <alvaro@alia.(none)> Date: Fri, 29 Jun 2012 17:21:42 -0700 Subject: [PATCH] Possible to create pages for different http status (e.g., 404) TODO: Apply Haanga to it --- classes/HTTPStatus.php | 56 +++++++++++++++++++++++++++++++++--------- common.inc.php | 9 ++++--- 2 files changed, 49 insertions(+), 16 deletions(-) diff --git a/classes/HTTPStatus.php b/classes/HTTPStatus.php index 705a9a4b..12e3de29 100644 --- a/classes/HTTPStatus.php +++ b/classes/HTTPStatus.php @@ -3,37 +3,69 @@ class HTTPStatus{ public static function send303($uri, $ext){ + global $conf; + $file = $conf['home'].$conf['httpStatus']['directory']."/303.template"; + if(file_exists($file)){ + $content = file_get_contents($file); + }else{ + $content = $uri."\n\n"; + } header("HTTP/1.0 303 See Other"); header("Location: ".$uri); header("Content-type: ".$ext); - echo $uri."\n\n"; + echo $content; exit(0); } - public static function send401($msg){ + public static function send401($uri){ + global $conf; + $file = $conf['home'].$conf['httpStatus']['directory']."/401.template"; + if(file_exists($file)){ + $content = file_get_contents($file); + }else{ + $content = $uri."\n\n"; + } header("HTTP/1.0 401 Forbidden"); - echo $msg; + echo $content; exit(0); } public static function send404($uri){ - header("HTTP/1.0 404 Not Found"); - echo "LODSPeaKr could not find ".$uri." or information about it.\nNo URIs in the triple store, or services configured with that URI\n"; + global $conf; + $file = $conf['home'].$conf['httpStatus']['directory']."/404.template"; + if(file_exists($file)){ + $content = file_get_contents($file); + }else{ + $content = "LODSPeaKr could not find ".$uri." or information about it.\nNo URIs in the triple store, or services configured with that URI\n"; + } + header("HTTP/1.0 404 Not Found"); + echo $content; exit(0); } public static function send406($uri){ - header("HTTP/1.0 406 Not Acceptable"); - echo "LODSPeaKr can't find a representation suitable for the content type you accept\n\n"; + global $conf; + $file = $conf['home'].$conf['httpStatus']['directory']."/406.template"; + if(file_exists($file)){ + $content = file_get_contents($file); + }else{ + $content = "LODSPeaKr can't find a representation suitable for the content type you accept for $uri\n\n"; + } + header("HTTP/1.0 406 Not Acceptable"); + echo $content; exit(0); } - public static function send500($msg = null){ + public static function send500($uri){ + global $conf; + $file = $conf['home'].$conf['httpStatus']['directory']."/406.template"; + if(file_exists($file)){ + $content = file_get_contents($file); + }else{ + $content = "An internal error ocurred. Please try later\n\n"; + } header("HTTP/1.0 500 Internal Server Error"); - echo "An internal error ocurred. Please try later\n\n"; - if($msg != null){ - echo $msg; - } + echo $content; exit(0); } } diff --git a/common.inc.php b/common.inc.php index 4cb0b1d2..d3018a43 100644 --- a/common.inc.php +++ b/common.inc.php @@ -9,6 +9,7 @@ $conf['endpoint']['dbpedia'] = 'http://dbpedia.org/sparql'; $conf['endpoint']['logd'] = 'http://logd.tw.rpi.edu/sparql'; $conf['metadata']['db']['location'] = 'meta/db.sqlite'; +$conf['httpStatus']['directory'] = 'components/status'; include_once('namespaces.php'); @@ -33,10 +34,10 @@ $conf['http_accept']['json'] = array('application/json', 'application/x-javascri $conf['http_accept']['nt'] = array('text/plain'); -$conf['service']['prefix'] = 'services'; - -$conf['type']['prefix'] = 'types'; -$conf['uri']['prefix'] = 'uris'; +$conf['service']['prefix'] = 'services'; +$conf['type']['prefix'] = 'types'; +$conf['uri']['prefix'] = 'uris'; +$conf['redirect']['prefix'] = 'redirect'; //Frontpage when user goes to http://example.org/ $conf['root'] = 'index.html'; -- GitLab