Дипломный проект защищен





НазваниеДипломный проект защищен
страница8/13
Дата публикации11.01.2015
Размер0.67 Mb.
ТипДиплом
100-bal.ru > Экономика > Диплом
1   ...   5   6   7   8   9   10   11   12   13

1.13.Запрос-ответ

1.13.1.Стек технологий Drupal


Операционная система в стеке технологий Drupal находится на самом низком уровне. В результате этого, CMS Drupal хорошо работает на базе любой операционной системы, поддерживающей технологию PHP. Веб-сервер, наиболее широко применяемый совместно с Drupal, – это Apache, но могут использоваться и другие. Стек технологий Drupal изображен на рисунке 3.3.



Рис. 3.3 Стек технологий Drupal.

На верхушке стека мы видим язык PHP, на котором реализован программный продукт Drupal. Далее идет база данных, в которой хранится вся информация и все материалы, разрабатываемые в системе Drupal. Наиболее подходящие базы данных – это MySQL и PostgreSQl, они наиболее тщательно протестированы. Затем стоит веб-сервер, который обеспечивает поддержку PHP и принимает запросы от браузера. И на последнем месте операционная система, выбор которой остается за пользователем, т.к. она почти никак не влияет на CMS Drupal.

1.13.2.Процесс начальной загрузки


При обращении к Drupal начальный процесс его загрузки можно разделить на фазы.

Конфигурация – на этой фазе устанавливается базовый URL сайта ($base_url). Файл settings.php подвергается синтаксическому анализу и переопределяются все переменные заданные в этом файле.

Ранний страничный кэш – файл раннего страничного кэша позволяет включать (с помощью функции include()) файл PHP, содержащий функцию page_cache_fastpath(). Который принимает и возвращает содержимое браузеру. Ранний страничный кэш осуществляется за счет установки переменной page_cache_fastpath в состояние true, а файл, который должен быть включен, определяется благодаря установке переменной cache_inc в состояние определяющее путь к файлу.

База данных – в течение этой фазы определяется тип базы данных и устанавливается первоначальное соединение, которое будет использоваться для выполнения запросов к базе данных.

Доступ – технология Drupal позволяет осуществлять запрет доступа с определенных хостов на основании префикса имени хоста или IP адреса. В фазе доступа осуществляется быстрая проверка, не исходит ли запрос от запрещенного хоста, если это так, то доступ запрещен.

Сеанс – система Drupal использует встроенный в PHP механизм управления сеансами. Все сеансы инициализируются или начинаются вновь на стадии «Сеанс».

Кэш последней страницы – на этой фазе Drupal загружает код, достаточный для определения того факта, нужно или не нужно загружать страницу из кэша. Этот процесс объединяет параметры из базы данных и массивов, созданных в ходе выполнения фазы «Конфигурация» и загрузки или анализа кода модуля. Если в процессе сеанса выясняется, что запрос был сделан анонимным пользователем и разрешено кэширование страницы, эта страница возвращается из кэша.

Путь – на это фазе загружается код, который обрабатывает пути к фалам и псевдонимы имен. На этой фазе разрешаются удобочитаемы URL и осуществляется управление кэшированием и поиском внутренних путей.

Завершение – эта фаза заканчивает процесс начальной загрузки. В ее ходе осуществляется загрузка библиотеки общих функций, поддержка тем и поддержка преобразования обратного вызова, управление файлами, загрузка инструментария отображения PHP, создание и обработка форм, автоматическая сортировка таблиц и определение порядка отображения страниц. Затем Drupal загружает исходный обработчик прерываний.

Как только Drupal завершает начальную загрузку, становятся доступными все компоненты его структуры. Теперь можно принимать запрос от браузера, который будет передан функции PHP, отвечающей за его обработку.

1.13.3.Массив элементов меню


Когда веб-браузер делает запрос к Drupal , он передает ему URL. Исходя из этой информации, Drupal должен определить, какой код необходимо выполнить и каким образом следует обработать запрос. Основная часть URL отсекается и используется только последняя его часть, называемая путем. Например, для URL http://portal.ru/?q=node/3 путь Drupal - это node/3.

