Розробка середовища для управління сайтами на основі 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 Кб (Скачать)

   title - заголовок пункту меню

   type - тип елемента меню. (0 - посилання на головну сторінку, 1 - посилання на користувальницьку сторінку, 2 - посилання на зовнішній ресурс)

   page_id - ідентифікатор користувальницької сторінки (якщо тип елемента меню = 1)

   url - посилання на зовнішній ресурс (якщо тип елемента меню = 2)

   order - порядковий номер при виведенні на сайті

   active - прапор активності (0 - не активно, 1 - активно)

Таблиця 3

Структура таблиці menu

    Поле Тип даних  Індекси NULL
    id INT(8) UNSIGNED PRIMARY KEY NOT NULL
    title VARCHAR(50)   NOT NULL
    type ENUM('home','page','url')   NOT NULL
    page_id INT(8) UNSIGNED   NULL
    url VARCHAR(100)   NULL
    order INT(8) UNSIGNED   NOT NULL
    active TINYINT(1) UNSIGNED   NULL
 
 
 

3.3 Створення структури програми 
 

   Система буде реалізована з використанням  патерну програмування MVC (Model-View-Controller, Модель-Вид-Контролер), який дозволяє розділити логіку роботи системи на три складові: робота з даними (модель), робота з користувачем (вид) та управління програмою(контролер). Для полегшення створення структури системи буде використовуватися метод перевантаження функції __autoload() для автоматичного підключення файлів, що містять класи, які ще не були визначені в процесі виконання програми. Цей метод дозволяє позбутися від великої кількості використань оператора include в коді програми а також розташувати класи в зручній ієрархії, використовуючи файлову систему. Точкою входу в програму буде файл index.php, на який будуть перенаправлятися будь-які запити до сайту, якщо тільки цей запит не був зроблений до існуючого на сервері файлу. Файл index.php, як і всі файли, доступні ззовні, будуть розташовуватися в директорії www яка являється публічною. Решта системних файлів і директорій будуть розташовані на рівень вище. Структуру файлів проекту можна знайти в Додатку А. 
 

3.4 Розробка ядра програми 
 

   Ядро  системи представляє із себе набір класів глобального призначення. Решта класів успадковуються від цих класів.

  • Application - основний клас програми. Сінглтон. Реалізує в собі функції головного контролера, маршрутизує запити і виводить результативний HTML у потік виводу
  • Controller - абстрактний клас контролера. Визначає основні структурні властивості контролерів. Використовується для реалізації класів системних контролерів
  • DB - Основний клас для роботи з базою даних. Сінглтон. Є врапером абстрактного інтерфейсу доступу до бази даних PDO. Надає функції простого виконання запитів SELECT, INSERT, UPDATE, DELETE і отримання результатів цих запитів.
  • Session - клас для роботи з сесією. Сінглтон. Надає простий і зручний спосіб взаємодії з даними, збереженими в сесії.
  • View - клас, який реалізує функції компонента Вид патерну MVC. Включає в себе функції рендеринга шаблонів та макетів. Підтримує внутрішній рендеринг.
  • Controller_Admin - абстрактний клас контролерів модуля управління. Успадковуєте від класу Controller і додає перевірку на авторизацію.
 

   Також до складу ядра входять моделі: 

  • Auth - модель  используемая для аутентификации  пользователя в модуле управления.
  • Menu - модель, використовувана для відображення та редагування меню сайту. Сінглтон.
  • Pages - модель, що використовується для роботи зі сторінками сайту. Сінглтон.
  • Settings - модель, використовувана для роботи з настройками системи. Сінглтон.
 

    Сирцевий код цих класів можна знайти у Додатку Б 

   Крім  того в ядро входить також JavaScript фреймворк jQuery, WYSIWYG редактор CKEditor та файловий веб-менеджер KCFinder. 

 

Висновки

   У ході виконання роботи була розроблена унікальна безкоштовна система  керування вмістом, заснована на HTML5.

   Реалізована система керування вмістом у  порівнянні з сучасними аналогічними системами, є вузькоспеціалізованою, легкою і простою в експлуатації а також платформонезалежною і підтримуваною більшістю сучасних веб-хостингів.

   Зі  сторони клієнту підтримується  більшістю сучасних веб-браузерів, таких як Google Chrome, Mozilla Firefox, Safari, Opera, Microsoft Internet Explorer 9 (для більш ранніх версій Microsoft Internet Explorer передбачена часткова сумісність).

   Код структуризован таким чином, що можна  легко відокремити програмну  логіку (моделі та контролери в контексті MVC) від шаблонів сторінок (види в контексті MVC). Крім того структура коду досить проста для подальшого розвитку програмного продукту. У результаті розроблена система керування вмістом має підтримку HTML5 і являється відносно простою в експлуатації. 
 

 

