kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 Martin
Martin
Вопрос

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

Я 'довольно новичок в MVC, и я 'нашел CodeIgniter недавно. Я продолжаю учиться каждый день, но одна проблема - это его шаблонизатор. Какой лучший способ создания шаблонов в CodeIgniter?

CakePHP поставляется с собственной библиотекой шаблонов, есть ли подобная возможность в CodeIgniter?

27 2009-06-22T23:49:39+00:00 12
Chuck Burgess
Chuck Burgess
Редактировал вопрос 19-го января 2013 в 7:53
Программирование
codeigniter
php
templates
Ryan Schumacher
Ryan Schumacher
23-го июня 2009 в 12:26
2009-06-23T00:26:02+00:00
Дополнительно
Источник
Редактировать
#9188492

В отличие от других фреймворков CodeIgniter не имеет глобальной системы шаблонов. Каждый контроллер управляет своим собственным выводом независимо от системы, а представления работают по принципу FIFO, если не указано иное.

Например, если у нас есть глобальный заголовок:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" >
<html>
    <head>
        <title><?=$title?></title>
        <!-- Javascript -->
        <?=$javascript ?>
        <!-- Stylesheets -->
        <?=$css ?>
    </head>
    <body>
        <div id="header">
            <!-- Logos, menus, etc... -->
        </div>
        <div id="content">

и глобальный нижний колонтитул:

        </div>
        <div id="footer">
            <!-- Copyright, sitemap, links, etc... -->
        </div>
    </body>
</html>

тогда наш контроллер будет выглядеть следующим образом

<?php
class Welcome extends Controller {

    function index() {
        $data['title'] = 'My title';
        // Javascript, CSS, etc...

        $this->load->view('header', $data);

        $data = array();
        // Content view data
        $this->load->view('my_content_view', $data);

        $data = array();
        // Copyright, sitemap, links, etc...
        $this->load->view('footer', $data);
    }
}

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

Смотрите комментарии ниже

Ryan Schumacher
Ryan Schumacher
Редактировал ответ 8-го октября 2012 в 2:15
25
0
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
 jruzafa
jruzafa
14-го сентября 2011 в 12:15
2011-09-14T12:15:35+00:00
Дополнительно
Источник
Редактировать
#9188497

Я'пробовала несколько способов сделать шаблоны 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> 

`$тело-это вид контакта.

 zkanoca
zkanoca
Редактировал ответ 26-го августа 2015 в 9:04
14
0
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
 SpartakusMd
SpartakusMd
28-го марта 2011 в 2:15
2011-03-28T14:15:17+00:00
Дополнительно
Источник
Редактировать
#9188496

Сделать библиотеку, которая включает в себя все ваши мнения и отправить ему данные, которые нужно отправить на ваш взгляд контент. Это все!

<?php
class Display_lib
{

    public function user_page($data,$name)
    {
        $CI =& get_instance ();

        $CI->load->view('preheader_view',$data);
        $CI->load->view('header_view');
        $CI->load->view('top_navigation_view');
        $CI->load->view($name.'_view',$data);
        $CI->load->view('leftblock_view',$data);
        $CI->load->view('rightblock_view',$data);
        $CI->load->view('footer_view');        
    }
}
 zkanoca
zkanoca
Редактировал ответ 26-го августа 2015 в 9:05
13
0
Jerome Jaglale
Jerome Jaglale
28-го июля 2009 в 8:14
2009-07-28T20:14:20+00:00
Дополнительно
Источник
Редактировать
#9188495

Эта библиотека, простота в использовании и настройке, делает именно то, что вы'd не ожидал:

  • избежать дублирования в формате HTML (Заголовок, нижний колонтитул..)
  • не нужно изучать новый язык (!)

Самые простые библиотеки шаблонов для Codeigniter с

5
0
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
 GloryFish
GloryFish
23-го июня 2009 в 1:27
2009-06-23T13:27:08+00:00
Дополнительно
Источник
Редактировать
#9188493

Я использую CodeIgniter со Smarty, и это 'здорово (если вам нравится Smarty, как нравится мне).

Скажем, у вас есть контроллер статей, вы можете сделать в нем что-то вроде этого:

class Article extends Controller {
  function show_all() {
    $articles = $this->article_model->get_all();
    $this->smarty->assign('entities', $articles);
    $this->smarty->view('list');
  }
}

А затем в вашем шаблоне:

{include file="header.tpl"}
  <ul>
  {foreach from=$entities item=entity}
  <li>{$entity.title}</li>
  {/foreach}
  </ul>
{include file="footer.tpl"}

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

Еще одна интересная вещь, которую вы можете сделать, это использовать этот шаблон списка для вещей, которые не являются статьями. Вы можете иметь список пользователей или страниц или что-то еще. В некоторых случаях повторное использование такого шаблона может быть полезным. Не всегда, но иногда.

Настройка CodeIgniter для smarty довольно проста. Нужно скопировать файлы Smarty в папку библиотеки и создать простую обертку для него. Вы можете найти инструкции здесь:

http://devcha.blogspot.com/2007/12/smarty-as-template-engine-in-code.html

Как только вы настроите его, он станет замечательным.

4
0
John Skoumbourdis
John Skoumbourdis
20-го июля 2013 в 8:26
2013-07-20T08:26:46+00:00
Дополнительно
Источник
Редактировать
#9188501

Ну вы на самом деле можете использовать библиотеки в CodeIgniter для шаблоны. Наиболее известными из них являются:

  1. В CodeIgniter Простота (Активно Развивается)
  2. Фил Стерджен'библиотека шаблонов с (не развиваются)
  3. Введение в Мнения & шаблонов в CodeIgniter с (Здесь вы на самом деле создать библиотеку шаблонов с нуля)
John Skoumbourdis
John Skoumbourdis
Редактировал ответ 2-го января 2014 в 3:11
2
0
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
 Robert
Robert
5-го января 2012 в 4:02
2012-01-05T16:02:28+00:00
Дополнительно
Источник
Редактировать
#9188499

У меня есть два основных шаблонов; один для узла и один для нашей админ-панели. Вот мои настройки для нашего основного сайта (в основном статические)... я решил на один контроллер под названием "сайт" это вызывает файл шаблона и каждой странице и получает своих просмотр файла.

Почему'т кто-нибудь упоминал шаблонизатор использовать? - Просто - вид лучше/быстрее?

  • В config/template.php-я определил шаблон(ы). Примечание site_template в папке вид:

$шаблон['сайта']['шаблон'] = 'site_template'; $шаблон['сайта']['регионы'] = массив('название','в разделе','столбец col2','содержание',); $шаблон['сайта']['парсер'] = 'парсер'; $шаблон['сайта']['parser_method'] = 'разобрать'; $шаблон['сайта']['parse_template'] = ложь;

  • В config/routers.php я настройка правил для обработки запросов `контроллер-сайтов, которые являются едиными сегментов URL-адреса, в основном, но мы делаем один секция, структурированный как таковой; /кто-мы- и затем для выбранных людей /кто-мы-есть/Роберт Уэйн и так:

