diff options
author | Yorhel <git@yorhel.nl> | 2011-02-18 16:44:21 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2011-02-18 16:44:21 +0100 |
commit | 9470cf12cb6ae8a4610a24ae5b60017ddfcc1568 (patch) | |
tree | ef9aa0d74b38649937cbb2f3331096a95a9f9fc0 | |
parent | 04db44f229360b5ff206419f0e17c4f525ea9aed (diff) |
chardb: Implemented BWH/height/weight fields
-rw-r--r-- | data/lang.txt | 144 | ||||
-rw-r--r-- | lib/VNDB/DB/Chars.pm | 4 | ||||
-rw-r--r-- | lib/VNDB/Handler/Chars.pm | 32 | ||||
-rw-r--r-- | util/sql/func.sql | 6 |
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; |