Пояснювальна записка до дипломного проекту на тему розробка системи управління контентом веб-сайту пп «Віконера» icon

Пояснювальна записка до дипломного проекту на тему розробка системи управління контентом веб-сайту пп «Віконера»



НазваниеПояснювальна записка до дипломного проекту на тему розробка системи управління контентом веб-сайту пп «Віконера»
страница7/12
Дата конвертации15.11.2012
Размер0.69 Mb.
ТипПояснювальна записка
скачать >>>
1   2   3   4   5   6   7   8   9   ...   12
^

7.4. Передача даних між сторінками


Для передачі даних між сторінками у дипломному проекті використано 5 способів:

1. Використання сесій.

2. Використання кукісів.

3. Передача даних за допомогою GET-методу.

4. Передача даних за допомогою POST-методу.

5. Використання спільної бази даних.



Рис. 7.2.
^

7.5. Структура розробленої системи




Рис. 7.3.

7.6. Опис ядра портальної системи


Скрипти та класи, які реалізують ядро портальної системи розміщуються у каталозі /modules/main/scripts/.

1. database.php - скрипт, який встановлює з’єднання з базою даних


$DB_HOSTNAME = "localhost";

$DB_USER = "root";

$DB_PASSWORD = "ve2klD3w";

$DB_NAME = "vikonera";

$conn = mysql_connect($DB_HOSTNAME, $DB_USER, $DB_PASSWORD) or

trigger_error(mysql_error(), E_USER_ERROR);

mysql_select_db($DB_NAME);

mysql_query("SET NAMES cp1251", $conn);

?>

2. modules.php – містить реалізацію класу Modules. Даний клас здійснює автоматичне сканування директорій, пошук модулів і виконує їх завантаження.

3. indexator.php – містить реалізацію класу Indexator, який використовується портальною системою для індексування сторінок і занесення ключових слів у базу даних, використовується для організації пошуку по сайту.

4. DataSet.php – містить реалізацію класу DataSet, який використовується для виконання базових операцій з таблицями бази даних.

class DataSet

{

var $TableName; /* ім’я таблиці у базі даних */

var $IndexField; /* поле таблиці, які є індексним */

var $QuantityOfLinesOnPage; /* кількість записів, які потрібно розмістити на одній сторінці */

var $WhereStatement; /* частина sql-запиту, яка визначає умови вибірки записів з бази даних */

var $OrderByStatement; /* частина sql-запиту, яка визначає порядок сортування записів */

function DataSet($tableName, $indexField,

$quantityOfLinesOnPage) /* конструктор класу, який приймає три параметри. За допомогою першого параметру передається ім’я таблиці, другий параметр – це ім’я індексного поля, третій – кількість рядків на одній сторінці */

function AddOrderByStatement($field, $value) /* встановлює порядок слідування записів. Перший параметр визначає ім’я поля, за яким здійснюється сортування. Другий параметр визначає порядок сортування (ASC, DESC) */

function AddWhereStatement($value) /* додати умову WHERE */

function GetQuantityOfRows() /* повертає загальну кількість вибраних записів */

function GetRowById($id) /* повертає запис із заданим ID-номером */

function GetQuantityOfPages() /* повертає загальну кількість сторінок */

function GetRowsOnPage($page_number) /* повертає усі записи для сторінки, номер якої передається у вигляді параметру */

}

4. CTemplate.php – містить реалізацію класу CTemplate, який дозволяє виконувати операції з шаблонами html-сторінок.

class CTemplate

{

var $page_address; /* шлях до шаблонної html-сторінки */

var $params; /* масив значень параметрів підстановки */

function CTemplate($page_addr) /* конструктор класу, який здійснює ініціалізацію елементів-даних класу $page_address, $params */

function SetParam($param_name, $param_value) /* встановити значення $param_value параметру з іменем $param_name */

function GetPageWithParams()

function GetPage()

function ShowPage()

function ShowPageWithParams()

}
^