Література 
 

    1. Олищук  А.В. Разработка Web-приложений на PHP 5. Профессиональная работа. — М.: Вильямс, 2006. — С. 352
    2. Кузнецов Максим, Симдянов Игорь Объектно-ориентированное программирование на PHP. — Спб.: БХВ-Петербург, 2007. — С. 608.
    3. Соколов Сергей Александрович. HTML и CSS в примерах, типовых решениях и задачах. Профессиональная работа. — М.: Вильямс, 2007. — С. 416.
    4. Самков Г. jQuery. Сборник рецептов. — СПб.: БХВ-Петербург, 2010. — С. 416.
    5. A vocabulary and associated APIs for HTML and XHTML [Електронний ресурс]  http://dev.w3.org/html5/spec/
 
 

 

Додаток А

Структура файлів проекту 
 

configs

      access.ini

      db.ini

controllers

      Admin

            Index.php

            Login.php

            Menu.php

            Pages.php

            Settings.php

            Users.php

      Index.php

library

     Controller

           Admin.php

     Application.php

     Controller.php

     DB.php

     Session.php

     View.php

models

     Auth.php

     Menu.php

     Pages.php

     Settings.php

     User.php

views

      admin

            index

                  index.phtml

      login

                  index.phtml

      menu

                  index.phtml

      pages

                  index.phtml

      settings

                  index.phtml

     index

           index.phtml

     layouts

           site

                 footer.phtml

                 menu.phtml

         admin.phtml

         default.phtml

         login.phtml

www

      ckeditor*

     css

           admin.css

           del.css

           site.css

           style.css 
 

     images

         edit.png

         wait.gif

     js

         admin

           menu.js

           pages.js

           settings.js

         jquery

               jquery-latest.js

           jquery-ui-1.8rc3.custom.min.js

         html5.js

         layout.js

      kcfinder*

      .htaccess

      include.php

     index.php 
 
 
 
 
 
 
 
 

* - директорії ckeditor та kcfinder  містять в собі структуру файлів, що не відноситься безпосередньо до даного дипломного проекту, так як це сторонні розробки

 

Додаток Б

Сирцевий код базових класів та файлів

www\index.php

<?php

     require_once('include.php');

     Application::getInstance()->run(); 

www\include.php

<?php

      function d($t){

                  echo "<xmp>";

                  print_r($t);

                  echo "</xmp>";

      } 

      function _d($t){d($t);exit;} 

      // Время начала работы приложения (для дебага)

      defined('START_TIME')

            || define('START_TIME', microtime(true)); 

      // Задаем путь к корневой папке  приложения

      defined('ROOT_PATH')

            || define('ROOT_PATH', realpath(dirname(__FILE__) . '/..')); 

      // Задаем путь к папке публичного доступа приложения

      defined('WWW_PATH')

            || define('WWW_PATH', realpath(dirname(__FILE__) . '/../www')); 

      // Задаем путь к папке конфигурационных  файлов приложения

      defined('CONFIG_PATH')

            || define('CONFIG_PATH', realpath(dirname(__FILE__) . '/../configs')); 

      // Задаем путь к папке библиотеки  приложения

      defined('LIBRARY_PATH')

            || define('LIBRARY_PATH', realpath(dirname(__FILE__) . '/../library')); 

      // Задаем путь к папке моделей  приложения

      defined('MODELS_PATH')

            || define('MODELS_PATH', realpath(dirname(__FILE__) . '/../models')); 

      // Задаем путь к папке видов  приложения

      defined('VIEWS_PATH')

            || define('VIEWS_PATH', realpath(dirname(__FILE__) . '/../views')); 

      // Задаем путь к папке контроллеров  приложения

      defined('CONTROLLERS_PATH')

            || define('CONTROLLERS_PATH', realpath(dirname(__FILE__) . '/../controllers')); 

      error_reporting (E_ALL ^ E_NOTICE ^ E_DEPRECATED); 

      set_include_path(implode(PATH_SEPARATOR, array(

            LIBRARY_PATH,

            MODELS_PATH,

            VIEWS_PATH,

            CONTROLLERS_PATH,

            '.',

            get_include_path()

      ))); 

      function __autoload($class_name)

      {

            $class_name_array = explode('_',$class_name);

            $class_name_array[count($class_name_array)-1] .= '.php';

            $class_path = implode('/',$class_name_array);

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