root/websites/psuke/public_html/psuke/index.pl @ 22748

Revision 22748, 3.3 kB (checked in by wakapon, 5 years ago)

added del_ptn

Line 
1#!/usr/local/bin/perl
2
3BEGIN
4{ require '../../psuke/defs.ph'; }
5
6use strict;
7use warnings;
8use HTML::Template;
9use DBI;
10use POSIX qw(strftime);
11
12my $cgi = CGI->new;
13my $tmpl = HTML::Template->new(filename => 'index.tmpl',
14                               die_on_bad_params => 0,
15                               global_vars => 1,
16                               default_escape => 'HTML');
17my $dbh = DBI->connect("dbi:mysql:$DEFS::db_name", $DEFS::db_user, $DEFS::db_passwd,
18                      {AutoCommit=>1, RaiseError=>1, PrintError=>0});
19
20my %thread;
21
22&main;
23
24sub main
25{
26   # パラメータチェック
27   &check_params;
28   # スレッド情報取得
29   &retrieve_thread;
30   # テンプレートのパラメータ設定
31   &set_params;
32   # コンテンツ表示
33   &print_contents;
34   exit (0);
35}
36
37sub check_params
38{}
39
40sub retrieve_thread
41{
42   foreach my $ita (keys(%DEFS::ita_config))
43   { # 各板の新着リスト
44      $thread{$ita} = $dbh->selectall_arrayref(<<SQL, {Columns=>{}});
45         select thread_num, birth_time
46           from $ita
47          where death_time is null
48       order by birth_time desc
49          limit $DEFS::latest_display
50SQL
51   }
52}
53
54sub set_params
55{
56   &set_header_params;
57   &set_catalog_params;
58}
59
60sub print_contents
61{
62   # 出力
63   print $cgi->header(-type => 'text/html', -charset => 'utf-8');
64   print $tmpl->output;
65}
66
67sub set_header_params
68{
69   my @menu_loop;
70   foreach my $ita (sort{$a cmp $b}(keys(%DEFS::ita_config)))
71   {
72      push (@menu_loop,
73      {
74         ita => $ita,
75         ita_name => $DEFS::ita_config{$ita}[1]
76      });
77   }
78   $tmpl->param(top_url => $DEFS::top_url,
79                title => 'このカタログにはMySQLを(以下略@PSUKE',
80                menu_loop => \@menu_loop);
81}
82
83sub set_catalog_params
84{
85   my @catalog_loop;
86   foreach my $ita (sort{$a cmp $b}(keys(%thread)))
87   {
88      $DEFS::ita = $ita;
89      foreach my $thread (@{$thread{$ita}})
90      {
91         my $thread_num = $thread->{thread_num};
92         my $birth_time = $thread->{birth_time};
93         push (@catalog_loop,
94         {
95            ita => $ita,
96            thread_url => &get_thread_url($thread_num),
97            src_url => &get_src_url($thread_num),
98            thumb_url => &get_thumb_url($thread_num),
99            birth_date => strftime("%H:%M:%S", localtime($birth_time))
100         });
101      }
102   }
103   $tmpl->param(catalog_loop => \@catalog_loop);
104}
105
106sub get_thread_url
107{
108   my $thread_num = shift;
109   my $thread_url = "$DEFS::top_url/thread.pl?ita=$DEFS::ita&thread_num=$thread_num&mode=res";
110   return $thread_url;
111}
112
113sub get_src_url
114{
115   my $thread_num = shift;
116   my $image_url;
117   if (-e "$DEFS::local_tmp/${DEFS::ita}_$thread_num.png")
118   { $image_url = "$DEFS::tmp_url/${DEFS::ita}_$thread_num.png"; }
119   else
120   { $image_url = "$DEFS::top_url/image.pl?ita=$DEFS::ita&thread_num=$thread_num&mode=src"; }
121   return $image_url;
122}
123
124sub get_thumb_url
125{
126   my $thread_num = shift;
127   my $image_url;
128   if (-e "$DEFS::local_tmp/${DEFS::ita}_$thread_num.gif")
129   { $image_url = "$DEFS::tmp_url/${DEFS::ita}_$thread_num.gif"; }
130   else
131   { $image_url = "$DEFS::top_url/image.pl?ita=$DEFS::ita&thread_num=$thread_num&mode=thumb"; }
132   return $image_url;
133}
Note: See TracBrowser for help on using the browser.