Codeigniter Step0: Собираем стенд для дальнейших экспериментов.

Codeigniter Step0: Собираем стенд для дальнейших экспериментов.

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

«Культ энергии оргазма» Т.Клири

Прелюдия

Для того чтобы двигаться дальше все предыдущие наработки не подходят. Много лишнего. Сделаем самую простую заготовку блога, в которой будет только отображение статей и возможность их ввода и редактирования. Для большего пафоса назовем это "Codeigniter CMS Embrio "™

Все тексты заготовки сложем в архив. А после этого будет как в известной школе танцев "шаг вперед и поворот".

Практически коды повторяют предыдущий выпуск "Codeigniter Blog шаг за шагом", поэтому комментарии будут минимальными. Все исходники как обычно складываем в архив, который можно скачать здесь (в директории step0)

1. Разворачиваем дистрибутив

Дистрибутив берем на официальном сайте разархивируем и копируем содержимое директории Codeigniter_N.N.N в корневую директорию сайта.

2. Правим конфигурационные файлы

Все конфигурационные файлы лежат в директории /system/aplication/config поочередно правим:

3. Настраиваем htaccess

Текст .htaccess:

Options +FollowSymLinks
            Options -Indexes
            DirectoryIndex index.php
            RewriteEngine on
            RewriteCond $1 !^(index\.php)
            RewriteCond %{REQUEST_URI} !\.(css│js│jpg│gif)$
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule ^(.*)$ index.php/$1 [L,QSA]

4. Создаем БД

CREATE TABLE entries (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
title VARCHAR( 255 ) NOT NULL ,
author VARCHAR( 255 ) NOT NULL ,
mail VARCHAR( 255 ) NOT NULL ,
anounce TEXT NOT NULL ,
content TEXT NOT NULL
) ENGINE = MYISAM ;
INSERT INTO entries (title,content,anounce,mail,author) VALUES ('Text1', 'Text1 Text1 Text1', 'Anounce1 ','info@mail.ru','Zalkind');
INSERT INTO entries (title,content,anounce,mail,author) VALUES ('Text2', 'Text2 Text2 Text2', 'Anounce2 ','info@mail.ru','Zalkind');
INSERT INTO entries (title,content,anounce,mail,author) VALUES ('Text3', 'Text3 Text3 Text3', 'Anounce3 ','info@mail.ru','Zalkind');
INSERT INTO entries (title,content,anounce,mail,author) VALUES ('Text4', 'Text4 Text4 Text4', 'Anounce4 ','info@mail.ru','Zalkind');
INSERT INTO entries (title,content,anounce,mail,author) VALUES ('Text5', 'Text5 Text5 Text5', 'Anounce5 ','info@mail.ru','Zalkind');
INSERT INTO entries (title,content,anounce,mail,author) VALUES ('Text6', 'Text6 Text6 Text6', 'Anounce6 ','info@mail.ru','Zalkind');


5. Создаем Модель

В прошлый раз, следуя дурной традиции авторов CI туториала, обходились без модели. Для Codeigniter, который с самого начала задумывался в концкпции Модель-Вьюер-Контроллер (MVC).

Теперь мы как порядочные создадим модель, которая выполняет основные операции с БД - выборку и модификацию данных. На удалении и вставке данных сэкономим. Модель в файле S:\system\application\models\mblog:

<?php
            class Mblog extends Model {

             var $data=Array();

             function Mblog()
                {
                    parent::Model();
                }
             function getAll()
                {
                    $query = $this->          db->          get('entries');
                    return $query->          result_array();
                }
             function getOne($id)
                {
                    $query = $this->          db->          getwhere('entries', array('id' =>           $id))->          result_array();
                    return $query[0];
                }
             function update()
                {
                    $this->          db->          update('entries', $this->          data, "id = ".$this->          data['id']);
                }
            }
?>          

6. Создаем контроллер

В отличие от серии "Codeigniter Шаг за шагом" контроллер все операции по выборке и модификации данных выполняет через обращение к модели. Контроллер в файле S:\system\application\controllers\blog.php:

<?php

            class Blog extends Controller {

              function Blog()
                {
                    parent::Controller();
                    $this->          load->          model('mblog');
                }
              function index()
                {
                    $data['entries'] = $this->          mblog->          getAll();
                    $this->          parser->          parse('index.php',$data);
                }
              function view()
                {
                    $id=$this->          uri->          segment(3);
                    $this->          parser->          parse('one.php',$this->          mblog->          getOne($id));
                }
              function edit()
                {
                   $id=$this->          uri->          segment(3);
                   $this->          parser->          parse('edit.php',$this->          mblog->          getOne($id));
                }
              function save()
                {
                    $this->          mblog->          data=$_POST;
                    $this->          mblog->          update();
                    $this->          view();
                }
}?>          

7. Создаем вьюеры (views)

Во вьюерах я использую класс темплейтов Codeigniter. Для базовой заготовки их нужно три:

8. THE END

Все исходники можно взять здесь ( директория step0 архива). На этом прелюдия закончена, далее можно перейти непосредственно к процессу.

01 September 2000 ключевые слова:
Ссылки на статьи по теме: "
Обсуждение в блоге-форуме тем: ""