devi@101: #!/usr/bin/perl
devi@101:
devi@101: use strict;
devi@101: use CGI qw(:standard);
devi@101: use utf8;
devi@101:
devi@101: BEGIN {
igor@115: chdir("/etc/lilalo/");
devi@101: require l3config;
devi@101: l3config::init_config();
devi@101: };
devi@101:
devi@101: sub path_is_correct($);
devi@101: sub error($);
devi@101: sub remove_extra_slashes_from($);
devi@101: sub print_header($);
devi@101: sub print_footer;
devi@101: sub nav_bar;
devi@101:
igor@109: sub count_command_lines($);
igor@109:
devi@101: my $print="";
devi@101: my $path = $ENV{PATH_INFO};
devi@101: remove_extra_slashes_from($path);
devi@101:
igor@109:
igor@109: my $commands_to_show_at_a_go = $l3config::Config{"commands_to_show_at_a_go"};
igor@110: my $start_from_command = "0";
igor@109: my $this_page_number=0;
igor@109: if ($path =~ s/:(.*)//) {
igor@109: $this_page_number = $1;
igor@109: $start_from_command = $this_page_number*$commands_to_show_at_a_go;
igor@109: }
igor@109:
devi@101: my $real_path = $l3config::Config{"backend_datadir"} ;
devi@101: my $cgi_path = $l3config::Config{"cgi_path"} ;
devi@101: my $style_files = $l3config::Config{"frontend_files"} ;
devi@101: my $frontend_css = $l3config::Config{"frontend_css"} ;
igor@109:
devi@101: my $data_file = "data.xml";
devi@101:
devi@101: path_is_correct($path)
devi@101: or error ("Путь $path содержит недопустимые символы или комбинации символов.");
devi@101:
devi@101: $real_path .= $path;
devi@101: remove_extra_slashes_from($real_path);
devi@101:
devi@101: # Чувак, ты хотел бы посмотреть на журнал $path
devi@101: # Он должен находиться в каталоге $real_path файловой системы\n";
devi@101:
devi@101: (-d $real_path)
devi@101: or error("Каталог $real_path не существует. Проверьте, пожалуйста, URL\n");
devi@101:
devi@101: if (-e $real_path."/$data_file") {
devi@101:
devi@101: # В каталоге есть файл $data_file
devi@101: # Отлично! Сейчас будем показывать журнал
devi@101:
devi@101: # Если существуют html и xml файлы,
devi@101: # html файл новее чем xml,
devi@101: # и CGI-скрипту не передано дополнительных параметров,
devi@101: # используем html файл, иначе перегенируем его
devi@101:
devi@101: unless ( -e "$real_path/$data_file"
devi@101: && -e "$real_path/index.html"
igor@109: && (stat("$real_path/index.html"))[9] > (stat("$real_path/$data_file"))[9] && 0!=0 ) {
devi@101:
igor@125: my $l3_frontend = "l3-frontend --backend_datafile $real_path/$data_file --output $real_path/index.html --start_from_command $start_from_command ";
devi@101: system($l3_frontend) == 0
devi@101: or error("Файл журнала найден, но возникла ошибка при его обработке:
$!");
igor@109: #$print .= "(перегенирован)
";
devi@101: }
devi@101:
devi@101: {
devi@101: local $/;
devi@101: open(HTML, "<:utf8", "$real_path/index.html");
devi@101: my $html = ;
devi@101:
devi@101: # Добавим в начало документа навигационную строку
devi@101: my $nav_bar = nav_bar;
devi@101: $html =~ s/(
$nav_bar |