Дипломник: Сазыкин Е. С. Факультет ивт




НазваниеДипломник: Сазыкин Е. С. Факультет ивт
страница4/11
Дата09.03.2013
Размер0.72 Mb.
ТипДиплом
1   2   3   4   5   6   7   8   9   10   11

2.3 Выборка данных из базы



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

При обращении к любой из страниц сайта всегда открывается страница index.php, расположенная в корневом каталоге. Если же браузером будет запрошен какой-либо другой файл, то установки файла .htaccess перенаправят на файл index.php. Это действует благодаря строке

RewriteRule ^.*$ index.php

Здесь применяется переадресация на файл index.php, если запрошенный файл удовлетворяет шаблону ^.*$, то есть удовлетворяет любому файлу. Однако, в файле есть одна директива, которая позволяет открывать браузером иные файлы; заведомо известно, что эти файлы есть изображения. Об этом позже. Сначала разберем работу файла index.php.

Первым делом запускаем механизм сессий.



session_start();

Устанавливаем заголовок о том, что браузеру будет отдан html в кодировке utf-8.

header("Content-Type: text/html; charset=utf-8");

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

include_once("settings.php");

Далее идет подключение файла для работы администраторской части и файла с необходимыми классами (библиотека).

include_once("xpanel/settings.php");

include_once("#functions/functions.lib.php");

Затем идет создание объекта для работы с базой, выполняется два запроса, устанавливающих кодировку соединения и временную зону.

$db = new DataBase();

$db->Query("SET NAMES utf8");

$db->Query("SET TIME_ZONE='+7:00'");

Затем меняет переменную окружения для корректной работы далее

$_SERVER['REQUEST_URI'] = str_replace("http://".$_SERVER['SERVER_NAME'], "", $_SERVER['REQUEST_URI']);

Далее создаем объект, в котором будет хранится вся информация о текущей странице

$pc = new Processor($db->SelectCell("SELECT `name` FROM #q WHERE `id` = '2' LIMIT 1", DB_MFT)."/");

DB_MFTявляется константой со значением названия главной таблицы.

Далее дополняем глобальный массив переменными, необходимыми в дальнейшем для более логичной, удобной работы:

$GLOBALS['GLOBALS_ARGS']+= array(

"TITLE" => $pc->Tree['title'],

"keywords" => $pc->Tree['keywords'],

"description" => $pc->Tree['description'],

"URL" => $pc->URL,

"URL_BASE" => $pc->URL_BASE,

"URL_FULL" => $pc->URL_FULL,

"URL_QUERY" => $pc->URL_QUERY,

"BREADCRUMBS" => breadcrumbs($pc->Tree)

);

Далее создается объект «пользователь». В него заносится информация об авторизации, правах этого пользователя:

$User = new User(DB_USERS);

if($User->GetAuthorize(@$_SESSION['www_login'], @$_SESSION['www_password'])) {

$User->id = $User->info['id'];

$GLOBALS['GLOBALS_ARGS']+= $User->info;

}

$User->Access = $User->AccessChecking($pc->GetAccess(@DB_PREFIX."access_www", $pc->Tree));

Далее создается объект «шаблонизатор», разбирающий текст файла шаблона default.htm:

$tc = new Templater(file_get_contents("#templates/default.htm"));

В этом объекте идет подстановка вместо определяемых переменных типа %имя_переменной% соответствующих данных.

Следующими командами определяется выбор подключаемого шаблона.

Так как у нас для главной один шаблон, а для внутренних страниц другой, то имеет место следующая конструкция выбора. Здесь просматривается идентификатор запрашиваемой страницы. Если идентификатор равен 2, то есть это главная страница, то загружается шаблон content.htm. Иначе content_inner.htm. Также здесь идет установка переменной для данного шаблона, чтобы загузить его в главный шаблон default.htm.

if ($pc->Tree['id']=='2')

$tc->Add(file_get_contents("#templates/content.htm"), array(), "/CONTENT");

else

$tc->Add(file_get_contents("#templates/content_inner.htm"), array(), "/CONTENT");

Затем идет подключение постоянных блоков. Эти блоки будут загружаться во все страницы. Поэтому они названы гаджетами. Подробнее, здесь прописывается путь к файлам, в которых идет загрузка из базы данных, а также здесь идет инициализация переменных, при подстановке которых в шаблоны, будет выдан соответствующий контент. «"/CONTENT/» говорит о том, что эти переменные будут загружаться после подстановки переменной «CONTENT».

$tc->AddModul("#gadgets/menu/menu.php", "/CONTENT/MENU");

$tc->AddModul("#gadgets/menu/menu_v.php", "/CONTENT/MENU_V");

$tc->AddModul("#gadgets/tel/tel.php", "/CONTENT/TEL");

$tc->AddModul("#gadgets/adress/adress.php", "/CONTENT/ADRESS");

$tc->AddModul("#gadgets/tel_f/tel_f.php", "/CONTENT/TEL_F");

