subversion://[vpntest]/release/2.0/WWW/admin/archive.php Log in
ViewVC logotype

Annotate of /release/2.0/WWW/admin/archive.php

Parent Directory Parent Directory | Revision Log Revision Log

Revision 9 - (show annotations) (download) (as text)
Sun Feb 17 15:07:41 2008 MSK (12 years, 9 months ago) by vitalif
File MIME type: text/plain; charset=windows-1251
File size: 25375 byte(s)
Release 2.0

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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>