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