sub sideshow_comments
{
# my ($thread, $keyword, $comments, $order) = @_;
my ($hash) = @_;
# print "YO COMMENTS WILL BE WORKING IN A SEC DUDES
";
$thread = $hash->{'thread'};
$keyword = $hash->{'keyword'};
$comments = $hash->{'comments'};
$order = $hash->{'order'};
return unless $comments;
$shorturl = 0 unless (defined($shorturl));
$color = get_color($thread, $keyword);
my %c;
my $shorturl = check_key($thread->{display}, "shorturl");
my $r = 0;
my @sorted;
if ($order && $order eq "asc")
{
@sorted = sort { $b <=> $a } (keys %$comments);
}
else
{
@sorted = sort { $a <=> $b } (keys %$comments);
}
my @basis = ();
my $firstpost = 1;
my $lastpost = undef;
my %tree;
print qq();
print qq(
 |
);# unless ($hash->{'hootbox'});
$lastpost = undef;
foreach my $id (@sorted)
{
my $comment = $comments->{$id};
# hide hidden comments from non-oper
if ($comment->{parent_id} != -1)
{ push @{$tree{$comment->{parent_id}}}, $id; }
else
{ push @basis, $comment; $lastpost = $comment->{id}; }
}
my $args = $hash || {};
$args->{thread} ||= $thread;
$args->{keyword} ||= $keyword;
$args->{shorturl} ||= $shorturl;
$args->{noreply} ||= 0;
$args->{comment} = undef;
$args->{firstpost} = $firstpost;
$args->{lastpost} = 0;
$args->{r} = $sorted[0]->{id} % 2 ? "0" : "1";
foreach my $id (@sorted)
{
my $c = $comments->{$id};
next if ($c->{parent_id} != -1);
next if hiding_hidden_posts($c);
$args->{r} = $args->{r} ? "0" : "1";
$args->{comment} = $c;
$args->{noreply} = exists($tree{$id});
$args->{firstpost} = $firstpost;
if (display_comment($args))
{ $firstpost = 0; }
if (exists($tree{$id}))
{
$firstpost = 1;
my $tail = $tree{$id};
my $tailend = $tail->[-1];
print qq();
print qq(\n);
print qq(\n);
foreach my $subcomment_id ( @$tail )
{
my $c = $comments->{$subcomment_id};
next if hiding_hidden_posts($c);
$r = $r ? "0" : "1";
$args->{r} = $args->{r} ? "0" : "1";
$args->{comment} = $c;
$args->{noreply} = $subcomment_id != $tailend;
$args->{lastpost} = $subcomment_id == $tailend && $lastpost != $id;
display_subcomment($args);
}
print qq( \n |
\n\n);
}
}
}
sub hiding_hidden_posts
{
my ($c) = @_;
if ($c->{'hidden'} != 1)
{ return 0; }
if ( $USER->{'ulevel'} == 3 && check_key($USER->{boxes}, "showhidden") )
{ return 0; }
return 1;
}
sub display_comment
{
my ($args) = @_;
my ($t) = $args->{thread} || -1;
my ($c) = $args->{comment} || -1;
return 0 if ($c->{comment} eq undef);
my $z_r = exists($args->{r}) ? $args->{r} : undef;
my $z_id = $c->{id};
my $z_date = verbosedate($c->{date});
my $z_age = get_age($c->{date});
# $z_age .= " ago" unless $age eq "now";
my $z_user = $c->{username};
my $z_profile = qq($BUCKY/profile/$z_user);
my $z_comment = linebr($c->{comment}, $args->{shorturl});
my $z_br = $z_comment =~ /
/ ? undef : "
";
my $z_options = ($USER != -1) ? display_comment_options($args) : " ";
$z_options .= " ($z_id)" if $DEBUG;
if ($args->{'hootbox'})
{
my $z_width = $AVATAR_MED_WIDTH;
my $z_image = get_profile_image($c->{username}, $AVATAR_MED_PREFIX);
print qq();
print qq();
if ($z_image != -1)
{
print qq( );
}
print qq( | );
print qq();
# print qq();
# print qq($z_user $z_age);
## print qq($z_user);
# print qq( | );
## print qq(
);
## print qq(| $z_age | );
## print qq(
);
# print qq();
}
else
{
my $z_width = $AVATAR_BIG_WIDTH;
my $z_image = get_profile_image($c->{username}, $AVATAR_BIG_PREFIX);
print qq();
print qq();
if ($z_image != -1)
{ print qq( ); }
print qq($z_user);
print qq( | );
print qq(
);
}
return 1;
}
sub display_subcomment
{
my ($args) = @_;
my ($t) = $args->{thread} || -1;
my ($c) = $args->{comment} || -1;
return 0 if ($c->{comment} eq undef);
my $z_r = exists($args->{r}) ? $args->{r} : undef;
my $z_date = verbosedate($c->{date});
my $z_age = get_age($c->{date});
$z_age .= " ago" unless $age eq "now";
my $z_user = $c->{username};
my $z_profile = qq($BUCKY/profile/$z_user);
my $z_comment = linebr($c->{comment}, $args->{shorturl});
my $z_width = $AVATAR_MED_WIDTH;
my $z_image = get_profile_image($c->{username}, $AVATAR_MED_PREFIX);
my $z_options = ($USER != -1) ? display_comment_options($args) : " ";
$z_options .= " ($z_id)" if $DEBUG;
print qq();
if ($z_image != -1)
{
print qq();
print qq( );
print qq($z_user);
print qq( | );
}
else
{
print qq( );
print qq($z_user);
print qq( | );
}
print qq(
);
return 1;
}
sub display_comment_options
{
my ($args) = @_;
my ($thread) = $args->{thread} || -1;
my ($keyword) = $args->{keyword} || -1;
my ($c) = $args->{comment} || -1;
my $out = "";
my $age = time - $c->{date};
my $z_id = $c->{id};
my $z_link = qq($BUCKY/comment/$z_id);
if ($c->{username} eq $USER->{username} || $USER->{ulevel} == 3 ||
(check_key($thread->{display}, "editable") && check_privacy($thread, $keyword)))
{
$out .= qq();
$out .= $age < 86400 ?
qq(edit)
: qq(edit);
$out .= middot();
$out .= qq(remove);
$out .= middot();
$out .= qq(reply);
$out .= qq();
}
else
{
$out .= qq(reply);
}
}
1;