Example #1
0
        print "</div>\n";
    }
    mysql_free_result($Result);
    print "</td></tr>\n";
}
// Закончили вывод списка участников
// ============ Новый участник
// Возможность добавлять участников заканчивается вместе с возможностью создавать команды
// Обычный пользователь может добавлять новых участников при редактировании своей команды
// Модератор/Администратор могут создавать новые команды с другим участником вместо себя
//if (($AllowEdit == 1) && CanCreateTeam($Administrator, $Moderator, $OldMmb, $RaidStage, $TeamOutOfRange) &&
//	(($viewmode <> "Add") || $Moderator || $Administrator))
// 21.03.2016 Определяем, когда можно добавлять нового пользователя
// при добавлении команды можно только модераторам или администраторам
// при правке - в зависимости от типа команды
if ($viewmode != 'Add' and CRights::canEditTeam($UserId, $RaidId, $TeamId) or $viewmode == 'Add' and (CSql::userAdmin($UserId) or CSql::userModerator($UserId, $RaidId)) and CSql::raidStage($RaidId) < 7) {
    print '<tr><td class="input" style="padding-top: 10px;">' . "\n";
    // Предупредим команды в зачете о том, что они могут добавлять участников только до закрытия регистрации
    if ($TeamUser and !$TeamOutOfRange) {
        print 'Добавление новых участников в команду разрешено до ' . $RegistrationEnd . ".<br/>\n";
        //print('После этой даты они могут участвовать в ММБ только в виде самостоятельной команды вне зачета.<br/>'."\n");
    }
    print '<input type="text" name="NewTeamUserEmail" size="50" value="Email нового участника" tabindex="' . ++$TabIndex . '"' . CMmbUI::placeholder('Email нового участника') . 'title="Укажите e-mail пользователя, которого Вы хотите добавить в команду. Пользователь может запретить добавлять себя в команду в настройках своей учетной записи.">' . "\n";
    print "</td></tr>\n";
}
// 20/02/2014 Пользовательское соглашение
if ($viewmode == "Add" && $AllowEdit == 1) {
    print '<tr><td class="input" style="padding-top: 10px; font-size: 80%;">' . "\n";
    print '<b>Условия участия (выдержка из <a href="' . $RaidRulesLink . '">положения</a>):</b><br/>' . "\n";
    // Ищем последнее пользовательское соглашение
    $ConfirmFile = trim($MyStoreHttpLink) . CSql::raidFileName(null, 8, true);
Example #2
0
        $linktypeselected = '';
        $LinkNameDisabled = empty($Row['linktype_textonly']) ? 'false' : 'true';
        print '<option value="' . $Row['linktype_id'] . '" ' . $linktypeselected . '  onclick = "javascript:document.UserLinksForm.NewLinkName.disabled=' . $LinkNameDisabled . ';">' . $Row['linktype_name'] . "</option>\n";
    }
    mysql_free_result($Result);
    print '</select>' . "\n";
    print '<input type="text" name="NewLinkName" size="30" value="' . $NewLinkName . '" tabindex = "' . ++$TabIndex . '"  ' . $DisabledText . ' ' . CMmbUI::placeholder($NewLinkName) . ' title = "Название нового впечатления">' . "\r\n";
    print "</div>\r\n";
    print '<div align = "left" style = "padding-top: 5px;">' . "\r\n";
    print '<input type="text" name="NewLinkUrl" size="50" value="' . $NewLinkUrl . '" tabindex = "' . ++$TabIndex . '"  ' . $DisabledText . ' ' . CMmbUI::placeholder($NewLinkUrl) . ' title = "Адрес ссылки на впечатление">' . "\r\n";
    print '<input type="button" onClick = "javascript: AddLink();"  name="AddLinkButton" value="Добавить" tabindex = "' . ++$TabIndex . '">' . "\r\n";
    print "</div></form>\r\n";
}
// Конец блока ссылок на впечатления
// 08.06.2016  Блок приглашений
if ($viewmode != 'Add' and CRights::canViewUserInvitations($pUserId, $RaidId, $UserId)) {
    // Выводим спсиок
    print '<div style = "margin-top: 20px; margin-bottom: 10px; text-align: left">Приглашения:</div>' . "\r\n";
    $sql = "select inv.invitation_id, inv.invitation_begindt as begindt, inv.invitation_enddt as enddt,\n\t\t       idt.invitationdeliverytype_name as type_name, t.team_id, t.team_name, t.team_num,\n\t\t       r.raid_id, r.raid_name\n    \t\t\tfrom Invitations inv\n\t    \t\t\tinner join InvitationDeliveries idev\n    \t\t\t\ton inv.invitationdelivery_id = idev.invitationdelivery_id\n\t    \t\t\tinner join InvitationDeliveryTypes idt\n    \t\t\t\ton idev.invitationdelivery_type  = idt.invitationdeliverytype_id\n    \t\t\t\tinner join Raids r\n    \t\t\t\ton idev.raid_id = r.raid_id\n    \t\t\t\tleft outer join Teams t\n    \t\t\t\ton inv.invitation_id = t.invitation_id\n\t    \t\t\t   and t.team_hide = 0\n\t\t    \twhere  inv.user_id = {$pUserId}\n\t\t\torder by r.raid_id desc, inv.invitation_id asc\n                 \t";
    //  echo 'sql '.$sql;
    $Result = MySqlQuery($sql);
    while ($Row = mysql_fetch_assoc($Result)) {
        print '<div class="team_res">' . $Row['raid_name'] . '; ' . $Row['type_name'] . '; выдано: ' . $Row['begindt'] . '; ';
        if (!empty($Row['team_id'])) {
            print 'использовано для команды: <a href = "?TeamId=' . $Row['team_id'] . '">' . $Row['team_name'] . ' (N' . $Row['team_num'] . ')</a>';
        } else {
            print 'действительно до: ' . $Row['enddt'];
        }
        print "\r\n</div>\r\n";
    }
    mysql_free_result($Result);
Example #3
0
<?php

/**
 * Created by PhpStorm.
 * User: Serge Titov
 * Date: 10.04.2016
 * Time: 17:46
 */
// Выходим, если файл был запрошен напрямую, а не через include
if (!isset($MyPHPScript)) {
    return;
}
if (!CRights::canViewLogs($UserId)) {
    // нет прав -- вываливаемся
    return;
}
?>

<form name="LogsForm" action="<?php 
echo $MyPHPScript;
?>
" method="post">
    <input type="hidden" value="viewLogs" name="action"/>
    <div style="margin-bottom: 2ex;">

<?php 
// фильтруем типы ошибок и печатаем селект
$allLevels = array(CMmbLogger::Trace, CMmbLogger::Debug, CMmbLogger::Info, CMmbLogger::Warn, CMmbLogger::Error, CMmbLogger::Critical);
$levels = array();
$rawLevels = mmb_validate($_POST, 'levels', array());
if (!is_array($rawLevels)) {
Example #4
0
if (CRights::canDeliveryInvitation($UserId, $RaidId, 1)) {
    print '<tr><td style = "padding-top: 5px; padding-bottom: 5px;"><input type="button" style = "width:185px;" name="RankInvitations" value="Пригласить по рейтингу"
                          onclick = "javascript: RaidRankInvitations();"
                          tabindex = "' . ++$TabIndex . '">' . "\r\n";
    print ' приглашений <input type="text" name="RankInvitationsCount" size="4" maxlength="3" value="0" tabindex="' . ++$TabIndex . '"' . ' title=" приглашений">  не больше: ' . CSql::availableInvitationsCount($RaidId) . "\r\n";
    // ============ Дата окончания
    print ' действуют до  (гггг-мм-дд): <input type="text" name="InvitationsEndDate" size="10" value="" tabindex="' . ++$TabIndex . ' title="Дата окончания действия приглашений по рейтингу">' . "\r\n";
    print '</td></tr>' . "\r\n";
}
if (CRights::canDeliveryInvitation($UserId, $RaidId, 2)) {
    print '<tr><td style = "padding-top: 5px; padding-bottom: 5px;"><input type="button" style = "width:185px;" name="LottoInvitations" value="Пригласить по лотерее"
                          onclick = "javascript: RaidLottoInvitations();"
                          tabindex = "' . ++$TabIndex . '">' . "\r\n";
    print ' приглашений <input type="text" name="LottoInvitationsCount" size="4" maxlength="3" value="0" tabindex="' . ++$TabIndex . '"' . ' title="Число приглашений">  не больше: ' . CSql::availableInvitationsCount($RaidId) . '</td></tr>' . "\r\n";
}
if (CRights::canDeleteOutOfRangeTeams($UserId, $RaidId)) {
    print '<tr><td style = "padding-top: 5px; padding-bottom: 5px;"><input type="button" style = "width:185px;" name="OutOfRangeTeamsDelete" value="Удалить вне зачета"
                          onclick = "javascript: RaidDeleteOutOfRangeTeams();"
                          tabindex = "' . ++$TabIndex . '">' . "\r\n";
}
print '<tr><td style = "padding-top: 25px; padding-bottom: 5px;"><input type="button" style = "width:185px;" name="Cardsdump" value="Получить карточки"
                          onclick = "javascript: RaidCardsExport();"
                          tabindex = "' . ++$TabIndex . '"></td></tr>' . "\r\n";
print '<tr><td style = "padding-top: 5px; padding-bottom: 5px;"><input type="button" style = "width:185px;" name="JSONdump" value="Список участников"
                          onclick = "javascript: RaidTeamUsersExport();"
                          tabindex = "' . ++$TabIndex . '"></td></tr>' . "\r\n";
print '<tr><td style = "padding-top: 5px; padding-bottom: 5px;"><input type="button" style = "width:185px;" name="RTUdump" value="Получить дамп"
                          onclick = "javascript: JSON();"
                          tabindex = "' . ++$TabIndex . '"></td></tr>' . "\r\n";
print '<tr><td style = "padding-top: 10px; padding-bottom: 10px;">Файл с данными:<br/><input  type="file" name="android" /> &nbsp;
                 <input type="button"  style = "width:185px;" name = "LoadRaidDataFileButton"  value="Загрузить"  onclick = "javascript: LoadRaidDataFile(); "  tabindex = "' . ++$TabIndex . '"  /></td></tr>' . "\r\n";
Example #5
0
    $view = "ViewRaidTeams";
} elseif ($action == 'InviteTeam') {
    if ($TeamId <= 0) {
        CMmb::setErrorMessage('Команда не найдена');
        return;
    }
    if ($RaidId <= 0) {
        CMmb::setErrorMessage('Марш-бросок не найден');
        return;
    }
    if ($SessionId <= 0) {
        CMmb::setErrorMessage('Сессия не найдена');
        return;
    }
    // Проверка возможности пригласить команду
    $inviteId = CRights::canInviteTeam($UserId, $TeamId);
    if (!$inviteId) {
        CMmb::setErrorMessage('Приглашение команды невозможно');
        return;
    } else {
        $sql = "update Teams set team_outofrange = 0, invitation_id = {$inviteId}, invitation_usedt = NOW()  where team_id = {$TeamId}";
        $rs = MySqlQuery($sql);
    }
    $view = "ViewRaidTeams";
} elseif ($action == "CancelChangeTeamData") {
    $view = "ViewTeamData";
} elseif ($action == "ViewRaidTeams") {
    $view = "ViewRaidTeams";
} elseif ($action == 'JsonExport') {
    $RaidId = mmb_validateInt($_REQUEST, 'RaidId', -1);
    if ($RaidId <= 0) {
Example #6
0
    $sql = "select COALESCE(t.team_num, 0) as team_num\n\t\t\tfrom  Teams t\n\t\t\twhere t.team_hide = 0 and t.team_id = {$teamId}";
    $teamNum = (int) CSql::singleValue($sql, 'team_num');
    if ($teamNum) {
        print "<a style=\"font-size:80%; margin-right: 15px;\" href=\"#{$teamNum}\" title=\"Переход к строке Вашей команды\">Моя команда</a>\r\n";
    }
}
$StartLink = CSql::raidFileLink($RaidId, 10, true);
if (!empty($StartLink)) {
    print '<a style="font-size:80%; margin-right: 15px;" href="' . $StartLink . '" title="Информация о месте и порядке старта ММБ" target = "_blank">Старт</a>' . "\r\n";
}
print '<a style="font-size:80%; margin-right: 15px;" href="?links&RaidId=' . $RaidId . '" title="Страница впечатлений: отчеты, фотографии, треки...">Впечатления</a>' . "\r\n";
print '<a style="font-size:80%; margin-right: 15px;" href="?files&RaidId=' . $RaidId . '" title="Все материалы ММБ: положение, карты, легенды...">Материалы</a>' . "\r\n";
print '<a style="font-size:80%; margin-right: 15px;" href="javascript: JsonExport();">Json</a> ' . "\r\n";
// можем / нужно ли показывать карты?
$mapQuery = "select raidfile_name, raidfile_comment\n\t                from RaidFiles\n\t                        where raid_id = {$RaidId} \n\t                        \tand filetype_id = 4 \n\t                        \tand substr(lower(raidfile_name), -4)  in ('.png','.gif','.jpg','jpeg')\n\t                        \tand raidfile_hide = 0\n\t     \t\t\torder by raidfile_id asc";
$canShowMaps = CRights::canShowImages($RaidId) && CSql::rowCount($mapQuery) > 0;
$showMapImages = mmb_validateInt($_GET, 'showMap', '0');
if ($canShowMaps) {
    if ($showMapImages == 1) {
        print '<a style="font-size:80%; margin-right: 15px;" href="?protocol&RaidId=' . $RaidId . '&showMap=0" title="Не отображать карты в протоколе - можно смотреть на странцие материалов">Скрыть карты</a> ' . "\r\n";
    } else {
        print '<a style="font-size:80%; margin-right: 15px;" href="?protocol&RaidId=' . $RaidId . '&showMap=1" title="Отображать карты на этой странице - время загрзуки может заметно вырасти!">Показать карты</a> ' . "\r\n";
    }
}
print '</div>' . "\r\n";
// собственно вывод карт
if ($canShowMaps and $showMapImages) {
    print '<div align="left" style="margin-top:10px; margin-bottom:10px; font-size: 100%;">' . "\r\n";
    $Result = MySqlQuery($mapQuery);
    while ($Row = mysql_fetch_assoc($Result)) {
        $ImageLink = $Row['raidfile_name'];
Example #7
0
    }
    $sql = "update TeamLevelPoints  set levelpoint_id = {$pLevelPointId}\n\t                                ,team_id = {$pTeamId}\n\t                                ,error_id = {$pErrorId}\n\t                                ,teamlevelpoint_comment = '{$pTlpComment}'\n\t                                ,teamlevelpoint_datetime = {$TlpYDTs}\n\t                                ,teamlevelpoint_date = NOW()\n\t        where teamlevelpoint_id = {$pTeamLevelPointId}";
    //echo $sql;
    MySqlQuery($sql);
    RecalcTeamResultFromTeamLevelPoints(0, $pTeamId);
    //         RecalcTeamResultFromTeamLevelPoints(25, 0);
    /*   
     $statustext = CheckLevelPoints($DistanceId);
     if (!empty($error))
     {
    	$alert = 1;
     }
    */
} elseif ($action == 'HideTlp') {
    //	if (!$Administrator && !$Moderator)
    if (!CRights::canEditPointResult($UserId, $RaidId, $TeamId)) {
        CMmb::setMessage('Нет прав на правку результата для точки');
        return;
    }
    $pTeamLevelPointId = mmb_validateInt($_POST, 'TeamLevelPointId');
    $pTeamId = mmb_validateInt($_POST, 'TeamId');
    if ($pTeamId <= 0) {
        teamEditError('Не определён ключ команды.');
        return;
    }
    if ($pTeamLevelPointId <= 0) {
        teamEditError('Не определён ключ результата для точки.');
        return;
    }
    $sql = "delete from TeamLevelPoints where teamlevelpoint_id = {$pTeamLevelPointId}";
    MySqlQuery($sql);
Example #8
0
    // смотрим максимальную дату приглашений по рейтингу
    // если нашли, то ставим её, а не дату окончания ММБ
    $sql = "select MAX(inv.invitation_enddt) as maxinvdt\n                from InvitationDeliveries invd\n                    inner join Invitations inv\n                    on invd.invitationdelivery_id = inv.invitationdelivery_id\n                where  invd.raid_id = {$RaidId}\n                    and inv.invitation_enddt > NOW()\n                    and invd.invitationdelivery_type = 1 \n            ";
    $maxinvdt = CSql::singleValue($sql, 'maxinvdt', false);
    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/>";
}