вторник, 29 декабря 2009 г.

Пример использования шаблонов в CodeIgniter

Мне хотелось чтобы в моем приложении был реализован легкий путь для добавления шаблонов и их выбора в качестве текущего.

Прежде всего я создал файл layout.php который содержит разметку сайта.

Для реализации задуманного было создано несколько директорий:

/system/
/system/application/
/system/application/views/
/system/application/views/default/
/system/application/views/new_template/
index.php

Теперь мы имеем две папки для шаблонов: default и new_template

Теперь создаем новую модель (model), я назвал её init_model.php:

Copy Source | Copy HTML
  1. <?php
  2. class Init_model extends Model {
  3.    function Init_model()
  4.    {
  5.       parent::Model();
  6.    }
  7.    function getSettings()
  8.    {
  9.       $this->settings['template']='default';
  10.       return $this->settings;
  11.    }
  12.    function displayTemplate($template, $data)
  13.    {
  14.       $data['body'] = $this->load->view($data['settings']['template'].'/'.$template, $data, true);
  15.       $this->load->view($data['settings']['template'].'/layout.php',$data);
  16.    }
  17. }
  18. ?>

Задачей класса является задание директории из которой будет использоваться шаблон. В примере имя шаблона захардкожено, но по нормальному конечно должно браться из базы данных. Далее функция displayTemplate загружает необходимы шаблон и содержимое, я делаю это так:
$this->init_model->displayTemplate('index.php', $data);
Описанный метод позволяет загружать вьюшки из одного места.

Комментариев нет:

Отправить комментарий