Добавлен: 30.06.2023
Просмотров: 1200
Скачиваний: 24
СОДЕРЖАНИЕ
1.1 Цели и концепция Web-ресурса
1.1.2. Обоснование необходимости создания нового Web-ресурса.
1.1.3. Описание свойств Web-ресурса, требуемых для решения выбранной задачи.
1.1.4. Характеристика целевой аудитории.
1.1.5. Характеристика и анализ Web-ресурсов по аналогичной тематике.
1.2. Параметры и внешний вид Web-ресурса.
1.2.1. Обоснование выбора имени и названия Web-ресурса.
1.2.2. Обоснование лингвистического обеспечения Web-ресурса
1.2.3. Обоснование выбора графического режима Web-ресурса.
1.2.4. Обоснование принятых решений по цветовой схеме Web-ресурса.
1.2.5. Обоснование принятых решений по размеру и виду шрифта.
1.2.6. Обоснование принятых решений по формированию фирменного стиля.
1.3. Обоснование выбора инструментария для создания Web-ресурса.
1.3.1. Обоснование технологии получения и размещения информационного наполнения Web-ресурса.
1.3.3. Обоснование выбора программного обеспечения для создания Web-ресурса.
1.3.3.1. Обоснование выбора программных продуктов для создания графики.
1.3.3.2. Обоснование выбора программных продуктов для создания анимации.
1.3.3.3. Обоснование выбора СУБД.
1.3.3.4. Обоснование выбора программных продуктов для создания программного кода.
1.4. Обоснование выбора способа размещения Web-ресурса в Интернет.
2.1. Структура и содержание сайта.
2.1.1.Разделы сайта и система навигации.
2.1.2.Функциональные и технические требования.
2.1.4. Описание программных модулей.
2.1.5. Описание процедуры тестирования созданного Web-ресурса.
2.2. Разработка рекламной кампании по продвижению Web-ресурса в Интернет.
2.2.1. Формирование массива ключевых слов для поиска Web-ресурса в поисковых системах.
2.2.2. Описание технологии продвижения созданного Web-ресурса в среде Интернет.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
- MySQL. Руководство администратора. Вильямс, 2015;
- Люк Веллинг, Лора Томсон. Разработка Web-приложений с помощью PHP и MySQL. Вильямс, 2013;
- Internet-энциклопедия «Википедия»: http://ru.wikipedia.org/;
- Энциклопедия HTML: http://htmlbook.ru/;
- Современный учебник Javascript: http://learn.javascript.ru/;
- Руководство по PHP: http://php.net/manual/;
- Грэди Буч, Роберт А. Максимчук. Объектно-ориентированный анализ и проектирование с примерами приложений. ОРейли, 2013
- Welling L., Thomson L. PHP and MySQL Web Development (6th Edition). Addison-Wesley Professional, 2014
- Пьюривал С. Основы разработки веб-приложений. СПб: Питер, 2015
- Shklar L., Rosen R. Web Application Architecture: Principles, Protocols and Practices (2nd Edition). Wiley, 2013
Скриншоты разработанного сайта.
Прототип сайта: http://www.mucbs.ru/rodina/
Листинг программы модуля и дополнительных функций для показа информации о фильмах. Вызов функций происходит из модуля films.php.
Листинг файла films.php
<?php
$php_functions_folder = "/home/dukkru/www/php_funct_dir";
$page_title = "films";
$path_separator = "/";
$forward_arrow_link = "none";
$back_arrow_link = "none";
include_once ($php_functions_folder.$path_separator."common_settings.php");
// Кадр из фильма должен быть 232 x 146
$request_method = $HTTP_SERVER_VARS["REQUEST_METHOD"];
if (strcmp($request_method, "GET") == 0) { $IN_VARS =& $HTTP_GET_VARS; }
else { $IN_VARS =& $HTTP_POST_VARS; }
?>
<html>
<head>
<title>Кинокомплекс "Родина" - Подробнее о фильмах</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<?php include ($php_functions_folder.$path_separator."image_preload.php"); ?>
<link href="dukk.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#6E2A23" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<div align="left">
<table cellpadding="0" cellspacing="0" border="0" height="100%">
<tr>
<td width="211" background="images/left_background.gif" valign="top">
<div><img src="images/image1.gif" alt="" width="211" height="92" border="0"></div>
<?php include ($php_functions_folder.$path_separator."site_menu.php"); ?>
<br>
<div><table cellpadding="0" cellspacing="0" border="0" width="156" >
<tr>
<td width="10">
<div><img src="images/void.gif" width="10" height="1"></div>
</td>
<td width="146" valign="top">
<?php include ($php_functions_folder.$path_separator."films_alphabet.php"); ?>
<?php include ($php_functions_folder.$path_separator."films_today_and_tomorrow.php"); ?>
</td>
</tr>
</table></div>
</td>
<td width="566" valign="top" rowspan="2">
<div><table cellpadding="0" cellspacing="0" border="0" width="566" height="179">
<tr>
<td width="75"><img src="images/image2.gif" alt="" width="75" height="179" border="0"></td>
<td width="491" background="images/promo_background.gif"><div><img src="images/void.gif" alt="" width="491" height="1" border="0"></div></td>
</tr>
</table></div>
<div><img src="images/void.gif" width="1" height="25"></div>
<?php
// Мы попробуем посмотреть, хотим ли мы посмотреть список или информацию по фильму
// Сначало проверка на фильм
if (isset ($IN_VARS["film_id"]) && ((strlen ($IN_VARS["film_id"]) <= 8) && (strlen ($IN_VARS["film_id"]) >= 1)) && ereg ("([0-9]{1,8})", $IN_VARS["film_id"], $id_parts) && (strlen ($id_parts[1]) == strlen ($IN_VARS["film_id"]))) {
// Мы получили приятный film_id
include ($php_functions_folder.$path_separator."film_info_output.php");
}
else {
// тогда надо выводить сеансы
include ($php_functions_folder.$path_separator."films_list_output.php");
}
?>
<br><br>
</td>
</tr>
<tr>
<td width="211" background="images/left_background.gif" valign="bottom"><br><br><br><img src="images/materials_comments.gif">
</td>
</tr>
<?php include ($php_functions_folder.$path_separator."site_footer.php"); ?>
</table>
</div>
</body>
</html>
Листинг файла common_settings.php
<?php
$mysql_db_name = "dukk";
$mysql_host = "10.1.32.104";
$mysql_username = "dukk";
$mysql_password = "12345678";
$time_correction = 0;
?>
Листинг файла site_menu.php
<div><table cellpadding="0" cellspacing="0" border="0" width="211" height="197" background="images/menu_background.gif">
<tr>
<td width="131" valign="top">
<div align="right"><?php if(strcmp ($page_title,"news") == 0) { echo '<img src="images/menu_star.gif" align="top"><img src="images/menu_news_off.gif" alt="" width="65" height="24" border="0">'; } else { echo '<a href="index.php" onmouseover="mover(0)" onmouseout="mout(0)"><img src="images/menu_news_off.gif" alt="" border="0" name="i0"></a>'; } ?></div>
<div align="right"><?php if(strcmp ($page_title,"seances") == 0) { echo '<img src="images/menu_star.gif" align="top"><img src="images/menu_seances_off.gif" alt="" width="89" height="37" border="0">'; } else { echo '<a href="seances.php" onmouseover="mover(1)" onmouseout="mout(1)"><img src="images/menu_seances_off.gif" alt="" border="0" name="i1"></a>'; } ?></div>
<div align="right"><?php if(strcmp ($page_title,"films") == 0) { echo '<img src="images/menu_star.gif" align="top"><img src="images/menu_films_off.gif" alt="" width="63" height="26" border="0">'; } else { echo '<a href="films.php" onmouseover="mover(2)" onmouseout="mout(2)"><img src="images/menu_films_off.gif" alt="" border="0" name="i2"></a>'; } ?></div>
<div align="right"><?php if(strcmp ($page_title,"info") == 0) { echo '<img src="images/menu_star.gif" align="top"><img src="images/menu_info_off.gif" alt="" width="94" height="27" border="0">'; } else { echo '<a href="info.php" onmouseover="mover(3)" onmouseout="mout(3)"><img src="images/menu_info_off.gif" alt="" border="0" name="i3"></a>'; } ?></div>
</td>
<td width="80" valign="bottom"><?php
if(strcmp ($page_title,"news") == 0) { echo '<img src="images/menu_news_icon.gif" alt="" border="0">'; }
if(strcmp ($page_title,"seances") == 0) { echo '<img src="images/menu_seances_icon.gif" alt="" border="0">'; }
if(strcmp ($page_title,"films") == 0) { echo '<img src="images/menu_films_icon.gif" alt="" border="0">'; }
if(strcmp ($page_title,"info") == 0) { echo '<img src="images/menu_info_icon.gif" alt="" border="0">'; }
?></td>
</tr>
</table></div>
Листинг файла films_alphabet.php
<?php
// Выводим информацию на сегодняшний и завтрашний день
include_once ($php_functions_folder.$path_separator."functions".$path_separator. "select_films_by_date.php");
$letter_string = "АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЫЭЮЯ";
$mysql_link = mysql_connect ($mysql_host, $mysql_username, $mysql_password) or error_handler ("Could not connect to database");
mysql_select_db ($mysql_db_name, $mysql_link);
$mysql_request = "SELECT DATE_FORMAT(DATE_ADD(NOW(), INTERVAL $time_correction HOUR),'%Y-%m-%d'), DATE_FORMAT(DATE_ADD(DATE_ADD(NOW(), INTERVAL $time_correction HOUR), INTERVAL 1 DAY), '%Y-%m-%d')";
$mysql_result = mysql_query ($mysql_request, $mysql_link);
list ($date_today, $date_tomorrow)= mysql_fetch_row ($mysql_result);
echo "<div align=\"right\" class=\"titlebar\">КАТАЛОГ ФИЛЬМОВ</div>";
echo "<div align=\"right\" class=\"film_list\"><a href=\"films.php?section=list&film_letter=new\" class=\"textlink\">Новые фильмы</a></div>";
echo "<div align=\"right\" class=\"film_list\"><a href=\"films.php?section=list&film_letter=all\" class=\"textlink\">Все фильмы</a><br><br></div>";
echo '<div align="right"><table cellpadding="0" cellspacing="3" border="0"><tr>';
$alphabet_counter = 0;
for ($letter_loop = 0; $letter_loop < strlen ($letter_string); $letter_loop++) {
if ($alphabet_counter == 6) { echo '</tr><tr>'; $alphabet_counter = 0; }
$alphabet_counter ++;
$letter_sign = substr ($letter_string, $letter_loop, 1);
$letter_code_loop = $letter_loop;
echo "<td><a href=\"films.php?section=list&film_letter=$letter_code_loop\" class=\"textlink\">$letter_sign</a></td>";
}
echo '</tr></table></div>';
echo "<div align=\"right\" class=\"film_list\"><a href=\"films.php?section=list&film_letter=dig\" class=\"textlink\">0-9 и другие знаки</a></div><br>";
mysql_close ($mysql_link);
?>
Листинг файла films_today_and_tomorrow.php
<?php
// Выводим информацию на сегодняшний и завтрашний день
include_once ($php_functions_folder.$path_separator."functions".$path_separator. "select_films_by_date.php");
$mysql_link = mysql_connect ($mysql_host, $mysql_username, $mysql_password) or error_handler ("Could not connect to database");
mysql_select_db ($mysql_db_name, $mysql_link);
$mysql_request = "SELECT DATE_FORMAT(DATE_ADD(NOW(), INTERVAL $time_correction HOUR),'%Y-%m-%d'), DATE_FORMAT(DATE_ADD(DATE_ADD(NOW(), INTERVAL $time_correction HOUR), INTERVAL 1 DAY), '%Y-%m-%d')";
$mysql_result = mysql_query ($mysql_request, $mysql_link);
list ($date_today, $date_tomorrow)= mysql_fetch_row ($mysql_result);
mysql_close ($mysql_link);
SelectFilmsByDate($date_today, "ФИЛЬМЫ СЕГОДНЯ");
echo '<br>';
SelectFilmsByDate($date_tomorrow, "ФИЛЬМЫ ЗАВТРА");
?>
Листинг файла film_info_output.php
<?php
// Мы должны вывести две аннотации к двум фильмам
// сначала напишем функцию для для двух дней.
// Сначала нам надо проверить, есть ли сегодня хоть какие-то фильмы, нам надо по-крайней мере 2 фильма
include_once ($php_functions_folder.$path_separator."functions".$path_separator. "prep_str_to_mysql.php");
$film_id_to_mysql = PrepStrToMysql ($IN_VARS["film_id"]);
$mysql_link = mysql_connect ($mysql_host, $mysql_username, $mysql_password) or error_handler ("Could not connect to database");
mysql_select_db ($mysql_db_name, $mysql_link);
$mysql_request = "SELECT _FILM_ID, _FILM_NAME, _FILM_NAME_ORIGIN, _FILM_DIRECTOR, _FILM_ACTORS, _FILM_REVIEW, _FILM_FULL_REVIEW, _FILM_SITE, _FILM_REVIEW_URL FROM _films WHERE _FILM_ID=$film_id_to_mysql";
$mysql_result = mysql_query ($mysql_request, $mysql_link);
$num_of_films = mysql_num_rows ($mysql_result);
list ($film_id, $film_name, $film_name_origin, $film_director, $film_actors, $film_review, $film_full_review, $film_site, $film_review_url)= mysql_fetch_row ($mysql_result);
echo '<div><table cellpadding="0" cellspacing="0" border="0" width="541" height="33" background="images/titlebar.gif">
<tr><td width="30"><img src="images/void.gif" width="30" height="1"></td>
<td><div class="titlebar">ИНФОРМАЦИЯ ПО ФИЛЬМУ</div></td></tr>
</table></div>';
echo '<div><table cellpadding="0" cellspacing="0" border="0" width="526">
<tr><td width="14"><img src="images/void.gif" alt="" width="14" height="1" border="0"></td>
<td><br>';
echo '<div><table cellpadding="0" cellspacing="0" border="0">
<tr>
<td valign="top" rowspan="2">
';
echo "<div class=\"film_title\">$film_name</div>\n";
if (isset ($film_name_origin) && (strlen ($film_name_origin) > 0)) {
echo "<div class=\"titlebar\">($film_name_origin)</div>";
}
// echo '<br>';
if (isset ($film_director) && (strlen ($film_director) > 0)) {
echo "<div class=\"textnormal\"><b>Режиссер</b>: $film_director</div>";
}
if (isset ($film_actors) && (strlen ($film_actors) > 0)) {
echo "<div class=\"textnormal\"><b>Роли исполняли (дублировали)</b>: $film_actors</div>";
}
if (isset ($film_site) && (strlen ($film_site) > 0)) {
echo "<div class=\"textnormal\"><b>Официальный сайт</b>:<br><a href=\"$film_site\" target=\"_new\" class=\"textlink\">$film_site</a></div>";
}
if (isset ($film_review) && (strlen ($film_review) > 0)) {
echo "<div class=\"text\"><b>Краткий анонс</b>:<br>$film_review</div>";
}
if (isset ($film_full_review) && (strlen ($film_full_review) > 0)) {
echo "<div class=\"text\"><b>Полное описание</b>:<br>$film_full_review</div>";
}
if (isset ($film_review_url) && (strlen ($film_review_url) > 0)) {
echo "<div class=\"textnormal\"><b>Источник описания</b>:<br><a href=\"$film_review_url\" class=\"textlink\">$film_review_url</a></div>";
}
$mysql_request = "SELECT _IMAGE_ID FROM _film_images WHERE $film_id=_FILM_ID ORDER BY _TITLE_IMAGE";
$mysql_result = mysql_query ($mysql_request, $mysql_link);
$num_of_films = mysql_num_rows ($mysql_result);
if ($num_of_films > 0) {
echo '<img src="images/void.gif" width="230" height="1" alt="" border="0">';
echo ' </td>';
echo ' <td background="images/vdiv_background.gif" valign="top"><img src="images/vdiv_top.gif"></td>
<td valign="top" rowspan="2" width="230">';
// Выводим все картинки
$images_counter = 0;
while (list ($image_id)= mysql_fetch_row ($mysql_result)) {
echo '<div><table cellpadding="0" cellspacing="0" border="0">';
echo "<tr><td background=\"image_view.php?image_id=$image_id\">";
echo '<img src="images/frame.gif" border="0" alt=""></td></tr></table></div>';
$images_counter ++;
if ($images_counter != $num_of_films) {
echo '<br>';
}
echo '<div>';
}
echo ' </td></tr>
<tr><td valign="bottom" background="images/vdiv_background.gif"><img src="images/vdiv_bottom.gif"></td>
';
}
else {
echo '</td>';
}
echo' </tr></table></div>';
echo '</td></tr></table></div>';
mysql_close ($mysql_link);
?>
Листинг файла films_list_output.php
<?php
// Мы должны вывести две аннотации к двум фильмам
// сначала напишем функцию для для двух дней.
// Сначала нам надо проверить, есть ли сегодня хоть какие-то фильмы, нам надо по-крайней мере 2 фильма
$letter_string = "АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЫЭЮЯ";
if ((!isset ($IN_VARS["film_letter"])) || (strlen ($IN_VARS["film_letter"]) == 0) || ((strlen ($IN_VARS["film_letter"]) > 3) || (strlen ($IN_VARS["film_letter"]) < 1))) {
$film_letter = "new";
$where_statement = "";
$limit_statement = " LIMIT 20";
$title_films_list = "СПИСОК 20 ПОСЛЕДНИХ ДОБАВЛЕННЫХ ФИЛЬМОВ";
}
else {
if (strcmp ($IN_VARS["film_letter"], "all") == 0) {
$film_letter = "all";
$where_statement = "";
$limit_statement = "";
$title_films_list = "СПИСОК ВСЕХ ФИЛЬМОВ В БАЗЕ";
}
elseif (strcmp ($IN_VARS["film_letter"], "dig") == 0) {
$film_letter = "dig";
$where_statement = " WHERE _FILM_NAME REGEXP '^[^А-Я]'";
$limit_statement = "";
$title_films_list = "СПИСОК ФИЛЬМОВ НАЧИНАЮЩИХСЯ НА ЦИФРУ ИЛИ ЗНАК";
}
elseif (ereg ("([0-9]{1,3})", $IN_VARS["film_letter"], $letter_parts) && (strlen ($letter_parts[1]) == strlen ($IN_VARS["film_letter"])) && ($IN_VARS["film_letter"] <= (strlen ($letter_string) - 1) )) {
$film_letter = substr ($letter_string, $IN_VARS["film_letter"], 1);
// elseif ((strlen ($IN_VARS["film_letter"]) == 1) && (substr_count ($letter_string, $IN_VARS["film_letter"]) > 0)) {
// $film_letter = $IN_VARS["film_letter"];
$where_statement = " WHERE _FILM_NAME REGEXP '^[$film_letter]'";
$limit_statement = "";
$title_films_list = "СПИСОК ФИЛЬМОВ НАЧИНАЮЩИХСЯ БУКВУ '$film_letter'";
}
else {
$film_letter = "new";
$where_statement = "";
$limit_statement = " LIMIT 20";
$title_films_list = "СПИСОК 20 ПОСЛЕДНИХ ДОБАВЛЕННЫХ ФИЛЬМОВ";
}
}
echo '<div><table cellpadding="0" cellspacing="0" border="0" width="541" height="33" background="images/titlebar.gif">
<tr><td width="30"><img src="images/void.gif" width="30" height="1"></td>
<td><div class="titlebar">';
echo "$title_films_list</div></td></tr>
</table></div>";
echo '<div><table cellpadding="0" cellspacing="0" border="0" width="526">
<tr><td width="14"><img src="images/void.gif" alt="" width="14" height="1" border="0"></td>
<td><br>';
$mysql_link = mysql_connect ($mysql_host, $mysql_username, $mysql_password) or error_handler ("Could not connect to database");
mysql_select_db ($mysql_db_name, $mysql_link);
$mysql_request = "SELECT _FILM_ID, _FILM_NAME, _FILM_NAME_ORIGIN, _FILM_REVIEW from _films$where_statement ORDER BY _FILM_ADDING_DATE DESC$limit_statement";
$mysql_result = mysql_query ($mysql_request, $mysql_link);
while (list ($film_id, $film_name, $film_name_origin, $film_review)= mysql_fetch_row ($mysql_result)) {
print "<div class=\"text\"><img src=\"images/dot.gif\" alt=\"\" border=\"0\"><a href=\"films.php?film_id=$film_id\" class=\"textlink\">$film_name ($film_name_origin)</a><br><br>$film_review</div><br>";
}
echo '</td></tr></table></div>';
mysql_close ($mysql_link);
?>
Листинг файла site_footer.php
<?php
// Футер для Родины
?>
<tr>
<td width="211" background="images/left_background.gif" valign="bottom" height="62">
<div><a href="mailto:contact@isfactory.ru"><img src="images/if_image.gif" alt="Написать письмо на 'Фабрику Идей'" width="166" height="62" border="0"></a><img src="images/if_image2.gif" alt="" width="45" height="62" border="0"></div>
</td>
<td width="566" valign="top" background="images/foot_image.gif" height="62"><div><img src="images/void.gif" alt="" width="1" height="16" border="0"></div>