2010-01-20 3 views
5

Ich möchte mein error_404.php in meinen Site-Vorlagenansichten angezeigt werden. Ich habe die CI_Exceptions-Klasse (MY_Exceptions) erweitert und die Methoden show_404() und show_error() außer Kraft gesetzt. Nun, was ich tun möchte, ist in der Lage, eine Ansichtsdatei dort zu laden. Optimal möchte ich die Methoden _header() und _footer() in der MY_Controller-Klasse laden. Ist das irgendwie möglich?CodeIgniter - Verwenden von load-> view() in Exceptions

class MY_Exceptions extends CI_Exceptions { 

    public function __construct(){ 
    parent::__construct(); 
    } 

    function show_404($page = '') 
    { 
     $heading = "404 Page Not Found"; 
     $message = "The page you requested was not found for some strange reason..."; 

     log_message('error', '404 Page Not Found --> '.$page); 

     $CI =& get_instance(); 
     $CI->load->view('template/header'); 
     echo $this->show_error($heading, $message, 'error_404', 404); 
     $CI->load->view('template/footer'); 
     exit; 
    } 

    function show_error($message, $status_code = 500) 
    { 
     $error =& load_class('Exceptions'); 
     echo $error->show_error('An Error Was Encountered', $message, 'error_general', $status_code); 
     exit; 
    } 
} 

Aber ich kann das nicht tun. Irgendwelche Vorschläge?

+0

Eltern :: __ Konstrukt(); sollte Eltern sein :: CI_Exceptions; – shin

+1

@shin - nicht in PHP5, denke ich. –

Antwort

-1

Verwenden Sie dies in Ihrem Controller.

$data['main'] = 'my404'; 
$this->load->vars($data); 
$this->load->view('maintemplate'); 

Und in der MainTemplate Ansicht.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 

what ever here. 


</head> 
<body> 
<div id="wrapper"> 
    <div id="header"> 
    <?php $this->load->view('admin_header');?> 
    </div> 

    <div id="main"> 
    <?php $this->load->view($main);?> 
    </div> 

    <div id="footer"> 
    <?php $this->load->view('admin_footer');?> 
    </div> 
</div> 


</body> 
</html> 

Und erstellen Sie Ihre my404-Ansicht.

+0

Welchen Controller soll er einsetzen? Muss er den Ausnahmen-Handler noch erweitern? – bafromca

+0

@ BrettAlton, ja. Wie es aussieht, ist jedoch nicht wirklich klar – manix