7.7. Структура модуля портальної системи


Всі модулі портальної системи зберігаються у каталозі /modules/.

Кожний модуль має таку структуру:

  • module.php – скрипт, який містить усі класи, які реалізують модуль;

  • config.php – конфігураційний файл, у якому розміщується інформація, яка необхідна для реєстрації модуля у портальній системі;

  • /admin – каталог, який містить шаблони html-файлів, у яких зберігаються форми, що використовуються системою адміністрування при виконанні операцій по роботі з даними.

  • /user – каталог, який містить шаблони html-файлів, що використовуються при відображення даних для відвідувачів сайту у користувацькій частині сайту.

Конфігураційний файл config.php призначений для реєстрації модуля у портальній системі. У ньому міститься інформація про автора модуля, дата його створення тощо.

Для усіх модулів системи діють одні й ті самі правила написання конфігураційного файла. У ньому визначається асоціативний двовимірний масив. Перший індекс цього масиву представляє собою абревіатуру модуля, а другий – назву пераметра. Присовоєння значення параметру здійснюється таким чином:

$Modules[‘Абревіатура’][‘Назва параметра’] = “Значення”;

Для кожного модуля в обов’язковому порядку мають бути визначені такі параметри:

  • CodeName – кодове ім’я модуля. Використовується при зв’язуванні модуля з іншими модулями системи (наприклад, модуля «Новини» з модулем «Пошук по сайту»);

  • Name – назва модуля. Відображається у системі адміністрування разом з піктограмою модуля;

  • Version – версія модуля;

  • Date – дата релізу модуля;

  • Author – інформація про автора;

  • Directory – назва підкаталогу у каталозі /modules/, у якому зберігаються програмні скрипти модуля;

  • Admin – визначає, чи потрібно реєструвати модуль у (деякі модулі можуть використовуються лише у користувацькій частині сайту).

  • User – визначає, чи потрібно реєструвати модуль у користувацькій частині сайту (деякі модулі можуть використовуються лише у системі адміністрування сайту).

  • Class – ім’я головного класу модуля. Кожний модуль складається як мінімум з одного класу, який будемо називати головним класом модуля, який, в свою чергу, може використовувати інші допоміжні класи.

Головний клас модуля повинен містити набір функцій, які реалізовують функції-обробники подій Form() та Handler() та функції, які здійснюють відображення даних та організацію діалогів з користувачем.

Приведемо приклад реалізації модуля на прикладі «Контактної форми».


class Guestbook

