Как использовать включенные и базовые шаблоны в Codeigniter? - PullRequest
3 голосов
/ 30 октября 2011

В прошлом я работал с пользовательской платформой php и шаблонами django, которые поддерживают то, что я могу описать как «базовые шаблоны». Это означает, что у вас есть файл, в котором есть ваши верхние и нижние колонтитулы, а div, скажем, с идентификатором «content». Теперь все в ваших файлах представления содержит только часть кода для заполнения этого «содержимого» div, верхний и нижний колонтитулы которого устанавливаются этим базовым шаблоном.

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

Ответы [ 3 ]

4 голосов
/ 30 октября 2011

Спасибо за ответы, ребята, но я решил пойти со следующим ответом, который дал jruzafa в этом вопросе:

Как работать с шаблонами Codeigniter?

Поскольку он делает именно то, что я хотел, и не требует никаких дополнительных расширений:

Я пробовал несколько способов сделать шаблоны codeigniter, и способ, которым я остаюсь, является самым быстрым и простым, как

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

>     //Charge the view inside array
>     $data['body'] = $this->load->view('pages/contact', '', true);
> 
> 
>     //charge the view "contact" in the other view template
>     $this->load->view('template', $data);

В представлении template.php:

> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
> "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html
> xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">  <head> 
>     <title>Template codeigniter</title>  </head>  <body> 
>     <div> 
>         <?=$body?>
>     </div> 
>     <div class="clear"></div> 
>     <div>Footer</div> 
>     </div>  </body>  </html>

$ body isпросмотр контакта.

0 голосов
/ 30 октября 2011

Вот моя любимая реализация шаблона CodeIgniter. Мы используем его в большинстве наших проектов. Очень легко понять и реализовать.

http://maestric.com/doc/php/codeigniter_template

0 голосов
/ 30 октября 2011

Не уверен, что я вас полностью понял, но вы могли бы создать представление ('base_view'), и затем вы могли бы предоставить ему содержимое через переменные, одновременно загружая общие представления из самого базового представления. Как это:

Часть контроллера:

$data['content'] = "<div>My content</div>";
$this->load->view('base_view', $data);

Базовая часть просмотра:

$this->load->view('header');
echo $content;
$this->load->view('footer');

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

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