summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2008-12-29 17:13:45 +0100
committerYorhel <git@yorhel.nl>2009-01-02 17:02:07 +0100
commit0f421f5d809648b9bfc3134216dafaf2a46bf876 (patch)
tree72a73a5195d3d43e555a63b0bac42e64c6bbc04b /lib
parentb28d061044b403c82b2338bae2d0909f1dcabc5c (diff)
Added custom CSS field to user profile
Diffstat (limited to 'lib')
-rw-r--r--lib/ChangeLog3
-rw-r--r--lib/VNDB/DB/Users.pm2
-rw-r--r--lib/VNDB/Handler/Users.pm13
-rw-r--r--lib/VNDB/Util/LayoutHTML.pm4
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;