Автор: Пользователь скрыл имя, 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
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
Розробка ядра програми
Ядро системи представляє із себе набір класів глобального призначення. Решта класів успадковуються від цих класів.
Також
до складу ядра входять моделі:
Сирцевий код
цих класів можна знайти у Додатку Б
Крім
того в ядро входить також JavaScript
фреймворк jQuery, WYSIWYG редактор CKEditor та файловий
веб-менеджер KCFinder.
Висновки
У ході виконання роботи була розроблена унікальна безкоштовна система керування вмістом, заснована на HTML5.
Реалізована система керування вмістом у порівнянні з сучасними аналогічними системами, є вузькоспеціалізованою, легкою і простою в експлуатації а також платформонезалежною і підтримуваною більшістю сучасних веб-хостингів.
Зі сторони клієнту підтримується більшістю сучасних веб-браузерів, таких як Google Chrome, Mozilla Firefox, Safari, Opera, Microsoft Internet Explorer 9 (для більш ранніх версій Microsoft Internet Explorer передбачена часткова сумісність).
Код
структуризован таким чином, що можна
легко відокремити програмну
логіку (моделі та контролери в контексті
MVC) від шаблонів сторінок (види в контексті
MVC). Крім того структура коду досить проста
для подальшого розвитку програмного
продукту. У результаті розроблена система
керування вмістом має підтримку HTML5 і
являється відносно простою в експлуатації.
Література
Додаток А
Структура
файлів проекту
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.
html5.js
layout.js
kcfinder*
.htaccess
include.php
index.php
* - директорії ckeditor та kcfinder містять в собі структуру файлів, що не відноситься безпосередньо до даного дипломного проекту, так як це сторонні розробки
Додаток Б
Сирцевий код базових класів та файлів
www\index.php
<?php
require_once('include.
Application::getInstance(
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_
|| define('CONTROLLERS_PATH', realpath(dirname(__FILE__)
. '/../controllers'));
error_reporting
(E_ALL ^ E_NOTICE ^ E_DEPRECATED);
set_include_path(
LIBRARY_PATH,
MODELS_PATH,
VIEWS_PATH,
CONTROLLERS_PATH,
'.',
get_include_path()
)));
function __autoload($class_name)
{
$class_name_array = explode('_',$class_name);
$class_name_array[
$class_path = implode('/',$class_name_array)
Информация о работе Розробка середовища для управління сайтами на основі HTML5