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

Diff of /head/WWW/admin/archive.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 6 by vitalif, Sun Feb 17 15:04:40 2008 MSK Revision 8 by vitalif, Sun Feb 17 15:07:23 2008 MSK
# Line 1  Line 1 
1  <html>  <html>
2  <head>  <head>
3  <title>Администрирование</title>  <title>Архив результатов</title>
4  <meta name="GENERATOR" content="VMX">  <meta name="GENERATOR" content="VMX">
5  <meta name="description" content="Главная страница системы администрирования тестов">  <meta name="description" content="Главная страница архива результатов тестирования слушателей">
6  <meta http-equiv=Content-Type content="text/html; charset=windows-1251">  <meta http-equiv=Content-Type content="text/html; charset=windows-1251">
7  <link rel="stylesheet" href="../styles.css">  <link rel="stylesheet" href="../styles.css">
 </head>  
 <body link="#000000" vlink="#000000" alink="#000000" bgcolor="#FFFFFF" text="#000000">  
 <table class="frmLoginText" style="border-color: black; border-width: 1; border-style: solid" width="700" bgcolor="#E0E0FF" align="center" cellspacing="0">  
 <tr><td align="center" bgcolor="#FFF0E0"><b><a href="/admin/"><font size="+1" color="#000000">Система администрирования тестирования слушателей</font></a></b><br>&nbsp;</td></tr>  
 </table><br>  
8  <?php  <?php
9  // Скрипт  // Скрипт
10    
11  // Архив результатов тестирований слушателей  // Архив результатов тестирований слушателей
12  // Copyright (c) 2006, Виталий Филиппов [VMX]  // Copyright (c) 2006, Виталий Филиппов [VMX]
13    
14  include_once '../lib/config.php';  require_once '../lib/config.php';
15    require_once '../lib/info.php';
16    
17  import_request_variables ("gp", "req_");  import_request_variables ("gp", "req_");
18  mysql_start ();  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 ();  mysql_finish ();
339    
340  ?>  ?>
341    <tr><td align="center" bgcolor="#FFF0E0">Powered by VMX, 2006</td></tr>
342    </table>
343  </body>  </body>
344  </html>  </html>


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters