diff options
author | Yorhel <git@yorhel.nl> | 2008-12-29 17:13:45 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2009-01-02 17:02:07 +0100 |
commit | 0f421f5d809648b9bfc3134216dafaf2a46bf876 (patch) | |
tree | 72a73a5195d3d43e555a63b0bac42e64c6bbc04b /lib | |
parent | b28d061044b403c82b2338bae2d0909f1dcabc5c (diff) |
Added custom CSS field to user profile
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ChangeLog | 3 | ||||
-rw-r--r-- | lib/VNDB/DB/Users.pm | 2 | ||||
-rw-r--r-- | lib/VNDB/Handler/Users.pm | 13 | ||||
-rw-r--r-- | lib/VNDB/Util/LayoutHTML.pm | 4 |
4 files changed, 15 insertions, 7 deletions
diff --git a/lib/ChangeLog b/lib/ChangeLog index 92532247..4a5b2968 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,6 @@ +2.2 - ? + - Additional custom CSS field to user profile + 2.1 - 2008-12-29 - Skin support - 'show all items' tab to large forms diff --git a/lib/VNDB/DB/Users.pm b/lib/VNDB/DB/Users.pm index 6f1a13c6..188fb4d8 100644 --- a/lib/VNDB/DB/Users.pm +++ b/lib/VNDB/DB/Users.pm @@ -64,7 +64,7 @@ sub dbUserEdit { my %h; defined $o{$_} && ($h{$_.' = ?'} = $o{$_}) - for (qw| username mail rank show_nsfw show_list skin |); + for (qw| username mail rank show_nsfw show_list skin customcss |); $h{'passwd = decode(?, \'hex\')'} = $o{passwd} if defined $o{passwd}; diff --git a/lib/VNDB/Handler/Users.pm b/lib/VNDB/Handler/Users.pm index f2bb0fa6..be0279de 100644 --- a/lib/VNDB/Handler/Users.pm +++ b/lib/VNDB/Handler/Users.pm @@ -299,9 +299,10 @@ 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}; if(!$frm->{_err}) { @@ -310,6 +311,7 @@ sub edit { $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 +323,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 +356,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', 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; } diff --git a/lib/VNDB/Util/LayoutHTML.pm b/lib/VNDB/Util/LayoutHTML.pm index b07da131..10fd5dad 100644 --- a/lib/VNDB/Util/LayoutHTML.pm +++ b/lib/VNDB/Util/LayoutHTML.pm @@ -27,6 +27,10 @@ sub htmlHeader { # %options->{ title, js, noindex, search } script type => 'text/javascript', src => $self->{url_static}.'/f/script.js?'.$self->{version}; # most browsers don't like a self-closing <script> tag... end; + if($self->authInfo->{customcss}) { + (my $css = $self->authInfo->{customcss}) =~ s/\n/ /g; + style type => 'text/css', $css; + } meta name => 'robots', content => 'noindex, follow', undef if $o{noindex}; end; body; |