пз (1218617), страница 6

Файл №1218617 пз (Web-портал кинотеатра Лимонад) 6 страницапз (1218617) страница 62020-10-05СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 6)

'timestamp' => $time,

'session' => $session,

'buytime' => time(),

'phone' => $phone

))

->execute();

И его обновление:

db_update('orders')

->fields(array('confirmed' => 1))

->where('oid='.$order['oid'])

->execute();

Для рассылки смс сообщений, которые содержат в себе информацию о сеансе и код для получения купленных билетов, в модуле используется API МТС Коммуникатора. Отправка сообщений происходит при помощи запросов к Soap серверу МТС.

$client = new SoapClient("http://www.mcommunicator.ru/m2m/m2m_api.asmx?wsdl",

array(

"trace" => 1,

"exceptions" => 0

));

$result = $client->SendMessage(

array (

"login" => "Limonad",

"password" => md5(‘123’),

"msid" => $num,

"message" => $text,

"naming" => 'LIMONAD'

)

);

Таким образом, модуль реализует функционал оплаты, создания и отображения заказов в личном кабинете пользователя, оповещения пользователя о покупке билета.

3.3.4 Модуль «UCS»

Профессиональная билетная система «UCS-Премьера», разработанная компанией UCS, позволяет полностью контролировать процесс бронирования и продажи билетов в кинотеатрах, театрах, парках отдыха, на стадионе или в цирке. Система представляет собой комплекс, состоящий из кассовых терминалов (компьютеров с подключенным специальным принтером для печати билетов) и менеджерского компьютера, на котором производятся все настройки системы, а также формируются отчеты о деятельности кинотеатра [28].

Модуль UCS разделён на две части - функционал запросов с сервером UCS и форма покупки билетов.

Первая часть находится в файле limonad_ucs.socket.inc. Все запросы отправляются с использованием сокета – программного интерфейса для внутри компьютерной сети. При этом на сервер отправляется строка вида ServiceID=1248141170&Encoding=UTF-8&Version=3&QueryCode=GetHalls, где QueryCode – код запроса системы UCS.

В модуле используются следующие виды запросов:

– GetHalls – информации о залах;

– GetMovies –список всех фильмов в текущем прокате;

– GetSessions – список всех сеансов фильма, где Movies – идентификатор фильмов;

– GetSessionPrices – получение цены на сеанс, где Sessions – идентификатор сеансов;

– GetHallPlan – статус мест сеанса, где Sessions – идентификатор сеансов;

– SaleReservation – резервация мест, где Sessions – идентификатор сеанса, Places – резервируемые места в формате [l=0; f=0;r=1;p=5], ReservationID – ID заказа, CardCode – код карты администратора;

– Login – операция авторизации, требуемая для некоторых других запросов, где CardCode – номер карты администратора, CardPIN – пин-код карты;

– SaleApproved – подтверждение покупки, где CardCode – номер карты администратора, ReservationID – номер заказа, Sessions – номер сеанса;

– SaleCancel – отмена резервации, где CardCode – номер карты администратора, ReservationID – номер заказа, Sessions – номер сеанса;

– GetSales – список всех резерваций, где CardCode – номер карты администратора.

Ниже приведён код реализующий подключение, отправку запроса и получение ответа от сервера.

$address = '77.82.83.56';

$port = '9193';

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

$result = socket_connect($socket, $address, $port);

$query = limonad_ucs_get_query($params);

$length = sprintf('%010d', strlen($query)).'&';

$query = $length.$query;

socket_write($socket, $query, strlen($query));

$l = socket_read($socket, 11);

$result = '';

while($str = socket_read($socket, 1024)){

$result .= $str;

}

if(isset($socket)){

socket_close($socket);

}

$object = simplexml_load_string($result, 'SimpleXMLElement', LIBXML_NOCDATA);

$json = json_encode($object);

$array = json_decode($json,TRUE);

Здесь функция limonad_ucs_get_query - дополнительная функция, формирующая строку запроса из массива $params. После выполнения запроса массив $array будет содержать обработанной ответ от сервера.

Помимо функций запросов, первая часть модуля содержит в себе функцию импорта фильмов и расписаний, использующую данные, полученные от сервера UCS. Данная функция вызывается каждый день процедурой Cron.

В процессе импорта происходит создание новых материалов типа «фильм». Пример кода:

$node = new stdClass;

$node->title = $movie['Name'];

$node->type = "movie";

node_object_prepare($node);

$node->language = LANGUAGE_NONE;

$node->uid = $user->uid;

$node->status = 1;

$node->promote = 0;

$node->field_year[$node->language][0]['value'] = 2016;

$node->field_trailer[$node->language][0]['value'] = 'http://trailers.ru/12345’;

Импорт также можно запускать вручную. Для этого создана отдельная страница, на которой используются пакетные операции (рисунок 22).

foreach($movies['Data']['Movies']['Movie'] as $movie){

$info['movie'] = $movie;

$batch['operations'][] = array('limonad_ucs_import', array($info));

}

batch_set($batch);

batch_process('ucs/finish');

Данный код будет выполнять функцию limonad_ucs_import для каждого фильма, полученного в ответе. По окончании пакетных операций произойдёт переадресация на страницу ucs/finish.

Рисунок 22 – Импорт фильмов

Вторая часть модуля содержит в себе функции, описывающие форму для покупки билета. Здесь используются запросы для получения статуса мест, а также их цен в зависимости от зон. Для того, чтобы не отправлять запросы на сервер слишком часто, применяется система кэша Drupal.

$session_info = cache_get('session_info_'.$sess_id);

