[eluser]wiredesignz[/eluser]
Modular Extensions PHP5 and Modular Separation PHP5 version 1.9 using $route['404'].
application/libraries/My_Router.php
Code:
class MY_Router extends CI_Router
{
private $module;
public function fetch_module() {
return $this->module;
}
public function _validate_request($segments) {
/* locate module controller */
if ($located = $this->locate($segments)) return $located;
/* application controller exists? */
if(is_file(APPPATH.'controllers/'.$segments[0].EXT)) {
return $segments;
}
list($directory, $controller) = array_pad($segments, 2, NULL);
/* application sub-directory controller exists? */
if(is_file(APPPATH.'controllers/'.$directory.'/'.$controller.EXT)) {
$this->directory = array_shift($segments).'/';
return $segments;
}
/* use a default 404 controller */
if (isset($this->routes['404']) AND $segments = explode('/', $this->routes['404'])) {
/* locate 404 controller in a module? */
if ($located = $this->locate($segments)) return $located;
/* is 404 controller in application? */
if (is_file(APPPATH.'controllers/'.$this->routes['404'].EXT)) {
if (count($segments) > 1) $this->directory = array_shift($segments).'/';
return $segments;
}
}
/* no controller found */
show_404();
}
public function locate($segments) { ... }
}