Верхний и нижний колонтитулы в CodeIgniter - PullRequest
67 голосов
/ 03 марта 2012

Мне действительно не нравится писать на каждом контроллере:

    $this->load->view('templates/header');
    $this->load->view('body');
    $this->load->view('templates/footer');

Можно ли сделать так, чтобы верхний и нижний колонтитулы были бы включены автоматически, и если нам нужно изменить их, мы могли бы это сделать? Как ты с этим справляешься? Или это не проблема по вашему мнению? Спасибо.

Ответы [ 12 ]

0 голосов
/ 18 января 2014

У меня была эта проблема, когда я хочу, чтобы контроллер заканчивался сообщением типа «Спасибо за эту форму» и общим «не найден и т. Д.». Я делаю это в views-> message-> message_v.php

<?php
    $title = "Message";
    $this->load->view('templates/message_header', array("title" => $title));
?>
<h1>Message</h1>
<?php echo $msg_text; ?>
<h2>Thanks</h2>
<?php $this->load->view('templates/message_footer'); ?>

, что позволяет мне изменять сайт рендеринга сообщений в этом отдельном файле для любой вещи, которая вызывает

$this->load->view("message/message_v", $data);
0 голосов
/ 08 февраля 2013

Вот как я справляюсь с моим. Я создаю файл с именем template.php в моей папке просмотров. Этот файл содержит все мои основные макет сайта. Затем из этого файла шаблона я вызываю мои дополнительные представления. Вот пример:

<!doctype html>
<html lang="en">
<head>
  <meta charset=utf-8">
  <title><?php echo $title; ?></title>
    <link href="<?php echo base_url() ;?>assets/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
    <link href="<?php echo base_url() ;?>assets/css/main.css" rel="stylesheet" type="text/css" />
<noscript>
Javascript is not enabled! Please turn on Javascript to use this site.
</noscript>

<script type="text/javascript">
//<![CDATA[
base_url = '<?php echo base_url();?>';
//]]>
</script>

</head>
<body>

<div id="wrapper">
    <div id="container">
        <div id="top">
            <?php $this->load->view('top');?>
        </div>

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

        <div id="footer"> 
            <?php $this->load->view('bottom');?>
        </div>
    </div><!-- end container -->
</div><!-- end wrapper -->

<script type="text/javascript" src="<?php echo base_url();?>assets/js/jquery-1.8.2.min.js" ></script>
<script type="text/javascript" src="<?php echo base_url();?>assets/js/bootstrap.min.js"></script>

</body>
</html>

Из моего контроллера я передам имя представления в $ data ['main']. Тогда я сделаю что-то вроде этого:

class Main extends CI_Controller {

    public function index()
    {
        $data['main'] = 'main_view';
          $data['title'] = 'Site Title';
          $this->load->vars($data);
          $this->load->view('template', $data);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...