public static function getText($asHtml = true) { if (!$asHtml) { return implode("\r\n", self::$records); } $res = ''; foreach (self::$records as $rec) { $res .= CMmbUI::toHtml($rec) . "<br/>"; } return $res; }
print '<tr><td class="input">' . "\n"; print '<a href="http://community.livejournal.com/_mmb_/2010/09/24/">Нет сломанным унитазам!</a> - прочитали и поддерживаем <input type="checkbox" name="TeamGreenPeace" value="on"' . ($TeamGreenPeace >= 1 ? ' checked="checked"' : '') . ' tabindex="' . ++$TabIndex . '"' . $DisabledText . ' title="Отметьте, если команда берёт повышенные экологические обязательства"/>' . "\n"; print "</td></tr>\r\n"; // ============ Участники // Их еще нет при создании команды if ($viewmode != "Add") { print '<tr><td class="input" style="padding-top: 10px;">' . "\n"; // Если команда в зачете и пользователь смотрит свою команду, то напомним ему о возможности удалять участников и сообщим deadline // Правильность состава команд вне зачета нас не особо интересует if ($TeamUser and !$TeamOutOfRange and $AllowEdit) { 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";
$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"; } mysql_free_result($Result); print "</table>\r\n"; ?> <br/>
<?php $sql = "select ul.userlink_id, ul.userlink_name, lt.linktype_name,\n\t\t ul.userlink_url, r.raid_name, r.raid_id,\n\t\t\t u.user_name, a.team_name, a.team_num,\n\t\t\t a.distance_name, a.distance_id\n\t\t from UserLinks ul\n\t\t\t inner join LinkTypes lt on ul.linktype_id = lt.linktype_id\n\t\t\t inner join Raids r on ul.raid_id = r.raid_id \n\t\t\t inner join Users u on ul.user_id = u.user_id \n\t\t\t left outer join (select tu.user_id, d.raid_id, t.team_name, t.team_num,\n\t\t\t d.distance_name, d.distance_id\n\t\t\t from TeamUsers tu\n\t\t\t inner join Teams t on tu.team_id = t.team_id and t.team_hide = 0\n\t\t\t inner join Distances d on t.distance_id = d.distance_id and d.distance_hide = 0\n\t\t\t\t\t where tu.teamuser_hide = 0\t \n\t\t\t\t\t ) a\n\t\t\t on ul.user_id = a.user_id and ul.raid_id = a.raid_id\n\t\t\twhere ul.userlink_hide = 0 \n\t\t\torder by r.raid_id desc, userlink_id asc"; // echo 'sql '.$sql; $Result = MySqlQuery($sql); $PredRaid = ''; while ($Row = mysql_fetch_assoc($Result)) { // сменился ММБ if ($PredRaid != $Row['raid_name']) { print '<div align="left" style="margin-left: 15px; margin-top: 25px;"><b>' . $Row['raid_name'] . "</b></div>\r\n"; $PredRaid = $Row['raid_name']; } $Label = empty($Row['userlink_name']) ? $Row['userlink_url'] : CMmbUI::toHtml($Row['userlink_name']); print '<div class="impress">' . $Row['linktype_name'] . ' ' . ' <a href="' . $Row['userlink_url'] . '" title="' . CMmbUI::toHtml($Row['userlink_name']) . '">' . $Label . '</a> ' . CMmbUI::toHtml($Row['user_name']) . ', ' . (empty($Row['team_name']) ? '' : 'команда ' . CMmbUI::toHtml($Row['team_name']) . ', N ' . $Row['team_num'] . ', дистанция ' . $Row['distance_name']) . "\r\n"; print "</div>\r\n"; } mysql_free_result($Result); ?> <p><table width="100%" border="0" cellspacing="1" cellpadding="5"> <tbody><tr><th> <font size="+2">Впечатления участников ММБ (ссылки)</font> </th> </tr><tr><td><a href="http://dw.school2.ru/mb/mbfilm">Марш-бросок. фильм</a> (2007-2009)</td></tr> <tr><th><font size="+1"><a name="13v">ММБ13-Весна, Шемякино — Протвино, 17-19 мая 2013 года</a></font></th></tr> <tr><td><ul> <li>3 <a href="http://al-stal.livejournal.com/201681.html">Улисс</a></li>
if ($PredRaid <> $Row['raid_name']) { // print('<div align = "left" style = "margin-left: 15px; margin-top: 25px;"><b>'.$Row['raid_name'].'</b></div>'."\r\n"); $PredRaid = $Row['raid_name']; } if ($PredLinkType <> $Row['linktype_name']) { $PredLinkType = $Row['linktype_name']; $LinkTextOnly = $Row['linktype_textonly']; print("<div align = \"left\" style = \"margin-left: 15px; margin-top: 25px;\"><b>{$Row['linktype_name']}</b></div>\r\n"); } $Label = (empty($Row['userlink_name'])) ? $Row['userlink_url'] : CMmbUI::toHtml($Row['userlink_name']); $TeamDist = (empty($Row['team_name']) ? '' : ', команда '.CMmbUI::toHtml($Row['team_name']).', N '.$Row['team_num'].', дистанция '.$Row['distance_name']); if (empty($LinkTextOnly)) { print("<div class=\"impress\"><a href=\"{$Row['userlink_url']}\" title=\"" . CMmbUI::toHtml($Row['userlink_name']) . "\">$Label</a> ". CMmbUI::toHtml($Row['user_name']). "$TeamDist \r\n"); } else { print("<div class=\"impress\">{$Row['userlink_url']} ". CMmbUI::toHtml($Row['user_name']). "$TeamDist \r\n"); } print("</div>\r\n"); } mysql_free_result($Result); ?>
</script> <?php print '<form name = "ModeratorsForm" action = "' . $MyPHPScript . '" method = "post">' . "\r\n"; print '<input type = "hidden" name = "action" value = "">' . "\r\n"; print '<input type = "hidden" name = "UserId" value = "0">' . "\n"; print '<input type = "hidden" name = "RaidModeratorId" value = "0">' . "\n"; $sql = "select u.user_id, u.user_name, rm.raidmoderator_id \n\t\t from Users u\n\t\t\t inner join RaidModerators rm\n\t\t\t on u.user_id = rm.user_id \n\t\t\twhere rm.raidmoderator_hide = 0\n\t\t\t and rm.raid_id = {$RaidId}\n\t\t\torder by user_name "; //echo 'sql '.$sql; $Result = MySqlQuery($sql); $RowsCount = mysql_num_rows($Result); if ($RowsCount > 0) { while ($Row = mysql_fetch_assoc($Result)) { print '<div class="team_res">' . "\r\n"; print '<a href="?UserId=' . $Row['user_id'] . '">' . CMmbUI::toHtml($Row['user_name']) . '</a>' . "\r\n"; print '<input type="button" onClick="javascript: if (confirm(\'Вы уверены, что хотите снять статус модератора с текущего марш-броска? \')) { HideModerator(' . $Row['raidmoderator_id'] . ',' . $Row['user_id'] . '); }" name="ModeratorHideButton" value="Скрыть" tabindex="10">' . "\r\n"; print "</div>\r\n"; } } else { print '<div class="input" align="left">Не найдено</div>' . "\r\n"; } print "</form>\r\n"; mysql_free_result($Result); ?> <!-- </td></tr> </table> -->
print "<td><a href=\"?UserId={$Row['user_id']}\">" . CMmbUI::toHtml($Row['user_name']) . "</a></td>\r\n"; print "<td align=\"center\">{$Row['userrank']}</td>\r\n"; if ($ShowAllRaids) { // Показываем список ММБ foreach ($distances as $distanceId) { $RowRaids = $teamPlaces->GetUserDistance($Row['user_id'], $distanceId); if ($RowRaids !== null && !empty($RowRaids['team_name'])) { $TeamPlace = $teamPlaces->GetTeamPlace($RowRaids['team_id']); $LevelPointId = $RowRaids['levelpoint_id']; // Есть место команды и нет схода участника $TeamPlaceResult = ($TeamPlace > 0 and $LevelPointId == 0) ? ", место {$TeamPlace}" : ''; $TeamUserOff = ""; // Есть место команды, но сход участника // if ($TeamPlace > 0 and $LevelId > 0) $TeamUserOff = ", сход на этапе <b>".$RowRaids['level_name']."</b>"; // if ($TeamPlace > 0 and $LevelPointId > 0) $TeamUserOff = ", не явка в точку <b>".$RowRaids['levelpoint_name']."</b>"; $TeamString = '<a href="?TeamId=' . $RowRaids['team_id'] . '">' . CMmbUI::toHtml($RowRaids['team_name']) . '</a></br>' . $RowRaids['teamuser_rank'] . $TeamPlaceResult . $TeamUserOff; } else { $TeamString = ' '; } print "<td>{$TeamString}</td>\r\n"; } } print "</tr>\r\n"; } // Конец цикла по журналу объединений mysql_free_result($Result); print "</table>\r\n"; CMmbLogger::addInterval('выборка-отрисовка', $t5); ?> <br/>
print "Типы сообщений: <select name=\"levels[]\" size=\"6\" multiple style=\"margin-left: 10px; margin-right: 5px; vertical-align: top;\"\n onchange=\"document.LogsForm.submit();\">"; foreach ($allLevels as $lev) { $sel = in_array($lev, $levels) ? ' selected="selected"' : ''; print "<option value=\"{$lev}\"{$sel}>{$lev}</option>\n"; } print "</select>\n\n"; // фильтруем кол-во ошибок и печатаем селект $limit = mmb_validateInt($_REQUEST, 'num_rec', 100); print 'Количество: <select name="num_rec" style="margin-left: 10px; margin-right: 5px;" onchange="document.LogsForm.submit();">'; 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;
// 04.07.2014 Блок ссылок на впечатления. if ($viewmode != 'Add' and UACanLinkEdit($pUserId, $RaidId, $UserId) == 1) { // Выводим спсиок впечатлений, которые относятся к данному пользователю print '<div style = "margin-top: 20px; margin-bottom: 10px; text-align: left">Впечатления:</div>' . "\r\n"; print '<form name = "UserLinksForm" action = "' . $MyPHPScript . '" method = "post">' . "\r\n"; print '<input type = "hidden" name = "action" value = "">' . "\r\n"; print '<input type = "hidden" name = "UserId" value = "' . $pUserId . '">' . "\n"; print '<input type = "hidden" name = "RaidId" value = "' . $RaidId . '">' . "\n"; print '<input type = "hidden" name = "UserLinkId" value = "0">' . "\n"; $sql = "select ul.userlink_id, ul.userlink_name, lt.linktype_name,\n\t\t ul.userlink_url, r.raid_name, lt.linktype_textonly \n\t\t from UserLinks ul\n\t\t\t inner join LinkTypes lt on ul.linktype_id = lt.linktype_id\n\t\t\t inner join Raids r on ul.raid_id = r.raid_id \n\t\t\twhere ul.userlink_hide = 0 and ul.user_id = {$pUserId}\n\t\t\torder by userlink_id "; //echo 'sql '.$sql; $Result = MySqlQuery($sql); while ($Row = mysql_fetch_assoc($Result)) { $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}"; }
if ($Administrator && $outOfRange && in_array($Row['team_id'], $forgetful)) { $outOfRange = '<span style="color:red">' . $outOfRange . '</span>'; } if ($outOfRange) { $outOfRange = ', ' . $outOfRange; } print '<tr class="' . $TrClass . '"> <td' . $tdstyle . '><a name="' . $Row['team_num'] . '"></a>' . $Row['team_num'] . '</td> <td' . $tdstyle . '><a href="?TeamId=' . $Row['team_id'] . '&RaidId=' . $RaidId . '">' . CMmbUI::toHtml($Row['team_name']) . "</a> ({$useGps}{$Row['distance_name']}, {$Row['team_mapscount']}{$teamGP}{$outOfRange}) {$teamDismiss}</td><td{$tdstyle}>\r\n"; // Формируем колонку Участники if (!isset($TeamMembers[$Row['team_id']])) { print '<div class= "input">no member records in team ' . $Row['team_id'] . '</div>' . "\r\n"; // die("</td></tr></table> no member records in team '{$Row['team_id']}'"); } else { foreach ($TeamMembers[$Row['team_id']] as $UserRow) { print '<div class= "input"><a href="?UserId=' . $UserRow['user_id'] . '&RaidId=' . $RaidId . '">' . CMmbUI::toHtml($UserRow['user_name']) . '</a> ' . $UserRow['user_birthyear'] . ' ' . CMmbUI::toHtml($UserRow['user_city']) . "\r\n"; // Отметка невыхода на старт в предыдущем ММБ if ($UserRow['teamuser_notstartraidid'] > 0) { print ' <a title="Участник был заявлен, но не вышел на старт в прошлый раз" href="#comment">(?!)</a> '; } // Неявку участников показываем, если загружены результаты if ($CanViewResults) { if ($UserRow['levelpoint_name'] != '') { print "<i>Не явился(-ась) в: {$UserRow['levelpoint_name']}</i>\r\n"; } } print '</div>' . "\r\n"; } } // Конец формирования колонки Участники print "</td>\r\n";
//echo 'sql '.$sql; $Result = MySqlQuery($sql); print "<table class=\"std\">\r\n"; print '<tr class="head gray"> <td width="150">Пользователь</td> <td width="300">Слияние с</td> <td width="200">Статус</td> <td width="150">Создана</td> <td width="400">Возможные действия</td> </tr>' . "\r\n"; // Сканируем команды while ($Row = mysql_fetch_assoc($Result)) { // print('<tr class = "'.$TrClass.'">'."\r\n"); print "<tr>\r\n"; print "<td>" . CMmbUI::toHtml($Row['user_name']) . "</td>\r\n"; print "<td>" . CMmbUI::toHtml($Row['user_parentname']) . "</td>\r\n"; print "<td align=\"center\">{$Row['unionstatus']}</td>\r\n"; print "<td>{$Row['log_dt']}</td>\r\n"; print "<td>\r\n"; if (CanApproveUserUnion($Administrator, $Row['log_id'], $UserId)) { print '<input type="button" style = "margin-left: 15px;" onClick = "javascript: ApproveUnion(' . $Row['log_id'] . ', ' . $UserId . '); " name="ApproveButton" value="Подтвердить" tabindex = "' . ++$TabIndex . '">' . "\r\n"; } if (CanRejectUserUnion($Administrator, $Row['log_id'], $UserId)) { print '<input type="button" style = "margin-left: 15px;" onClick = "javascript: RejectUnion(' . $Row['log_id'] . ', ' . $UserId . '); " name="RejectButton" value="Отклонить" tabindex = "' . ++$TabIndex . '">' . "\r\n"; } if (CanRollBackUserUnion($Administrator, $Row['log_id'], $UserId)) { print '<input type="button" style = "margin-left: 15px;" onClick = "javascript: RollBackUnion(' . $Row['log_id'] . ', ' . $UserId . '); " name="RollBackButton" value="Восстановить" tabindex = "' . ++$TabIndex . '">' . "\r\n"; } print " </tr>\r\n"; } // Конец циклда по журанлу объединений