Warning: array_merge(): Argument #2 is not an array in /hsphere/local/home/magistr/codeismy.name/wp-content/plugins/wp-pagenavi/scb/Options.php on line 46

Framework CodeIgniter – просто!? Часть 2

Дата: Июнь 29, 2009

(0) комментариев

Здраствуете увожаемые читатели! Вот снова я в строю и буду радовать вас новыми статейками. :) Начну наверно с полюбившегося CI (здесь и далее CI — CodeIgniter). Это статья продолжение предыдущей — «Framework CodeIgniter – просто!? Часть 1″. Так что если не читали её, эту пока лучше не смотреть, чтобы знания систематизировались и в дальнейшем вы легко смогли их применить на практике, реализуя собственные задачи.

И так… приступим. Думаю стоит разобрать пример работы CI на примере создания простейшего блога.

1) Создание БД:

Создаём в базе данных MySQL базу данных с именем — «blog». В ней таблицу — «entries»:

1
2
3
4
5
6
CREATE TABLE `entrues` (
  `id` int(11) NOT NULL auto_increment,
  `title` varchar(128) NOT NULL,
  `body` text NOT NULL,
  UNIQUE KEY `id` (`id`)
)

Поле «id» — собственно уникальный номер записи, «title» — поле где будет храниться название статьи блога, «body» — сам текст.

К каждой статье блога необходимо добавлять коментарии. Хранение коментарие реализуем тоже через БД MySQL. В БД — «blog» создаем таблицу — «comments»:

1
2
3
4
5
6
7
CREATE TABLE `comments` (
  `id` int(11) NOT NULL auto_increment,
  `entry_id` int(11) default NULL,
  `body` text,
  `author` varchar(100) default NULL,
  UNIQUE KEY `id` (`id`)
)

Поле «id» — уникальный номер коментария, «entry_id» — уникальный номер статьи к которой относиться коментарий, «body» — текст комментария, «author» — имя автора.

2) Написание контроллера:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php

class Blog extends Controller {

    function Blog()
    {
        parent::Controller();
       
        $this->load->helper('url');     //Загружаем урл хелпер
        $this->load->helper('form');    //Загружаем хелпер обработки форм
    }
   
    function index()
    {
        $data['title'] = "Название Блога";
        $data['heading'] = "Заголовок блога";
        $data['query'] = $this->db->get('entries');     //Запрос к БД
       
        $this->load->viev('blog_view', $data);          //Отправка данных в view файл
    }
   
    function comments()
    {
        $data['title'] = "Название Коментария";
        $data['heading'] = "Заголовок коментария";
        $this->db->where('entry_id', $this->uri->segment(3));   //Выборочный запрос к БД используя значение третьего сегмента в URI
        $data['query'] = $this->db->get('comments');            //Запрос к БД
       
        $this->load->view('comment_view', $data);               //Отправка данных в view файл
    }
   
    function comment_insert()
    {
   

3)Файл blog_view.php:

Это view файл. Следовательно должен лежать по адресу — CodeIgniter/system/application/views/blog_view.php
Это файл с главной страницей блога.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<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>

<hr>

<?php endforeach; ?>

</bod

В этом файле посылаеться запрос к таблице с темами в блоге. А функция anchor() генерирует ссылку на коментарии, беря id темы блога.

4)Файл comment_view.php:

Это view файл. Следовательно должен лежать по адресу — CodeIgniter/system/application/views/comment_view.php.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<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 method="post" action="http:/www.your-site.com/index.php/blog/comment_insert" />-->
<?=form_open('blog/comment_insert');?>
<!--Создает невидимое поле с именем - "entery_id" и значением - "$this->uri->segment(3)" (т.е. со значением третьего элемента в URI)-->
<?=form_hidden('entery_id', $this->uri->segment(3

Конец…

Думаю вы извлекли что-то полезное до новых встреч! ;)
извлекли что-то полезное до новых встреч! ;)

a

    Автор: BelA-z

    , , ,




    Нет комментариев на "Framework CodeIgniter – просто!? Часть 2"

    Нет комментариев.


    Вы можете продолжить обсуждение этой статьи на форуме


    Имя : 
    Почта : 
    Сайт : 
    Комментарий : 

    Проверка комментариев включена. Прежде чем Ваши комментарии будут опубликованы пройдет какое-то время.

    Создание сайта - Echo-group Раскрутка сайтов