В Drupal действует следующий подход. Все модули предоставляют массив элементов меню – т.е. путь и немного информации об этом пути. Один из фрагментов этой информации, который должен предоставить модуль, – это обратный вызов. Обратный вызов – это имя функции PHP, которая будет выполнена, когда браузер запросит определенный путь. Когда поступает запрос, Drupal выполняет следующие действия:

  1. Если путь является псевдонимом реального пути, Drupal находит реальный путь;

  2. Выполняется функция hook_menu(), чтобы все модули могли воспользоваться своими обратными вызовами;

  3. Создает схему путей к обратным вызовам;

  4. Если имеется модуль menu.module, то выполняются все изменения или добавления, которые администратор сайта сделал в схеме путей (например, переопределения заголовка элемента меню);

  5. Использует схему путей, чтобы найти функцию обратного вызова для требуемого URL;

  6. Возвращает результат выполнения функции или сообщение нет доступа, если пользователь не может получить доступ к URL, или ответ с кодом 404, если путь не ведет ни к какой функции.

Пример пункта меню:

$items['admin/build/'] = array(

'title' => 'Edit menu',

'type' => MENU_DEFAULT_LOCAL_TASK,

'file' => 'menu.admin.inc',

'callback' => 'menu_overview_page',

'access' => TRUE,

);

Рассмотрим приведенный код построчно.