$маршрут['что-мы-делаем'] = 'сайт/what_we_do'; $маршрут['кто-то-несколько'] = 'сайт/who_we_are'; $маршрут['кто-мы-/(: любой)'] сайта/who_we_are/1$&я = то ";

  • И controllers/site.php снова с функцией для каждого/раздел:

сайт класс расширяет CI_Controller { функция конструкт() { родитель:: методConstruct(); $это->По шаблону>set_template('сайта'); // задать для сайта шаблон $этом-и GT;нагрузка->библиотека('Мобил'); } индекс общественные функции() { $данных = блок('в разделе' => 'дома'); $это->По шаблону>write_view('столбец col2', 'сайт/меню.на PHP', $данных); $это->По шаблону>писать('название', то "крутое название страницы и", Истина); $это->По шаблону>писать('в разделе', $данных['в разделе'], истина); $это->По шаблону>write_view('содержание', 'сайт/добро пожаловать', $данных); $это->шаблон->отрисовка(); } who_we_are общественные функции() { // этот бит готовит второй сегмент. $слаг = как strreplace('-', '', $это->Ури->сегмент(2, 0)); если($слизняк) // если есть второй сегмент, мы нагружаем человека. { $данных['био'] = $этом-и GT;загрузить->вид('сайт/человек/'.$слизень, '', правда) } еще { // где он загружает общий вид who_we_are } // и так далее для каждой страницы...

и как точно заметил маршрутизатор позволяет нам оставить `/сайт/' в URL, http://the site.com/who-we-are

мысли? кто? Бюллер?

2
0
 Randell
Randell
17-го июля 2009 в 10:05
2009-07-17T10:05:23+00:00
Дополнительно
Источник
Редактировать
#9188494

Я'м смещена в сторону этой библиотеки шаблонов, сделанных Кармело Capinpin потому что это настолько прост в использовании: текст ссылки. Просто скопируйте файл в вашей библиотеке и вы'вновь готов идти. Инструкции о том, как использовать это в ссылке, которую я предоставил.

1
0
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
 VangelisB
VangelisB
29-го сентября 2011 в 2:47
2011-09-29T14:47:29+00:00
Дополнительно
Источник
Редактировать
#9188498

Есть библиотека, которая позволяет использовать шаблоны в CodeIgniter с в собственном стиле. Чтобы загрузить шаблон/тема вобще:

$this->load->theme(‘theme_name’);

Для загрузки CSS и JavaScript файлы из вашего мнения можно сделать:

$this->load->css(‘path/file.css’);
$this->load->js(‘path/file.js’);

При желании вы можете контролировать путь кэш браузера УСБ & JS файлы.

 richq
richq
Редактировал ответ 4-го октября 2011 в 5:36
1
0
 PHPNinja
PHPNinja
4-го марта 2014 в 8:50
2014-03-04T08:50:28+00:00
Дополнительно
Источник
Редактировать
#9188502

Ну codeignier нет такой библиотеки по умолчанию. Но если вы хотите, чтобы управлять различными темами, мнениями, и активов, попробуйте использовать это:

https://github.com/mahadazad/php-layout-manager

0
0
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
 iGbanam
iGbanam
9-го июля 2013 в 10:00
2013-07-09T22:00:47+00:00
Дополнительно
Источник
Редактировать
#9188500

Позвольте мне предложить более простой способ сделать это. Считают мой ответ на подобный вопрос.

Плюсы:

  1. Ваш файл шаблон может быть полноценным HTML-файл. Вы Don'т придется разбить верхний и Нижний колонтитулы.
  2. Любой вид файла может быть превращен в шаблон с минимальными усилиями.
  3. Данные для конкретного представления могут быть созданы в шаблоне.

Минусы:

  1. Вы можете добавить шаблон (или макет—если вы хотите сделать это так, как рельсы каталоге) под видом для того, чтобы правильно структурировать ваш код. Это вытекает из плюсы[2].
  2. Данные за конкретный вид из контроллера в первую очередь должны быть переданы в шаблон.
 Community
Community
Редактировал ответ 23-го мая 2017 в 12:06
0
0
 pix0r
pix0r
22-го июня 2009 в 11:54
2009-06-22T23:54:03+00:00
Дополнительно
Источник
Редактировать
#9188491

Шаблон Codeigniter - это, как правило, просто PHP-файл. Вы можете использовать весь обычный синтаксис PHP для вывода переменных, выполнения циклов и вызова другого PHP-кода.

Пример контроллера:

<?php
class Blog extends Controller {

    function index()
    {
        $data['title'] = "My Real Title";
        $data['heading'] = "My Real Heading";

        $this->load->view('blogview', $data);
    }
}
?>

Образец представления:

<html>
<head>
<title><?php echo $title;?></title>
</head>
<body>
    <h1><?php echo $heading;?></h1>
</body>
</html>

Подробнее читайте в документации здесь: CodeIgniter User Guide: Views

0
0
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
Похожие сообщества 22
#php chat
#php chat
7 220 пользователей
Группа для новичков и бывалых. Не стесняйтесь задавать вопросы по php. Уважаем друг друга Администрация: @faramanx По вопросам рекламы: @ads_adm
Открыть telegram
PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
4 986 пользователей
Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii etc. Full/par-time, remote и т.д. ПРАВИЛА: https://t.me/php_jobs/45345 Флудильня: @phpimhorus More: @javascript_jobs, @nodejs_jobs, @devops_jobs, @sql_jobs
Открыть telegram
phpGeeks
phpGeeks
4 741 пользователей
Best PHP chat @phpGeeksJunior - новичкам @golangGeeks - гошка @jobGeeks - вакансии(250000 р/мес) @dbGeeks - базы данных @ebanoePhp - канал о PHP @laravel_pro - Laravel @jsChat - JS @moscowProgers - Москва Реклама: https://vk.cc/cbJtVV ДР - 28.03.2016
Открыть telegram
phpGeeksJunior
phpGeeksJunior
2 934 пользователей
Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Реклама: https://vk.cc/cbJtVV Правила и полезные ссылки https://github.com/phpgeeks-club/faq Бест от пхпгикс https://t.me/best_of_phpgeeks
Открыть telegram
PHP
PHP
2 645 пользователей
Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды правила чата: https://gist.github.com/fesor/6c8b162ac1e2fe4d6f227341ec8eaadf Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev
Открыть telegram
phpclub.ru
phpclub.ru
1 759 пользователей
Официальный чат phpclub.ru - остерегайтесь подделок 😊 Уважайте друг друга. Скриншоты ссылками. Код на pastebin.com. Вакансии публиковать на форуме phpclub.ru, в чат только ссылку на форум. За рекламу и мат - БАН!
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Andrei Kalinin
Зарегистрирован 2 недели назад
2
Koroleva Ego
Зарегистрирован 1 месяц назад
3
Star Lenon
Зарегистрирован 1 месяц назад
4
Данил Жевнеров
Зарегистрирован 1 месяц назад
5
Анна Литвиненко
Зарегистрирован 2 месяца назад
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
JA
KO
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией