summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2011-02-18 16:44:21 +0100
committerYorhel <git@yorhel.nl>2011-02-18 16:44:21 +0100
commit9470cf12cb6ae8a4610a24ae5b60017ddfcc1568 (patch)
treeef9aa0d74b38649937cbb2f3331096a95a9f9fc0
parent04db44f229360b5ff206419f0e17c4f525ea9aed (diff)
chardb: Implemented BWH/height/weight fields
-rw-r--r--data/lang.txt144
-rw-r--r--lib/VNDB/DB/Chars.pm4
-rw-r--r--lib/VNDB/Handler/Chars.pm32
-rw-r--r--util/sql/func.sql6
4 files changed, 178 insertions, 8 deletions
diff --git a/data/lang.txt b/data/lang.txt
index b7e99a61..40000dae 100644
--- a/data/lang.txt
+++ b/data/lang.txt
@@ -4784,6 +4784,55 @@ cs*:
hu*:
nl : Omschrijving
+:_revfield_c_b_month
+en : Birthday - month
+ru*:
+cs*:
+hu*:
+nl : Verjaardag - maand
+
+:_revfield_c_b_day
+en : Birthday - day
+ru*:
+cs*:
+hu*:
+nl : Verjaardag - dag
+
+:_revfield_c_s_bust
+en : Bust
+ru*:
+cs*:
+hu*:
+nl : Borst
+
+:_revfield_c_s_waist
+en : Waist
+ru*:
+cs*:
+hu*:
+nl : Taille
+
+:_revfield_c_s_hip
+en : Hip
+ru*:
+cs*:
+hu*:
+nl :
+
+:_revfield_c_height
+en : Height
+ru*:
+cs*:
+hu*:
+nl : Lengte
+
+:_revfield_c_weight
+en : Weight
+ru*:
+cs*:
+hu*:
+nl : Gewicht
+
:_revfield_c_image
en : Image
ru*:
@@ -4843,6 +4892,35 @@ cs*:
hu*:
nl : Aliassen
+:_charp_meas
+en : Measurements
+ru*:
+cs*:
+hu*:
+nl : Afmetingen
+
+:_charp_meas_h
+en : Height: [_1]cm
+ru*:
+cs*:
+hu*:
+nl : Lengte: [_1]cm
+
+:_charp_meas_w
+en : Weight: [_1]kg
+ru*:
+cs*:
+hu*:
+nl : Gewicht: [_1]kg
+
+# Bust/Waist/Hip
+:_charp_meas_bwh
+en : BWH: [_1]-[_2]-[_3]cm
+ru*:
+cs*:
+hu*:
+nl :
+
:_charp_description
en : Description
ru*:
@@ -4851,6 +4929,7 @@ hu*:
nl : Beschrijving
+
# Add/edit character
:_chare_title_edit
@@ -4909,6 +4988,69 @@ cs*:
hu*:
nl : (In)officiele aliassen, elke alias op een aparte regel.
+:_chare_form_desc
+en : Description
+ru : Описание
+cs : Popis
+hu : Leírás
+nl : Omschrijving
+
+:_chare_form_bday
+en : Birthday
+ru*:
+cs*:
+hu*:
+nl : Verjaardag
+
+:_chare_form_bday_fmt
+en : MM-DD (e.g. "01-26" for the 26th of Januari)
+ru*:
+cs*:
+hu*:
+nl : MM-DD (b.v. "01-26" voor 26 januari)
+
+:_chare_form_bday_err
+en : Birthday must be in MM-DD format.
+ru*:
+cs*:
+hu*:
+nl : Verjaardag moet in het MM-DD formaat zijn.
+
+:_chare_form_bust
+en : Bust
+ru*:
+cs*:
+hu*:
+nl : Borst
+
+:_chare_form_waist
+en : Waist
+ru*:
+cs*:
+hu*:
+nl : Taille
+
+:_chare_form_hip
+en : Hips
+ru*:
+cs*:
+hu*:
+nl : Hippen
+
+:_chare_form_height
+en : Height
+ru*:
+cs*:
+hu*:
+nl : Lengte
+
+:_chare_form_weight
+en : Weight
+ru*:
+cs*:
+hu*:
+nl : Gewicht
+
:_chare_image
en : Image
ru : Изображение
@@ -6786,7 +6928,7 @@ nl : Spatiegescheiden lijst van [url,http://anidb.net/,AniDB] anime IDs.
en [url,http://anidb.net/a3348,Fate/stay night] toe als gerelateerde anime.[br]
Houd er rekening mee dat het een aantal minuten kan duren voordat de animetitels zichtbaar worden op de VN pagina.
-:_chare_form_desc
+:_vnedit_form_desc
en : Description
ru : Описание
cs : Popis
diff --git a/lib/VNDB/DB/Chars.pm b/lib/VNDB/DB/Chars.pm
index 3f744239..15cfd134 100644
--- a/lib/VNDB/DB/Chars.pm
+++ b/lib/VNDB/DB/Chars.pm
@@ -26,7 +26,7 @@ sub dbCharGet {
);
my @select = qw|c.id cr.name cr.original|;
- push @select, qw|c.hidden c.locked cr.alias cr.desc cr.image| if $o{what} =~ /extended/;
+ push @select, qw|c.hidden c.locked cr.alias cr.desc cr.image cr.b_month cr.b_day cr.s_bust cr.s_waist cr.s_hip cr.height cr.weight| if $o{what} =~ /extended/;
push @select, qw|h.requester h.comments c.latest u.username h.rev h.ihid h.ilock|, "extract('epoch' from h.added) as added", 'cr.id AS cid' if $o{what} =~ /changes/;
my @join;
@@ -51,7 +51,7 @@ sub dbCharRevisionInsert {
my($self, $o) = @_;
my %set = map exists($o->{$_}) ? (qq|"$_" = ?|, $o->{$_}) : (),
- qw|name original alias desc image|;
+ qw|name original alias desc image b_month b_day s_bust s_waist s_hip height weight|;
$self->dbExec('UPDATE edit_char !H', \%set) if keys %set;
}
diff --git a/lib/VNDB/Handler/Chars.pm b/lib/VNDB/Handler/Chars.pm
index 3c8f7231..f217bfc5 100644
--- a/lib/VNDB/Handler/Chars.pm
+++ b/lib/VNDB/Handler/Chars.pm
@@ -35,6 +35,13 @@ sub page {
[ original => diff => 1 ],
[ alias => diff => qr/[ ,\n\.]/ ],
[ desc => diff => qr/[ ,\n\.]/ ],
+ [ b_month => serialize => sub { $_[0]||mt '_revision_empty' } ],
+ [ b_day => serialize => sub { $_[0]||mt '_revision_empty' } ],
+ [ s_bust => serialize => sub { $_[0]||mt '_revision_empty' } ],
+ [ s_waist => serialize => sub { $_[0]||mt '_revision_empty' } ],
+ [ s_hip => serialize => sub { $_[0]||mt '_revision_empty' } ],
+ [ height => serialize => sub { $_[0]||mt '_revision_empty' } ],
+ [ weight => serialize => sub { $_[0]||mt '_revision_empty' } ],
[ image => htmlize => sub {
return $_[0] > 0 ? sprintf '<img src="%s/ch/%02d/%d.jpg" />', $self->{url_static}, $_[0]%100, $_[0]
: mt $_[0] < 0 ? '_chdiff_image_proc' : '_chdiff_image_none';
@@ -81,6 +88,15 @@ sub page {
td $r->{alias};
end;
}
+ if($r->{height} || $r->{weight} || $r->{s_bust} || $r->{s_waist} || $r->{s_hip}) {
+ Tr ++$i % 2 ? (class => 'odd') : ();
+ td mt '_charp_meas';
+ td join ', ',
+ $r->{s_bust} || $r->{s_waist} || $r->{s_hip} ? mt('_charp_meas_bwh', $r->{s_bust}||'??', $r->{s_waist}||'??', $r->{s_hip}||'??') : (),
+ $r->{height} ? mt('_charp_meas_h', $r->{height}) : (),
+ $r->{weight} ? mt('_charp_meas_w', $r->{weight}) : ();
+ end;
+ }
if($r->{desc}) {
Tr;
td class => 'chardesc', colspan => 2;
@@ -113,7 +129,8 @@ sub edit {
|| $id && ($r->{locked} && !$self->authCan('lock') || $r->{hidden} && !$self->authCan('del'));
my %b4 = !$id ? () : (
- (map { $_ => $r->{$_} } qw|name original alias desc image ihid ilock|),
+ (map +($_ => $r->{$_}), qw|name original alias desc image ihid ilock s_bust s_waist s_hip height weight|),
+ bday => $r->{b_month} ? sprintf('%02d-%02d', $r->{b_month}, $r->{b_day}) : '',
);
my $frm;
@@ -125,6 +142,12 @@ sub edit {
{ post => 'alias', required => 0, maxlength => 500, default => '' },
{ post => 'desc', required => 0, maxlength => 5000, default => '' },
{ post => 'image', required => 0, default => 0, template => 'int' },
+ { post => 'bday', required => 0, default => '', regex => [ qr/^\d{2}-\d{2}$/, mt('_chare_form_bday_err') ] },
+ { post => 's_bust', required => 0, default => 0, template => 'int' },
+ { post => 's_waist', required => 0, default => 0, template => 'int' },
+ { post => 's_hip', required => 0, default => 0, template => 'int' },
+ { post => 'height', required => 0, default => 0, template => 'int' },
+ { post => 'weight', required => 0, default => 0, template => 'int' },
{ post => 'editsum', required => 0, maxlength => 5000 },
{ post => 'ihid', required => 0 },
{ post => 'ilock', required => 0 },
@@ -137,6 +160,7 @@ sub edit {
if(!$frm->{_err}) {
$frm->{ihid} = $frm->{ihid} ?1:0;
$frm->{ilock} = $frm->{ilock}?1:0;
+ ($frm->{b_month}, $frm->{b_day}) = delete($frm->{bday}) =~ /^(\d{2})-(\d{2})$/ ? ($1, $2) : (0, 0);
return $self->resRedirect("/c$id", 'post')
if $id && !grep $frm->{$_} ne $b4{$_}, keys %b4;
@@ -161,6 +185,12 @@ sub edit {
[ text => name => mt('_chare_form_alias'), short => 'alias', rows => 3 ],
[ static => content => mt('_chare_form_alias_note') ],
[ text => name => mt('_chare_form_desc').'<br /><b class="standout">'.mt('_inenglish').'</b>', short => 'desc', rows => 6 ],
+ [ input => name => mt('_chare_form_bday'), short => 'bday', width => 100, post => ' '.mt('_chare_form_bday_fmt') ],
+ [ input => name => mt('_chare_form_bust'), short => 's_bust', width => 50, post => ' cm' ],
+ [ input => name => mt('_chare_form_waist'), short => 's_waist',width => 50, post => ' cm' ],
+ [ input => name => mt('_chare_form_hip'), short => 's_hip', width => 50, post => ' cm' ],
+ [ input => name => mt('_chare_form_height'),short => 'height', width => 50, post => ' cm' ],
+ [ input => name => mt('_chare_form_weight'),short => 'weight', width => 50, post => ' kg' ],
],
chare_img => [ mt('_chare_image'), [ static => nolabel => 1, content => sub {
diff --git a/util/sql/func.sql b/util/sql/func.sql
index 2b204902..ffc39d3b 100644
--- a/util/sql/func.sql
+++ b/util/sql/func.sql
@@ -373,8 +373,6 @@ $$ LANGUAGE plpgsql;
--- PLACEHOLDERS, not complete yet
-
CREATE OR REPLACE FUNCTION edit_char_init(hid integer) RETURNS void AS $$
BEGIN
BEGIN
@@ -390,7 +388,7 @@ BEGIN
INSERT INTO edit_char DEFAULT VALUES;
-- load revision
ELSE
- INSERT INTO edit_char SELECT name, original, alias, image, "desc" FROM chars_rev WHERE id = hid;
+ INSERT INTO edit_char SELECT name, original, alias, image, "desc", s_bust, s_waist, s_hip, b_month, b_day, height, weight FROM chars_rev WHERE id = hid;
END IF;
END;
$$ LANGUAGE plpgsql;
@@ -405,7 +403,7 @@ BEGIN
RAISE 'edit_char must have exactly one row!';
END IF;
SELECT INTO r * FROM edit_commit();
- INSERT INTO chars_rev SELECT r.cid, r.iid, name, original, alias, image, "desc" FROM edit_char;
+ INSERT INTO chars_rev SELECT r.cid, r.iid, name, original, alias, image, "desc", s_bust, s_waist, s_hip, b_month, b_day, height, weight FROM edit_char;
UPDATE chars SET latest = r.cid WHERE id = r.iid;
RETURN r;
END;