summaryrefslogtreecommitdiff
path: root/lib/VNDB/Handler/Users.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/VNDB/Handler/Users.pm')
-rw-r--r--lib/VNDB/Handler/Users.pm25
1 files changed, 16 insertions, 9 deletions
diff --git a/lib/VNDB/Handler/Users.pm b/lib/VNDB/Handler/Users.pm
index f2bb0fa6..2b83b4a5 100644
--- a/lib/VNDB/Handler/Users.pm
+++ b/lib/VNDB/Handler/Users.pm
@@ -88,12 +88,16 @@ sub userpage {
Tr ++$i % 2 ? (class => 'odd') : ();
td 'List stats';
td !$u->{show_list} ? 'hidden' :
- sprintf '%d releases of %d visual novels', $u->{releasecount}, $u->{vncount};
+ sprintf '%d release%s of %d visual novel%s',
+ $u->{releasecount}, $u->{releasecount} != 1 ? 's' : '',
+ $u->{vncount}, $u->{vncount} != 1 ? 's' : '';
end;
Tr ++$i % 2 ? (class => 'odd') : ();
td 'Forum stats';
- td sprintf '%d posts, %d new threads', $u->{postcount}, $u->{threadcount};
+ td sprintf '%d post%s, %d new thread%s',
+ $u->{postcount}, $u->{postcount} != 1 ? 's' : '',
+ $u->{threadcount}, $u->{threadcount} != 1 ? 's' : '';
end;
end;
end;
@@ -239,6 +243,7 @@ sub register {
push @{$frm->{_err}}, 'passmatch' if $frm->{usrpass} ne $frm->{usrpass2};
push @{$frm->{_err}}, 'usrexists' if $frm->{usrname} eq 'anonymous' || !$frm->{_err} && $self->dbUserGet(username => $frm->{usrname})->[0]{id};
push @{$frm->{_err}}, 'mailexists' if !$frm->{_err} && $self->dbUserGet(mail => $frm->{mail})->[0]{id};
+ push @{$frm->{_err}}, 'oneaday' if !$frm->{_err} && $self->dbUserGet(ip => $self->reqIP, registered => time-24*3600)->[0]{id};
if(!$frm->{_err}) {
$self->dbUserAdd($frm->{usrname}, md5_hex($frm->{usrpass}), $frm->{mail});
@@ -299,17 +304,20 @@ sub edit {
{ name => 'mail', template => 'mail' },
{ name => 'usrpass', required => 0, minlength => 4, maxlength => 64, template => 'asciiprint' },
{ name => 'usrpass2', required => 0, minlength => 4, maxlength => 64, template => 'asciiprint' },
- { name => 'skin', enum => [ '', keys %{$self->{skins}} ], required => 0, default => '' },
{ name => 'flags_list', required => 0, default => 0 },
{ name => 'flags_nsfw', required => 0, default => 0 },
+ { name => 'skin', enum => [ '', keys %{$self->{skins}} ], required => 0, default => '' },
+ { name => 'customcss', required => 0, maxlength => 2000, default => '' },
);
- push @{$frm->{_err}}, 'passmatch' if ($frm->{usrpass} || $frm->{usrpass2}) && $frm->{usrpass} ne $frm->{usrpass2};
+ push @{$frm->{_err}}, 'passmatch'
+ if ($frm->{usrpass} || $frm->{usrpass2}) && (!$frm->{usrpass} || !$frm->{usrpass2} || $frm->{usrpass} ne $frm->{usrpass2});
if(!$frm->{_err}) {
my %o;
$o{username} = $frm->{usrname} if $frm->{usrname};
$o{rank} = $frm->{rank} if $frm->{rank};
$o{mail} = $frm->{mail};
$o{skin} = $frm->{skin};
+ $o{customcss} = $frm->{customcss};
$o{passwd} = md5_hex($frm->{usrpass}) if $frm->{usrpass};
$o{show_list} = $frm->{flags_list} ? 1 : 0;
$o{show_nsfw} = $frm->{flags_nsfw} ? 1 : 0;
@@ -321,9 +329,7 @@ sub edit {
# fill out default values
$frm->{usrname} ||= $u->{username};
- $frm->{rank} ||= $u->{rank};
- $frm->{mail} ||= $u->{mail};
- $frm->{skin} ||= $u->{skin};
+ $frm->{$_} ||= $u->{$_} for(qw|rank mail skin customcss|);
$frm->{flags_list} = $u->{show_list} if !defined $frm->{flags_list};
$frm->{flags_nsfw} = $u->{show_nsfw} if !defined $frm->{flags_nsfw};
@@ -356,12 +362,13 @@ sub edit {
[ passwd => short => 'usrpass2', name => 'Confirm pass.' ],
[ part => title => 'Options' ],
- [ select => short => 'skin', name => 'Prefered skin', options => [
- map [ $_ eq $self->{skin_default} ? '' : $_, $self->{skins}{$_} ], sort { $self->{skins}{$a} cmp $self->{skins}{$b} } keys %{$self->{skins}} ] ],
[ check => short => 'flags_list', name =>
qq|Allow other people to see my visual novel list (<a href="/u$uid/list">/u$uid/list</a>) |.
qq|and wishlist (<a href="/u$uid/wish">/u$uid/wish</a>)| ],
[ check => short => 'flags_nsfw', name => 'Disable warnings for images that are not safe for work.' ],
+ [ select => short => 'skin', name => 'Prefered skin', width => 300, options => [
+ map [ $_ eq $self->{skin_default} ? '' : $_, $self->{skins}{$_} ], sort { $self->{skins}{$a} cmp $self->{skins}{$b} } keys %{$self->{skins}} ] ],
+ [ textarea => short => 'customcss', name => 'Additional CSS' ],
]);
$self->htmlFooter;
}