summaryrefslogtreecommitdiffstats
path: root/system
diff options
context:
space:
mode:
authorPhil Sturgeon <email@philsturgeon.co.uk>2010-12-15 16:18:16 +0100
committerPhil Sturgeon <email@philsturgeon.co.uk>2010-12-15 16:18:16 +0100
commit23174a64277cad04c89d943fa65694299f7424d6 (patch)
tree7f8cb3089d91d3fdc53ec932f7132a4ab8ef1db7 /system
parentfb5523855cb0592abe8e8720d7019fa82acfb054 (diff)
['404_override'] can now take methods and URI segments, not just a controller name. This is useful for 404 pages on errors/page_missing or /pages/view/404.
Diffstat (limited to 'system')
-rw-r--r--system/core/Router.php14
1 files changed, 6 insertions, 8 deletions
diff --git a/system/core/Router.php b/system/core/Router.php
index 9276800c3..79a8b4fcc 100644
--- a/system/core/Router.php
+++ b/system/core/Router.php
@@ -270,19 +270,17 @@ class CI_Router {
// If we've gotten this far it means that the URI does not correlate to a valid
// controller class. We will now see if there is an override
- if (isset($this->routes['404_override']) AND $this->routes['404_override'] != '')
+ if (!empty($this->routes['404_override']))
{
- if (strpos($this->routes['404_override'], '/') !== FALSE)
- {
- $x = explode('/', $this->routes['404_override']);
+ $x = explode('/', $this->routes['404_override']);
- $this->set_class($x[0]);
- $this->set_method($x[1]);
+ $this->set_class($x[0]);
+ $this->set_method(isset($x[1]) ? $x[1] : 'index');
- return $x;
- }
+ return $x;
}
+
// Nothing else to do at this point but show a 404
show_404($segments[0]);
}