Старт на CodeIgniter

Както бе споменато в статията Common CMS Design Considerations, ние ще използваме CodeIgniter като рамка за внедряване на CMS двигателя. Можете да прочетете за неговите предимства и недостатъци в необятните пространства на Интернет. Лично аз го харесвам преди всичко заради неговата простота, гъвкавост на използване, добра документация, бърза скорост, елементарна инсталация на сървъра и т.н. Тази статия обсъжда въпроса за инсталирането на рамка за изпълнение на две приложения на едно и също ядро, както и някои подготвителни стъпки за по-нататъшно внедряване на система за управление на съдържанието.
Основен увод.
- Ние използваме шаблона за проектиране на модел-дисплей-контролер.
- Моделът ще бъде клас, с набор от методи, които съдържат заявки за работа с базата данни.
- Дисплеят съдържа HTML код с възможно най-малко PHP. Ние не използваме SMARTY или други машини за шаблони.
- Контролерът е координатор на приложения, който действа като посредник между модела, дисплея и други ресурси, необходими за генериране на уеб страница по HTTP заявка.
Инсталиране на CodeIgniter.
За да инсталираме CodeIgniter на сървъра и да създадем конфигурацията на рамката, от която се нуждаем, трябва да направим следните предварителни манипулации:
- Разархивирайте архива за разпространение, последната версия може да бъде изтеглена тук: http://codeigniter.com/downloads/.
- Качете папки и файлове на CodeIgniter на сървъра. Файлът index.php трябва да е в корена.
- Тъй като се предполага, че имаме административна част и самия сайт и тези две части са свързани помежду си само чрез базата данни, тогава заедно с файлаindex.php в основата, трябва да създадете файла admin.php, който ще бъде входната точка към административния панел (съдържанието му е подобно на съдържанието на файла index.php.
- В директорията "приложение" трябва да създадете две поддиректории: "site", където ще се намират файловете и папките за сайта, и "admin", за административния панел. Съответно всички папки и файлове от "приложение" трябва да бъдат копирани в тези директории. Сега файлът index.php ще работи с папката "application/site", а файлът admin.php с папката "application/admin". Единственото нещо, което трябва да запомните, е да посочите това във файла admin.php и да напишете в съответния ред: $application_folder = "application/admin"; същото трябва да се направи във файла index.php: $application_folder = "приложение/сайт"; .
- След това ще работим с администраторския панел, следователно трябва да отворим файла application/admin/config/config.php и да зададем основния URL адрес.
- За да зададете настройките на базата данни - отворете файла application/admin/config/database.php и извършете съответните манипулации.
- Във файла application/admin/config/routes.php задаваме контролера по подразбиране: $route['default_controller'] = "main";.
Проверяваме функционалността.
Инсталиране на библиотеки и разширения.
В папката application/admin/libraries/ създайте следните файлове:
- MY_Controller.php - основно разширение на контролера.
- MY_Model.php - разширение на основния модел.
- Session.php - Native Session библиотека, която може да бъде изтеглена тук: http://cocodeigniter.com/wiki/Native_session/
- User.php - библиотека за работа с потребителски права.
Съдържанието на файловете (с изключение на файла Session.php) ще бъде разкрито в следващите публикации, тук ще разгледаме само основната им цел:
Структура на директорията:
- В папката application/admin/controllers нека създадем папката page, която ще съдържа контролери, отговарящи за работа с администраторските данни - новини, събития, настройки и др. Идеята е, че когато щракнете върху връзката към главното меню, се свързва съответният контролер.
- В папката application/admin/models ще създадем и папка page, която ще съдържа моделите.
- А в папката application/admin/views създаваме папки: page – където ще се намират подпапки с изгледи за съответните страници; блок - с представяния на повтарящи се блокове; шаблони - където ще се съдържат шаблоните за дизайн на нашата система за управление (може да има няколко от тях, в съответствие с броя на темите за дизайн).