- •Пояснювальна записка
- •Реферат
- •Реферат
- •Перелік умовних позначень, символів, одиниць, скорочень і термінів
- •1 Проектно-конструкторський розділ
- •1.1 Загальносистемні рішення
- •1.1.1 Загальносистемні рішення
- •1.1.2 Опис процесу діяльності
- •1.1.3 Схема функціональної структури та опис функцій, що автоматизуються
- •1.1.4 Опис постановки задачі
- •1.2.1 Характеристика вхідної информації
- •1.2.2 Характеристика вихідної информації
- •1.2.4 Розробка бази даних
- •1.3 Рішення з технічного забезпечення
- •1.4 Опис програмного забезпечення
- •2 Технологічний розділ
- •2.1 Керівництво користувача
- •На рисунку 2.1 представлена повна структура сайту.
- •Модель сайту
- •Висновки
- •Перелік посилань
- •Додатки
- •Додаток а Лістинг програмного коду
Додатки
до пояснювальної записки дипломної роботи
Додаток а Лістинг програмного коду
Скрипт отправки заявки на участие в баттле - reqbattle.php
<?php
if (!defined('NGCMS')) die ('HAL');
register_plugin_page('reqbattle','','write_req');
function write_req(){
global $catz, $twig, $catmap, $mysql, $config, $userROW, $tpl, $parse, $template, $lang, $PFILTERS, $SYSTEM_FLAGS, $SUPRESS_TEMPLATE_SHOW, $CurrentHandler;
$tpath = locatePluginTemplates(array('reqbattle','writereq'), 'reqbattle', pluginGetVariable('reqbattle', 'localsource'));
// Подключение шаблона
$xt = $twig->loadTemplate($tpath['writereq'].'writereq.tpl');
// Проверка авториирован ли пользователь
if(is_array($userROW)){
$auth = 1;
} else {
$auth = 0;
}
// Проверка отправлена ли форма
if($_REQUEST['sendreq']){
$send = 1;
} else {
$send = 0;
}
$monthNum = array(1,2,1,0,1,0,1,1,0,1,0,1);
$curDay = date(j) + 2;
$curNumMon = date(m) + 1;
if($monthNum[$curNumMon] == 1){
$dayMon = 31;
}
elseif($monthNum[$curNumMon] == 2){
$v = date(Y);
if($v%4){
$dayMon = 28;
}
else{
$dayMon = 29;
}
}
else{
$dayMon = 30;
}
for($i=$curDay; $i<$dayMon+1; $i++){
$arrDays[] = $i;
}
for($i=0; $i<24; $i++){
if($i < 10){
$arrHour[] = '0'.$i;
}
else{
$arrHour[] = $i;
}
}
for($i=00; $i<6; $i++){
if($i==0){
$arrMin[] = '0'.$i;
}
else{
$arrMin[] = $i*10;
}
}
$idUser = isset($_REQUEST['id'])?$_REQUEST['id']:'';
if($_REQUEST['sendreq']){
$player1 = $idUser;
$player2 = $userROW['id'];
$date = strftime('%Y-%m').'-'.$_REQUEST['day'].' '.$_REQUEST['hour'].':'.$_REQUEST['min'].':00';
$typebattle = isset($_REQUEST['type'])?$_REQUEST['type']:'';
$theme = isset($_REQUEST['ntheme'])?$_REQUEST['ntheme']:'';
$durh = isset($_REQUEST['durh'])?$_REQUEST['durh'].':00:00':'';
// Вставка новой строки в таблицу
$mysql->query('INSERT
INTO '.prefix.'_battlelist
SET
player1=\''.$player1.'\', player2=\''.$player2.'\',
date=\''.$date.'\', battletype=\''.$typebattle.'\',
theme=\''.$theme.'\', duration=\''.$durh.'\'');
}
// Проверка был ли получен id пользователя для отправки заявки
if($_REQUEST['id']){
foreach($mysql->select('SELECT name, photo, xfields_name, xfields_surname FROM '.prefix.'_users WHERE id='.$idUser) as $row)
{
$tEntry[] = array (
'id' => $idUser,
'name' => $row['name'],
'photo' => ($row['photo']!='')?photos_url.'/thumb/'.$row['photo']:'/templates/default/img/user.jpg',
'fullname' => $row['xfields_name'],
'surname' => $row['xfields_surname'],
);
}
$idact = 1;
}
else{
$idact = 0;
}
$tVars = array(
'entries' => isset($tEntry)?$tEntry:'',
'days' => $arrDays,
'hour' => $arrHour,
'min' => $arrMin,
'authU' => $auth,
'idact' => $idact,
'send' => $send,
'myprofile' => $userROW['name'],
);
$template['vars']['mainblock'] = $xt->render($tVars);
}
Скрипт отображения баттла - battlearena.php
<?php
if (!defined('NGCMS')) die ('HAL');
register_plugin_page('battlearena','','showarena');
function showarena(){
global $catz, $twig, $catmap, $mysql, $config, $userROW, $tpl, $parse, $template, $lang, $PFILTERS, $SYSTEM_FLAGS, $SUPRESS_TEMPLATE_SHOW, $CurrentHandler;
$tpath = locatePluginTemplates(array('battlearena','arena'), 'battlearena', pluginGetVariable('battlearena', 'localsource'));
$xt = $twig->loadTemplate($tpath['arena'].'arena.tpl');
if($_REQUEST['battle']){
$battleinfo = $mysql->record('SELECT * FROM '.prefix.'_battlelist WHERE id='.(int)$_REQUEST['battle'].' AND (status=3 OR status=4)');
if($battleinfo != ''){
$playerinfo = $mysql->select('SELECT id, name, photo, ip, xfields_name, xfields_surname FROM '.prefix.'_users WHERE id IN('.$battleinfo['player1'].', '.$battleinfo['player2'].')');
$voteinfo = $mysql->record('SELECT userid FROM '.prefix.'_votebattle WHERE userid='.$userROW['id'].' AND battleid='.$battleinfo['id']);
$noneBattle = 0;
}else{
$noneBattle = 1;
}
}
else{
$noneBattle = 1;
}
$t = time();
$dur = $battleinfo['duration'];
$date = $battleinfo['date'];
$hourDate = date('H', strtotime($date));
$battMinSec = date('i:s', strtotime($date));
$hourDur = date('H', strtotime($dur));
$end = $hourDate + $hourDur;
$plusday = 0;
if($end > 23){
$end %= 24;
$plusday = 86400;
}
$endDate = date('Y-m-d ', strtotime($date)+$plusday).$end.':'.$battMinSec;
if(strtotime($endDate) <= time()){
$over = 1;
}else{
$over = 0;
$timer = getdate(strtotime($endDate));
}
for($i=1; $i<3; $i++){
$playerinfo[$i-1]['joke'] = $battleinfo['joke_pl'.$i];
$playerinfo[$i-1]['vote'] = $battleinfo['vote_pl'.$i];
}
if($_POST['plvote']){
$mysql->query('UPDATE '.prefix.'_battlelist SET vote_pl'.$_REQUEST['plvote'].'=vote_pl'.$_REQUEST['plvote'].'+1 WHERE id='.$battleinfo['id']);
$mysql->query('INSERT INTO '.prefix.'_votebattle SET userid=\''.$userROW['id'].'\', battleid=\''.$battleinfo['id'].'\', plnum=\''.$_REQUEST['plvote'].'\', ip=\''.$userROW['ip'].'\'');
}
if($over){
if($playerinfo[0]['vote'] > $playerinfo[1]['vote']){
$playerWin = 1;
$playerDef = 2;
}
else{
$playerWin = 2;
$playerDef = 1;
}
$playerinfo[$playerWin-1]['winner'] = $playerWin;
}
if($over && !$noneBattle && !$battleinfo['winner']){
echo 1;
$mysql->query('UPDATE '.prefix.'_battlelist SET status=4, winner='.$playerinfo[$playerWin-1]['id'].' WHERE id='.$battleinfo['id']);
$mysql->query("UPDATE ".uprefix."_users SET count_win=count_win+1 where id=".$playerinfo[$playerWin-1]['id']);
$mysql->query("UPDATE ".uprefix."_users SET count_defeat=count_defeat+1 where id=".$playerinfo[$playerDef-1]['id']);
}
($voteinfo='')?$vote=0:$vote=1;
$tVars = array(
'noBattle' => $noneBattle,
'curtime' => time(),
'dur' => $battleinfo['duration'],
'timer' => $timer,
'player1' => $playerinfo[0],
'player2' => $playerinfo[1],
'vote' => $vote,
'over' => $over,
);
$template['vars']['mainblock'] = $xt->render($tVars);
}
