CodeIgniter - Использование load-> view () в исключениях - PullRequest
5 голосов
/ 21 января 2010

Я хочу, чтобы мой error_404.php отображался в шаблонах моего сайта. Я расширил класс CI_Exceptions (MY_Exceptions) и переопределил методы show_404 () и show_error (). Теперь я хочу загрузить туда файл представления. Оптимально, я хотел бы загрузить методы _header () и _footer () в классе MY_Controller. Возможно ли это как-то?

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;
    }
}  

Но я не могу этого сделать. Есть предложения?

1 Ответ

0 голосов
/ 21 января 2010

Используйте это в вашем контроллере.

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

И в представлении maintemplate.

<!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>

И создайте представление my404.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...