Welcome Guest, Not a member yet? Register   Sign In
show_404() doesn't use my custom 404 page
#1

Hello all,

On my CodeIgniter site, I set up a custom 404 page using the following code.

config/routes.php
PHP Code:
$route['404_override'] = 'error_pages/error_404_custom'

controllers/Error_pages.php
PHP Code:
<?php 
class Error_pages extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->model('race_model');
    }
    
    public 
function error_404_custom()
    {
        $this->output->set_status_header(404);
        
        load_page_with_great_races_sidebar
($this'errors/html/error_404_custom');
    }


helpers/mv_helper.php (autoloaded)

PHP Code:
    if ( ! function_exists('load_page_with_great_races_sidebar') )
    {
        function load_page_with_great_races_sidebar($obj$page_name$data NULL)
        {
            $data['great_races'] = html_escape($obj->race_model->get_races());
            $obj->load->view('templates/header');
            $obj->load->view('templates/great_races_header');
            $obj->load->view($page_name$data);
            $obj->load->view('templates/great_races_footer'$data);
            $obj->load->view('templates/footer');
        }
    

Works like a charm in most scenarios. Except one. If I try to use the show_404() function in a controller to throw a 404 error manually, I get the generic 404 page (which I left in the views/errors/html folder and didn't delete).

What should I change so that my custom 404 page gets loaded by the show_404() function? Or should I use a different function?

(I don't think I can simply replace views/errors/html/error_404.php with my custom error page, because I also do a database query and load the header and footer)


Thanks.
Reply


Messages In This Thread
show_404() doesn't use my custom 404 page - by AdmiralAdama - 09-06-2016, 05:56 AM



Theme © iAndrew 2016 - Forum software by © MyBB