add cms, add todo
[ssproject1617.git] / testcms-final-anon / system / classes / request.php
diff --git a/testcms-final-anon/system/classes/request.php b/testcms-final-anon/system/classes/request.php
new file mode 100644 (file)
index 0000000..48ca6e1
--- /dev/null
@@ -0,0 +1,46 @@
+<?php defined('IN_CMS') or die('No direct access allowed.');\r
+\r
+class Request {\r
+\r
+       public static function uri_segment($index, $default = false) {\r
+               $index--;\r
+               $segments = explode('/', static::uri());\r
+               return isset($segments[$index]) ? $segments[$index] : $default;\r
+       }\r
+       \r
+       public static function uri() {\r
+               if(isset($_SERVER['PATH_INFO'])) {\r
+                       $uri = $_SERVER['PATH_INFO'];\r
+               }\r
+               // try request uri\r
+               elseif(isset($_SERVER['REQUEST_URI'])) {\r
+                       // make sure we can parse URI\r
+                       if(($uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)) === false) {\r
+                               throw new Exception('Malformed request URI');\r
+                       }\r
+               }\r
+               // cannot process request\r
+               else {\r
+                       throw new Exception('Unable to determine the request URI');\r
+               }\r
+\r
+               // remove base url\r
+               $base_url = parse_url(Config::get('application.base_url'), PHP_URL_PATH);\r
+\r
+               if(strlen($base_url)) {\r
+                       if(strpos($uri, $base_url) === 0) {\r
+                               $uri = substr($uri, strlen($base_url));\r
+                       }\r
+               }\r
+\r
+               // remove index file\r
+               $index = '/' . Config::get('application.index_page');\r
+\r
+               if(strpos($uri, $index) === 0) {\r
+                       $uri = substr($uri, strlen($index));\r
+               }\r
+\r
+               return trim($uri, '/');\r
+       }       \r
+       \r
+}\r