Разработка web-сайта о кафе, барах и ресторанах города Челябинска

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



il);

После загрузки класса, пользователь будет использовать переменные класса, как при обычном его расширении. В случае с описанным примером все вызовы будут иметь следующий синтаксис:

$this->email->some_function();

Установка собственного префикса.

Для установки собственного подклассового префикса откроем файл application/config/config.php и напишем там следующее:

$config[subclass_prefix] = MY_;

Стандартным для CodeIgniter является префикс CI_. В данном случае нельзя использовать его.

Создание классов ядра

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

У большинства пользователей никогда не возникнет необходимость менять классы ядра, но сама возможность сделать это делает CodeIgniter очень гибким фреймворком.

Перечень системных классов.

Вот перечень основных системных файлов, которые вызываются при инициализации CodeIgniter:

Benchmark

Замена классов ядра.

Для использования созданных скриптов вместо скриптов по умолчанию нужно разместить их в папке application/libraries:/libraries/some-class.php

Если такой папки нет, то нужно ее создать.

Любое имя файла, идентичное одному из перечисленных выше, будет использоваться вместо настоящего файла из поставки CodeIgnier.

Созданный класс должен использовать CI в качестве префикса. Например, если файл назван Input.php, то класс должен объявляться так:

CI_Input {

}

Расширение классов ядра.

Расширение класса практически идентично его замене за парой исключений:

Объявление класса должно расширять родительский класс.

Новое имя класса должно начинаться с префикса MY_ .

Например, чтобы расширить родной класс Input, вы должны создать файл application/libraries/MY_Input.php и объявить внутри класс:

class MY_Input extends CI_Input {

}

Если в классе необходим конструктор - нужно в нем вызвать конструктор родителя:

class MY_Input extends CI_Input {My_Input()

{::CI_Input();

}

}

Любая функция в классе, название которой аналогично функции в родительском классе будет использоваться вместо родной (это называется метод переопределения). Это позволяет существенно менять ядро CodeIgniterа.

Установка собственного префикса.

Для установки собственного префикса откройте файл application/config/config.php и найдите там:

$config[subclass_prefix] = MY_;

2 Практическая часть

Согласно цели дипломной проект был создан сайт, содержащий информацию о ресторанах, кафе и барах города Челябинска. Данная информация заноситься администратором сайта и храниться в базе данных MySQL.

.1 Структура сайта

Данный сайт состоит из четырех частей:

Административная часть

Главная страница сайта

Страницы со списком заведений конкретной категории

Страницы с информацией по конкретному заведению

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

.1.1 Административная часть

Административной частью могут воспользоваться администраторы сайта, доступ к ней ограничен логином и паролем. Она служит для управления информацией на сайте. С ее помощью можно добавлять и редактировать заведения, категории, управлять зарегестрированныим пользователями, настраивать параметры сайта, такие как email администратора и прочие.

Административная часть генерируеться автоматически, на основе мета-информации, хранящейся в классе каждого контроллера. Например, мета-информация об административной части контроллера Firms, отвечающего за заведения, можно посмотреть в приложении A.

2.1.2 Главная страница сайта

На главной странице сайта содержется карта Челябинска, облако тегов, списки популярных и недавно добавленных заведений, что можно видеть на Рисунке 2.

Рисунок 2 - Главная страница сайта

Карта Челябинска взята с сервиса Яндекс.Карты, который предоставляет возможность использовать карту на свом сайте. На данной карте отображаются иконки заведений, которые присутствуют на этой странице.

В верхней части сайта есть гиперссылка Облако тэгов, при щелчке по которой появляется список ссылок на категории заведений (Рисунок 3). Размер шрифта каждой ссылки зависит от количества заведений в данной категории.

Рисунок 3 - Облако тэгов

Каждый элемент списков популярных и недавно добавленных заведений содержит название и ссылку на подробное его описание. Кроме того, в кажом элементе есть ссылка, показывающая это заведение на карте Челябинска.

.1.3 Страницы со списком заведений конкретной категории

На эту страницу пользователь переходит, выбрав одну из категорий в облаке тэгов (Рисунок 4). На странице можно увидеть постраничный перечень всех заведений, которые относятся к данной категории. Так же каждое заведение отображается на карте в виде иконки. Одно и то же заведение может относиться к разным категориям, например, зведение Шафран относиться к категориям Ресторан, Живая музыка, Летнее кафе и Восточная кухня.

Рисунок 4 - Страница со списком заведений категории Ресторан

.1.4 Страницы с информацией по конкретному заведению

На данную страницу можно попасть, выбрав ко