} elseif ($action == 'DelLink') { $pUserId = $_POST['UserId']; if ($pUserId <= 0) { CMmb::setErrorMessage('Пользователь не найден'); return; } 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", "");
// +++++++++++ Показ/редактирование данных команды ++++++++++++++++++++++++++++ // Выходим, если файл был запрошен напрямую, а не через include if (!isset($MyPHPScript)) { return; } if (!isset($viewmode)) { $viewmode = ""; } if (!isset($viewsubmode)) { $viewsubmode = ""; } // ================ Добавляем новую команду =================================== if ($viewmode == 'Add') { if ($RaidId <= 0 || $UserId <= 0) { CMmb::setErrorMessage('Для регистрации новой команды обязателен идентификатор пользователя и ММБ'); return; } // Если запрещено создавать команду - молча выходим, сообщение уже выведено в teamaction.php //if (!CanCreateTeam($Administrator, $Moderator, $OldMmb, $RaidStage, $TeamOutOfRange)) return; if (!CRights::canCreateTeam($UserId, $RaidId)) { return; } $Sql = "select user_email from Users where user_id = {$UserId}"; $UserEmail = CSql::singleValue($Sql, 'user_email'); // Если вернулись после ошибки переменные не нужно инициализировать if ($viewsubmode == "ReturnAfterError") { ReverseClearArrays(); $TeamNum = (int) $_POST['TeamNum']; $TeamName = CMmbUi::toHtml($_POST['TeamName']); $DistanceId = mmb_validateInt($_POST, 'DistanceId');
// Точка, кроме старта, финиша или смены карт 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); } elseif ($action == 'ViewUsersLinksPage') { if ($RaidId <= 0) { CMmb::setErrorMessage('Id ММБ не указан'); return; } // print '2'; CMmb::setViews('ViewUsersLinks', ''); } elseif ($action == 'ViewAllBadgesPage') { // print '1'; CMmb::setViews('ViewAllBadges', ''); } else { }
MySqlQuery($sql); $sql = " update TeamUsers tu\n\t\t\t inner join\n\t\t\t (\n\t\t\t select t.team_id\n\t\t from Teams t\n \t\t\t where t.team_parentid = {$TeamId}\n\t\t\t ) a\n\t\t\t on tu.team_id = a.team_id\n\t\t set tu.teamuser_hide = 1 "; MySqlQuery($sql); $sql = " update Teams set team_hide = 0\n\t\t\t where team_id = {$TeamId}"; MySqlQuery($sql); $sql = " update TeamUsers set teamuser_hide = 0\n\t\t\t where team_id = {$TeamId}"; MySqlQuery($sql); $sql = " update TeamUnionLogs set union_status = 2\n\t\t\t where union_status = 1\n\t\t\t and teamunionlog_hide = 0 "; MySqlQuery($sql); RecalcTeamResultFromTeamLevelPoints(0, $TeamId); CMmb::setResult('Команды объединены', "ViewRaidTeams"); } elseif ($action == "CancelUnionTeams") { // Действие вызывается нажатием кнопки "Объединить" // Права if (!$Administrator and !$Moderator) { CMmb::setErrorMessage('Нет прав на отмену объединения'); return; } $pParentTeamId = mmb_validateInt($_POST, 'TeamId'); if ($RaidId <= 0) { setUnionError('Не указан ММБ.'); return; } if ($pParentTeamId <= 0) { setUnionError('Не указана команда.'); return; } // Проверяем, что команда есть в объединении $sql = " select teamunionlog_id\n\t from TeamUnionLogs \n\t\t\t where teamunionlog_hide = 0 \n and union_status = 2\n\t\t\t and team_parentid = {$pParentTeamId}"; if (CSql::rowCount($sql) <= 0) { setUnionError('Команды нет в объединении');
MySqlQuery($sql); // на всякий случай ещё раз проверяем if (!CRights::canDeliveryInvitation($UserId, $RaidId, 1) or $pInvitationsCount > CSql::availableInvitationsCount($RaidId)) { CMmb::setErrorMessage('Не хватает прав или нет доступных приглашений'); return; } // А вот дальше собственно вставка приглашений на основании лотереи // и их привязка к команде $sql = " CREATE TEMPORARY TABLE\n\t\t\t\ttmp_lottoteams (\n\t\t\t\t num INT NOT NULL AUTO_INCREMENT PRIMARY KEY, \n team_id INT, \n user_id INT\n\t\t\t\t ) \n\t\t\t\tENGINE=MEMORY, AUTO_INCREMENT = 0"; $rs = MySqlQuery($sql); // отбираем в таблицу команды вне зачета с автонумерованной первой колонкой $sql = " INSERT INTO tmp_lottoteams (team_id, user_id)\n\t\t\t select t.team_id, MIN(tu.user_id) as user_id \n \t\t\tfrom Teams t\n \t\t\t\tinner join TeamUsers tu\n\t\t\t\t on t.team_id = tu.team_id\n\t\t\t\t\tinner join Distances d\n\t\t\t\t\ton t.distance_id = d.distance_id\n \t\t\twhere tu.invitationdelivery_id = {$newInvDeliveryId}\n\t\t\t\tgroup by t.team_id\n\t\t\t"; $rs = MySqlQuery($sql); // на всякий случай ещё раз проверяем if (!CRights::canDeliveryInvitation($UserId, $RaidId, 1) or $pInvitationsCount > CSql::availableInvitationsCount($RaidId)) { CMmb::setErrorMessage('Не хватает прав или нет доступных приглашений'); return; } // Если нужны разыне вероятности, то можно добавить стоьлко раз строчку команды, сколько "веса" она должна получить // находим случайно нужное число команд // вставляем приглешния $sql = " insert into Invitations (user_id, invitation_begindt, invitation_enddt, invitationdelivery_id)\n\t\t select user_id, NOW(), NOW(), {$newInvDeliveryId}\n\t\t from tmp_lottoteams\n \t\t ORDER BY RAND()\n\t\t LIMIT {$pInvitationsCount}\n\t\t \t "; // echo $sql; $rs = MySqlQuery($sql); // активируем команды , которые связаны с одной стороны с временой таблицы а через неё с приглашениями $sql = " update Teams t\n\t\t \t inner join tmp_lottoteams tmp\n\t\t\t on t.team_id = tmp.team_id\n\t\t\t inner join Invitations inv\n\t\t\t on inv.user_id = tmp.user_id\n\t\t set t.team_outofrange = 0, t.invitation_id = inv.invitation_id\n\t\t where inv.invitationdelivery_id = {$newInvDeliveryId}\n\t\t"; // echo $sql $rs = MySqlQuery($sql); // $sql = " DELETE FROM tmp_lottoteams "; // $rs = MySqlQuery($sql); CMmb::setShortResult('Лотерея проведена', '');