function GetComments($fid, $prevcid = 0, $lvl = 0) { $query = "select cid, name, date from comments where fid=\"{$fid}\" and prevcid=\"{$prevcid}\";"; $res = MySqlQuery($query); if (mysql_num_rows($res)) { $str1 .= "<ul>"; while ($row = mysql_fetch_object($res)) { $cid = $row->cid; $str1 .= "<li><a href=\"./viewfile.php?fid={$fid}&commentid={$cid}\">{$row->name} - {$row->date}</a>"; $str1 .= GetComments($fid, $row->cid, $lvl + 1); $str1 .= "</li>"; } $str1 .= "</ul>"; } return $str1; }
private function retrieveUserDistance() { // Показываем список ММБ $sql = "select t.distance_id, t.team_name, t.team_id, t.team_outofrange,\n\t\t \t lp.levelpoint_name, tu.teamuser_rank, tu.user_id,\n\t\t\t\t\t\t\t\t\t lp.levelpoint_id\n\t\t\t\tfrom Teams t\n\t\t\t\tinner join Distances d on d.distance_id = t.distance_id and d.distance_hide = 0\n\t\t\t\tinner join TeamUsers tu on t.team_id = tu.team_id and tu.teamuser_hide = 0\n\t\t\t\tleft outer join TeamLevelDismiss tld on tu.teamuser_id = tld.teamuser_id\n\t\t\t\tleft outer join LevelPoints lp on tld.levelpoint_id = lp.levelpoint_id\n\t\t\t\t where t.team_hide = 0\n\n\t\t\t order by tu.user_id asc"; $result = MySqlQuery($sql); $this->userDistance = array(); $last = array(); while ($row = mysql_fetch_assoc($result)) { $uid = $row['user_id']; if ($last !== $uid) { $this->userDistance[$uid] = array(); } $last = $uid; $this->userDistance[$uid][$row['distance_id']] = array('team_name' => $row['team_name'], 'team_id' => $row['team_id'], 'team_outofrange' => $row['team_outofrange'], 'levelpoint_name' => $row['levelpoint_name'], 'teamuser_rank' => $row['teamuser_rank'], 'levelpoint_id' => $row['levelpoint_id']); } mysql_free_result($result); }
} if ($SessionId <= 0) { CMmb::setErrorMessage('Сессия не найдена'); return; } $pUserLinkId = trim($_POST['UserLinkId']); if (!isset($pUserLinkId)) { $pUserLinkId = 0; } if ($pUserLinkId <= 0) { CMmb::setErrorMessage('Ссылка не найдена'); return; } $sql = "select raid_id \n\t from UserLinks \n\t where userlink_id = {$pUserLinkId}\n\t\t "; // echo $sql; $raidId = CSql::singleValue($sql, 'raid_id'); $userId = CSql::userId($SessionId); // Права на редактирование if (!UACanLinkEdit($pUserId, $raidId, $userId)) { return; } // выходим $Sql = "update UserLinks set userlink_hide = 1 where userlink_id = {$pUserLinkId}"; // echo $sql; MySqlQuery($Sql); CMmb::setResult('Впечатление удалено', "ViewUserData", ""); } else { // если никаких действий не требуется // $statustext = "<br/>"; } // print('view = '.$view.' action = '.$action);
print 'Если кто-то из участников не сможет участвовать в ММБ, удалите его до ' . $EditEnd . ".\n"; } $sql = "select tu.teamuser_id,\n\t\t\ttu.teamuser_notstartraidid,\n\t\t\tr.raid_nostartprice,\n\t\t\tCASE WHEN COALESCE(u.user_noshow, 0) = 1 THEN '{$Anonimus}' ELSE u.user_name END as user_name, u.user_birthyear, u.user_id, COALESCE(tld.levelpoint_id, 0) as levelpoint_id\n\t\tfrom TeamUsers tu\n\t\t\tinner join Users u\n\t\t\ton tu.user_id = u.user_id\n\t\t\tleft outer join TeamLevelDismiss tld\n\t\t\ton tu.teamuser_id = tld.teamuser_id\n\t\t\tleft outer join Raids r\n\t\t\ton tu.teamuser_notstartraidid = r.raid_id\n\t\twhere tu.teamuser_hide = 0 and team_id = {$TeamId}"; $Result = MySqlQuery($sql); while ($Row = mysql_fetch_assoc($Result)) { $userName = CMmbUI::toHtml($Row['user_name']); print '<div style="margin-top: 5px;">' . "\n"; if ($AllowEdit) { print '<input type="button" style="margin-right: 15px;" onClick="javascript:if (confirm(\'Вы уверены, что хотите удалить участника: ' . $userName . '? \')) { HideTeamUser(' . $Row['teamuser_id'] . '); }" name="HideTeamUserButton" tabindex="' . ++$TabIndex . '" value="Удалить">' . "\n"; } // Показываем только если можно смотреть результаты марш-броска // (так как тут есть список этапов) if ($AllowViewResults) { print 'Неявка в: <select name="UserNotInPoint' . $Row['teamuser_id'] . '" style="width: 100px; margin-right: 15px;" title="Точка, в которую не явился участник" onChange="javascript:if (confirm(\'Вы уверены, что хотите отметить неявку участника: ' . $userName . '? \')) { TeamUserNotInPoint(' . $Row['teamuser_id'] . ', this.value); }" tabindex="' . ++$TabIndex . '"' . $DisabledText . '>' . "\n"; $sqllevelpoints = "select levelpoint_id, levelpoint_name from LevelPoints lp where lp.distance_id = {$DistanceId} order by levelpoint_order"; $ResultLevelPoints = MySqlQuery($sqllevelpoints); $userlevelpointselected = $Row['levelpoint_id'] == 0 ? ' selected' : ''; print '<option value="0"' . $userlevelpointselected . '>-</option>' . "\n"; while ($RowLevelPoints = mysql_fetch_assoc($ResultLevelPoints)) { $userlevelpointselected = $RowLevelPoints['levelpoint_id'] == $Row['levelpoint_id'] ? 'selected' : ''; print '<option value="' . $RowLevelPoints['levelpoint_id'] . '"' . $userlevelpointselected . '>' . $RowLevelPoints['levelpoint_name'] . "</option>\n"; } mysql_free_result($ResultLevelPoints); print '</select>' . "\n"; } // ФИО и год рождения участника print "<a href=\"?UserId={$Row['user_id']}\">{$userName}</a> {$Row['user_birthyear']}\n"; // Отметка невыхода на старт в предыдущем ММБ if ($Row['teamuser_notstartraidid'] > 0) { print ' <a title="Участник был заявлен, но не вышел на старт в прошлый раз" href="#comment">(?!)</a> '; }
<?php include_once "./php/header.php"; if (isset($_REQUEST['commentid'])) { $cid = $_REQUEST['commentid']; } else { $cid = 0; } if (isset($_REQUEST['submit'])) { $query = "insert into comments (prevcid, fid, name, text, date) values({$cid}, \"{$_REQUEST['fid']}\", \"{$_REQUEST['name']}\", \"{$_REQUEST['comment']}\", now())"; MySqlQuery($query); } if (isset($_REQUEST['fid'])) { $fid = $_GET['fid']; $query = "select filename, uid, date, filelist from files where file_id=\"{$fid}\" and (uid=\"{$uid}\" or filelist <> 0)"; $res = MySqlRow($query); if ($res) { $filename = $res->filename; $fuid = $res->uid; $fdate = $res->date; include_once "./tpl/header.tpl"; include "./tpl/file.tpl"; $pvevcid = 0; if ($cid != 0) { $query = "select prevcid, name, date, text from comments where cid=\"{$cid}\" and fid=\"{$fid}\""; $res = MySqlRow($query); if ($res) { $cn = $res->name; $cdate = $res->date; $ctext = $res->text; $prevcid = $res->prevcid;
public static function setPassword($userId, $pwd) { $err = self::isValidPassword($pwd); if ($err !== true) { return $err; } $sql = "update Users set user_password = "******"\n\t\t\t \t\twhere user_id = {$userId}"; $rs = MySqlQuery($sql); return true; }
if ($Row['unionstatus'] == 'Не объединена') { print $Row['log_dt'] . "\n"; } print "</td>\r\n"; print "<td>\r\n"; if ($Row['unionstatus'] == 'Объединены') { // Команда объединена $sql = "select tu.teamuser_id, \n\t\t\t CASE WHEN COALESCE(u.user_noshow, 0) = 1 THEN '{$Anonimus}' ELSE u.user_name END as user_name,\n\t\t\t\t\t u.user_birthyear,\t\n\t\t\t\t\t u.user_id, \n\t\t\t\t\t t.team_name as oldteam_name,\n\t\t\t\t\t t.team_num as oldteam_num,\n\t\t\t DATE_FORMAT(tul.teamunionlog_dt, '%d.%m %H:%i:%s') as unionlog_dt \n\t\t\t\t from TeamUsers tu\n\t\t\t\t\t inner join Users u\n\t\t\t\t\t on tu.user_id = u.user_id\n\t\t\t\t\t inner join TeamUsers tu2\n\t\t\t\t\t on tu2.user_id = tu.user_id\n\t\t\t\t\t inner join Teams t\n\t\t\t\t\t on t.team_id = tu2.team_id\n\t\t\t\t\t inner join TeamUnionLogs tul\n\t\t\t\t\t on t.team_id = tul.team_id\n\t\t\t\t\t and t.team_parentid = tul.team_parentid\n\t\t\t\t\twhere tu.teamuser_hide = 0 \n\t\t\t\t\t and tu.team_id = {$Row['team_id']}\n\t\t\t\t\t and t.team_parentid = {$Row['team_id']}\n\t\t\t\t\t order by unionlog_dt"; } elseif ($Row['unionstatus'] == 'Отмена объединения') { $sql = "select null as teamuser_id,\n\t\t\t\t '' as user_name,\n\t\t\t\t\t '' as user_birthyear,\t\n\t\t\t\t\t null as user_id,\n\t\t\t\t\t t.team_name as oldteam_name,\n\t\t\t\t\t t.team_num as oldteam_num,\n\t\t\t DATE_FORMAT(tul.teamunionlog_dt, '%d.%m %H:%i:%s') as unionlog_dt \n\t\t\t\t from Teams t\n\t\t\t\t\t inner join TeamUnionLogs tul\n\t\t\t\t\t on t.team_id = tul.team_id\n\t\t\t\t\twhere tul.team_parentid = {$Row['team_id']}\n\t\t\t\t\t order by unionlog_dt"; } else { // Команда не объединена $sql = "select tu.teamuser_id, CASE WHEN COALESCE(u.user_noshow, 0) = 1 THEN '{$Anonimus}' ELSE u.user_name END as user_name, u.user_birthyear,\n\t\t\t\t\t u.user_id, \n\t\t\t\t\t '' as oldteam_name,\n\t\t\t\t\t '' as oldteam_num,\n\t\t\t\t\t '' as unionlog_dt \n\t\t\t\t from TeamUsers tu\n\t\t\t\t\t inner join Users u\n\t\t\t\t\t on tu.user_id = u.user_id\n\t\t\t\t\twhere tu.teamuser_hide = 0 and team_id = {$Row['team_id']}"; } //echo 'sql '.$sql; $UserResult = MySqlQuery($sql); $UserCount = 0; // Сканируем состав while ($UserRow = mysql_fetch_assoc($UserResult)) { $UserCount++; print "<div>{$UserRow['unionlog_dt']} " . CMmbUI::toHtml($UserRow['oldteam_name']) . ' ' . $UserRow['oldteam_num'] . " \r\n"; if ($Row['unionstatus'] != 'Отмена объединения') { print '<a href="?UserId=' . $UserRow['user_id'] . '">' . CMmbUI::toHtml($UserRow['user_name']) . "</a> {$UserRow['user_birthyear']}\r\n"; } print "</div>\r\n"; } mysql_free_result($UserResult); if ($UserCount == 0) { print ' '; } print "</td>\r\n</tr>\r\n";
public static function rowCount($query) { $result = MySqlQuery($query); $rn = mysql_num_rows($result); mysql_free_result($result); return $rn; }
{ $alert = 1; } */ } elseif ($action == 'HideTlp') { if (!$Administrator && !$Moderator) { CMmb::setMessage('Нет прав на правку результата для точки'); return; } $pTeamLevelPointId = $_POST['TeamLevelPointId']; $pTeamId = $_POST['TeamId']; if ($pTeamId <= 0) { teamEditError('Не определён ключ команды.'); return; } if ($pTeamLevelPointId <= 0) { teamEditError('Не определён ключ результата для точки.'); return; } $sql = "delete from TeamLevelPoints where teamlevelpoint_id = {$pTeamLevelPointId}"; MySqlQuery($sql); RecalcTeamResultFromTeamLevelPoints(0, $pTeamId); /* $statustext = CheckLevelPoints($DistanceId); if (!empty($error)) { $alert = 1; } */ } else { }
function GetAllSkippedPoints($raidId, $checkPointId) { $sql = "select t.team_id, t.distance_id, GROUP_CONCAT(lp.levelpoint_name ORDER BY lp.levelpoint_order, ' ') as notlevelpoint_name,\n\t\t\tCOALESCE(t.team_maxlevelpointorderdone, 0) as last_done\n\t\t\tfrom Teams t\n\t\t\t\tinner join Distances d\n\t\t\t\t on t.distance_id = d.distance_id\n\t\t\t\tjoin LevelPoints lp\n on t.distance_id = lp.distance_id\n\t\t\t\t\tand COALESCE(t.team_maxlevelpointorderdone, 0) >= lp.levelpoint_order\n\n\t\t\t\tinner join TeamLevelPoints tlp\n\t\t\t\t\ton lp.levelpoint_id = tlp.levelpoint_id\n\t\t\t\t\tand t.team_id = tlp.team_id\n\t\t where \t d.distance_hide = 0 and t.team_hide = 0 and d.raid_id = {$raidId}\n\t\t\tgroup by t.team_id, t.distance_id"; $time = microtime(true); $UserResult = MySqlQuery($sql); $time = microtime(true) - $time; $res = array(); while ($row = mysql_fetch_assoc($UserResult)) { $res[$row['team_id']] = array('names' => $row['notlevelpoint_name'], 'distance' => $row['distance_id'], 'last' => $row['last_done']); } mysql_free_result($UserResult); $distanceLists = GetDistancePoints($raidId, $checkPointId); $result = array(); foreach ($res as $tid => $rec) { if (isset($distanceLists[$rec['distance']])) { $result[$tid] = InvertPointList($distanceLists[$rec['distance']], $rec['names'], $rec['last']); } else { die("</td></tr></table>distance points list doesn't have distance id = '{$rec['distance']}'"); } } $result['__time__'] = $time; // хак, чтобы вернуть время, за которое отработал запрос return $result; }
//echo $sqlStartLevel; $LevelId = MySqlQuery($sqlStartLevel); // Привязываем точку только в случае старта. // Для смены карт точка уже привязан к прредыдущему этапу if ($Row['pointtype_id'] == 1) { $sqlPoint = "update LevelPoints set level_id = {$LevelId}\r\n\t\t\t\t where levelpoint_id = {$Row['levelpoint_id']}"; MySqlQuery($sqlPoint); } // Конец проверки на привязку точки старта } // Конец проверки на необходимость создать новый этап (старт или смену карт) // echo $Row['levelpoint_name'].' '.$Row['pointtype_id']; // Точка, кроме старта, финиша или смены карт if ($LevelId > 0 and $Row['pointtype_id'] != 1 and $Row['pointtype_id'] != 2 and $Row['pointtype_id'] != 4) { $sqlPoint = "update LevelPoints set level_id = {$LevelId}\r\n\t\t\t where levelpoint_id = {$Row['levelpoint_id']}"; MySqlQuery($sqlPoint); if ($Row['levelpoint_discount'] != 0) { if ($LevelDiscountValue == 0) { $LevelDiscountValue = $Row['levelpoint_discount']; } $LevelDiscountPoints .= ",1"; } else { $LevelDiscountPoints .= ",0"; } $LevelPoints .= "," . $Row['levelpoint_name']; $LevelPenalties .= "," . $Row['levelpoint_penalty']; } // Конец проверки, что точка не смена карт старт или финиш } // Конец цикла mysql_free_result($Result);
function ValidateTeam($Team, $Levels) { // Получаем список записей результатов из TeamLevels foreach ($Levels['level_id'] as $n => $level_id) { $sql = "select * from TeamLevels where level_id = {$level_id} and team_id = {$Team['team_id']} and teamlevel_hide = 0"; $Result = MySqlQuery($sql); if (mysql_num_rows($Result) > 1) { die('Несколько записей на один этап для команды ' . $Team['team_id']); } $Row = mysql_fetch_assoc($Result); if ($Row) { $TeamLevels[$n] = $Row; } mysql_free_result($Result); } // Проверяем все этапы, о которых есть записи в таблицах $team_result = 0; $team_progress = 0; $finished = 1; if (isset($TeamLevels)) { foreach ($TeamLevels as $n => $teamlevel) { $begtime = strtotime($teamlevel['teamlevel_begtime']); $endtime = strtotime($teamlevel['teamlevel_endtime']); // проверяем абсолютную корректность времени старта и финиша if ($begtime && ($begtime < $Levels['level_begtime'][$n] || $begtime > $Levels['level_maxbegtime'][$n])) { return LogError($teamlevel['teamlevel_id'], 1); } if (!$begtime && $Levels['level_starttype'][$n] == 1) { return LogError($teamlevel['teamlevel_id'], 2); } if ($begtime && ($Levels['level_starttype'][$n] == 2 || $Levels['level_starttype'][$n] == 3)) { return LogError($teamlevel['teamlevel_id'], 3); } if ($endtime && ($endtime < $Levels['level_minendtime'][$n] || $endtime > $Levels['level_endtime'][$n])) { return LogError($teamlevel['teamlevel_id'], 4); } // вычисляем время старта, если он общий или в момент финиша на пред.этапе if ($Levels['level_starttype'][$n] == 2) { $begtime = $Levels['level_begtime'][$n]; } if ($Levels['level_starttype'][$n] == 3 && isset($TeamLevels[$n - 1])) { $begtime = strtotime($TeamLevels[$n - 1]['teamlevel_endtime']); } // сравниваем время старта и финиша if ($begtime && $endtime && $begtime >= $endtime) { return LogError($teamlevel['teamlevel_id'], 5); } if ($begtime && $endtime && $endtime - $begtime < 3 * 3600) { return LogError($teamlevel['teamlevel_id'], -1); } /* if ($begtime && $endtime && (($endtime - $begtime) > 23*3600)) return(LogError($teamlevel['teamlevel_id'], -2)); */ // проверяем корректность прогресса на дистанции if ($teamlevel['teamlevel_begtime'] && $teamlevel['teamlevel_progress'] == 0) { return LogError($teamlevel['teamlevel_id'], 6); } if ($endtime && $teamlevel['teamlevel_progress'] != 2) { return LogError($teamlevel['teamlevel_id'], 7); } if (!$endtime && $teamlevel['teamlevel_progress'] == 2) { return LogError($teamlevel['teamlevel_id'], 8); } // проверяем наличие времени финиша и списка КП у финишировавшей команды if ($teamlevel['teamlevel_endtime'] == "" && !(strpos($teamlevel['teamlevel_points'], "1") === false)) { return LogError($teamlevel['teamlevel_id'], 12); } if ($teamlevel['teamlevel_endtime'] != "" && $teamlevel['teamlevel_points'] == "") { return LogError($teamlevel['teamlevel_id'], 13); } // проверяем длину списка КП и пересчитываем штраф $level_pointpenalties = explode(',', $Levels['level_pointpenalties'][$n]); $level_discountpoints = explode(',', $Levels['level_discountpoints'][$n]); if ($teamlevel['teamlevel_points'] == "") { unset($teamlevel_points); foreach ($level_pointpenalties as $penalty) { $teamlevel_points[] = "0"; } } else { $teamlevel_points = explode(',', $teamlevel['teamlevel_points']); } if (count($teamlevel_points) != count($level_pointpenalties)) { return LogError($teamlevel['teamlevel_id'], 9); } $teamlevel_penalty = 0; $teamlevel_selectpenalty = 0; foreach ($teamlevel_points as $npoint => $point) { if (empty($level_pointpenalties[$npoint])) { $NowLevelPointPenalty = 0; } else { $NowLevelPointPenalty = (int) $level_pointpenalties[$npoint]; } if ($point == "0" && $NowLevelPointPenalty > 0 || $point == "1" && $NowLevelPointPenalty < 0) { if (!empty($level_discountpoints[$npoint])) { $teamlevel_selectpenalty += $NowLevelPointPenalty; } else { $teamlevel_penalty += $NowLevelPointPenalty; } } } if ($Levels['level_discount'][$n]) { $teamlevel_selectpenalty -= $Levels['level_discount'][$n]; if ($teamlevel_selectpenalty < 0) { $teamlevel_selectpenalty = 0; } } $teamlevel_penalty += $teamlevel_selectpenalty; if ($teamlevel_penalty != $teamlevel['teamlevel_penalty']) { return LogError($teamlevel['teamlevel_id'], 10); } // пока считаем, что ошибок на этапе нет LogError($teamlevel['teamlevel_id'], 0); // добавляем результаты этапа к общему результату if ($begtime && $endtime) { $team_result += ($endtime - $begtime) / 60; } $team_result += $teamlevel_penalty; $team_progress += (int) $teamlevel['teamlevel_progress']; if ($teamlevel['teamlevel_progress'] != 2) { $finished = 0; } } } // Считаем, что на отсутствующие в базе записи о прохождении этапов команда не выходила foreach ($Levels['level_id'] as $n => $level_id) { if (!isset($TeamLevels[$n])) { $TeamLevels[$n]['teamlevel_progress'] = 0; $finished = 0; } } // Смотрим, чтобы после схода команда опять не появлялась на дистанции foreach ($TeamLevels as $n => $teamlevel) { if ($n > 1) { if ($teamlevel['teamlevel_progress'] > $TeamLevels[$n - 1]['teamlevel_progress']) { return LogError($teamlevel['teamlevel_id'], 11); } if ($teamlevel['teamlevel_progress'] == 1 && $TeamLevels[$n - 1]['teamlevel_progress'] == 1) { return LogError($teamlevel['teamlevel_id'], 11); } } } // Сверяем итоговые прогресс и результат команды if (!$finished) { $team_result = ""; } else { $team_result = sprintf("%d:%02d:00", $team_result / 60, $team_result % 60); } if ($team_result != $Team['team_result']) { echo "Ошибка подсчета итогового времени у команды {$Team['team_id']}: правильное={$team_result}, в базе={$Team['team_result']}<br/>"; } if ($team_progress != $Team['team_progress']) { echo "Ошибка подсчета степени продвижения по дистанции у команды {$Team['team_id']}: правильное={$team_result}, в базе={$Team['team_result']}<br/>"; } // Ошибок в результатах команды не обнаружено return 0; }
include_once "./php/header.php"; $sort = GetSortID(); $start = isset($_GET["start"]) ? $_GET["start"] : 0; $sorttext = array('дате', 'имени'); $sortq = array('order by date', 'order by filename'); $reloadurl = $_SERVER['php_self'] . "?fileaction={$action}&start={$start}&sortid={$sort}"; $ipp = 25; $query = "select count(*) from files where filelist<>0"; $query2 = "select file_id, filename, date from files where filelist<>0 {$sortq[$sort]} limit {$start} , {$ipp}"; $filescount = MySqlValue($query); $pagesbar = new Pagination(); $navpages = $pagesbar->ShowPages($filescount, $start, $ipp); $fl = ""; $servername = "http://{$_SERVER['SERVER_NAME']}"; $res = MySqlQuery($query2); while ($row = mysql_fetch_object($res)) { $fl .= "<tr><td>{$row->file_id}</td><td><a href=\"viewfile.php?fid={$row->file_id}\">{$row->filename}"; $fl .= "</td><td>{$row->date}</td><td><a href=\"{$servername}/{$uid}/{$row->filename}\" onclick=\"document.location.href='./save.php?fid={$row->file_id}';return false;\">{$servername}/{$uid}/{$row->filename}</a></td></tr>"; } mysql_free_result($res); if ($fl == "") { $filelist = "<tr><td colspan='4'>нет файлов в списках ползователей</td><tr>"; } $sortcb = ""; foreach ($sorttext as $key => $value) { $sortcb .= "<option value='{$key}'"; if ($key == $sort) { $sortcb .= " selected"; } $sortcb .= ">{$value}</option>";
print('<tr><td class = "input">Новый файл значка для загрузки: <input name="znfile" type="file" /></td></tr>'."\r\n"); */ print "<tr><td class=\"input\">\n"; // ================ Submit для формы ========================================== if ($AllowEdit == 1) { print '<tr><td class="input" style="padding-top: 20px;">' . "\n"; print '<input type="button" onClick="javascript: if (ValidateRaidDataForm()) submit();" name="RegisterButton" value="' . $SaveButtonText . '" tabindex="' . ++$TabIndex . '">' . "\n"; print '<input type="button" onClick="javascript: Cancel();" name="CancelButton" value="Отмена" tabindex="' . ++$TabIndex . '">' . "\n"; print "</td></tr>\r\n"; } print "</table></form>\n"; // Если редактируем, то выводим дистанции и этапы if ($viewmode != 'Add') { print '<div style="margin-top: 35px; font-weight: bold; font-size: 80%;">Дистанции</div>' . "\n"; $sql = "select d.distance_id, d.distance_name, d.distance_data\r\n\t\tfrom Distances d\r\n\t\twhere d.distance_hide = 0 and d.raid_id = {$RaidId}"; $DistanceResult = MySqlQuery($sql); while ($RowDistance = mysql_fetch_assoc($DistanceResult)) { print '<form name="DistanceDataForm' . $RowDistance['distance_id'] . '" action="' . $MyPHPScript . '" method="post">' . "\n"; print '<input type="hidden" name="action" value="DistanceChangeData">' . "\n"; print '<input type="hidden" name="view" value="ViewRaidData">' . "\n"; print '<input type="hidden" name="RaidId" value="' . $RaidId . '">' . "\n"; print '<input type="hidden" name="UserId" value="0">' . "\n"; print '<input type="hidden" name="DistanceId" value="' . $RowDistance['distance_id'] . '">' . "\n"; print '<table style="font-size: 80%;" border="0" cellpadding="2" cellspacing="0">' . "\n\n"; $TabIndex = 0; $DisabledText = ''; // ============ Название Дистанции print '<tr><td class="input">Название: <input type="text" name="DistanceName' . $RowDistance['distance_id'] . '" size="20" value="' . $RowDistance['distance_name'] . '" tabindex="' . ++$TabIndex . '">' . "\r\n"; print ' параметры: <input type="text" name="DistanceData' . $RowDistance['distance_id'] . '" size="50" value="' . $RowDistance['distance_data'] . '" tabindex="' . ++$TabIndex . '">' . "\r\n"; print '<input type="button" onClick="javascript: submit();" name="SaveDistance' . $RowDistance['distance_id'] . '" value="Сохранить" tabindex="' . ++$TabIndex . '">' . "\r\n"; print ' <input type="button" style="margin-left: 30px;" onClick="javascript: if (confirm(\'Вы уверены, что хотите удалить дистанцию.: ' . trim($RowDistance['distance_name']) . '? \')) { DistanceDataForm' . $RowDistance['distance_id'] . '.action.value = \'HideDistance\';submit();}" name="HideFileButton' . $RowDistance['distance_id'] . '" value="Удалить" tabindex="' . ++$TabIndex . '">' . "\n";
$TrClass = 'green'; } $RaidsCount--; //echo $i; print '<tr class="' . $TrClass . '">' . "\r\n"; //class = "yellow" print '<td><a href="?RaidId=' . $nextRaidId . '">' . $RaidName . '</a></td>' . "\r\n"; print '<td><a href="' . $RaidRulesLink . '" target="_blank">' . $RaidPeriod . '</a></td>' . "\r\n"; if (empty($RaidStartLink)) { print "<td>{$RaidStartPoint} - {$RaidFinishPoint}</td>\r\n"; } else { print '<td><a href="' . $RaidStartLink . '" target="_blank">' . $RaidStartPoint . "</a> - {$RaidFinishPoint}</td>\r\n"; } print "<td>\r\n"; // Вытаскиваем информацию о дистанциях $resultDistance = MySqlQuery("SELECT d.*,\n\t\t\t\t\t(\n\t\t\t\t\t select count(team_id) \n\t\t\t\t\t from Teams t \n\t\t\t\t\t where t.distance_id = d.distance_id\n\t\t\t\t\t and t.team_hide = 0\n\t\t\t\t\t) as teamscount,\n\t\t\t\t\t(\n\t\t\t\t\t select count(team_id) \n\t\t\t\t\t from Teams t \n\t\t\t\t\t where t.distance_id = d.distance_id\n\t\t\t\t\t and t.team_hide = 0\n\t\t\t\t\t\t and t.team_greenpeace = 1\n\t\t\t\t\t) as teamsgreencount,\n\t\t\t\t\tCOALESCE((\n\t\t\t\t\t select sum(COALESCE(team_mapscount, 0)) \n\t\t\t\t\t from Teams t \n\t\t\t\t\t where t.distance_id = d.distance_id\n\t\t\t\t\t and t.team_hide = 0\n\t\t\t\t\t), 0) as teammapscount,\n\t\t\t\t\t(\n\t\t\t\t\t select count(tu.teamuser_id) \n\t\t\t\t\t from Teams t \n\t\t\t\t\t inner join TeamUsers tu\n\t\t\t\t\t on t.team_id = tu.team_id\n\t\t\t\t\t where t.distance_id = d.distance_id\n\t\t\t\t\t and t.team_hide = 0\n\t\t\t\t\t and tu.teamuser_hide = 0\n\t\t\t\t\t) as teamuserscount\n\t\t\t FROM Distances d \n\t\t\t\t WHERE d.distance_hide = 0 and raid_id = {$nextRaidId} ORDER BY distance_name ASC"); $DistancesCount = 0; while ($rowDistance = mysql_fetch_assoc($resultDistance)) { $DistancesCount++; if ($DistancesCount > 1) { print "<br>\r\n"; } $DistanceName = $rowDistance['distance_name']; $DistanceLink = $rowDistance['distance_resultlink']; $DistanceData = $rowDistance['distance_data']; $DistanceCounters = '(' . $rowDistance['teamscount'] . '/<span style = "color:#007700;">' . $rowDistance['teamsgreencount'] . '</span> / ' . $rowDistance['teammapscount'] . ' / ' . $rowDistance['teamuserscount'] . ')'; // Если ссылка пустая - заменяем на сгенерированную if (trim($DistanceLink) == '') { //$DistanceLink = '?action=ViewRaidTeams&RaidId='.$nextRaidId; $DistanceLink = "?RaidId={$nextRaidId}"; }
$Sql = "select team_id, t.distance_id, team_name, team_num from Teams t inner join Distances d on t.distance_id = d.distance_id where t.team_hide = 0 and COALESCE(t.team_outofrange, 0) = 0 and d.raid_id = " . $RaidId; $Result = MySqlQuery($Sql); while ($Row = mysql_fetch_assoc($Result)) { $data["Teams"][] = $Row; } mysql_free_result($Result); // Users: user_id, user_name, user_birthyear // * $Sql = "select user_id, user_name, user_birthyear from Users where user_hide = 0"; $Result = MySqlQuery($Sql); while ($Row = mysql_fetch_assoc($Result)) { $data["Users"][] = $Row; } mysql_free_result($Result); // TeamUsers: teamuser_id, team_id, user_id, teamuser_hide $Sql = "select teamuser_id, tu.team_id, user_id, teamuser_hide from TeamUsers tu inner join Teams t on tu.team_id = t.team_id inner join Distances d on t.distance_id = d.distance_id where t.team_hide = 0 and COALESCE(t.team_outofrange, 0) = 0 and d.raid_id = " . $RaidId; $Result = MySqlQuery($Sql); while ($Row = mysql_fetch_assoc($Result)) { $data["TeamUsers"][] = $Row; } mysql_free_result($Result); // 27/03/2013 Отключил экспорт TeamLevelPoints т.к. эта таблица формируется исключительно при импорте данных. // Пока на планшетах не производится сведение всех данных - не нужна // TeamLevelDismiss: user_id, levelpoint_id, team_id, teamuser_id, teamleveldismiss_date, device_id /* $Sql = "select user_id, levelpoint_id, tld.team_id, teamuser_id, teamleveldismiss_date, device_id from TeamLevelDismiss tld inner join Teams t on tld.team_id = t.team_id inner join Distances d on t.distance_id = d.distance_id where t.team_hide = 0 and d.raid_id = ".$RaidId; $Result = MySqlQuery($Sql); while ( ( $Row = mysql_fetch_assoc($Result) ) ) { $data["TeamLevelDismiss"][] = $Row; } mysql_free_result($Result); */ // 27/03/2013 Отключил экспорт TeamLevelPoints т.к. эта таблица формируется исключительно при импорте данных. // Пока на планшетах не производится сведение всех данных - не нужна
if (!empty($maxinvdt)) { $invEndDt = $maxinvdt; } $sql = "insert into InvitationDeliveries (raid_id, invitationdelivery_type, invitationdelivery_dt, user_id, invitationdelivery_amount)\n VALUES ({$RaidId}, 3, NOW(), {$UserId}, 1)"; //echo $sql; $newInvDeliveryId = MySqlQuery($sql); //echo "newInvDeliveryId= $newInvDeliveryId "; if ($newInvDeliveryId <= 0) { CMmb::setErrorSm('Ошибка записи раздачи приглашения.'); return; } if ($pUserId <= 0 or $UserId <= 0 or !CRights::canDeliveryInvitation($UserId, $RaidId, 1)) { CMmb::setErrorMessage('Не хватает прав или нет доступных приглашений'); return; } $sql = "insert into Invitations (user_id, invitation_begindt, invitation_enddt, invitationdelivery_id)\n VALUES ({$pUserId}, NOW(), '{$invEndDt}', {$newInvDeliveryId})"; //echo $sql; $newInvId = MySqlQuery($sql); if ($newInvId <= 0) { CMmb::setErrorSm('Ошибка записи приглашения.'); return; } CMmb::setResult('Приглашение выдано', "ViewUserData", ""); } else { // если никаких действий не требуется // $statustext = "<br/>"; } // print('view = '.$view.' action = '.$action); ?>