*Перевод видео с официального сайта

1. Создание БД
Вся информация должна храниться в базе данных, которая будет называться blog. Создать ее можно с помощью SQL запроса:

CREATE DATABASE ‘blog’;

В этой базе создадим таблицу, которая будет содержать посты в нашем блоге, – entries:

USE blog;
CREATE TABLE ‘entries’ (
 ‘id’ int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
 ‘title’ VARCHAR(128) NOT NULL,
 ‘body’ TEXT NOT NULL
);

И таблицу, которая будет содержать комментарии к постам, – comments:

CREATE TABLE ‘comments’ (
 ‘id’ int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
 ‘entry_id’ int(11) NOT NULL,
 ‘body’ TEXT NOT NULL,
 ‘author’ VARCHAR(100) NOT NULL
);

2. Привязка БД
Теперь перейдем к непосредственному созданию блога. Откроем CodeIgniter с помощью какого-нибудь HTML-редактора (например, DreamWeaver). Напоминаю, все нужные нам файлы будут храниться в папочке CodeIgniter/system.
Первым делом нужно привязать нашу базу данных. Все настройки, связанные с БД, хранятся в файлеCodeIgniter/system/application/config/database.php. Находим следующие строки и устанавливаем в них нужные значения. Итак:

$db[‘default’][‘hostname’]=”localhost”; //имя сервера
$db[‘default’][‘username’]=”root”; //имя пользователя БД
$db[‘default’][‘password’]=”mysqlpassword”; //пароль к БД
$db[‘default’][‘database’]=”blog”; //имя БД

и т.д.
Добавляем автозагрузку БД: в файле CodeIgniter/system/application/config/autoload.php находим строку:

$autoload[‘core’]=array();

и вписываем в скобках database:

$autoload[‘core’]=array(‘database’);

3. Создание контроллера.

Контроллер это простой файл с классом, названным так чтобы ассоциироваться с URI, по которому он будет вызван.
Рассмотрим этот URI:
www.your-site.com/index.php/blog/
В приведенном примере CodeIgniter попытается найти контроллер с именем blog.php и загрузить его.

В папке CodeIgniter/system/controllers создаем файл blog.php, который имеет следующее содержание:

<?php
class Blog extends Controller { //имя класса должно начинаться с прописной буквы!
 function Blog()
 {
 parent::Controller(); //наследование главного контроллера

 $this–>load–>helper(‘url’); //загрузка URL хелпера, который помогает создавать ссылки
 $this–>load–>helper(‘form’); //загрузка хелпера форм, который помогает создавать элементы форм
 }
 function index()
 {
 //создаем массив данных
 $data[‘title’]=”My Blog Title”; //заглавие страницы
 $data[‘heading’]=”My Blog Heading”; //заглавие блога
 $data[‘query’]=$this–>db–>get(‘entries’); //данные из таблицы entries (об оставленных постах)

 $this–>load–>view(‘blog_view’, $data); //загружаем отображение (его мы создадим в следующем шаге) и передаем в него данные из массива
 }
 function comments()
 {
 //создаем массив данных
 $data[‘title’]=”My Comment Title”; //заглавие страницы комментариев
 $data[‘heading’]=”My Comment Heading”; //заглавие комментариев
 $this–>db–>where(‘entry_id’, $this–>uri–>segment(3)); //делаем выборку комментариев к данному посту
 $data[‘query’]=$this–>db–>get(‘comments’); //считываем данные из БД
 $this–>load–>view(‘comment_view’, $data); ////загружаем отображение страницы комментариев (его мы создадим в следующем шаге) и передаем в него данные из массива
 }
 function comment_insert()
 {
 $this–>db–>insert(‘comments’, $_POST); //добавляем оставленные комментарии в БД
 redirect(‘blog/comments/’.$_POST[‘entry_id’]); //перенаправление на страницу с комментариями
 }
}
?>

Затем устанавливаем наш контроллер как контроллер по умолчанию: открываем файл CodeIgniter/system/application/config/routs.php, находим в нем строку

$route['default_controller'] = ' ';

и вписываем наш контроллер:

$route['default_controller'] = 'Blog';

4. Создания отображений.

Отображение — это простая веб-страница или ее фрагмент, например шапка, подвал, боковая панель или т.п. По факту отображения могут быть очень гибко встроены в другие отображения.
Отображения никогда не вызываются напрямую. Они должны быть загружены из контроллеров. Помните, что в модели MVC контроллер управляет всем происходящим, именно в нем должно быть определено какое отображение загружать.

4.1. Отображение главной страницы.
В папке CodeIgniter/system/application/views создаем файл blog_view.php со следующим содержанием:

<html>
<head>
 <title><?=$title?></title>
</head>
<body>
 <h1><?=$heading?></h1>
 <?php foreach($query–>result() as $row): ?> //выводим в цикле посты
 <h3><?=$row–>title?></h3> //заглавие поста
 <p><?=$row–>body?></p> //сам пост
 <p><?=anchor(‘blog/comments/’.$row–>id, ‘Комментарии’);?></p> //создаем ссылку «Комментарии», URI которой будет blog/comments/№_поста
 <hr> //отделяем посты друг от друга линиями
 <?php endforeach; ?>
</body>
</html>

4.2. Отображение страницы комментариев
В папке CodeIgniter/system/application/views создаем файл comment_view.php со следующим содержанием:

<html>
<head>
 <title><?=$title?></title>
</head>
<body>
 <h1><?=$heading?></h1>
 <?php if($query–>num_rows()>0): ?> //если в БД есть комментарии к этому посту
 <?php foreach($query–>result() as row): ?> //выводим их
 <p><?=$row–>body?></p> //сам комментарий
 <p><?=$row–>author?></p> //автор комментария
 <hr> //разделяем комментарии линией
 <?php endforeach; ?>
 <?php endif; ?>
 <p><?=anchor(‘blog’, ‘Back to Blog’);?></p> //создаем ссылку «Вернуться в блог»
 <?=form_open(‘blog/comment_insert’);?> //создаем форму добавления комментария
 <?=form_hidden(‘entry_id’, $this–>uri–>segment(3));?> //генерируем скрытое поле – третим сегментом uri будет номер поста (т.е. blog/comments/№_поста)
 <p><textarea name=”body” rows=”10”></textarea></p> //поле для ввода комментария
 <p><input type=”text” value=“author” /></p> //поле для ввода имени автора комментария
 <p><input type=”submit” value=“Submit Comment” /></p> //кнопка «Добавить комментарий»
 </form>
</body>
</html>

Вот и все

Реклама