コード例 #1
0
ファイル: useraction.php プロジェクト: se-ti/mmb
    CMmb::setViews('ViewUserData', '');
    $pUserId = $_POST['UserId'];
    $pText = $_POST['MessageText'];
    if (empty($pText) or trim($pText) == 'Текст сообщения') {
        CMmb::setError('Укажите текст сообщения.', $view, '');
        return;
    }
    //     echo 'pUserId '.$pUserId.'now  '.$NowUserId;
    // Если вызвали с таким действием, должны быть определны оба пользователя
    if ($pUserId <= 0 or $UserId <= 0) {
        return;
    }
    $row = CSql::fullUser($pUserId);
    $UserEmail = $row['user_email'];
    $UserName = $row['user_name'];
    CMmb::setShortResult('Сообщение выслано.', '');
    $SendMessageUserName = CSql::userName($UserId);
    $pTextArr = explode('\\r\\n', $pText);
    $Msg = "Уважаемый пользователь {$UserName}!\r\n" . "Через сайт ММБ пользователь {$SendMessageUserName} отправил Вам следующее сообщение:\r\n\r\n";
    foreach ($pTextArr as $NowString) {
        $Msg .= $NowString . "\r\n";
    }
    //		$Msg .=  $pText;
    $Msg .= "\r\nДля ответа необходимо авторизоваться и открыть карточку пользователя {$SendMessageUserName}\r\n" . $MyHttpLink . $MyLocation . "?UserId={$UserId}\r\n";
    // Отправляем письмо
    SendMail(trim($UserEmail), $Msg, $UserName);
} elseif ($action == "AddUserInUnion") {
    // Действие вызывается нажатием кнопки "Запросить слияние"
    if ($UserId <= 0) {
        CMmb::setErrorMessage('Пользователь не найден');
        return;
コード例 #2
0
ファイル: json.php プロジェクト: se-ti/mmb
    $Sql = "select user_id, user_admin from Users where user_hide = 0 and trim(user_email) = trim('{$_GET['Login']}') and user_password = '******'Password'])) . "'";
    $Result = MySqlQuery($Sql);
    $Row = mysql_fetch_assoc($Result);
    if ($Row['user_id'] <= 0) {
        print "Autenthication failed";
        return;
    }
    if ($Row['user_admin'] == 0) {
        print "Authorization failed";
        return;
    }
}
// Конец проверки, как именно используем скрипт: из интерфейса или отдельно
// Проверяем, что передали идентификатор ММБ
if (empty($RaidId)) {
    CMmb::setShortResult('Не указан ММБ', '');
    return;
    /*
      $sql = "select raid_id
     	  from Raids 
     	  order by raid_registrationenddate desc
    	  LIMIT 0,1 ";
    
      $Result = MySqlQuery($sql);
      $Row = mysql_fetch_assoc($Result);
      $RaidId = $Row['raid_id'];
      mysql_free_result($Result);
    */
}
// Сбор данных для дампа
$data = array();
コード例 #3
0
ファイル: functions.php プロジェクト: realtim/mmb
function SendMailForAll($raidId, $msgSubject, $msgText, $sendingType)
{
    global $DebugMode;
    // $debagCond;
    $SessionId = mmb_validate($_COOKIE, CMmb::CookieName, '');
    $UserId = (int) CSql::userId($SessionId);
    $Admin = (int) CSql::userAdmin($UserId);
    // тут нужны проверки
    if ($raidId <= 0) {
        CMmb::setShortResult('Марш-бросок не найден', '');
        return -1;
    }
    if (empty($msgSubject) or trim($msgSubject) == 'Тема рассылки') {
        CMmb::setShortResult('Укажите тему сообщения', '');
        return -1;
    }
    if (empty($msgText) or trim($msgText) == 'Текст сообщения') {
        CMmb::setShortResult('Укажите текст сообщения', '');
        return -1;
    }
    if (empty($sendingType) or $sendingType == 0) {
        CMmb::setShortResult('Укажите тип рассылки', '');
        return -1;
    }
    //	echo $raidId, $msgSubject, $msgText, $sendingType, $Admin;
    // рассылать всем может только администратор
    if (!$Admin) {
        return -1;
    }
    if (isset($DebugMode) and $DebugMode == 1) {
        $debugCond = " and u.user_admin = 1 ";
    } else {
        $debugCond = "";
    }
    if ($sendingType == 1) {
        // информационное сообщение
        $sql = "  select tu.user_id, u.user_name, u.user_email \n             \t\tfrom TeamUsers tu\n             \t\t\tinner join Teams t\n             \t\t\ton tu.team_id = t.team_id\n             \t\t\tinner join Users u\n             \t\t\ton tu.user_id = u.user_id\n             \t\t\tinner join Distances d\n             \t\t\ton t.distance_id = d.distance_id\n             \t\twhere d.raid_id = {$raidId}\n             \t\t\tand t.team_hide = 0\n             \t\t\tand tu.teamuser_hide = 0\n             \t\t\t{$debugCond}\n             \t\t\tand u.user_allowsendorgmessages = 1\n             \t\torder by tu.user_id ";
    } elseif ($sendingType == 2) {
        // экстренная рассылка
        $sql = "  select tu.user_id, u.user_name, u.user_email \n             \t\tfrom TeamUsers tu\n             \t\t\tinner join Teams t\n             \t\t\ton tu.team_id = t.team_id\n             \t\t\tinner join Users u\n             \t\t\ton tu.user_id = u.user_id\n             \t\t\tinner join Distances d\n             \t\t\ton t.distance_id = d.distance_id\n             \t\twhere d.raid_id = {$raidId}\n             \t\t\tand t.team_hide = 0\n             \t\t\tand tu.teamuser_hide = 0\n             \t\t\t{$debugCond}\n             \t\torder by tu.user_id ";
    } elseif ($sendingType == 3) {
        // информаия об открытии регистрации или общая рассылка по всем пользователям вне ММБ
        $sql = "  select u.user_id, u.user_name, u.user_email \n             \t\tfrom  Users u\n             \t\twhere u.user_hide = 0\n            \t\t      {$debugCond}\n             \t\t      and u.user_allowsendorgmessages = 1\n             \t\torder by u.user_id ";
    } elseif ($sendingType == 4) {
        // рассылка тем, у кого есть приглашения, но чья команда не переведена в зачет
        $sql = "  select tu.user_id, u.user_name, u.user_email \n             \t\tfrom TeamUsers tu\n             \t\t\tinner join Teams t\n             \t\t\ton tu.team_id = t.team_id\n             \t\t\tinner join Users u\n             \t\t\ton tu.user_id = u.user_id\n             \t\t\tinner join Distances d\n             \t\t\ton t.distance_id = d.distance_id\n\t\t\t\tinner join Invitations inv\n\t\t\t\ton inv.user_id = inv.user_id\n\t\t\t\tinner join InvitationDeliveries invd\n\t\t\t\ton inv.invitationdelivery_id = invd.invitationdelivery_id\n\t\t\t\t   and invd.raid_id = d.raid_id\n\t\t\t\tleft outer join  Teams t2\n\t\t\t\ton inv.invitation_id = t2.invitation_id\n\t\t\twhere   d.raid_id = {$raidId}\n             \t\t\tand t.team_hide = 0\n             \t\t\tand tu.teamuser_hide = 0\n             \t\t\tand t.team_outofrange = 1\n\t\t\t\tand t.invitation_id is null\t\n\t\t\t\tand t2.team_id is null\n             \t\t\t{$debugCond}\n             \t\torder by tu.user_id ";
        // по идее условие на t.invitation_id is null лишнее
    } elseif ($sendingType == 5) {
        // рассылка тем, чья команда ожидает приглашения (перед удалением)
        $sql = "  select tu.user_id, u.user_name, u.user_email \n             \t\tfrom TeamUsers tu\n             \t\t\tinner join Teams t\n             \t\t\ton tu.team_id = t.team_id\n             \t\t\tinner join Users u\n             \t\t\ton tu.user_id = u.user_id\n             \t\t\tinner join Distances d\n             \t\t\ton t.distance_id = d.distance_id\n             \t\twhere d.raid_id = {$raidId}\n             \t\t\tand t.team_hide = 0\n             \t\t\tand tu.teamuser_hide = 0\n             \t\t\tand t.team_outofrange = 1\n\t\t\t\tand t.invitation_id is null  \n             \t\t\t{$debugCond}\n             \t\torder by tu.user_id ";
        // по идее условие на t.invitation_id is null лишнее
    } else {
        $sql = "";
    }
    //echo $sql;
    $UserResult = MySqlQuery($sql);
    while ($UserRow = mysql_fetch_assoc($UserResult)) {
        $UserEmail = $UserRow['user_email'];
        $UserName = $UserRow['user_name'];
        $Msg = '';
        $pTextArr = explode('\\r\\n', $msgText);
        foreach ($pTextArr as $NowString) {
            $Msg .= $NowString . "\r\n";
        }
        $Msg .= " \r\n";
        // добавляем комментарий
        if ($sendingType == 1 or $sendingType == 3) {
            $Msg .= "\r\n Если Вы не хотите получать информационные письма, то снимите соответствующую отметку в карточке пользователя на сайте ММБ \r\n \r\n";
        }
        //echo $sendingType." ".
        // Отправляем письмо
        SendMail(trim($UserEmail), $Msg, $UserName, $msgSubject);
    }
    mysql_free_result($UserResult);
    return 1;
}
コード例 #4
0
ファイル: viewadmindatapage.php プロジェクト: realtim/mmb
<?php

// +++++++++++ Показ/редактирование данных пользователя +++++++++++++++++++++++
// Выходим, если файл был запрошен напрямую, а не через include
if (!isset($MyPHPScript)) {
    return;
}
// Выходим, если не администратор и не модератор
if (!$Administrator and !$Moderator) {
    CMmb::setShortResult('Нет прав на экспорт', '');
    return;
}
// Выводим javascrpit
?>

<!-- Выводим javascrpit -->
<script language = "JavaScript">


	function RecalcRaidResults()
	{ 
              document.AdminForm.action.value = "RecalcRaidResults";
              document.AdminForm.RaidId.value = document.FindTeamForm.RaidId.value; 
	      document.AdminForm.submit();
              return true;
	}

	function FindRaidErrors()
	{
              document.AdminForm.action.value = "FindRaidErrors";
              document.AdminForm.RaidId.value = document.FindTeamForm.RaidId.value;
コード例 #5
0
ファイル: teamaction.php プロジェクト: realtim/mmb
            $Msg .= "Вы можете увидеть результат на сайте и при необходимости внести свои изменения.\n\n";
            $Msg .= "P.S. Изменения может вносить любой из участников команды, а также модератор ММБ.";
            // Отправляем письмо
            SendMail($Row['user_email'], $Msg, $Row['user_name']);
        }
        mysql_free_result($Result);
    }
    // Конец отправки писем
    // Если передали альтернативную страницу, на которую переходить (пока только одна возможность - на список команд)
    if (empty($view)) {
        $view = "ViewTeamData";
    }
} elseif ($action == 'FindTeam') {
    $TeamNum = mmb_validateInt($_REQUEST, 'TeamNum', '');
    if ($TeamNum === false) {
        CMmb::setShortResult('Не указан номер команды', '');
        return;
    }
    $sql = "select team_id from Teams t\n\t\t\tinner join Distances d on t.distance_id = d.distance_id\n\t\twhere d.raid_id = {$RaidId} and t.team_hide = 0 and t.team_num = " . (int) $TeamNum;
    $TeamId = CSql::singleValue($sql, 'team_id', false);
    // Поменялся TeamId, заново определяем права доступа
    GetPrivileges($SessionId, $RaidId, $TeamId, $UserId, $Administrator, $TeamUser, $Moderator, $OldMmb, $RaidStage, $TeamOutOfRange);
    if ($TeamId <= 0) {
        CMmb::setResult('Команда с номером ' . (int) $TeamNum . ' не найдена', '');
        return;
    }
    $view = "ViewTeamData";
} elseif ($action == 'TeamInfo' or $action == 'TlpInfo' or $action == 'AddTlp' or $action == 'ChangeTlp' or $action == 'HideTlp') {
    if ($TeamId <= 0) {
        CMmb::setErrorMessage('Id команды не указан');
        return;
コード例 #6
0
ファイル: adminaction.php プロジェクト: realtim/mmb
        CMmb::setShortResult('Рейтинг пересчитан', 'ViewAdminDataPage');
    } elseif ($action == 'DeleteOutOfRangeTeams') {
        CMmb::setViews('ViewAdminDataPage', '');
        if ($RaidId <= 0) {
            CMmb::setError('Марш-бросок не найден.', $view, '');
            return;
        }
        // проверяем
        if (!CRights::canDeleteOutOfRangeTeams($UserId, $RaidId)) {
            CMmb::setError('Невозможно удалить команды вне зачета.', $view, '');
            return;
        }
        $sql = "UPDATE Teams t INNER JOIN Distances d on t.distance_id = d.distance_id \n\t\tSET t.team_hide = 1  \n\t\tWHERE d.raid_id = {$RaidId} and t.team_outofrange = 1\n\t\t";
        //echo  $sql;
        MySqlQuery($sql);
        CMmb::setShortResult('Команды вне зачета удалены', '');
        //CMmb::setResult('', "ViewAdminDataPage", "");
        return;
    } else {
    }
}
// Сохранение флага ошибки в базе
// функция больше не используется
function LogError($teamlevel_id, $error)
{
    $sql = "update TeamLevels set error_id = {$error} where teamlevel_id = {$teamlevel_id}";
    $Result = MySqlQuery($sql);
    return $error;
}
// Проверка конкретной команды
// функция больше не используется
コード例 #7
0
ファイル: adminaction.php プロジェクト: se-ti/mmb
    }
    if (empty($pSendType) or $pSendType == 0) {
        CMmb::setError('Укажите тип рассылки.', $view, '');
        return;
    }
    $Result = 0;
    $Result = SendMailForAll($RaidId, $pSubject, $pText, $pSendType);
    if ($Result == 1) {
        CMmb::setShortResult('Рассылка запущена', 'ViewAdminDataPage');
    } else {
        CMmb::setError('Ошибка при отправке рассылки.', $view, '');
        return;
    }
} elseif ($action == 'RaidTeamUsersExport') {
    if ($RaidId <= 0) {
        CMmb::setShortResult('Марш-бросок не найден', '');
        return;
    }
    // рассылать всем может только администратор
    if (!$Administrator) {
        return;
    }
    CMmb::setViews('ViewAdminDataPage', '');
    $Sql = "select u.user_name, user_birthyear, \n\t\t\tCOALESCE(u.user_city, '') as user_city,\n\t\t\tCOALESCE(u.user_phone, '') as user_phone,\n\t\t        t.team_num, t.team_name, t.team_outofrange  \n\t\tfrom Teams t \n\t\t\tinner join Distances d on t.distance_id = d.distance_id\n\t\t\tinner join TeamUsers tu on tu.team_id = t.team_id\n\t\t\tinner join Users u on tu.user_id = u.user_id\n\t\twhere t.team_hide = 0 \n\t\t\tand tu.teamuser_hide = 0\n\t\t\tand d.raid_id = {$RaidId}\n\t\torder by user_name\n\t\t";
    $Result = MySqlQuery($Sql);
    // Заголовки, чтобы скачивать можно было и на мобильных устройствах просто браузером (который не умеет делать Save as...)
    header('Content-Type: text/csv; charset=utf-8');
    header('Content-Disposition: attachment; filename=raidteamusers.csv');
    // create a file pointer connected to the output stream
    $output = fopen('php://output', 'w');
    while ($Row = mysql_fetch_assoc($Result)) {