OSDN Git Service

editlogプラグインの更新日時が実際の時刻とずれることがないように修正。
[fswiki/fswiki.git] / plugin / editlog / EditLog.pm
1 ############################################################
2 #
3 # ¥Ú¡¼¥¸Êݸ»þorºï½ü»þ¤Ëµ­Ï¿¤ò¹Ô¤¦¥Õ¥Ã¥¯¥×¥é¥°¥¤¥ó
4 #
5 ############################################################
6 package plugin::editlog::EditLog;
7 use strict;
8 #===========================================================
9 # ¥³¥ó¥¹¥È¥é¥¯¥¿
10 #===========================================================
11 sub new {
12         my $class = shift;
13         my $self = {};
14         return bless $self,$class;
15 }
16
17 #===========================================================
18 # ¥Ú¡¼¥¸Êݸ¸åorºï½ü¸å¤Î¥Õ¥Ã¥¯¥á¥½¥Ã¥É
19 #===========================================================
20 sub hook {
21         my $self = shift;
22         my $wiki = shift;
23         my $cgi  = $wiki->get_CGI;
24         
25         my $login    = $wiki->get_login_info();
26         my $pagename = $cgi->param("page");
27         my $content  = $cgi->param("content");
28         my $backup   = $wiki->get_backup($pagename);
29         
30         my @log;
31         my $now = $wiki->get_last_modified($pagename);
32         if($now eq ''){
33                 $now = time();
34         }
35         push ( @log, format_date( $now ) );
36         push ( @log, $now );
37         if($content eq ""){
38                 push @log, "delete";
39         } elsif($backup eq "") {
40                 push @log, "create";
41         } else {
42                 push @log, "modify";
43         }
44         push @log, Util::url_encode($pagename);
45         push @log, $login->{id};
46         
47         my $logfile = $wiki->config('log_dir')."/useredit.log";
48         Util::file_lock($logfile);
49         open (DATA, ">>$logfile") or die $!;
50         print DATA join(" ",@log)."\n";
51         close(DATA);
52         Util::file_unlock($logfile);
53 }
54
55 #==============================================================================
56 # ÆüÉÕ¤ò¥Õ¥©¡¼¥Þ¥Ã¥È
57 # taken from RSS.pm
58 #==============================================================================
59 sub format_date {
60         my $time = shift;
61         my ($sec, $min, $hour, $mday, $mon, $year, $wday) = localtime($time);
62         return sprintf("%04d/%02d/%02d %02d:%02d:%02d",
63                        $year+1900,$mon+1,$mday,$hour,$min,$sec);
64 }
65
66 1;