В конце файла index.php содержится код, подключающий выводимый контент для каждой страницы.

$tc->AddModul($pc->Tree['mod_path'], "/CONTENT/CONTENT");

К этому моменту в $pc->Tree['mod_path'] уже содержится идентификатор подключаемого модуля (приложения).

На этом обзор файла index.php закончен. Перейдем к рассмотрению файла одного из гаджетов. Например, #gadgets/menu/menu.php.

В самом начале всех файлов модулей (приложений) и гаджетов рекомендуется вставлять проверку на прямой запрос этого файла. В случае прямого запроса файла выдавать заголовок 404 – страница не найдена и прекращать дальнейшую обработку скрипта. Делается это следующим кодом:

if ( substr(__FILE__, strrpos(__FILE__, "/")) == substr($_SERVER['SCRIPT_NAME'], strrpos($_SERVER['SCRIPT_NAME'], "/")) ) {

header("HTTP/1.0 404 Not Found");

echo "ERROR 404";

exit();

}

Затем идет основная часть всех модулей (приложений), гаджетов. Естественно, основные части у всех отличны. В данном файле она такова:

$select = $db->Select("SELECT `id`, `title`, `name` FROM #q WHERE `parent_id` = '1' AND (`id`=14 OR `id`=15 OR `id`=16) ORDER BY `position`", DB_MFT, 1);

foreach ($select as $row) {

$row['class'] = "item_top_menu";

if ($pc->Tree['id']==$row['id']) {

$row['class']="item_top_menu_sel";

}

$args[] = $row;

}

То есть идет запрос к базе за определенными страницами. В переменную $select помещается не массив result-set, а самый настоящий массив, содержащий ответ от сервера базы данных MySQL.

Затем значения записываются в массив в глобальный массив $args, содержащий все значения переменных по текущей странице.

В конце файла следует вывести шаблон для конкретного модуля, гаджета.

echo file_get_contents(dirname(__FILE__)."/menu.htm");

В этом файле содержится html код с уже зарезервированными переменными. Файл menu.htm:

  • %title%


  • Вместо значений %name%, %title%, подставятся одноименные значения из массива $args.


    1   2   3   4   5   6   7   8   9   10   11

    Похожие:

    Дипломник: Сазыкин Е. С. Факультет ивт iconГосударственное образовательное учреждение высшего профессионального образования
    Факультет русской филологии и журналистики. Факультет истории и юриспруденции. Факультет татарской и сопоставительной филологии....
    Дипломник: Сазыкин Е. С. Факультет ивт iconУчебное пособие по английскому языку для студентов специальности ивт очной формы обучения Березники 2003
    Учебное пособие по английскому языку для студентов специальностей ивт очной формы обучения / Сост. Е. Б. Кучина, Г. Р чайникова;...
    Дипломник: Сазыкин Е. С. Факультет ивт iconРасписание занятий для 5-го курса (магистратура) ивт

    Дипломник: Сазыкин Е. С. Факультет ивт iconПроблемы формирования бюджета Ханты-Мансийского Автономного Округа
    Дипломник: Долгушин Сергей Юрьевич Руководитель проекта: Полномочный представитель Президента РФ в Ханты-Мансийском Автономном Округе...
    Дипломник: Сазыкин Е. С. Факультет ивт iconРабочая программа обсуждена на заседании кафедры ивт
    Изучение принципов проектирования пользовательского интерфейса прикладных программ
    Дипломник: Сазыкин Е. С. Факультет ивт iconКонтрольная работа за 1 полугодие по ивт. 11 класс
    Цель: Контроль зун по организации обработки больших объемов информации; создании базы данных в ms access
    Дипломник: Сазыкин Е. С. Факультет ивт iconЭкономический факультет финансовый факультет юридический факультет
    Программа вступительного испытания по обществознанию для поступления в Нижегородский государственный университет им. Н. И. Лобачевского...
    Дипломник: Сазыкин Е. С. Факультет ивт iconИсследование физико-химических эффектов
    Предложена феноменологическая модель эффекта Шварца-Хоры в тонких диэлектрических пленках, позволяющая дать объяснение основных характеристик...
    Дипломник: Сазыкин Е. С. Факультет ивт iconКонспект к открытому интегрированному уроку биологии информатики
    «Динамика биологических популяций. Математическое моделирование. Биологические модели развития популяций». (11 класс). Учителя: Кузнецов...
    Дипломник: Сазыкин Е. С. Факультет ивт iconНоу впо «Международный институт рынка» Факультет лингвистики Научно-практическая конференция учащихся
    Члены жюри: ст преподаватель Царфина А. А., ассистент Пилосян К. К., Петрова И. (3 курс, факультет лингвистики), Грешнова Д. (3 курс,...
    Разместите кнопку на своём сайте:
    Библиотека


    База данных защищена авторским правом ©lib.znate.ru 2014
    обратиться к администрации
    Библиотека
    Главная страница