2012-03-09 3 views
1

Мне нужно 3 разных шаблона для моего приложения Codeigniter. Я читал о библиотеке Themes. Но все же я понятия не имел, как добавить шаблон в Codeignier.Code igniter Themes 'library.

У меня есть вопрос о том, как свернуть шаблон в контроллере.

Пожалуйста, помогите

+1

С контроллера: '$ this-> load-> view ('view_name');' - больше информации на http://codeigniter.com/user_guide/general/views.html –

ответ

2

Я использую эту библиотеку шаблонов, на самом деле просто и хорошо работает для меня.

приложения/библиотеки/template.php

<?php 
class Template { 
    var $template_data = array(); 
    var $use_template = ''; 

    /** 
    * Set variable for using in the template 
    */ 
    function set($name, $value) 
    { 
     $this->template_data[$name] = $value; 
    } 

    /** 
    * Set template name 
    */ 
    function set_template($name) 
    { 
     $this->use_template = $name; 
    } 

    /** 
    * Load view 
    */ 
    function load($view = '' , $view_data = array(), $template = '', $return = FALSE) 
    { 
     $this->CI =& get_instance(); 

     if (empty($template)) { 
      $template = $this->CI->config->item('template_master'); 
     } 

     if (!empty($this->use_template)) { 
      $template = $this->use_template; 
     } 

     $this->set($this->CI->config->item('data_container'), $this->CI->load->view($view, array_merge($view_data, array ('template' => $this->template_data)), true)); 
     return $this->CI->load->view($this->CI->config->item('template_folder') . '/' . $template, $this->template_data, $return); 
    } 
} 

приложение/Config/template.php

<?php 
$config['template_master'] = 'main'; 
$config['template_folder'] = 'templates'; 
$config['data_container'] = 'content'; 

приложение/просмотров/шаблоны/main.php

Header<br /> 
<?php echo $content; ?></br> 
Footer 

применение/контроллеры/welcome.php

<?php 
class Welcome extends CI_Controller 
{ 
    public function index() 
    { 
     $this->load->config('template'); 
     $this->load->library('template'); 
     $this->template->load('welcome', array('view' => 'data')); 
    } 
} 

Обычно я устанавливаю файлы конфигурации/библиотеки на автозагрузку, и вы можете использовать в любое время $ this-> template-> set_template ('other_template'); использовать другой :)

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

+0

спасибо за ваш комментарий, и я попробуем это .. Еще одно сомнение ... Как сохранить разные шаблоны в папке шаблона? Любые конкретные соглашения об именах или структура папок? – ramesh

+1

Так как библиотека загружает шаблоны, используя библиотеку представлений CI, вы можете поместить любое имя, которое хотите. Я использую их имена: main.php, admin.php, unauthorized.php и т. Д. –

+0

ОК спасибо ... Как вы сказали, я собираюсь сохранить этот «Template.php» в файле библиотеки, создав шаблон с именем « main.php "также с изменениями confg и все ... После этого для следующего шаблона мне нужно создать новый шаблон с именем" movies.php "и сохранить в папке шаблонов и загрузить его в контроллер с помощью $ this-> template-> load ('movies', array ('view' => 'data')); ...... Будет ли это работать, или мне нужно сделать все изменения confg ... Спасибо – ramesh

1

Я использовал следующие настройки в проекте CodeIgniter:

Различные шаблоны вместе с таблицами стилей и изображения находятся в следующей папке:

/templates/1/header.php 
/templates/1/footer.php 
/templates/1/images/* 
/templates/1/style/* 
/templates/2/header.php 
/templates/2/footer.php 
/templates/2/images/* 
/templates/2/style/* 

В контроллерах определить шаблон, который вы хотите загрузить, и передать путь к этому шаблону в качестве переменной (templatepath в этом случае) в файлы View. Внутри просмотра файлов выполните следующие действия:

<?php include($templatepath.'/header.php'); ?> 

в верхней и

<?php include($templatepath.'/footer.php'); ?> 

на дне.

Смежные вопросы