/**
* Overloading this method so that if a view is supplied with the prefix of '/' then we
* load that view directly rather than try and do anythign clever with the path
*
**/
public function view($view, $vars = array(), $return = FALSE)
{
if (strpos($view, '/') === 0) {
// The supplied view is an absolute path, so use it.
// Add on EXT if it's not there (so pathinfo() works as expected)
if (substr($view, -4) != EXT) {
$view .= EXT;
}
// Get path information about the view
$_pathinfo = pathinfo($view);
$_path = $_pathinfo['dirname'] . '/';
$_view = $_pathinfo['filename'];
// Set the view path so the loader knows where to look
$this->_ci_view_paths = array($_path => TRUE) + $this->_ci_view_paths;
// Load the view
return $this->_ci_load(array('_ci_view' => $_view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));
} else {
// Try looking in the application folder second - prevents Nails views being loaded
// over an application view.
$_view = FCPATH . APPPATH . 'views/' . $view;
if (substr($_view, -4) != EXT) {
$_view .= EXT;
}
if (file_exists($_view)) {
// Try again with this view
return $this->view($_view, $vars, $return);
} else {
// Fall back to the old method
return parent::view($view, $vars, $return);
}
}
}