Розробка середовища для управління сайтами на основі HTML5

Автор: Пользователь скрыл имя, 15 Января 2012 в 22:00, дипломная работа

Описание работы

У нашій епосі всесвітня павутина має дуже велике значення. Великі корпорації, маленькі фірми, навіть фізичні особи мають свої власні сайти. Сучасні сайти знатно відрізняються від сайтів, які створювались декілька років тому – нові веб-технології з’являються майже з кожним роком та доповнюють існуючі сайти. Кожен, хто вирішив створити собі власний сайт, хоче зробити його, використовуючи останні новинки веб-індустрії. Однак не всі можуть створювати сайти взагалі.

Содержание

Вступ 5
Постановка завдання 7
1. Огляд існуючих технологій 8
1.1 Веб-розробка 8
1.1.1 Серверні мови 8
1.1.2 Клієнтські мови 17
1.2 Системи керування вмістом 21
1.3 HMTL5 26
2. Вибір технологій розробки 30
2.1 Мова програмування 30
2.2 Система керування базами даних 32
2.3 JavaScript фреймворк 32
2.4 WYSIWYG редактор 33
3. Опис роботи 34
3.1 Абстрактна модель програми 34
3.2 Проектування бази даних 34
3.3 Створення структури програми 36
3.4 Розробка ядра програми 37
Висновки 39
Література 40
Додаток А 41
Додаток Б 44

Работа содержит 1 файл

Диплом.doc

— 262.50 Кб (Скачать)

            if (

                  file_exists(LIBRARY_PATH.'/'.$class_path) ||

                  file_exists(MODELS_PATH.'/'.$class_path) ||

                  file_exists(VIEWS_PATH.'/'.$class_path) ||

                  file_exists(CONTROLLERS_PATH.'/'.$class_path)

                  )

            {

                  require_once($class_path);

                  return true;

            }

            return false;

      }

library\ Application.php

<?php

      class Application

      {

            static $instance; 

            /**

             *

             * @return Application

             */

            static function getInstance()

            {

                  if (!self::$instance)

                        self::$instance = new self();

                  return self::$instance;

            } 

            protected $request = array();

            protected $response = array();

            protected $is_post = false;

            protected $url = "";

            protected $host = ""; 

            static $dispatch_rules = array(

                  'Index'    => array(

                        '_module'  => 'default',

                        '_controller' => 'index'

                  ),

                  'Admin_Login'  => array(

                        '_module'  => 'admin',

                        '_controller' => 'login'

                  ),

                  'Admin_Index'  => array(

                        '_module'  => 'admin',

                        '_controller' => 'index'

                  ),

                  'Admin_Settings' => array(

                        '_module'  => 'admin',

                        '_controller' => 'settings'

                  ),

                  'Admin_Pages'  => array(

                        '_module'  => 'admin',

                        '_controller' => 'pages'

                  ),

                  'Admin_Menu'  => array(

                        '_module'  => 'admin',

                        '_controller' => 'menu'

                  ),

            ); 

            private function __construct()

            {

                  $this->request = $_REQUEST;

                  if ($_POST)

                        $this->is_post = true;

                  $this->host  = $_SERVER['HTTP_HOST'];

                  $this->url  = $_SERVER['REQUEST_URI'];

                  $this->request += $this->parseRequestURL();

            } 

            public function run()

            {

                  //Запускаем диспетчеризацию

                  $controller_class = "Index";

                  foreach (self::$dispatch_rules as $class=>$rules)

                  {

                        $flag = true;

                        foreach ($rules as $param=>$value)

                        {

                              if ($this->request[$param] != $value)

                              {

                                    $flag = false;

                                    break;

                              }

                        }

                        if ($flag)

                        {

                              $controller_class = $class;

                              break;

                        }

                  }

                  //Инициализируем контроллер

                  $controller = new $controller_class();

                  if ($controller->redirect)

                        return header("Location: {$controller->redirect}");

                  $controller->init();

                  if ($controller->redirect)

                        return header("Location: {$controller->redirect}"); 

                  //Если не запрещено,  рендерим свзяанное представление

                  if ($controller->view && $controller->render)

                  {

                        $this->response['html'] = $controller->view->render(null,$controller->layout);

                  } 
 
 

                  //Выводим результат рендеринга представления

                  echo $this->response['html'];

            } 

            public function getRequest($param=null)

            {

                  if ($param===null)

                        return $this->request;

                  else

                        return $this->request[$param];

            } 

            public function isPost()

            {return $this->is_post;} 

            public function getUrl()

            {return $this->url;} 

            public function getHost()

            {return $this->host;} 

            public function parseRequestURL($url=null)

            {

                  //Парсинг входного  УРЛа и преобразование в массив  входных параметров на базе  статической таблицы маршрутизации.

                  if ($url===null)

                        $url = $this->url;

                  $request = array(); 

                  //Вырезаем разширение  из УРЛа чтобы оно не попало  в входные параметры

                  $url_array = explode('.',$url);

                  if (count($url_array)>1)

                        array_splice($url_array,-1,1);

                  $url = implode('.',$url_array); 

                  //Разбиваем входной  УРЛ на секции

                  $params = explode('/',$url);

                  //Вырезаем задний  слэш

                  array_splice($params,0,1);

                  if (count($params))

                  {

                        foreach ($params as $i=>$param)

                        {

                              switch ($i)

                              {

                              case 0:

                                    switch ($param)

                                    {

                                    case 'admin':

                                          $request['_module'] = 'admin';

                                    break;

                                    case 'index':

                                    case '':

                                          $request['_module'] = 'default';

                                          $request['_controller'] = 'index';

                                    break;

                                    default:

                                          $request['_module'] = 'default';

                                          $request['_controller'] = 'index';

                                          if (!$request['_params'])

                                                $request['_params'] = array();

                                          $request['_params'][] = $param;

                                    break;

                                    }

                              break;

                              case 1:

                                    switch ($params[0])

                                    {

                                    case 'admin':

                                          switch ($param)

                                          {

                                          case 'login':

                                          case 'pages':

                                          case 'menu':

                                          case 'settings':

                                                $request['_controller'] = $param;

                                          break;

                                          case 'index':

                                          case '':

                                                $request['_controller'] = 'index';

                                          break;

                                          default:

                                                $request['_controller'] = 'index';

                                                if (!$request['_params'])

                                                      $request['_params'] = array();

                                                $request['_params'][] = $param;

                                          break;

                                          }

                                    break;

                                    default:

                                          if (!$request['_params'])

                                                $request['_params'] = array();

                                          $request['_params'][] = $param;

                                    break;

                                    }

                              break;

Информация о работе Розробка середовища для управління сайтами на основі HTML5