{

// видалення повідомлення з бази даних

function MessageDelete($id)

{

$query = "DELETE FROM guestbook WHERE message_id = '{$id}'";

mysql_query($query) or die(mysql_error());

}


// виведення списку повідомлень з можливістю вибору повідомлення для редагування

// або видалення

function GuestbookAdminTable()

{

$query = "SELECT * FROM guestbook ORDER BY message_id DESC";

$query_result = mysql_query($query);

$adminTable = new CAdminTable();

if (mysql_affected_rows() > 0)

{

for ($i = 0; $i < mysql_affected_rows(); $i++)

{

$row = mysql_fetch_array($query_result);

$editlink = "admin.php?mod=Guestbook&message_id={$row['message_id']}&Edit=1";

$deletelink =

"admin.php?mod=Guestbook&ListMessages=1&message_id={$row['message_id']}&DelMessage=1";

$adminTable->AddDeleteLink("видалити", $deletelink, "Видалити повідомлення?");

$adminTable->AddEditLink("редагувати", $editlink);

$adminTable->AddDataField($row['message_date']);

$adminTable->AddDataField($row['message_author_name']);

$adminTable->NextRow();

}

}

$adminTable->Show();

echo "

";

}

// Читання повідомлення з бази даних

function MessageSelect($id)

{

$query = "SELECT * FROM guestbook WHERE message_id = '{$id}'";

$query_result = mysql_query($query);

if (mysql_affected_rows() > 0)

{

$row = mysql_fetch_array($query_result);

return $row;

}

}

// Відображення форми редагування повідомлення

function MessageEditHandler()

{

if (isset($_POST['messageeditform']))

{

$this->MessageUpdate($_POST['message_text'], $_POST['message_answer'], $_POST['message_author_name'], $_POST['message_author_email'], $_POST['message_author_homepage'], $_POST['message_author_ip'], $_POST['message_date'], isset($_POST['message_visible']) ? 'Y' : 'N', $_GET['message_id']);

header("Location: admin.php?mod=Guestbook&ListMessages=1&person_id={$_POST['person_id']}");

}

}


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

function MessageUpdate($message_text, $message_answer, $message_author_name, $message_author_email, $message_author_homepage, $message_author_ip, $message_date, $message_visible, $id)

{

$message_text = addslashes($message_text);

$message_answer = addslashes($message_answer);

$message_author_name = addslashes($message_author_name);

$message_author_email = addslashes($message_author_email);

$message_author_homepage = addslashes($message_author_homepage);

$message_author_ip = addslashes($message_author_ip);

$message_date = addslashes($message_date);

$query = "UPDATE guestbook SET message_text = '{$message_text}', message_answer = '{$message_answer}', message_author_name = '{$message_author_name}', message_author_email = '{$message_author_email}', message_author_homepage = '{$message_author_homepage}', message_author_ip = '{$message_author_ip}', message_date = '{$message_date}', message_visible='{$message_visible}' WHERE message_id = '{$id}'";

mysql_query($query) or die(mysql_error());

if (strlen($message_author_email) > 5)

mail($message_author_email, "Re ".$message_author_homepage, nl2br($message_answer));

}


// Виведення форми редагування повідомлення

function MessageEditForm()

{

if (isset($_GET['message_id']) && isset($_GET['Edit']))

{

$row = $this->MessageSelect($_GET['message_id']);

$Page = new CTemplate("modules/guestbook/admin/messageedit.html");


$Page->SetParam("%%NAME%%", $row['message_author_name']);

$Page->SetParam("%%EMAIL%%", $row['message_author_email']);

$Page->SetParam("%%HOMEPAGE%%", $row['message_author_homepage']);

$Page->SetParam("%%DATE%%", $row['message_date']);

$Page->SetParam("%%IP%%", $row['message_author_ip']);

$Page->SetParam("%%QUESTION%%", $row['message_text']);

$Page->SetParam("%%ANSWER%%", $row['message_answer']);

$Page->SetParam("%%MESSAGE_VISIBLE%%", $row['message_visible'] == "Y" ? "checked=\"checked\"" : "");

$Page->ShowPage();

}

}

// Виведення форми додавання повідомлення

function MessageAddForm()

{

if (isset($_GET['AddMessage']))

{

$Page = new CTemplate("modules/guestbook/admin/messageadd.html");

$Page->ShowPage();

}

}


// Запис повідомлення у базу даних

function MessageInsert($message_text, $message_answer, $message_author_name, $message_author_email, $message_author_homepage)

{

$message_text = addslashes($message_text);

$message_answer = addslashes($message_answer);

$message_author_name = addslashes($message_author_name);

$message_author_email = addslashes($message_author_email);

$message_author_homepage = addslashes($message_author_homepage);

$ip = $_SERVER['REMOTE_ADDR'];

$date = GetCurrentDate();

$query = "INSERT INTO guestbook (message_text, message_answer, message_author_name, message_author_email, message_author_homepage, message_author_ip, message_date) VALUES ('{$message_text}', '{$message_answer}', '{$message_author_name}', '{$message_author_email}', '{$message_author_homepage}', '{$ip}', '{$date}')";

mysql_query($query) or die(mysql_error());

$id = mysql_insert_id();

return $id;

}

// Обробка форми додавання повідомлення

function MessageAddHandler()

{

if (isset($_POST['messageaddform']))

{

$this->MessageInsert($_POST['message_text'], $_POST['message_answer'], $_POST['message_author_name'], $_POST['message_author_email'], $_POST['message_author_homepage']);

header("Location: admin.php?mod=Guestbook&ListMessages=1");

}

}

//- Обробники подій -//

function Handler()

{

if (isset($_GET['mod']) && ($_GET['mod'] == "Guestbook"))

{

$this->MessageAddHandler();

$this->MessageDeleteHandler();

$this->MessageEditHandler();

$this->MessageVisibleHandler();

$this->DescriptionEditHandler();

}

}

// Виклик функцій відображення форм

function Form()

{

if (isset($_GET['mod']) && ($_GET['mod'] == "Guestbook"))

{

$this->AdminMenu();

$this->MessageAddForm();

$this->MessageListForm();

$this->MessageEditForm();

$this->DescriptionEditForm(); } }

// Обробка подій у режимі користувача

function UserHandler()

{

global $language, $LANG;

$result = null;

if (isset($_POST['messageform']))

{

$ok = true;

if (!spamtest($_POST['message_text']))

{

global $error;

$error = 1;

$ok = false;

}

if (strlen($_POST['message_author_name']) < 5

|| strlen($_POST['message_text']) < 10)

{

global $error;

$error = 2;

$ok = false;

}

if ($ok)

{

$this->MessageInsert($_POST['message_text'],

$_POST['message_answer'], $_POST['message_author_name'],

$_POST['message_author_email'],

$_POST['message_author_homepage']);

header("Location: http://".$_SERVER['HTTP_HOST']."/index.php?guestbook=1&ok=1");

}

}

if (isset($_GET['guestbook']))

{

$GuestbookPage = new CTemplate("modules/guestbook/user/messageform.html");

$GuestbookPage->SetParam("%%MESSAGE_AUTHOR_NAME%%", $LANG['Guestbook']['AuthorName']);

$GuestbookPage->SetParam("%%MESSAGE_AUTHOR_HOMEPAGE%%", $LANG['Guestbook']['AuthorHomepage']);

$GuestbookPage->SetParam("%%MESSAGE_AUTHOR_EMAIL%%", $LANG['Guestbook']['AuthorEmail']);

$GuestbookPage->SetParam("%%MESSAGE_TEXT%%", $LANG['Guestbook']['Text']);

$GuestbookPage->SetParam("%%SUBMIT%%", $LANG['Guestbook']['Submit']);

$GuestbookPage->SetParam("%%DESCRIPTION%%",

$this->ReadDescription($language));

$message = "";

$message_class = "";

if (isset($_GET['ok']))

{

$message_class = "QuestionSent";

$message = $LANG['Guestbook']['Sent'];

}

if (isset($error) && $error == 1)

{

$message_class = "QuestionNotSent";

$message = $LANG['Guestbook']['BadSymbols'];

}

if (isset($error) && $error == 2)

{

$message_class = "QuestionNotSent";

$message = $LANG['Guestbook']['NotSent'];

}

$GuestbookPage->SetParam("%%MESSAGE%%", $message);

$GuestbookPage->SetParam("%%CLASS%%", $message_class);

if (isset($_POST['message_author_name']))

$GuestbookPage->SetParam("%%NAME%%",

$_POST['message_author_name']);

else

$GuestbookPage->SetParam("%%NAME%%", "");

if (isset($_POST['message_author_homepage']))

$GuestbookPage->SetParam("%%HOMEPAGE%%",

$_POST['message_author_homepage']);

else

$GuestbookPage->SetParam("%%HOMEPAGE%%", "");

if (isset($_POST['message_author_email']))

$GuestbookPage->SetParam("%%EMAIL%%",

$_POST['message_author_email']);

else

$GuestbookPage->SetParam("%%EMAIL%%", "");


if (isset($_POST['message_text']))

$GuestbookPage->SetParam("%%TEXT%%", $_POST['message_text']);

else

$GuestbookPage->SetParam("%%TEXT%%", "");

$GuestbookPage->SetParam("%%CLASS%%", $message_class);

$result['PageName'] = $LANG['Guestbook']['Name'];

$result['PageTitle'] = $LANG['Guestbook']['Name'];

$result['PageHTML'] = $GuestbookPage->GetPage();

$navigator = new CNavigator();

$navigator->AddLink($LANG['Main']['SiteTitle'], "index.php");

$navigator->AddLink($LANG['Guestbook']['Name'],

"index.php?guestbook=1");

$result['Navigator'] = $navigator;

}

return $result;

}

}

