создание мастер-шаблона в CodeIgniter - PullRequest
3 голосов
/ 13 февраля 2012

Эй, ребята, я застрял с очень простой проблемой, хорошо, проблема в том, что я хочу главный шаблон, в котором я могу вызывать заголовок, тело и нижний колонтитул. Я не могу отправить заголовок и CSS в заголовке, а также как я могу отправить несколько файлов CSS. Я делаю что-то вроде этого:

Это код в контроллере

$data['title'] = 'Login To WePOS';
$data['css']   = base_url().'style/login-box.css';

$this->load->view('templates/default',$data);   

Это код в заголовке

<head>
<title><?php echo $title ?> - CodeIgniter 2 Tutorial</title>
    <link href=" <?php echo $css;?>" rel="stylesheet" type="text/css" />
</head>

Это код в имени шаблона по умолчанию

<html>
<?php 
$this->load->view('templates/header', $data);
?>
<body>

<?php 
     $this->load->view('login/index', $data);
?>
</body>
<?php 
     $this->load->view('templates/footer', $data);
 ?>
</html>

Ответы [ 2 ]

10 голосов
/ 14 февраля 2012

Привет, есть другой способ использовать шаблон в codeigniter.

1 - вы можете использовать эту процедуру

В контроллере

 $data['main_content'] = 'login_view';  
 $data['title']        = 'Login To WePOS';  
 $data['css']          = 'login-box.css';  
 $this->load->view('templates/default',$data);

В файле template.php

$this->load->view('header_view');  
 $this->load->view($main_content);   
 $this->load->view('footer_view');  

в вашей основной переменной содержимого вы можете передать файл вида

, если вы хотите добавить несколько файлов CSS или несколько файлов JS, вы можете использовать идею MY_MARK как

$data['cssFiles'] = array(
    'login-box.css',
    'other.css'
);  

и в вашем заголовочном файле

 if(is_array($cssFiles)){
    foreach($cssFiles as $cssFile) {
        <link href="<?php echo base_url() . 'style/' . $css; ?>" rel="stylesheet" type="text/css" />
    }
}

Надеюсь, это поможет.

2 голосов
/ 14 февраля 2012

Вам не нужно снова передавать $ data в шаблоне по умолчанию.

<html>
    <?php $this->load->view('templates/header'); ?>
    <body>
        <?php $this->load->view('login/index'); ?>
    </body>
    <?php $this->load->view('templates/footer'); ?>
</html>

Это должно позволить вам выбрать переменные $ title и $ css в вашем заголовке, как вы получили в настоящее время.

Что касается отправки нескольких файлов CSS, создайте массив файлов, например:

$data['cssFiles'] = array(
    'login-box.css',
    'other.css'
);

И измените код в вашем заголовке так:

foreach($cssFiles as $cssFile) {
    <link href="<?php echo base_url() . 'style/' . $css; ?>" rel="stylesheet" type="text/css" />
}

Надеюсь, это поможет ...

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