#!/usr/bin/perl use strict; use Boofy::Main; use Boofy::Login; use Boofy::String qw(tune_html japanese_date); use Boofy::Log; use Boofy::Member; #------------------------------------------------------------------------------ # FUNCTIONS #------------------------------------------------------------------------------ sub show_main { my ($dbh_access, $mm, $tpl, $member_id) = @_; my $sth; ## 本番DBのデータ $sth = $dbh_access->prepare("SELECT access FROM view_log_count WHERE member_id=?"); $sth->execute($member_id); my $row = $sth->fetchrow_arrayref(); my $access_count = $row ? $row->[0] : 0; $tpl->param("access_count", $access_count || 0); ## ログDBのデータ if (!$dbh_access) { return; } $sth = $dbh_access->prepare("SELECT date, DATE_FORMAT(timestamp, '%H:%i') AS time, viewer_id FROM view_log WHERE member_id=? ORDER BY timestamp DESC LIMIT 30"); $sth->execute($member_id); my @loop; while (my $row = $sth->fetchrow_hashref()) { my %loop; my $nickname = $mm->multi_get_nickname($row->{viewer_id}); if (!$nickname) { next; } my $nickname_copy = $nickname; $nickname_copy =~ s/[\s ]//g; if (!$nickname_copy) { $nickname = "_"; } $loop{date} = japanese_date($row->{date}); $loop{time} = $row->{time}; $loop{show_friend_link} = "show_friend.pl?id=$row->{viewer_id}"; ## Cache.pmでtune_html済 $loop{name} = $nickname; push(@loop, \%loop); } $tpl->param("viewer_loop", \@loop); } #------------------------------------------------------------------------------ # MAIN #------------------------------------------------------------------------------ my $mn = Boofy::Main::->new(); my $cgi = $mn->load_cgi(); my $lg = Boofy::Login::->new($cgi); ## Login my $member_status = $lg->get_member_status(); my $member_id = $member_status->{id}; my $member_type = $member_status->{type}; if (!$member_id) { $lg->show_login($mn); exit; } my $log = Boofy::Log::->new(); my $dbh_access = $log->load_dbh_access($member_id); my $mm = Boofy::Member::->new(); my $nickname = $mm->multi_get_nickname($member_id); my $tpl = $mn->load_tpl("show_log_main.tmpl"); $mn->show_header(); $mn->show_banner($member_id); $mn->show_premium($member_type); show_main($dbh_access, $mm, $tpl, $member_id); $tpl->param("member_nickname", tune_html($nickname)); print $tpl->output();