$Classes['Guestbook'] = new Guestbook();

?>
1   2   3   4   5   6   7   8   9   ...   12



Похожие:

Пояснювальна записка до дипломного проекту на тему розробка системи управління контентом веб-сайту пп «Віконера» iconПояснювальна записка до випускної роботи на тему розробка системи управління контентом веб-сайту пп «Віконера»
Зміст розрахунково-пояснювальної записки (перелік питань, які підлягають розробці)
Пояснювальна записка до дипломного проекту на тему розробка системи управління контентом веб-сайту пп «Віконера» icon«Розробка системи управління контентом веб-сайту пп «Віконера» у дипломному проекті представлено розробку cms-системи для управління контентом веб-сайту пп «Віконера»
Тивно та досить просто доповнювати веб-сайт інформацією, вносити корективи, додавати графічні ілюстрації, створювати нові сторінки...
Пояснювальна записка до дипломного проекту на тему розробка системи управління контентом веб-сайту пп «Віконера» iconТехнічне завдання Розробити систему управління контентом, яка буде забезпечувати функціонування веб-сайту пп «Віконера». Розробити дизайн клієнтської частини сайту
Спроектувати загальну концепцію дизайну для головної та внутрішніх сторінок сайту
Пояснювальна записка до дипломного проекту на тему розробка системи управління контентом веб-сайту пп «Віконера» iconПояснювальна записка до дипломного проекту (роботи) (освітньо-кваліфікаційний рівень)

