1 |
<html> |
2 |
<head> |
3 |
<title>Архив результатов</title> |
4 |
<meta name="GENERATOR" content="VMX"> |
5 |
<meta name="description" content="Главная страница архива результатов тестирования слушателей"> |
6 |
<meta http-equiv=Content-Type content="text/html; charset=windows-1251"> |
7 |
<link rel="stylesheet" href="../styles.css"> |
8 |
<?php |
9 |
// Скрипт |
10 |
|
11 |
// Архив результатов тестирований слушателей |
12 |
// Copyright (c) 2006, Виталий Филиппов [VMX] |
13 |
|
14 |
require_once '../lib/config.php'; |
15 |
require_once '../lib/info.php'; |
16 |
|
17 |
import_request_variables ("gp", "req_"); |
18 |
mysql_start (); |
19 |
|
20 |
if (isset ($req_cmd)) |
21 |
{ |
22 |
if ($req_cmd == 'init') // инициализация архива |
23 |
{ |
24 |
$initres = true; |
25 |
if (!amysql_query ("CREATE TABLE IF NOT EXISTS `$SnapshotsTable` (`id` INT NOT NULL AUTO_INCREMENT, `name` TEXT NOT NULL, `date` DATE DEFAULT '2006-01-01' NOT NULL, `time` TIME NOT NULL, PRIMARY KEY (`id`))")) $initres = false; |
26 |
if (!($result = amysql_query ("SHOW CREATE TABLE `$UsersTable`")) || !($row = mysql_fetch_row ($result))) $initres = false; |
27 |
if (!amysql_query ($sql = str_replace ('CREATE TABLE', 'CREATE TABLE IF NOT EXISTS', str_replace ("`id` int(11) NOT NULL auto_increment,", "`id` int(11) NOT NULL auto_increment,\n\t`snapid` int(11) NOT NULL, ", str_replace ("`$UsersTable`", "`${SnapshotsTable}_users`", $row [1]))))) $initres = false; |
28 |
if (!($result = amysql_query ("SHOW CREATE TABLE `$ResultsTable`")) || !($row = mysql_fetch_row ($result))) $initres = false; |
29 |
if (!amysql_query ($sql = str_replace ('CREATE TABLE', 'CREATE TABLE IF NOT EXISTS', str_replace ("`id` int(11) NOT NULL auto_increment,", "`id` int(11) NOT NULL auto_increment,\n\t`snapid` int(11) NOT NULL, ", str_replace ("`$ResultsTable`", "`${SnapshotsTable}_results`", $row [1]))))) $initres = false; |
30 |
if (!($result = amysql_query ("SHOW CREATE TABLE `$QuestionsTable`")) || !($row = mysql_fetch_row ($result))) $initres = false; |
31 |
if (!amysql_query ($sql = str_replace ('CREATE TABLE', 'CREATE TABLE IF NOT EXISTS', str_replace ("`id` int(11) NOT NULL auto_increment,", "`id` int(11) NOT NULL auto_increment,\n\t`snapid` int(11) NOT NULL, ", str_replace ("`$QuestionsTable`", "`${SnapshotsTable}_questions`", $row [1]))))) $initres = false; |
32 |
mysql_finish (); |
33 |
if (!$initres) $initres = 1; |
34 |
else $initres = 0; |
35 |
echo '<meta http-equiv=\'refresh\' content=\'0; url="/admin/archive.php?r=' . $initres . '"\'>'; |
36 |
exit; |
37 |
} |
38 |
else if ($req_cmd == 'destroy') // уничтожение архива |
39 |
{ |
40 |
$delres = true; |
41 |
if (!amysql_query ("DROP TABLE IF EXISTS `${SnapshotsTable}`")) $delres = false; |
42 |
if (!amysql_query ("DROP TABLE IF EXISTS `${SnapshotsTable}_users`")) $delres = false; |
43 |
if (!amysql_query ("DROP TABLE IF EXISTS `${SnapshotsTable}_results`")) $delres = false; |
44 |
if (!amysql_query ("DROP TABLE IF EXISTS `${SnapshotsTable}_questions`")) $delres = false; |
45 |
mysql_finish (); |
46 |
if (!$delres) $delres = 3; |
47 |
else $delres = 2; |
48 |
echo '<meta http-equiv=\'refresh\' content=\'0; url="/admin/archive.php?r=' . $delres . '"\'>'; |
49 |
exit; |
50 |
} |
51 |
else if ($req_cmd == 'snapshot') // создание нового снимка |
52 |
{ |
53 |
$snapres = true; |
54 |
$curdate = date ("Y-m-d"); |
55 |
$curtime = date ("H:i:s"); |
56 |
$req_snapname = mysql_escape_string ($req_snapname); |
57 |
if (!amysql_query ("INSERT INTO `${SnapshotsTable}` SET `name`='$req_snapname', `date`='$curdate', `time`='$curtime'")) $snapres = false; |
58 |
if ($snapres) |
59 |
{ |
60 |
$nsnapid = mysql_insert_id (); |
61 |
if (!amysql_query ("INSERT INTO `${SnapshotsTable}_users` (`snapid`, `login`, `password`, `level`, `testlimit`, `firstname`, `lastname`, `thirdname`, `town`, `firm`, `position`, `email`, `phone`, `vipnet`, `date`, `time`) SELECT $nsnapid, `login`, `password`, `level`, `testlimit`, `firstname`, `lastname`, `thirdname`, `town`, `firm`, `position`, `email`, `phone`, `vipnet`, `date`, `time` FROM `$UsersTable` WHERE 1")) $snapres = false; |
62 |
if (!amysql_query ( |
63 |
"INSERT INTO `${SnapshotsTable}_results` (`snapid`, `uid`, `varid`, `date`, `time`, `answers`, `result`) |
64 |
SELECT |
65 |
$nsnapid, |
66 |
(SELECT t2.`id` FROM `${SnapshotsTable}_users` AS t2 WHERE t2.`snapid`=$nsnapid AND t2.`login`= |
67 |
(SELECT t3.`login` FROM `$UsersTable` AS t3 WHERE t3.`id`=t1.`uid` LIMIT 1) |
68 |
LIMIT 1), |
69 |
t1.`varid`, |
70 |
t1.`date`, |
71 |
t1.`time`, |
72 |
t1.`answers`, |
73 |
t1.`result` |
74 |
FROM `$ResultsTable` AS t1 WHERE 1" |
75 |
)) $snapres = false; |
76 |
if (!amysql_query ("INSERT INTO `${SnapshotsTable}_questions` (`snapid`, `num`, `varid`, `question`, `answer1`, `answer2`, `answer3`, `answer4`, `rightanswer`) SELECT $nsnapid, `num`, `varid`, `question`, `answer1`, `answer2`, `answer3`, `answer4`, `rightanswer` FROM `$QuestionsTable` WHERE 1")) $snapres = false; |
77 |
if (!$snapres) |
78 |
amysql_query ("DELETE FROM `${SnapshotsTable}` WHERE `id`=$nsnapid LIMIT 1"); |
79 |
} |
80 |
if (!$snapres) $snapres = 5; |
81 |
else $snapres = 4; |
82 |
echo '<meta http-equiv=\'refresh\' content=\'0; url="/admin/archive.php?r=' . $snapres . '"\'>'; |
83 |
exit; |
84 |
} |
85 |
else if ($req_cmd == 'delsnapshot') // удаление снимка |
86 |
{ |
87 |
$delres = true; |
88 |
$req_snapid = 1 + $req_snapid - 1; |
89 |
if (!amysql_query ("DELETE FROM t1, t2, t3, t4 USING `$SnapshotsTable` AS t1, `${SnapshotsTable}_users` AS t2, `${SnapshotsTable}_results` AS t3, `${SnapshotsTable}_questions` AS t4 WHERE t1.id=$req_snapid AND t2.snapid=$req_snapid AND t3.snapid=$req_snapid AND t4.snapid=$req_snapid")) |
90 |
$delres = false; |
91 |
if (!$delres) $delres = 7; |
92 |
else $delres = 6; |
93 |
echo '<meta http-equiv=\'refresh\' content=\'0; url="/admin/archive.php?r=' . $delres . '"\'>'; |
94 |
exit; |
95 |
} |
96 |
} |
97 |
|
98 |
?> |
99 |
</head> |
100 |
<body link="#000000" vlink="#000000" alink="#000000" bgcolor="#FFFFFF" text="#000000"> |
101 |
<table class="frmLoginText" style="border-color: black; border-width: 1; border-style: solid" width="700" bgcolor="#E0E0FF" align="center" cellspacing="0"> |
102 |
<tr><td align="center" bgcolor="#FFF0E0"><b><a href="/admin/archive.php"><font size="+1" color="#000000">Архив результатов тестов</font></a></b><br><a href="/admin/">к администрированию</a></td></tr> |
103 |
</table><br> |
104 |
<?php |
105 |
|
106 |
// выводим, если надо, статусные сообщения |
107 |
$r_strings = array ( |
108 |
'Архив успешно инициализирован', 'Инициализация архива не удалась', |
109 |
'Архив успешно уничтожен', 'Архив уничтожить не удалось или удалось, но не полностью', |
110 |
'Снимок сделан', 'Ошибка при снятии снимка', |
111 |
'Снимок удалён', 'Снимок удалить не удалось или удалось, но не полностью' |
112 |
); |
113 |
|
114 |
if (isset ($req_r) && $req_r >= 0 && $req_r < count ($r_strings)) |
115 |
echo '<table class="frmLoginText" style="border-color: black; border-width: 1 1 1 1; border-style: solid" width="700" bgcolor="#FFF0E0" align="center" cellspacing="0"> |
116 |
<tr><td bgcolor="#FFC0C0" align="center">Результат операции: ' . $r_strings [$req_r] . '.</td></tr> |
117 |
</table><br> |
118 |
'; |
119 |
|
120 |
if (isset ($req_viewsnapshot)) |
121 |
$req_viewsnapshot = 1 + $req_viewsnapshot - 1; |
122 |
|
123 |
// выполняем команды, связанные с выводом информации |
124 |
if (isset ($req_cmd)) |
125 |
{ |
126 |
if ($req_cmd == 'showsnapshots') // просмотр списка снимков |
127 |
{ |
128 |
$where_def = '1'; |
129 |
$cmdtail = ''; |
130 |
if (isset ($req_searchdate) && strlen ($req_searchdate) > 0) |
131 |
{ |
132 |
$cmdtail = '&searchdate=' . urlencode ($req_searchdate); |
133 |
$req_searchdate = mysql_escape_string ($req_searchdate); |
134 |
$where_def = "`date` >= '$req_searchdate'"; |
135 |
} |
136 |
else if (isset ($req_searchname) && strlen ($req_searchname) > 0) |
137 |
{ |
138 |
$cmdtail = '&searchname=' . urlencode ($req_searchname); |
139 |
$req_searchname = mysql_escape_string ($req_searchname); |
140 |
$where_def = "INSTR (`name`, '$req_searchname') > 0"; |
141 |
} |
142 |
$curpage = 0; |
143 |
$curperpage = $ElementsPerPage; |
144 |
if (isset ($req_perpage)) |
145 |
$curperpage = 1 + $req_perpage - 1; |
146 |
if (isset ($req_page)) |
147 |
$curpage = $req_page; |
148 |
$curoff = $curpage * $curperpage; |
149 |
echo '<table class="frmLoginText" style="border-color: black; border-width: 1 1 1 1; border-style: solid" width="700" bgcolor="#FFF0E0" align="center" cellspacing="0">'; |
150 |
if (!($result = amysql_query ("SELECT COUNT(*) FROM `$SnapshotsTable` WHERE $where_def")) || !($row = mysql_fetch_row ($result))) |
151 |
echo '<tr><td align="center" bgcolor="#FFB0B0">Ошибка при чтении числа снимков!</td></tr>'; |
152 |
$prncount = 1 + $row [0] - 1; |
153 |
if (!($result = amysql_query ("SELECT * FROM `$SnapshotsTable` WHERE $where_def LIMIT $curoff, $curperpage"))) |
154 |
echo '<tr><td align="center" bgcolor="#FFB0B0">Ошибка при выводе списка снимков!</td></tr>'; |
155 |
if ($row = mysql_fetch_assoc ($result)) |
156 |
{ |
157 |
echo '<tr><td width="500" bgcolor="#E0E0FF" style="border-width: 0 1 1 0; border-style: solid; border-color: black" align="center">Название снимка</td><td width="200" bgcolor="#E0E0FF" style="border-width: 0 0 1 0; border-style: solid; border-color: black" align="center">Дата и время снимка</td></tr>'; |
158 |
do |
159 |
{ |
160 |
echo '<tr><td align="center"><a href="?viewsnapshot=' . $row ['id'] . '">' . $row ['name'] . '</a></td><td align="center">' . $row ['date'] . ' ' . $row ['time'] . '</td></tr>'; |
161 |
} while ($row = mysql_fetch_assoc ($result)); |
162 |
echo '<tr><td style="border-width: 1 0 0 0; border-style: solid; border-color: black" colspan="2" align="center" bgcolor="#E0E0FF">'; |
163 |
if ($curpage > 0) |
164 |
echo ' <input type="button" class="frmLoginButton" value=" << " onClick="navigate(\'?cmd=showsnapshots' . $cmdtail . '&page=0\');"> <input type="button" class="frmLoginButton" value=" < " onClick="navigate(\'?cmd=showsnapshots' . $cmdtail . '&page=' . ($curpage-1) . '\');"> '; |
165 |
else echo ' <input type="button" disabled="true" class="frmLoginButton" value=" << " onClick="navigate(\'?cmd=showsnapshots' . $cmdtail . '&page=0\');"> <input type="button" disabled="true" class="frmLoginButton" value=" < " onClick="navigate(\'?cmd=showsnapshots' . $cmdtail . '&page=' . ($curpage-1) . '\');"> '; |
166 |
echo 'Показаны снимки ' . ($curoff+1) . ' - ' . ($curoff+$curperpage < $prncount ? $curoff+$curperpage : $prncount); |
167 |
//echo "Показано снимков: " . ($curoff+$curperpage < $prncount ? $curperpage : $prncount-$curoff) . ", начиная с " . ($curoff+1); |
168 |
if ($curpage+1 < $prncount/$curperpage) |
169 |
echo ' <input type="button" class="frmLoginButton" value=" > " onClick="navigate(\'?cmd=showsnapshots' . $cmdtail . '&page=' . ($curpage+1) . '\');"> <input type="button" class="frmLoginButton" value=" >> " onClick="navigate(\'?cmd=showsnapshots' . $cmdtail . '&page=' . (ceil($prncount/$curperpage)-1) . '\');"> '; |
170 |
else echo ' <input type="button" disabled="true" class="frmLoginButton" value=" > " onClick="navigate(\'?cmd=showsnapshots' . $cmdtail . '&page=' . ($curpage+1) . '\');"> <input type="button" disabled="true" class="frmLoginButton" value=" >> " onClick="navigate(\'?cmd=showsnapshots' . $cmdtail . '&page=' . (ceil($prncount/$curperpage)-1) . '\');"> '; |
171 |
echo '</td></tr>'; |
172 |
} |
173 |
else echo '<tr><td align="center" bgcolor="#FFB0B0">Архив пуст.</td></tr>'; |
174 |
echo '</table><br>'; |
175 |
} |
176 |
else if (($req_cmd == 'users' || $req_cmd == 'prnusers' || $req_cmd == 'prntests') && isset ($req_viewsnapshot)) |
177 |
{ |
178 |
$where_def = '1'; |
179 |
$cmdtail = "viewsnapshot=$req_viewsnapshot"; |
180 |
if (isset ($req_userdate) && strlen ($req_userdate) > 0) |
181 |
{ |
182 |
$cmdtail .= '&userdate=' . urlencode ($req_userdate); |
183 |
$req_userdate = mysql_escape_string ($req_userdate); |
184 |
$where_def = "`date` >= '$req_userdate'"; |
185 |
} |
186 |
else if (isset ($req_username) && strlen ($req_username) > 0) |
187 |
{ |
188 |
$cmdtail .= '&username=' . urlencode ($req_username); |
189 |
$req_username = mysql_escape_string ($req_username); |
190 |
$where_def = "INSTR(`login`,'$req_username')>0"; |
191 |
} |
192 |
if ($req_cmd != 'prntests') |
193 |
{ |
194 |
print_users_info ($where_def, $cmdtail, $req_cmd == 'prnusers', "${SnapshotsTable}_users", "${SnapshotsTable}_results", "AND `snapid`=$req_viewsnapshot", false); |
195 |
if ($req_cmd != 'prnusers') |
196 |
echo '<p class="frmLoginText" style="margin: 2 0 16 0" align="center"><a href="?cmd=prntests&' . $cmdtail . '">Тесты подробно</a> | <a href="?cmd=prnusers&' . $cmdtail . '">Версия для печати</a></p>'; |
197 |
else |
198 |
{ |
199 |
echo '<p class="frmLoginText" style="margin: 2 0 16 0" align="center"><a href="?cmd=users&' . $cmdtail . '">Назад</a></p></body></html>'; |
200 |
exit; |
201 |
} |
202 |
} |
203 |
else |
204 |
{ |
205 |
print_tests_detailed_info ($where_def, $cmdtail, "${SnapshotsTable}_users", "${SnapshotsTable}_results", "${SnapshotsTable}_questions", "`snapid`=$req_viewsnapshot"); |
206 |
} |
207 |
} |
208 |
else if (($req_cmd == 'results' || $req_cmd == 'prnresults') && isset ($req_viewsnapshot) && isset ($req_uid)) |
209 |
{ |
210 |
print_results_info (1 + $req_uid - 1, $req_cmd == 'prnresults', "${SnapshotsTable}_users", "${SnapshotsTable}_results", "AND `snapid`=$req_viewsnapshot"); |
211 |
if ($req_cmd != 'prnresults') |
212 |
echo '<p class="frmLoginText" style="margin: 0 0 16 0" align="center"><a href="?cmd=prnresults&' . "uid=$req_uid&viewsnapshot=$req_viewsnapshot" . '">Версия для печати</a></p>'; |
213 |
else |
214 |
{ |
215 |
echo '<p class="frmLoginText" style="margin: 0 0 16 0" align="center"><a href="?cmd=results&' . "uid=$req_uid&viewsnapshot=$req_viewsnapshot" . '">Назад</a></p></body></html>'; |
216 |
exit; |
217 |
} |
218 |
} |
219 |
else if (($req_cmd == 'questions' || $req_cmd == 'prnquestions') && isset ($req_viewsnapshot)) |
220 |
{ |
221 |
$curpage = 0; |
222 |
$curperpage = $ElementsPerPage; |
223 |
if (isset ($req_perpage)) |
224 |
$curperpage = 1 + $req_perpage - 1; |
225 |
if (isset ($req_page)) |
226 |
$curpage = $req_page; |
227 |
$curoff = $curpage * $curperpage; |
228 |
echo '<table class="frmLoginText" style="border-color: black; border-width: 1 1 1 1; border-style: solid" width="700" bgcolor="#FFF0E0" align="center" cellspacing="0">'; |
229 |
if (!($result = amysql_query ("SELECT COUNT(*) FROM `${SnapshotsTable}_questions` WHERE `snapid`=$req_viewsnapshot")) || !($row = mysql_fetch_row ($result))) |
230 |
echo '<tr><td align="center" bgcolor="#FFB0B0">Ошибка при чтении числа вопросов!</td></tr>'; |
231 |
$prncount = 1 + $row [0] - 1; |
232 |
if (!($result = amysql_query ("SELECT MAX(`varid`) FROM `${SnapshotsTable}_questions` WHERE `snapid`=$req_viewsnapshot")) || !($row = mysql_fetch_row ($result))) |
233 |
echo '<tr><td align="center" bgcolor="#FFB0B0">Ошибка при чтении числа вариантов!</td></tr>'; |
234 |
$varcount = 1 + $row [0] - 1; |
235 |
if (!($result = amysql_query ("SELECT * FROM `${SnapshotsTable}_questions` WHERE `snapid`=$req_viewsnapshot ORDER BY `varid`, `num` LIMIT $curoff, $curperpage"))) |
236 |
echo '<tr><td align="center" bgcolor="#FFB0B0">Ошибка при выводе списка вопросов!</td></tr>'; |
237 |
$cmdtail = "&viewsnapshot=$req_viewsnapshot"; |
238 |
if ($row = mysql_fetch_assoc ($result)) |
239 |
{ |
240 |
echo '<tr><td style="border-width: 0 0 1 0; border-style: solid; border-color: black" colspan="2" align="center" bgcolor="#E0E0FF">'; |
241 |
if ($curpage > 0) |
242 |
echo ' <input type="button" class="frmLoginButton" value=" << " onClick="navigate(\'?cmd=questions' . $cmdtail . '&page=0\');"> <input type="button" class="frmLoginButton" value=" < " onClick="navigate(\'?cmd=questions' . $cmdtail . '&page=' . ($curpage-1) . '\');"> '; |
243 |
else echo ' <input type="button" disabled="true" class="frmLoginButton" value=" << " onClick="navigate(\'?cmd=questions' . $cmdtail . '&page=0\');"> <input type="button" disabled="true" class="frmLoginButton" value=" < " onClick="navigate(\'?cmd=questions' . $cmdtail . '&page=' . ($curpage-1) . '\');"> '; |
244 |
echo 'Показаны вопросы ' . ($curoff+1) . ' - ' . ($curoff+$curperpage < $prncount ? $curoff+$curperpage : $prncount); |
245 |
if ($curpage+1 < $prncount/$curperpage) |
246 |
echo ' <input type="button" class="frmLoginButton" value=" > " onClick="navigate(\'?cmd=questions' . $cmdtail . '&page=' . ($curpage+1) . '\');"> <input type="button" class="frmLoginButton" value=" >> " onClick="navigate(\'?cmd=questions' . $cmdtail . '&page=' . (ceil($prncount/$curperpage)-1) . '\');"> '; |
247 |
else echo ' <input type="button" disabled="true" class="frmLoginButton" value=" > " onClick="navigate(\'?cmd=questions' . $cmdtail . '&page=' . ($curpage+1) . '\');"> <input type="button" disabled="true" class="frmLoginButton" value=" >> " onClick="navigate(\'?cmd=questions' . $cmdtail . '&page=' . (ceil($prncount/$curperpage)-1) . '\');"> '; |
248 |
echo '</td></tr>'; |
249 |
$notfirst = 0; |
250 |
do |
251 |
{ |
252 |
echo "<tr><td style=\"border-width: $notfirst 0 1 0; border-style: solid; border-color: black\" bgcolor=\"#E0E0FF\">№${row['num']}. ${row['question']}" . ($varcount > 1 ? " [№ варианта ${row['varid']}]" : '') . "</td></tr>"; |
253 |
echo "<tr><td" . ($row ['rightanswer'] == 1 ? ' bgcolor="#FFE0C0"' : '') . "><p style=\"margin: 0 8 0 30\">${row['answer1']}</p></td></tr>"; |
254 |
echo "<tr><td" . ($row ['rightanswer'] == 2 ? ' bgcolor="#FFE0C0"' : '') . "><p style=\"margin: 0 8 0 30\">${row['answer2']}</p></td></tr>"; |
255 |
echo "<tr><td" . ($row ['rightanswer'] == 3 ? ' bgcolor="#FFE0C0"' : '') . "><p style=\"margin: 0 8 0 30\">${row['answer3']}</p></td></tr>"; |
256 |
echo "<tr><td" . ($row ['rightanswer'] == 4 ? ' bgcolor="#FFE0C0"' : '') . "><p style=\"margin: 0 8 0 30\">${row['answer4']}</p></td></tr>"; |
257 |
$notfirst = 1; |
258 |
} while ($row = mysql_fetch_assoc ($result)); |
259 |
echo '<tr><td style="border-width: 1 0 0 0; border-style: solid; border-color: black" colspan="2" align="center" bgcolor="#E0E0FF">'; |
260 |
if ($curpage > 0) |
261 |
echo ' <input type="button" class="frmLoginButton" value=" << " onClick="navigate(\'?cmd=questions' . $cmdtail . '&page=0\');"> <input type="button" class="frmLoginButton" value=" < " onClick="navigate(\'?cmd=questions' . $cmdtail . '&page=' . ($curpage-1) . '\');"> '; |
262 |
else echo ' <input type="button" disabled="true" class="frmLoginButton" value=" << " onClick="navigate(\'?cmd=questions' . $cmdtail . '&page=0\');"> <input type="button" disabled="true" class="frmLoginButton" value=" < " onClick="navigate(\'?cmd=questions' . $cmdtail . '&page=' . ($curpage-1) . '\');"> '; |
263 |
echo 'Показаны вопросы ' . ($curoff+1) . ' - ' . ($curoff+$curperpage < $prncount ? $curoff+$curperpage : $prncount); |
264 |
if ($curpage+1 < $prncount/$curperpage) |
265 |
echo ' <input type="button" class="frmLoginButton" value=" > " onClick="navigate(\'?cmd=questions' . $cmdtail . '&page=' . ($curpage+1) . '\');"> <input type="button" class="frmLoginButton" value=" >> " onClick="navigate(\'?cmd=questions' . $cmdtail . '&page=' . (ceil($prncount/$curperpage)-1) . '\');"> '; |
266 |
else echo ' <input type="button" disabled="true" class="frmLoginButton" value=" > " onClick="navigate(\'?cmd=questions' . $cmdtail . '&page=' . ($curpage+1) . '\');"> <input type="button" disabled="true" class="frmLoginButton" value=" >> " onClick="navigate(\'?cmd=questions' . $cmdtail . '&page=' . (ceil($prncount/$curperpage)-1) . '\');"> '; |
267 |
echo '</td></tr>'; |
268 |
} |
269 |
else |
270 |
echo '<tr><td align="center" bgcolor="#FFB0B0">Снимок не содержит вопросов :(</td></tr>'; |
271 |
echo '</table>'; |
272 |
if ($req_cmd != 'prnquestions') |
273 |
echo '<p class="frmLoginText" style="margin: 4 0 16 0" align="center"><a href="?cmd=prnquestions&perpage=' . $prncount . $cmdtail . '">Версия для печати</a></p>'; |
274 |
else |
275 |
{ |
276 |
echo '<p class="frmLoginText" style="margin: 4 0 16 0" align="center"><a href="?cmd=questions' . $cmdtail . '">Назад</a></p></body></html>'; |
277 |
exit; |
278 |
} |
279 |
} |
280 |
else if ($req_cmd == 'searchusers' && isset ($req_viewsnapshot)) |
281 |
{ |
282 |
echo '<table class="frmLoginText" style="border-color: black; border-width: 1 1 1 1; border-style: solid" width="700" bgcolor="#E0E0FF" align="center" cellspacing="0">'; |
283 |
// Команда "выбор пользователей" |
284 |
echo '<tr><td bgcolor="#E0FFE0" align="center" style="border-width: 0 0 1 0; border-color: black; border-style: solid"><b>Выбор пользователей</b><br> </td></tr>' . |
285 |
'<tr><td align="center" style="border-width: 0 0 0 0; border-color: black; border-style: solid">Чтобы посмотреть список не всех пользователей, а лишь некоторых, <br>вы можете задать ограничения для поиска пользователей в снимке:<form action="?cmd=users&viewsnapshot=' . $req_viewsnapshot . '" method="POST" name="searchusersform">Логин содержит строку: <input type="text" class="frmLoginEdit" name="username" maxlength="256" size="30"><br><b>или зарегистрирован:</b><br>Позже YYYY-MM-DD: <input type="text" class="frmLoginEdit" name="userdate" maxlength="256" size="30" value=""><p style="margin: 1 0 0 0"><input type="submit" value="Показать пользователей" class="frmLoginButton"></p></form></td></tr>'; |
286 |
echo '</table><br>'; |
287 |
} |
288 |
} |
289 |
|
290 |
// если уже выбран снимок, выводим команды для работы с ним... |
291 |
if (isset ($req_viewsnapshot)) |
292 |
{ |
293 |
if (($result = amysql_query ("SELECT * FROM `$SnapshotsTable` WHERE `id`=$req_viewsnapshot LIMIT 1")) && ($row = mysql_fetch_assoc ($result))) |
294 |
{ |
295 |
echo '<table class="frmLoginText" style="border-color: black; border-width: 1 1 1 1; border-style: solid" width="700" bgcolor="#E0FFE0" align="center" cellspacing="0">' . |
296 |
"<tr><td align=\"center\"><b>Выбран снимок:</b> #${row['id']} / <b>${row['name']}</b> от ${row['date']} ${row['time']}</td></tr>" . |
297 |
'<tr><td align="center" style="border-color: black; border-width: 1 0 0 0; border-style: solid"><b>Посмотреть:</b></td></tr>' . |
298 |
"<tr><td align=\"center\"><a href=\"?cmd=users&viewsnapshot=$req_viewsnapshot\">Список пользователей</a> (<a href=\"?cmd=searchusers&viewsnapshot=$req_viewsnapshot\">...</a>)</td></tr>" . |
299 |
"<tr><td align=\"center\"><a href=\"?cmd=questions&viewsnapshot=$req_viewsnapshot\">Список вопросов</a></td></tr>" . |
300 |
"<tr><td align=\"center\"><a href=\"?viewsnapshot=$req_viewsnapshot\">Скрыть списки</a></td></tr>" . |
301 |
'<tr><td align="center" style="border-color: black; border-width: 1 0 0 0; border-style: solid"><a href="javascript: if (confirm (\'Действительно удалить выбранный снимок?\')) navigate (\'?cmd=delsnapshot&snapid=' . $row ['id'] . '\');"><b>Удалить снимок</b></a></td></tr>' . |
302 |
'</table><br>'; |
303 |
} |
304 |
} |
305 |
|
306 |
?> |
307 |
<table class="frmLoginText" style="border-color: black; border-width: 1 1 1 1; border-style: solid" width="700" bgcolor="#FFF0E0" align="center" cellspacing="0"> |
308 |
<?php |
309 |
|
310 |
function check_archive () |
311 |
{ |
312 |
global $SnapshotsTable; |
313 |
if (!amysql_query ("SELECT * FROM ${SnapshotsTable} LIMIT 1")) return false; |
314 |
if (!amysql_query ("SELECT * FROM ${SnapshotsTable}_users LIMIT 1")) return false; |
315 |
if (!amysql_query ("SELECT * FROM ${SnapshotsTable}_results LIMIT 1")) return false; |
316 |
if (!amysql_query ("SELECT * FROM ${SnapshotsTable}_questions LIMIT 1")) return false; |
317 |
return true; |
318 |
} |
319 |
|
320 |
echo '<tr><td align="center" style="border-width: 0 0 1 0; border-color: black; border-style: solid">Возможные операции</td></tr>'; |
321 |
// Проверяем существование архива |
322 |
if (check_archive()) |
323 |
{ |
324 |
// Команда "Список снимков" |
325 |
echo '<tr><td bgcolor="#E0E0FF" align="center" style="border-width: 0 0 0 0; border-color: black; border-style: solid"><b>Просмотр списка снимков</b><br> </td></tr>' . |
326 |
'<tr><td bgcolor="#E0E0FF" align="center" style="border-width: 0 0 1 0; border-color: black; border-style: solid">Чтобы посмотреть список не всех снимков, а лишь некоторых, <br>вы можете задать ограничения для поиска снимка:<form action="?cmd=showsnapshots" method="POST" name="showsnapsform">Имя снимка содержит строку: <input type="text" class="frmLoginEdit" name="searchname" maxlength="256" size="30"><br><b>или снимок сделан:</b><br>Позже YYYY-MM-DD: <input type="text" class="frmLoginEdit" name="searchdate" maxlength="256" size="30" value=""><p style="margin: 1 0 0 0"><input type="submit" value="Показать список снимков" class="frmLoginButton"></p></form></td></tr>'; |
327 |
// Команда "Новый снимок" |
328 |
echo '<tr><td bgcolor="#E0E0FF" align="center" style="border-width: 0 0 0 0; border-color: black; border-style: solid"><b>Новый снимок</b><br> </td></tr>' . |
329 |
'<tr><td bgcolor="#E0E0FF" align="center" style="border-width: 0 0 1 0; border-color: black; border-style: solid">Если вы хотите сделать новый снимок - поместить копию текущей <br>рабочей базы данных в архив - вам сюда: <br><form action="?cmd=snapshot" method="POST" name="newsnapform">Имя снимка: <input type="text" class="frmLoginEdit" name="snapname" maxlength="256" size="30"> <input type="button" value="Сделать снимок" class="frmLoginButton" onClick="if (newsnapform.snapname.value != \'\') newsnapform.submit(); else alert (\'Введите имя для снимка\');"></form></td></tr>'; |
330 |
// Команда "Уничтожение архива" |
331 |
echo '<tr><td bgcolor="#E0E0FF" align="center" style="border-width: 0 0 0 0; border-color: black; border-style: solid"><b>Уничтожение архива</b><br> </td></tr>' . |
332 |
'<tr><td bgcolor="#E0E0FF" align="center" style="border-width: 0 0 1 0; border-color: black; border-style: solid">Если вы хотите <i>полностью уничтожить архив</i> - это для вас: <br><input type="button" onClick="if (confirm (\'Вы действительно хотите ПОЛНОСТЬЮ УНИЧТОЖИТЬ весь архив со всеми сохранёнными в нём данными?\')) navigate (\'?cmd=destroy\');" value="Уничтожить архив" class="frmLoginButton"></td></tr>'; |
333 |
} |
334 |
else // архив ещё не инициализирован |
335 |
echo '<tr><td bgcolor="#E0E0FF" align="center" style="border-width: 0 0 0 0; border-color: black; border-style: solid"><b>Инициализация архива</b><br> </td></tr>' . |
336 |
'<tr><td bgcolor="#E0E0FF" align="center" style="border-width: 0 0 1 0; border-color: black; border-style: solid">Архив не инициализирован. Вы должны его инициализировать.<br>Нажмите <a href="?cmd=init"><b>сюда</b></a>, чтобы произвести инициализацию.</td></tr>'; |
337 |
|
338 |
mysql_finish (); |
339 |
|
340 |
?> |
341 |
<tr><td align="center" bgcolor="#FFF0E0">Powered by VMX, 2006</td></tr> |
342 |
</table> |
343 |
</body> |
344 |
</html> |