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 - (hide annotations) (download) (as text)
Sun Feb 17 15:07:41 2008 MSK (12 years, 11 months ago) by vitalif
File MIME type: text/html; charset=windows-1251
File size: 25375 byte(s)
Release 2.0

1 vitalif 6 <html>
2     <head>
3 vitalif 8 <title>Архив результатов</title>
4 vitalif 6 <meta name="GENERATOR" content="VMX">
5 vitalif 8 <meta name="description" content="Главная страница архива результатов тестирования слушателей">
6 vitalif 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 vitalif 8 require_once '../lib/config.php';
15     require_once '../lib/info.php';
16 vitalif 6
17     import_request_variables ("gp", "req_");
18     mysql_start ();
19    
20 vitalif 8 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 vitalif 6
98 vitalif 8 ?>
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 vitalif 6
106 vitalif 8 // выводим, если надо, статусные сообщения
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 vitalif 6 mysql_finish ();
339    
340     ?>
341 vitalif 8 <tr><td align="center" bgcolor="#FFF0E0">Powered by VMX, 2006</td></tr>
342     </table>
343 vitalif 6 </body>
344     </html>