Пояснювальна записка до дипломного проекту на тему розробка системи управління контентом веб-сайту пп «Віконера» iconПояснювальна записка до дипломного проекту (роботи) (освітньо-кваліфікаційний рівень)

Пояснювальна записка до дипломного проекту на тему розробка системи управління контентом веб-сайту пп «Віконера» iconПояснювальна записка до дипломного проекту дп 05080202. 080. 014 Пз розробив студент групи ав-080 В. П. Петров

Пояснювальна записка до дипломного проекту на тему розробка системи управління контентом веб-сайту пп «Віконера» iconПояснювальна записка до дипломного проекту окр бакалавр
«Технологічна підготовка ремонтної майстерні товариства з обмеженою відповідальністю «свк фрунзе» Веселівського району Запорізької...
Пояснювальна записка до дипломного проекту на тему розробка системи управління контентом веб-сайту пп «Віконера» iconВимоги до сайтів (4 курс)
Основою для сайту можуть бути як будь-яка система керування контентом (cms – content management system), так І самостійно створений...
Пояснювальна записка до дипломного проекту на тему розробка системи управління контентом веб-сайту пп «Віконера» iconЗапитання по Технічному завдання на розробку офіційного веб-сайту Конституційної Асамблеї України
Гічних проектів. Можна змінити дизайн та верстку веб-сайту як завгодно. Але зробити це одним кліком не можливо. І якщо програмна...
Пояснювальна записка до дипломного проекту на тему розробка системи управління контентом веб-сайту пп «Віконера» iconПояснювальна записка до проекту Закону України «Про економічний експеримент щодо створення сприятливих умов для розвитку в Україні індустрії програмної продукції»
Тніх інформаційно-комунікаційних технологій. Головним елементом інформатизації сьогодні виступають інформаційні системи і ресурси,...
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©gua.convdocs.org 2000-2015
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы

Разработка сайта — Веб студия Адаманов