if(!$session_info){

$session_info = limonad_ucs_socket('hall', $session->field_session_ucs_id['und'][0]['value']);

cache_set('session_info_'.$sess_id, $session_info, 'cache', strtotime('+5 minutes'));

}else{

if($session_info->expire < time()){

cache_clear_all('session_info'.$sess_id, 'cache');

$session_info = limonad_ucs_socket('hall', $session->field_session_ucs_id['und'][0]['value']);

cache_set('session_info_'.$sess_id, $session_info, 'cache', strtotime('+5 minutes'));

}else{

$session_info = $session_info->data;

}

}

cache_get получает содержимое кэша и если время действия кэша истекло, то выполняется функция cache_set, которая сохраняет данные. Для принудительного обновления данных можно воспользоваться ссылкой «Обновить» на форме покупки билетов.

3.3.5 Модуль «Limonad R-Keeper»

R-Keeper – программно-аппаратный комплекс, разработанный для предприятий общественного питания [29]. Сайт кинотеатра «Лимонад» имеет возможность прикрепления накопительных карт системы R-Keeper.

Модуль содержит в себе изменения стандартной страницы личного кабинета:

– блок редактирования личной информации;

– место в рейтинге;

– форма для прикрепления бонусной карты;

– история комментариев;

– список покупок.

Для получения данных о бонусной карте R-Keeper также применяются запросы через socket, но в данном случае на сервер отправляются данные в формате XML.

ServiceID=1248141170&QueryCode=Query_CardSystem&QueryText='.$string.'&Encoding=UTF-8&Version=3'

где $string – строка в формате XML.

Например,

<?xml version="1.0" encoding="Windows-1251" standalone="yes" ?><Message Action="Get card info" Terminal_Type="'.$terminal_type.'" Global_Type="'.$global_type.'"><Card_Code>'.$card.'</Card_Code><Include>Account, Holder</Include></Message>

Здесь $terminal_type и $global_type – некоторые идентификаторы системы и $card – номер карты.

3.3.6 Модуль «Limonad Module»

Модуль содержащий в себе код, который не был вынесен в отдельное расширение, но который не может быть реализован другими средствами.

Так здесь были реализованы следующие функции:

– открытие форм регистрации, авторизации и комментариев во всплывающем окне;

– изменение полей выше упомянутых форм;

– функционал системы голосований;

– фильтр по дате в расписании сеансов;

– показ трейлера на главной странице во всплывающем окне;

– обновление кэша расписания сеанса каждые 10 минут;

– форматирование слайдера на главной, страниц списка сеансов, фильма и зала.

3.4 Технико-экономическое обоснование

3.4.1 Требуемое техническое обеспечение

Система управления содержимым Drupal имеет ряд требований к серверу.

В качестве программного web-сервера требуется Apache HTTPD (для использования чистых ссылок потребуется расширение mod_rewrite) либо Microsoft IIS (Internet Information Services).

Drupal по умолчанию поддерживает следующие системы управления базами данных: MySQL (версия 5.0.15 и выше для Drupal 7, а также требует расширения PDO database для PHP), PostgreSQL(требуется PostgreSQL 8.3 и выше), SQLite (3.3.7+). Работа с другими СУБД поддерживается при установке дополнительных модулей: MSSQL, Oracle, Mongodb, FileMaker, Riak. В настоящее время Drupal поддерживает соединение с базой данных используя mysql (стандартное расширение MySQL), mysqli (улучшенное расширение) и pgsql (для баз данных PostgreSQL).

Для Drupal 7 рекомендуется использовать PHP версии 5.3+ (достаточная версия: 5.2.5+), требуются расширения Hash и JSON (по умолчанию включены).

Для эффективной работы web-портала необходимо не менее 32Мб оперативной памяти. Требуемый объём памяти также зависит от установленных дополнительных модулей. Кроме того, на текущий момент сайт требует не менее 750Мб свободного места на жёстком диске сервера.

Для работы с изображениями требуются графические библиотеки, такие как GD. Библиотека GD включена по умолчанию начиная с версии PHP 4.3 [30].

3.4.2 Оценка трудоёмкости и сроков модернизации программного продукта

Анализ различных подходов к нормированию процесса программирования показал, что в качестве основного фактора, определяющего трудоемкость и длительность разработки программы, следует принять размер исходного текста записи алгоритмов и данных.

Для быстрой приближенной оценки трудоемкости и длительности разработки программного изделия может использоваться базовая модель. Эта модель состоит из двух простейших формул. Затраты труда (или трудоемкость разработки программного изделия – t определяются по формуле, (чел.–мес.):

(1)

где – число тысяч исходных команд.

Число исходных команд равно 5112, соответственно

t = 3,6 (5,112)1,2 = 25,5 (чел.-мес.)

Продолжительность разработки программного изделия Т, рассчитывается по формуле:

(2)

Производительность труда группы разработчиков программного изделия Пр, определяется по формуле:

(3)

Среднее число исполнителей Чи рассчитывается исходя из определенных или заданных характеристик трудоемкости и длительности разработки программного изделия по формуле:

(4)

Для планирования и организации создания программного продукта требуются нормативные данные по распределению трудоемкости и длительности работ по этапам разработки. Распределение трудоёмкости по этапам разработки программного изделия выглядит следующим образом:

– планирование и анализ требований, 10%;

– проектирование программного изделия, 16%;

– программирование (вёрстка и JavaScript), 25%;

– программирование (PHP), 35%;

– тестирование, 22%.

Распределение длительности по этапам разработки программного изделия будет следующим:

– планирование и анализ требований, 24%;

– проектирование программного изделия, 30%;

– программирование, 48%;

– тестирование, 22%.

3.4.2 Оценка затрат на создание

Характеристики

Тип файла
Документ
Размер
5,52 Mb
Высшее учебное заведение

Список файлов ВКР

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7029
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее