$OnClickText = ' onClick="javascript:this.value = \'\';"'; // Надпись на кнопке $SaveButtonText = 'Добавить точку сканирования'; $pScanPointId = 0; } else { $pScanPointId = mmb_validateInt($_POST, 'ScanPointId'); if ($pScanPointId <= 0) { return; } // Если вернулись после ошибки переменные не нужно инициализировать if ($viewsubmode == "ReturnAfterError") { ReverseClearArrays(); $ScanPointName = $_POST['ScanPointName']; } else { $sql = "select sp.scanpoint_id,\n\t sp.scanpoint_name,\n\t\t sp.scanpoint_order\n\t\tfrom ScanPoints sp\n\t\twhere sp.scanpoint_id = {$pScanPointId}"; $ScanPointName = CSql::singleValue($sql, 'scanpoint_name'); } $NextActionName = 'ScanPointChange'; $OnClickText = ''; $SaveButtonText = 'Сохранить изменения точки сканирования'; } // ================ Конец инициализации переменных для добавляемой/редактируемой точки сканирования ================= // Выводим javascrpit ?> <script language="JavaScript" type="text/javascript"> // Функция проверки правильности заполнения формы function ValidateScanPointForm() { document.ScanPointForm.action.value = "<?php echo $NextActionName;
} function GetTeamPlace($teamId) { return isset($this->teamPlaces[$teamId]) ? $this->teamPlaces[$teamId] : 0; } function GetUserDistance($userId, $distanceId) { return isset($this->userDistance[$userId]) && isset($this->userDistance[$userId][$distanceId]) ? $this->userDistance[$userId][$distanceId] : null; } } $TabIndex = 0; /*print('<form name="RankUsersForm" action="'.$MyPHPScript.'" method="post">'."\r\n"); print('<input type="hidden" name="action" value="">'."\r\n");*/ $sql = " select MAX(r.raid_id) as maxraidid\n\t from Raids r \n\t "; $maxRaidId = CSql::singleValue($sql, 'maxraidid'); $raidStage = CSql::raidStage($maxRaidId); $ShowAllRaids = 0; if ($raidStage > 6) { $ShowAllRaids = mmb_validate($_GET, 'rating', '') == 'all'; $js = "window.location.search = '?rating' + (this.checked ? '=all' : ''); "; print 'Отображать все марш-броски (долгая загрузка) <input type="checkbox" autocomplete="off" name="ShowAllRaids" ' . ($ShowAllRaids ? 'checked="checked"' : '') . ' tabindex="' . ++$TabIndex . '" title="Отображать все марш-броски" onchange="' . $js . '" />' . "\r\n"; } //print('</form>'."\r\n"); print '<br/><br/>' . "\r\n"; print '<div style="margin-top: 15px; max-width: 1500px;" align="left">Рейтинг по версии slazav: по всем ММБ суммируется отношение времени лидера к времени участника. <br/>Для марш-бросков с несколькими дистанциями это отношение дополнительно умножается на отношение длины текущей дистанции к максимальной из длин дистанций. Рейтинг участника марш-броска не рассчитывается в следующих случаях: 1) команда вне зачёта; 2) команда не финишировала; 3) участник сошёл с дистанции. Для марш-бросков до 2012 года сход участников не отражён в данных - можно сообщать о неточностях на общий адрес или в сообщество (ЖЖ) <br/>R6 считается с уценкой каждого предыдущего ММБ на 0.9: последний марш-бросок берётся с весом 1, следующий 0.9, затем 0.9*0.9 и так далее. Рейтинг пересчитывается при пересчете результатов очередного марш-броска.
protected static function getConnection() { if (self::$sqlConn === null) { self::initVars(); self::$sqlConn = CSql::createConnection(); } return self::$sqlConn; }
function UACanLinkEdit($pUserId, $raidId, $userId) { $Admin = CSql::userAdmin($userId); $RaidModerator = CSql::userModerator($userId, $raidId); return $pUserId == $userId || $Admin || $RaidModerator ? 1 : 0; }
while ($rowRaids = mysql_fetch_assoc($resultRaids)) { $nextRaidId = $rowRaids['raid_id']; $RaidName = trim($rowRaids['raid_name']); $RaidPeriod = trim($rowRaids['raid_period']); $RaidRulesLink = ''; $RaidStartLink = ''; $RaidStartPoint = $rowRaids['raid_startpoint']; $RaidFinishPoint = $rowRaids['raid_finishpoint']; // 08.12.2013 Ищем ссылку на положение в загруженных файлах $RulesFile = CSql::raidFileName($nextRaidId, 1, true); if ($RulesFile != '' && file_exists($MyStoreFileLink . $RulesFile)) { $RaidRulesLink = $MyStoreHttpLink . $RulesFile; } // Конец получения ссылки на положение // 08.12.2013 Ищем ссылку на информацию о старте $StartInfoFile = CSql::raidFileName($nextRaidId, 10, true); if ($StartInfoFile != '' && file_exists($MyStoreFileLink . $StartInfoFile)) { $RaidStartLink = $MyStoreHttpLink . $StartInfoFile; } // Конец получения ссылки на информацию о старте if ($RaidsCount % 2 == 0) { $TrClass = 'yellow'; } else { $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";
else if ($_GET['filtre_id_periode']==2){ $filtreDateDebut = $pSemaine; $filtreDateFin = $dSemaine; }else if ($_GET['filtre_id_periode']==3){ $filtreDateDebut = $pMois; $filtreDateFin = $dMois; } } if ($filtreDateDebut != '') { $filtre_date_debut = $filtreDateDebut; $filtre_date_fin = $filtreDateFin; } if ($_GET['recherche'] == '') $filtre = "etat like '" . $filtre_etat . "' AND " . CSql::between($filtre_date_debut, $filtre_date_fin); else $filtre = "nom like '".$_GET['recherche']."%'"; //print_r($filtre); $r_rdv = CTableGrRdv::select("*", $filtre, $order); ?> <!-- InstanceEndEditable --> <div id="mainwrap"> <div id="header"><?php include("../nav/header.php"); ?></div> <div id="top"><?php include("../nav/menu_h.php"); ?></div> <div id="filet"> <div id="zonetitre"> <div id="signe"></div> <div id="titre"><!-- InstanceBeginEditable name="titre" -->Rdv GR<!-- InstanceEndEditable --></div> </div>
// echo $sql; 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);
$Label = empty($Row['userlink_name']) ? $Row['userlink_url'] : CMmbUI::toHtml($Row['userlink_name']); print '<div class="team_res">' . $Row['raid_name'] . ' ' . $Row['linktype_name'] . ' <a href = "' . CMmbUI::toHtml($Row['userlink_url']) . '" title = "' . CMmbUI::toHtml($Row['userlink_name']) . '">' . $Label . '</a>' . "\r\n"; print '<input type="button" style = "margin-left: 20px;" onClick = "javascript: if (confirm(\'Вы уверены, что хотите удалить впечатление ? \')) {DelLink(' . $Row['userlink_id'] . ');}" name="DelLinkButton" value="Удалить" tabindex = "' . ++$TabIndex . '">' . "\r\n"; print '</div>' . "\r\n"; } mysql_free_result($Result); $TabIndex = 1; $DisabledText = ''; $NewLinkName = 'Название (можно не заполнять)'; $NewLinkUrl = 'Адрес ссылки'; print '<div align = "left" style = "padding-top: 5px;">' . "\r\n"; // Показываем выпадающий список ММБ print '<select name="LinkRaidId" tabindex="' . ++$TabIndex . '">' . "\n"; $RaidCondition = ''; if (CSql::userModerator($UserId, $RaidId) == 1 and $UserId != $pUserId) { $RaidCondition = "where raid_id = {$RaidId}"; } $sql = "select raid_id, raid_name from Raids {$RaidCondition} order by raid_id desc"; $Result = MySqlQuery($sql); while ($Row = mysql_fetch_assoc($Result)) { $raidselected = $Row['raid_id'] == $RaidId ? ' selected ' : ''; print '<option value="' . $Row['raid_id'] . '" ' . $raidselected . ' >' . $Row['raid_name'] . "</option>\n"; } mysql_free_result($Result); print '</select>' . "\n"; // Показываем выпадающий список типов ссылок print '<select name="LinkTypeId" class="leftmargin" tabindex="' . ++$TabIndex . '">' . "\n"; $sql = "select linktype_id, linktype_name, linktype_textonly from LinkTypes where linktype_hide = 0 order by linktype_order asc "; $Result = MySqlQuery($sql); while ($Row = mysql_fetch_assoc($Result)) {
echo '0 '; echo !CSql::userTeamId($UserId, $RaidId); echo '1 '; echo CSql::userAdmin($UserId); echo '2 '; echo CSql::userModerator($UserId, $RaidId); echo '3 '; echo CSql::raidStage($RaidId); echo '4 '; */ if ($UserId and $RaidId and (!CSql::userTeamId($UserId, $RaidId) or CSql::userAdmin($UserId) or CSql::userModerator($UserId, $RaidId)) and CSql::raidStage($RaidId) >= 1 and CSql::raidStage($RaidId) < 7) { print '<tr><td><a href="javascript:NewTeam();" title="Регистрация новой команды на выбранный выше ММБ">Новая команда</a></td></tr>' . "\r\n"; } // !! реализовать показ ссылки на свою команду, если она существует !! if (CSql::userTeamId($UserId, $RaidId)) { print '<tr><td><a href="' . $MyPHPScript . '?TeamId=' . CSql::userTeamId($UserId, $RaidId) . '" title="Просмотр карточки Вашей команды">Моя команда</a></td></tr>' . "\r\n"; } // Команды print '<tr><td><a href="?RaidId=' . $RaidId . '" title="Список зарегистрированных команд для выбранного выше ММБ">Команды</a></td></tr>' . "\r\n"; // Файлы print '<tr><td><a href="?files&RaidId=' . $RaidId . '" title="Ссылки на карты, легенды и т.п. для выбранного выше ММБ">Файлы</a></td></tr>' . "\r\n"; // Впечатления print '<tr><td><a href="?links&RaidId=' . $RaidId . '" title="Список впечатлений для выбранного выше ММБ">Впечатления</a></td></tr>' . "\r\n"; // Ввод/Правка марш-броска if ($Administrator) { print '<tr><td><a href="javascript:NewRaid();" title="Создание марш-броска">Новый марш-бросок</a></td></tr>' . "\r\n"; print '<tr><td><a href="javascript:ViewRaidInfo();" title="Параметры марш-броска">Марш-бросок</a></td></tr>' . "\r\n"; print '<tr><td><a href="javascript:ViewAdminModeratorsPage();" title="Список модераторов">Модераторы</a></td></tr>' . "\r\n"; print '<tr><td><a href="javascript:ViewUserUnionPage();" title="Администрирование заявок на слияние">Слияние пользователей</a></td></tr>' . "\r\n"; } // КП, точки сканирования, задание амнистий, импорт-экспорт, пересчет, объединение команд
public static function canAddToDevelopers($userId, $raidId, $puserId) { $Super = CSql::userAdmin($userId) || CSql::userModerator($userId, $raidId); if (!$Super) { return false; } // проверяем, что не участник $sql = "select count(*) as teamuser\n \t\t\tfrom TeamUsers tu \n \t\t\t inner join Teams t\n \t\t\t on t.team_id = tu.team_id\n \t\t\t inner join Distances d\n \t\t\t on t.distance_id = d.distance_id\n\t \t\twhere tu.user_id = {$puserId}\n\t \t\t and t.team_hide = 0\n\t \t\t and d.raid_id = {$raidId}\n\t \t\t and tu.teamuser_hide = 0\n\t \t\t \n\t \t\t"; $teamuser = CSql::singleValue($sql, 'teamuser', false); if ($teamuser) { return false; } // проверяем, что не волонтёр уже $sql = "select count(*) as raiddeveloper\n \t\t\tfrom RaidDevelopers rd \n\t \t\twhere rd.user_id = {$puserId}\n\t \t\t and rd.raiddeveloper_hide = 0\n\t \t\t and rd.raid_id = {$raidId}\n\t \t\t"; $raiddeveloper = CSql::singleValue($sql, 'raiddeveloper', false); if ($raiddeveloper) { return false; } return true; }
$message = $publipostage->get_message(); break; case 77 : // Publipostage 2 break; } /*------------------------------------------------------ A FAIRE DANS TOUS LES CAS --------------------------------------------------------*/ $filtre_etat = CSession::get('filtre_etat', $etat); $filtre_date_debut = CDate::date_switch(CSession::get('filtre_date_debut')); $filtre_date_fin = CDate::date_switch(CSession::get('filtre_date_fin')); $filtre_nom_user = CSession::get('filtre_nom_user'); $filtre_prenom_user = CSession::get('filtre_prenom_user'); $filtre = " destinataire LIKE '" . CTableUser::get_email_admin() . "' AND etat like '" . $filtre_etat . "' AND " . CSql::between($filtre_date_debut, $filtre_date_fin) . " AND expediteur LIKE '%" . CTableUser::get_element($filtre_nom_user, 'email') . "%' AND expediteur LIKE '%" . CTableUser::get_element($filtre_prenom_user, 'email') . "%' "; $r_email = CTableEmail::select("*", $filtre, $order); ?> <div id="mainwrap"> <div id="header"><?php include("../nav/header.php"); ?></div> <div id="top"><?php include("../nav/menu_h.php"); ?></div> <div id="filet"> <div id="zonetitre"> <div id="signe"></div> <div id="titre">Réception</div> </div> </div> <div id="contentarea"> <div id="left"><?php include("../nav/menu_g.php"); ?></div>
CFunction::redirection("../src/user.php?a=5&id=" . $id); break; case 6 : // Filtrer CSession::save($_GET); break; } /*------------------------------------------------------ A FAIRE DANS TOUS LES CAS --------------------------------------------------------*/ $filtre_etat = CSession::get('filtre_etat', $etat); $filtre_date_debut = CDate::date_switch(CSession::get('filtre_date_debut')); $filtre_date_fin = CDate::date_switch(CSession::get('filtre_date_fin')); $filtre = " 1 AND etat like '" . $filtre_etat . "' AND " . CSql::between($filtre_date_debut, $filtre_date_fin); $r_rdv = CTableRdv::select("*", $filtre, $order); ?> <!-- InstanceEndEditable --> <div id="mainwrap"> <div id="header"><?php include("../nav/header.php"); ?></div> <div id="top"><?php include("../nav/menu_h.php"); ?></div> <div id="filet"> <div id="zonetitre"> <div id="signe"></div> <div id="titre"><!-- InstanceBeginEditable name="titre" -->Rdv<!-- InstanceEndEditable --></div> </div> </div> <div id="contentarea"> <div id="left"><?php include("../nav/menu_g.php"); ?></div>
echo $RaidId; echo '0 '; echo !CSql::userTeamId($UserId, $RaidId); echo '1 '; echo CSql::userAdmin($UserId); echo '2 '; echo CSql::userModerator($UserId, $RaidId); echo '3 '; echo CSql::raidStage($RaidId); echo '4 '; */ if ($UserId and $RaidId and CRights::canCreateTeam($UserId, $RaidId)) { print '<tr><td><a href="javascript:NewTeam();" title="Регистрация новой команды на выбранный выше ММБ">Заявить команду</a></td></tr>' . "\r\n"; } // !! реализовать показ ссылки на свою команду, если она существует !! $teamId = CSql::userTeamId($UserId, $RaidId); if ($teamId) { print "<tr><td><a href=\"{$MyPHPScript}?TeamId={$teamId}\" title=\"Просмотр карточки Вашей команды\">Моя команда</a></td></tr>\r\n"; } // Команды print '<tr><td><a href="?protocol&RaidId=' . $RaidId . '" title="Список команд для выбранного выше ММБ">Команды</a></td></tr>' . "\r\n"; // Волонтёры print '<tr><td><a href="?developers&RaidId=' . $RaidId . '" title="Команда подготовки и проведения для выбранного выше ММБ">Судьи</a></td></tr>' . "\r\n"; // Файлы print '<tr><td><a href="?files&RaidId=' . $RaidId . '" title="Карты, легенды, описания и т.п. для выбранного выше ММБ">Материалы</a></td></tr>' . "\r\n"; // Впечатления print '<tr><td><a href="?links&RaidId=' . $RaidId . '" title="Список впечатлений для выбранного выше ММБ">Впечатления</a></td></tr>' . "\r\n"; // Все ММБ print '<tr><td><a href="?raids" title="Список всех ММБ">Все марш-броски</a></td></tr>' . "\r\n"; // Ввод/Правка марш-броска if ($Administrator) {
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('Команды нет в объединении'); return; } // Приступаем, собственно к отмене: // Удаляем новую объединённую команду $sql = " update Teams t\n \t\t set t.team_hide = 1 \n where t.team_id = {$pParentTeamId}"; // echo $sql; MySqlQuery($sql); // её участнтиков $sql = " update TeamUsers tu\n \t\t set tu.teamuser_hide = 1 \n where tu.team_id = {$pParentTeamId}"; //echo $sql; MySqlQuery($sql); // Открываем старые команды $sql = " update Teams t\n \t\t set t.team_hide = 0 \n where t.team_parentid = {$pParentTeamId}"; //echo $sql;
$LevelPointMaxYear = $Row['levelpoint_smaxyear']; $LevelPointMaxDate = $Row['levelpoint_smaxdate']; $LevelPointMaxTime = $Row['levelpoint_smaxtime']; $ScanPointId = $Row['scanpoint_id']; // $LevelId = $Row['level_id']; } $NextActionName = 'LevelPointChange'; $OnClickText = ''; $SaveButtonText = 'Сохранить изменения точки'; } // ================ Конец инициализации переменных для добавляемой/редактируемой точки ================= // В форме правки выводится только день и время, год считаем по дате регистарции ММБ и не выводим if (empty($LevelPointMinYear) or (int) $LevelPointMinYear == 0 or empty($LevelPointMaxYear) or (int) $LevelPointMaxYear == 0) { $RaidYear = 0; $sql = "select YEAR(r.raid_registrationenddate) as raidyear\n\t\t\tfrom Raids r\n\t\t inner join Distances d\n\t\t\t on d.raid_id = r.raid_id\n\t\t\twhere d.distance_id = {$DistanceId}"; $RaidYear = CSql::singleValue($sql, 'raidyear'); if (empty($LevelPointMinYear) or (int) $LevelPointMinYear == 0) { $LevelPointMinYear = $RaidYear; } if (empty($LevelPointMaxYear) or (int) $LevelPointMaxYear == 0) { $LevelPointMaxYear = $RaidYear; } } // Выводим javascrpit ?> <script language="JavaScript" type="text/javascript"> // Функция проверки правильности заполнения формы function ValidateLevelPointForm() { document.LevelPointForm.action.value = "<?php
onclick = "javascript: RaidUserRankRecalc();" tabindex = "' . ++$TabIndex . '"></td></tr>' . "\r\n"; 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";
$pTlpYear = $_POST['TlpYear']; $pTlpDate = $_POST['TlpDate']; $pTlpTime = $_POST['TlpTime']; $pTlpComment = $_POST['TlpComment']; $pErrorId = $_POST['ErrorId']; $TlpYDTs = CSql::timeString($pTlpYear, $pTlpDate, $pTlpTime, false); // Если день и время пустые, то и год пустой считаем if ((int) $pTlpDate == 0 and (int) $pTlpTime == 0) { $TlpYDTs = "'0000-00-00 00:00:00'"; } if ($pTeamId <= 0 or $pLevelPointId <= 0) { teamEditError('Не определён ключ команды или ключ точки для результата.'); return; } $sql = " select count(*) as countresult\n\t from TeamLevelPoints\n\t where team_id = {$pTeamId}\n\t\t and levelpoint_id = {$pLevelPointId}\n\t\t\tand teamlevelpoint_id <> {$pTeamLevelPointId}"; if (CSql::singleValue($sql, 'countresult') > 0) { CMmb::setErrorSm('Результаты по точке уже есть.', 'ReturnAfterErrorTlp'); return; } $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 where teamlevelpoint_id = {$pTeamLevelPointId}"; //echo $sql; MySqlQuery($sql); RecalcTeamResultFromTeamLevelPoints(0, $pTeamId); // RecalcTeamResultFromTeamLevelPoints(25, 0); /* $statustext = CheckLevelPoints($DistanceId); if (!empty($error)) { $alert = 1; } */
foreach (array(100, 500, 1000, 5000) as $lim) { $sel = $lim == $limit ? ' selected="selected"' : ''; print "<option value=\"{$lim}\"{$sel}>{$lim}</option>\n"; } print "</select>\n"; $searchVal = ReverseEscapeString(mmb_validate($_REQUEST, 'search', '')); print "<input type=\"text\" placeholder=\"Искать\" name=\"search\" onchange=\"document.LogsForm.submit()\" style=\"margin-left: 2em;\" value='" . CMmbUI::toHtml($searchVal) . "'/>"; print "</div>\n"; $cond = count($levels) == 0 ? 'true' : "logs_level in ('" . implode("', '", $levels) . "')"; if ($searchVal == '') { $searchCond = 'true'; } else { $search = array("%", "_", "[", "]"); $replace = array("\\%", "\\_", "\\[", "\\]"); $searchVal = str_replace($search, $replace, $searchVal); $searchCond = "logs_message like(" . CSql::quote("%{$searchVal}%") . ")"; } $sql = "select logs_id, logs_level, user_id, logs_operation, logs_message, logs_dt, logs_duration from Logs \n where {$cond} and {$searchCond} \n order by logs_id desc \n limit {$limit}"; $Result = MySqlQuery($sql); print "<table class='std'>\n"; print "<tr class='gray head'><th>#</th><th width='50'>id</th><th>Время</th><th>Уровень</th><th>Пользователь</th><th>Операция</th><th>Сообщение</th><th>Длительность</th></tr>\n"; $cnt = 0; while ($Row = mysql_fetch_assoc($Result)) { print "<tr><td>{$cnt}</td><td>{$Row['logs_id']}</td><td>" . $Row['logs_dt'] . "</td><td>{$Row['logs_level']}</td><td>{$Row['user_id']}</td><td>{$Row['logs_operation']}</td><td>" . nl2br($Row['logs_message']) . "</td><td>{$Row['logs_duration']}</td></tr>\n"; $cnt++; } mysql_free_result($Result); if ($cnt == 0) { print "<tr><td colspan='8'>Записей, подпадающих под условия, не найдено</td></tr>\n"; } print "</table>";
{ document.TlpForm.TeamLevelPointId.value = teamlevelpointid; document.TlpForm.action.value = 'TlpInfo'; document.TlpForm.submit(); } // </script> <?php print '<br/>' . "\n"; // ============ Общее время команды $sql = "select TIME_FORMAT(t.team_result, '%H:%i') as team_result from Teams t where t.team_id = {$TeamId}"; $TeamResult = CSql::singleValue($sql, 'team_result'); $TeamPlace = GetTeamPlace($TeamId); $TeamPlaceResult = ""; if ($TeamResult == "00:00") { $TeamResult = "-"; } if ($TeamPlace > 0) { $TeamPlaceResult = " Место <b>{$TeamPlace}</b>"; } print "<b>Результаты.</b> Общее время с учетом штрафов и бонусов: <b title=\"Обновляется после сохранения результатов\">{$TeamResult}</b>{$TeamPlaceResult}\n"; print "<br/>\n"; if ($AllowEditResult == 1) { print "<br/>\n"; // Выводим начало формы с точкой print '<form name="TlpForm" action="' . $MyPHPScript . '" method="post" onSubmit="' . $OnSubmitResultFunction . '">' . "\n"; print '<input type="hidden" name="action" value="">' . "\n";
$values = array( 'id'=>$id, 'date'=>$date, 'titre'=>CFunction::addslashes($titre), 'etat'=>$etat, 'contenu'=>CFunction::addslashes($contenu), 'prix'=>$prix); $menu_obj = new CTableMenu($values); $menu_obj->update(); $msginfo = 'Menu bien modifié'; $a = 0; break; } $filtre = CSql::between($filtre_date_debut, $filtre_date_fin); /*------------------------------------------------------ A FAIRE DANS TOUS LES CAS --------------------------------------------------------*/ $menu_obj = CTableMenu::select('*', $filtre, $order); ?> <!-- InstanceEndEditable --> <div id="mainwrap"> <div id="header"><?php include("../nav/header.php"); ?></div> <div id="top"><?php include("../nav/menu_h.php"); ?></div> <div id="filet"> <div id="zonetitre"> <div id="signe"></div> <div id="titre"><!-- InstanceBeginEditable name="titre" -->Menu de la semaine<!-- InstanceEndEditable --></div> </div> </div>
and t.team_hide = 0 and tu.teamuser_hide = 0 and t.team_outofrange = 0 "; $teamUserInRangeCount = CSql::singleValue($sql, 'inrangecount'); $sql = " select count(tu.teamuser_id) as outofrangecount from Teams t inner join TeamUsers tu on t.team_id = tu.team_id where t.distance_id = $whereDistanceId and t.team_hide = 0 and tu.teamuser_hide = 0 and t.team_outofrange = 1 "; $teamUserOutOfRangeCount = CSql::singleValue($sql, 'outofrangecount'); print('<tr><td width="100">'.$Row['distance_name'].'</td> <td width="300">'.$Row['distance_data']."</td>\r\n"); // Если идёт регистрацию время окончания выделяем жирным $bStyle = $RaidStage == 1 ? 'style="font-weight: bold;"': ''; print("<td $bStyle>Регистрация до: $RaidRegisterEndDt</td>\r\n"); print("<td>команд: $teamInRangeCount/$teamOutOfRangeCount, карт: $mapsInRangeCount/$mapsOutOfRangeCount, участников: $teamUserInRangeCount/$teamUserOutOfRangeCount</td>\r\n"); if (!empty($RaidCloseDt)) { print("<td>Протокол закрыт: $RaidCloseDt</td>\r\n"); }
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"; // Ищем последнее пользовательское соглашение $sql = "select rf.raidfile_id, rf.raidfile_name\n\t\tfrom RaidFiles rf\n\t\twhere rf.raidfile_hide = 0 and rf.filetype_id = 8\n\t\torder by rf.raid_id DESC, rf.raidfile_id DESC\n\t\tLIMIT 0,1"; $ConfirmFile = trim($MyStoreHttpLink) . trim(CSql::singleValue($sql, 'raidfile_name')); $Fp = fopen($ConfirmFile, "r"); while (!feof($Fp) && !strpos(trim(fgets($Fp, 4096)), 'body')) { } $NowStr = ''; while (!feof($Fp) && !strpos(trim($NowStr), '/body')) { print trim($NowStr) . "\r\n"; $NowStr = fgets($Fp, 4096); } fclose($Fp); print "</td></tr>\r\n"; print '<tr><td class="input">' . "\n"; print "<a href=\"{$RaidRulesLink}\">Полный текст положения</a><br/>\n"; print 'Прочитал и согласен с условиями участия в ММБ <input type="checkbox" name="Confirmation" value="on" tabindex="' . ++$TabIndex . '"' . $DisabledText . ' title="Прочитал и согласен с условиями участия в ММБ"/>' . "\n"; print "</td></tr>\r\n"; }
<div style = "padding-left: 20px; padding-right: 10px;"> <!-- сообщение --> <?php if (!empty($statustext)) { print '<div class = "ErrorText">' . $statustext . '</div>' . "\n"; //print('<table width = "100%"><tr><td>'.$statustext.'</td><td style = "border-top-style: dotted; border-top-width: 2px; border-top-color: #CC0000;"> </td></tr></table>'."\n"); } $tmRn = microtime(true); // вставляем основную часть include "mainpart.php"; $tmRne = CMmbLogger::addInterval('---- render', $tmRn); // сбрасываем действие $action = ""; // м.б. нужно и view сбрасывать $viewsubmode = ""; // закрываем соединение с базой CSql::closeConnection(); $tmEnd = CMmbLogger::addInterval('Total: ', $tmSt); print "<div><small>" . CMmbLogger::getText() . "</small></div>"; ?> </div> <!--Конец правой колонки --> </td> </tr> </table> </body> </html>
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); $Fp = @fopen($ConfirmFile, "r"); if ($Fp === false) { print "Файл с положением на сайт не загружен\n"; CMmbLogger::e('raidFileLink', "File '{$ConfirmFile}' doesn't exist"); } else { while (!feof($Fp) && !strpos(trim(fgets($Fp, 4096)), 'body')) { } $NowStr = ''; while (!feof($Fp) && !strpos(trim($NowStr), '/body')) { print trim($NowStr) . "\r\n"; $NowStr = fgets($Fp, 4096); } fclose($Fp); } print "</td></tr>\r\n";
function ShowDistanceHeader($RaidId, $DistanceId, $DistanceName, $DistanceData, $lottery_count, $colspan) { $DistanceTeams = "t.distance_id = {$DistanceId} AND t.team_hide = 0"; $sql = "SELECT COUNT(team_id) AS inrangecount FROM Teams t WHERE {$DistanceTeams} AND t.team_outofrange = 0"; $teamInRangeCount = CSql::singleValue($sql, 'inrangecount'); $sql = "SELECT COUNT(team_id) AS outofrangecount FROM Teams t WHERE {$DistanceTeams} AND t.team_outofrange = 1"; $teamOutOfRangeCount = CSql::singleValue($sql, 'outofrangecount'); $sql = "SELECT COALESCE(SUM(COALESCE(team_mapscount, 0)), 0) AS inrangecount FROM Teams t WHERE {$DistanceTeams} AND t.team_outofrange = 0"; $mapsInRangeCount = CSql::singleValue($sql, 'inrangecount'); $sql = "SELECT COALESCE(SUM(COALESCE(team_mapscount, 0)), 0) AS outofrangecount FROM Teams t WHERE {$DistanceTeams} AND t.team_outofrange = 1"; $mapsOutOfRangeCount = CSql::singleValue($sql, 'outofrangecount'); $sql = "SELECT COUNT(tu.teamuser_id) AS inrangecount FROM Teams t INNER JOIN TeamUsers tu ON t.team_id = tu.team_id WHERE {$DistanceTeams} AND tu.teamuser_hide = 0 AND t.team_outofrange = 0"; $teamUserInRangeCount = CSql::singleValue($sql, 'inrangecount'); $sql = "SELECT COUNT(tu.teamuser_id) AS outofrangecount FROM Teams t INNER JOIN TeamUsers tu ON t.team_id = tu.team_id WHERE {$DistanceTeams} AND tu.teamuser_hide = 0 AND t.team_outofrange = 1"; $teamUserOutOfRangeCount = CSql::singleValue($sql, 'outofrangecount'); $distanceDescription = $DistanceName; if ($DistanceData) { $distanceDescription .= ', ' . $DistanceData; } print "<tr class=yellow>\n <td colspan=2>Дистанция {$distanceDescription}</td>\n"; // для марш-бросков без приглашений оставляем старый вариант вывода if ($RaidId < 28) { print " <td colspan={$colspan}>Команд <span title=\"в зачете\">{$teamInRangeCount}</span>/<span title=\"вне зачета\">{$teamOutOfRangeCount}</span>," . " карт <span title=\"у команд в зачете\">{$mapsInRangeCount}</span>/<span title=\"у команд вне зачета\">{$mapsOutOfRangeCount}</span>," . " участников <span title=\"в командах в зачете\">{$teamUserInRangeCount}</span>/<span title=\"в командах вне зачета\">{$teamUserOutOfRangeCount}</span></td>\n</tr>\n"; return; } // получаем количество команд с приглашениями каждого типа $invited = array(); for ($inv_type = 1; $inv_type <= 3; $inv_type++) { $sql = "SELECT COUNT(*) AS invited_count FROM\n\t\t\t(SELECT DISTINCT t.team_id FROM Teams t\n\t\t\t\tINNER JOIN Invitations inv ON inv.invitation_id = t.invitation_id\n\t\t\t\tINNER JOIN TeamUsers tu ON tu.team_id = t.team_id AND tu.teamuser_hide = 0\n\t\t\t\tINNER JOIN InvitationDeliveries invd ON invd.invitationdelivery_id = inv.invitationdelivery_id\n\t\t\t\tWHERE {$DistanceTeams} AND invd.invitationdelivery_type = {$inv_type}) AS TeamsInvited"; $invited[$inv_type] = CSql::singleValue($sql, 'invited_count'); } // отдельно считаем количество команд, приглашенных по рейтингу своими участниками $sql = "SELECT COUNT(*) AS invited_count FROM\n\t\t(SELECT DISTINCT t.team_id FROM Teams t\n\t\t\tINNER JOIN Invitations inv ON inv.invitation_id = t.invitation_id\n\t\t\tINNER JOIN TeamUsers tu ON tu.team_id = t.team_id AND tu.teamuser_hide = 0\n\t\t\tINNER JOIN InvitationDeliveries invd ON invd.invitationdelivery_id = inv.invitationdelivery_id\n\t\t\tWHERE {$DistanceTeams} AND invd.invitationdelivery_type = 1 AND tu.user_id = inv.user_id) AS TeamsInvited"; $invited_self = CSql::singleValue($sql, 'invited_count'); // выводим статистику print " <td colspan={$colspan}>Участвует команд <span title=\"всего команд с приглашениями\">{$teamInRangeCount}</span> " . "(<span title=\"пригласившие сами себя\">{$invited_self}</span>" . "/<span title=\"приглашенные другими участниками\">" . ($invited[1] - $invited_self) . "</span>" . "/<span title=\"выгравшие в лотерею\">" . $invited[2] . "</span>" . "/<span title=\"с приглашениями, выданными вручную\">" . $invited[3] . "</span>), "; print "ожидают приглашения <span title=\"всего команд без приглашений\">{$teamOutOfRangeCount}</span>, "; print "участников <span title=\"в приглашенных командах\">{$teamUserInRangeCount}</span>/<span title=\"в командах, ожидающих приглашение\">{$teamUserOutOfRangeCount}</span>, "; print "карт <span title=\"в приглашенных командах\">{$mapsInRangeCount}</span>/<span title=\"в командах, ожидающих приглашение\">{$mapsOutOfRangeCount}</span></td>\n</tr>\n"; }
} /*------------------------------------------------------ A FAIRE DANS TOUS LES CAS --------------------------------------------------------*/ $filtre_etat = CSession::get('filtre_etat', 0); $filtre_date_debut = CDate::date_switch(CSession::get('filtre_date_debut')); $filtre_date_fin = CDate::date_switch(CSession::get('filtre_date_fin')); $filtre_sujet = CSession::get('filtre_sujet', '%%'); $filtre_nom_user = CSession::get('filtre_nom_user'); $filtre_prenom_user = CSession::get('filtre_prenom_user'); $_filtre_etat = ($filtre_etat=='%%')?"etat LIKE '%%'":' etat = '.$filtre_etat; //echo $_filtre_etat; $filtre = " expediteur LIKE '" . CTableUser::get_email_admin() . "' AND " . $_filtre_etat . " AND " . CSql::between($filtre_date_debut, $filtre_date_fin) . " AND nom LIKE '" . $filtre_sujet . "' AND destinataire LIKE '%" . CTableUser::get_element($filtre_nom_user, 'email') . "%' AND destinataire LIKE '%" . CTableUser::get_element($filtre_prenom_user, 'email') . "%'"; // AND type = 'default'"; // echo $filtre; $r_email = CTableEmail::select("*", $filtre, $order); ?> <!-- InstanceEndEditable --> <div id="mainwrap"> <div id="header"><?php include("../nav/header.php"); ?></div> <div id="top"><?php include("../nav/menu_h.php"); ?></div> <div id="filet"> <div id="zonetitre"> <div id="signe"></div> <div id="titre"><!-- InstanceBeginEditable name="titre" -->Envoi<!-- InstanceEndEditable --></div> </div> </div>
} else { $zFiltreEmail = "1"; } //---------- FIN : Lay feeling---// if ($_GET['recherche'] == ''){ if ($_GET['alphaA'] != '') { $filtre = " 1 AND etat_contact like '" . $filtre_etat_contact. "' AND " . CSql::between($filtre_date_debut, $filtre_date_fin) . " " . $filtre_groupe . " AND " . $zFiltreEmail . " AND nom LIKE '" . $filtre_nom . "' AND prenom LIKE '" . $filtre_prenom . "' " . $filtre_opportunite. " AND nom LIKE '" . $_GET['alphaA'] ."%' AND ". CSqlUserContact::between($filtreDateDebut, $filtreDateFin) . ""; if (($_GET['filtre_societe']) && $_GET['filtre_societe'] !='%%') $filtre .= " AND id LIKE '" . $filtre_societe . "'"; }else if ($_SESSION['alphaA'] != ''){ $filtre = " 1 AND etat_contact like '" . $filtre_etat_contact. "' AND " . CSql::between($filtre_date_debut, $filtre_date_fin) . " " . $filtre_groupe . " AND " . $zFiltreEmail . " AND nom LIKE '" . $filtre_nom . "' AND prenom LIKE '" . $filtre_prenom . "' " . $filtre_opportunite. " AND nom LIKE '" . $_SESSION['alphaA'] ."%' AND ". CSqlUserContact::between($filtreDateDebut, $filtreDateFin) .""; if (($_GET['filtre_societe']) && $_GET['filtre_societe'] !='%%') $filtre .= " AND id LIKE '" . $filtre_societe . "'"; } else { $filtre = " 1 AND etat_contact like '" . $filtre_etat_contact. "' AND " . CSql::between($filtre_date_debut, $filtre_date_fin) . " " . $filtre_groupe . " AND " . $zFiltreEmail . " AND nom LIKE '" . $filtre_nom . "' AND prenom LIKE '" . $filtre_prenom . "' " . $filtre_opportunite. " AND ". CSqlUserContact::between($filtreDateDebut, $filtreDateFin) .""; if (($_GET['filtre_societe']) && $_GET['filtre_societe'] !='%%') $filtre .= " AND id LIKE '" . $filtre_societe . "'"; } }else $filtre = " 1 AND nom like '%".$_GET['recherche']."%'"; $zSortField = 'id' ; $zSortDirection = CFunctions::getUserParam('zSortDirection', 'ASC') ; //$zSortField = CFunctions::getUserParam('order', 'id') ; $pagecourant = CFunctions::getUserParam('zSortField', '1') ; $iCurrentPage = CFunctions::getUserParam('iCurrentPage', '1') ; $iMaxPerPage = CConfiguration::get_valeur('MAX_ITEM_PER_PAGE', 10) ; $iStart = $iCurrentPage - 1 ; $zListeGetParam = '' ; $zListeGetParam .= '&filtre_etat_contact=' . $filtre_etat_contact ; $zListeGetParam .= '&filtre_date_debut=' . $filtre_date_debut ;
$DiscountFinish = 0; } // Определяем следующее действие $NextActionName = 'AddLevelPointDiscount'; // Действие на текстовом поле по клику $OnClickText = ' onClick="javascript:this.value = \'\';"'; // Надпись на кнопке $SaveButtonText = 'Добавить интервал амнистии'; $pLevelPointDiscountId = 0; } else { $pLevelPointDiscountId = mmb_validateInt($_POST, 'LevelPointDiscountId'); if ($pLevelPointDiscountId <= 0) { return; } $sql = "select lpd.levelpointdiscount_id, \n\t lpd.levelpointdiscount_value, \n\t lpd.levelpointdiscount_start, \n\t lpd.levelpointdiscount_finish,\n\t\t lpd.distance_id,\n\t\t lpd.levelpoint_id \n\t\tfrom LevelPointDiscounts lpd\n\t\twhere lpd.levelpointdiscount_id = {$pLevelPointDiscountId}"; $Row = CSql::singleRow($sql); // Если вернулись после ошибки переменные не нужно инициализировать if ($viewsubmode == "ReturnAfterError") { ReverseClearArrays(); $DistanceId = mmb_validateInt($_POST, 'DistanceId'); $LevelPointId = $_POST['LevelPointId']; $DiscountValue = $_POST['DiscountValue']; $DiscountStart = $_POST['DiscountStart']; $DiscountFinish = $_POST['DiscountFinish']; } else { $DiscountValue = $Row['levelpointdiscount_value']; $DiscountStart = $Row['levelpointdiscount_start']; $DiscountFinish = $Row['levelpointdiscount_finish']; $DistanceId = $Row['distance_id']; $LevelPointId = $Row['levelpoint_id']; }
private static function addLogRecord($user, $level, $operation, $message) { if (self::$minLevelCode === null) { self::initVars(); } if (self::levelCode($level) < self::$minLevelCode) { return; } $conn = self::getConnection(); $uid = $user == null || !is_numeric($user) ? 'null' : $user; $level = CSql::quote($level); $qOperation = $operation == null ? 'null' : CSql::quote($operation); $qMessage = $message == null ? 'null' : CSql::quote($message); $query = "insert into Logs (logs_level, user_id, logs_operation, logs_message, logs_dt)\n values ({$level}, {$uid}, {$qOperation}, {$qMessage}, UTC_TIMESTAMP)"; $rs = mysql_query($query, $conn); // потому что надо работать со своим соединением :( if (!$rs) { $err = mysql_error($conn); // self::fatal($user, $operation, $message); // sql не работает -- кого волнует исходное сообщение! CSql::closeConnection($conn); self::$sqlConn = null; CSql::dieOnSqlError($user, 'addLogRecord', "adding record: '{$query}'", $err); } }