$items['admin/build/'] = array(

В качестве параметра для $items, переменной пункта меню, служит путь к отображаемой странице, а значению переменной присваивается массив параметров.

'title' => 'Edit menu' – заголовок.

'type' => MENU_DEFAULT_LOCAL_TASK – тип элемента меню. Тип элемента складывается из набора параметров, приведенных в таблице 3.1.

Таблица 3.1

Флаги типов элементов меню

Двоичное представление

Константа

000000000001

MENU_IS_ROOT

000000000010

MENU_VISIBLE_IN_TREE

000000000100

MENU_VISIBLE_IN_BREADCRUMB

000000001000

MENU_VISIBLE_IF_HAS_CHILDREN

000000010000

MENU_MODIFIABLE_BY_ADMIN

000000100000

MENU_MODIFIED_BY_ADMIN

000001000000

MENU_CREATED_BY_ADMIN

000010000000

MENU_IS_LOCAL_TASK

000100000000

MENU_EXPANDED

001000000000

MENU_LINKS_TO_PARENT

Например, MENU_NORMAL_ITEM в двоичном эквиваленте равен 000000010110. Таким образом, он складывается из флагов: MENU_VISIBLE_IN_TREE, MENU_VISIBLE_IN_BREADCRUMB, MENU_MODIFIABLE_BY_ADMIN. В таблице 3.2 показаны доступные типы элементов меню и флаги, которыми они выражаются. В шапке таблице, цифры обозначают типы элементов меню, а именно:

1 – MENU_IS_ROOT;

2 – MENU_VISIBLE_IN_TREE;

3 – MENU_VISIBLE_IN_BREADCRUMB;

4 – MENU_VISIBLE_IF_HAS_CHILDREN;

5 – MENU_MODIFIABLE_BY_ADMIN;

6 – MENU_MODIFIED_BY_ADMIN;

7 – MENU_CREATED_BY_ADMIN;

8 – MENU_IS_LOCAL_TASK;

9 – MENU_EXPANDED;

10 – MENU_LINKS_TO_PARENT.

Таблица 3.2

Флаги выраженные типами элементов меню

Константы

1

2

3

4

5

6

7

8

9

10

MENU_NORMAL_ITEM




x

x




x
















MENU_ITEM_GROUPING







x

x

x
















MENU_CALLBACK







x






















MENU_DYNAMIC_ITEM




x

x






















MENU_SUGGESTED_ITEM







x




x
















MENU_LOCAL_TASK






















x







MENU_DEFAULT_LOCAL_TASK






















x




x

MENU_CUSTOM_ITEM




x

x




x




x










MENU_CUSTOM_MENU

x

x







x




x










'file' => 'menu.admin.inc' – имя конфигурационного файла модуля.

'callback' => 'menu_overview_page' – имя callback функции(данная функция содержится в файле “menu.admin.inc”).

'access' => TRUE – доступ к меню открыт.

Обычно доступом в меню управляют с помощью определения разрешений в модуле, используя функцию hook_perm() и проверяя эти разрешения с помощью функции user_access().

В предыдущем примере мы установили ключ доступа к элементу меню в положение TRUE. Это означает, что к нашему меню может получить доступ любой пользователь. Теперь мы изменим код так, чтобы доступ к меню мог получить тот пользователь, который имеет разрешение receive greeting (получение приветствия). Для этого мы изменяем только последнюю строчку, в ней мы используем функцию user_access().

$items['admin/build/'] = array(

'title' => 'Edit menu',

'type' => MENU_DEFAULT_LOCAL_TASK,

'file' => 'menu.admin.inc',

'callback' => 'menu_overview_page',

'access' => user_access('receive greeting') //проверка, разрешен ли //доступ пользователю

);

Если элементу меню не назначен никакой ключ доступа, то будет использоваться ключ доступа его родителя. Если и родитель не имеет ключ доступа, то Drupal осуществит рекурсию всех путей выше по дереву, пока не найдет ключ доступа (ключ доступа для корня дерева имеет значение TRUE). В таблице 3.3 приведены примеры, показывающие разрешен или запрещен доступ пользователю на основании установок доступа для элемента меню, а также его родительского элемента.

Таблица 3.3

Установки доступа меню и право доступа пользователя

Родительский

Дочерний

Доступ

False

False

Запрещен

True

False

Запрещен

False

True

Разрешен

True

True

Разрешен

False

Не определен

Запрещен

True

Не определен

Разрешен
1   ...   5   6   7   8   9   10   11   12   13

Похожие:

Дипломный проект защищен iconРеферат Баранов К. Г., Игнатенков А. И. Дипломный проект на тему...
Общий объем проекта составляет 78 страниц. Дипломный проект содержит 1 рисунок, 16 таблиц. Список литературы представлен 30 источниками...
Дипломный проект защищен iconДипломный проект на тему: «Проект реконструкции участка текущего...
Общий объем проекта составляет 70 страниц. Дипломный проект содержит 4 рисунка, 15 таблиц. Список литературы представлен 29 источниками...
Дипломный проект защищен iconДипломный проект на тему: «Проект реконструкции участка текущего...
Общий объем проекта составляет 70 страниц. Дипломный проект содержит 4 рисунка, 15 таблиц. Список литературы представлен 29 источниками...
Дипломный проект защищен iconТребования к выполнению выпускной квалификационной работы (дипломный проект) введение
Дипломный проект (ДП) является квалификационной работой, итоговой аттестацией, завершающей подготовку студента по специальности 220601...
Дипломный проект защищен iconРеферат Дипломный проект на тему «Автоматизированная система управления...
Дипломный проект на тему «Автоматизированная система управления санаторным комплексом «Валуево». Подсистема «Диетпитание» состоит...
Дипломный проект защищен iconДипломный проект на тему: «Проект мероприятий по повышению конкурентоспособности...
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Дипломный проект защищен iconДипломный проект на тему: Проект детского кафе на 50 мест в Торгово- офисном центре г. Пушкино
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Дипломный проект защищен iconДипломный проект на тему: Проект мероприятий по разработке антикризисной...
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Дипломный проект защищен iconДипломный проект на тему: «Проект сервисного центра по обслуживанию...
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Дипломный проект защищен iconДипломный проект на тему: «Проект мероприятий по совершенствованию...
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Дипломный проект защищен iconПроект мероприятий по совершенствованию системы снабжения зао «нпп...
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Дипломный проект защищен iconДипломный проект на тему: Проект мероприятий по улучшению финансового состояния
Целью работы является разработка мероприятий по улучшению финансового состояния строительного предприятия фгуп «усс» фсб россии
Дипломный проект защищен iconДипломный проект на тему: Проект мероприятий по совершенствованию...
Целью дипломной работы является разработка мероприятий по совершенствованию товародвижения в сети магазинов ип шумитовой В
Дипломный проект защищен iconМетодические указания по выполнению и оформлению научно-исследовательской...
К студенческим работам, выполняемым в процессе обучения относятся реферат, доклад, отчет о научной работе, курсовая работа или курсовой...
Дипломный проект защищен iconДипломный проект
...
Дипломный проект защищен iconДипломный проект на тему: Проведение реструктуризации туристической компании
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск