summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/docs/1642
-rw-r--r--data/lang.txt47
-rw-r--r--lib/VNDB/DB/Staff.pm4
-rw-r--r--lib/VNDB/Handler/Staff.pm37
-rw-r--r--util/sql/func.sql6
-rw-r--r--util/sql/staff.sql5
6 files changed, 113 insertions, 28 deletions
diff --git a/data/docs/16 b/data/docs/16
index 97d7b2db..3dfde3a7 100644
--- a/data/docs/16
+++ b/data/docs/16
@@ -3,18 +3,42 @@
:SUB:Introduction
<p>
- Add major staff members.
+ Staff entries represent individuals and groups that play significant roles in visual
+ novels production, such as script writers, character designers, artists, voice actors,
+ composers and singers.
</p>
:SUB:General info
<dl>
- <dt>Name (romaji)</dt><dd>Person true name, in the latin alphabet.
- Check out the <a href="/d5">general editing guidelines</a>
- for information on name order and romanization. Try to use the full name when known.
- <a href="/d5.1">Romanise</a> according to our guidelines.
- </dd><dt>Original name</dt><dd>The actual name of the person, in the case it is not officially in the latin alphabet. Leave empty if it's the same as the "Name (romaji)". If possible, try to include a space between the given name and the surname.
- </dd><dt>Staff note</dt><dd>Comment.
- </dd><dt>Gender</dt><dd>.
- </dd><dt>Primary language</dt><dd>.
+ <dt>Name (romaji)</dt><dd>
+ Person's true name, in the latin alphabet. If true name is unknown, fill in the most
+ widely used alias. Check out the <a href="/d5">general editing guidelines</a> for
+ information on name order and romanization. <a href="/d5.1">Romanise</a> according to our
+ guidelines.
+ </dd><dt>Original name</dt><dd>
+ The actual name of the person, in the case it is not officially in the latin alphabet.
+ Leave empty if it's the same as the "Name (romaji)". To simplify database searches, do not
+ include a space between the given name and the surname.
+ </dd><dt>Gender</dt><dd>
+ Person's gender, if known.
+ </dd><dt>Primary language</dt><dd>
+ Native language, japanese by default.
+ </dd><dt>Staff note</dt><dd>
+ Brief note describing biography, occupation and production companies affiliations, if any.
+ It's fine to leave this field empty if there's nothing much known about the person in question.
+ </dd><dt>Official page</dt><dd>
+ Link to the official page or blog.
+ </dd><dt>Additional links</dt><dd>
+ You could also provide links to Wikipedia entry, Twitter account and/or AniDB entry. Do
+ not specify the full URL for additional links, we only need a small part of it!
</dd>
</dl>
+
+:SUB:Aliases
+<p>
+ People involved in visual novels production are often hide behind multiple aliases. These
+ aliases could be listed here. Add only aliases that are actually used in VN credits.
+ Sometimes names with different japanese spelling are romanized equally. You may add such
+ aliases, but then original spelling should be used when name is being looked up in the VN
+ staff edit form.
+</p>
diff --git a/data/lang.txt b/data/lang.txt
index 110e2f6e..7e32b2af 100644
--- a/data/lang.txt
+++ b/data/lang.txt
@@ -5385,6 +5385,15 @@ en : Aliases
:_revfield_s_l_wp
en : Wikipedia link
+:_revfield_s_l_site
+en : Official page
+
+:_revfield_s_l_twitter
+en : Twitter account
+
+:_revfield_s_l_anidb
+en : AniDB creator ID
+
:_revfield_s_desc
en : Description
@@ -5420,9 +5429,21 @@ en : Language
:_staff_aliases
en : Aliases
+:_staff_links
+en : Links
+
:_staff_l_wp
en : Wikipedia
+:_staff_l_site
+en : Official page
+
+:_staff_l_twitter
+en : Twitter
+
+:_staff_l_anidb
+en : AniDB
+
:_staff_bio
en : Info
@@ -5471,7 +5492,8 @@ en : Alias (romaji)
en : Original alias
:_staffe_form_original_note
-en : The original name of the person, leave blank if it is already in the Latin alphabet.
+en : The original name of the person, leave blank if it is already in the Latin alphabet.[br]
+ For japanese names, do not include a space between the given name and the surname.
:_staffe_form_note
en : Staff note
@@ -5485,6 +5507,18 @@ en : Primary language
:_staffe_form_wikipedia
en : Wikipedia link
+:_staffe_form_site
+en : Official page
+
+:_staffe_form_twitter
+en : Twitter username
+
+:_staffe_form_tw_err
+en : Invalid twitter username
+
+:_staffe_form_anidb
+en : AniDB creator ID
+
:_staffe_aliases
en : Aliases
@@ -13139,7 +13173,16 @@ it : Scegli questa opzione se l'immagine contiene nudi, gore o รจ generalmente n
en : Staff
:_vnedit_staff_msg
-en : This message is a placeholder for concise guidelines regarding adding VN staff.
+en : Please adhere to the folowing guidelines:[br]
+ - Preferably add major staff only.[br]
+ - Use "Staff" option with accompanying note for any additional minor roles.[br]
+ - If someone performed several important jobs, add multiple entries with different major roles.[br]
+ - Don't add a person as "Staff" if he/she is already credited with some of the major
+ roles. Add note instead.[br]
+ - Voice actors should be added under the "Cast" tab (available only if VN has any
+ characters listed).[br]
+ - If database doesn't contain particular name yet, add corresponding entry
+ [url,/s/new,here], but check for aliases first.
:_vnedit_cast
en : Cast
diff --git a/lib/VNDB/DB/Staff.pm b/lib/VNDB/DB/Staff.pm
index 798200f6..cd2f7477 100644
--- a/lib/VNDB/DB/Staff.pm
+++ b/lib/VNDB/DB/Staff.pm
@@ -39,7 +39,7 @@ sub dbStaffGet {
push @join, 'JOIN users u ON u.id = c.requester' if $o{what} =~ /changes/;
my $select = 's.id, sa.id AS aid, sa.name, sa.original, sr.gender, sr.lang, sr.id AS cid';
- $select .= ', sr.desc, sr.l_wp, s.hidden, s.locked' if $o{what} =~ /extended/;
+ $select .= ', sr.desc, sr.l_wp, sr.l_site, sr.l_twitter, sr.l_anidb, s.hidden, s.locked' if $o{what} =~ /extended/;
$select .= q|, extract('epoch' from c.added) as added, c.requester, c.comments, s.latest, u.username, c.rev, c.ihid, c.ilock| if $o{what} =~ /changes/;
my $order = 'ORDER BY sa.name';
@@ -113,7 +113,7 @@ sub dbStaffRevisionInsert {
}
my %staff = map exists($o->{$_}) ? (qq|"$_" = ?|, $o->{$_}) : (),
- qw|aid image gender lang desc l_wp|;
+ qw|aid image gender lang desc l_wp l_site l_twitter l_anidb|;
$self->dbExec('UPDATE edit_staff !H', \%staff) if %staff;
for my $alias (@{$o->{aliases}}) {
if ($alias->[0]) {
diff --git a/lib/VNDB/Handler/Staff.pm b/lib/VNDB/Handler/Staff.pm
index af08a836..fbfb81a6 100644
--- a/lib/VNDB/Handler/Staff.pm
+++ b/lib/VNDB/Handler/Staff.pm
@@ -36,13 +36,13 @@ sub page {
[ original => diff => 1 ],
[ gender => serialize => sub { mt "_gender_$_[0]" } ],
[ lang => serialize => sub { "$_[0] (".mt("_lang_$_[0]").')' } ],
+ [ l_site => diff => 1 ],
[ l_wp => htmlize => sub {
$_[0] ? sprintf '<a href="http://en.wikipedia.org/wiki/%s">%1$s</a>', xml_escape $_[0] : mt '_revision_nolink'
}],
+ [ l_twitter => diff => 1 ],
+ [ l_anidb => serialize => sub { $_[0] // '' } ],
[ desc => diff => qr/[ ,\n\.]/ ],
-# [ image => htmlize => sub {
-# return $_[0] ? sprintf '<img src="%s" />', imgurl(ch => $_[0]) : mt '_stdiff_image_none';
-# }],
[ aliases => join => '<br />', split => sub {
map xml_escape(sprintf('%s%s', $_->{name}, $_->{original} ? ' ('.$_->{original}.')' : '')), @{$_[0]};
}],
@@ -79,10 +79,20 @@ sub page {
end;
end;
}
- if ($s->{l_wp}) {
+ my @links = (
+ $s->{l_site} ? [ 'site', $s->{l_site} ] : (),
+ $s->{l_wp} ? [ 'wp', "http://en.wikipedia.org/wiki/$s->{l_wp}" ] : (),
+ $s->{l_twitter} ? [ 'twitter', "https://twitter.com/$s->{l_twitter}" ] : (),
+ $s->{l_anidb} ? [ 'anidb', "http://anidb.net/cr$s->{l_anidb}" ] : (),
+ );
+ if(@links) {
Tr;
- td colspan => 2;
- a href => "http://en.wikipedia.org/wiki/$s->{l_wp}", mt '_staff_l_wp';
+ td class => 'key', mt '_staff_links';
+ td;
+ for(@links) {
+ a href => $_->[1], mt "_staff_l_$_->[0]";
+ br if $_ != $links[$#links];
+ }
end;
end;
}
@@ -195,10 +205,10 @@ sub edit {
|| $sid && (($s->{locked} || $s->{hidden}) && !$self->authCan('dbmod'));
my %b4 = !$sid ? () : (
- (map { $_ => $s->{$_} } qw|aid name original gender lang desc l_wp ihid ilock|),
+ (map { $_ => $s->{$_} } qw|aid name original gender lang desc l_wp l_site l_twitter l_anidb ihid ilock|),
aliases => jsonEncode [
map +{ aid => $_->{id}, name => $_->{name}, orig => $_->{original} },
- sort { $a->{name} <=> $b->{name} } @{$s->{aliases}}
+ sort { $a->{name} cmp $b->{name} } @{$s->{aliases}}
],
);
my $frm;
@@ -213,6 +223,9 @@ sub edit {
{ post => 'gender', required => 0, default => 'unknown', enum => [qw|unknown m f|] },
{ post => 'lang', enum => $self->{languages} },
{ post => 'l_wp', required => 0, maxlength => 150, default => '' },
+ { post => 'l_site', required => 0, template => 'url', maxlength => 250, default => '' },
+ { post => 'l_twitter', required => 0, maxlength => 16, default => '', regex => [ qr/^\S+$/, mt('_staffe_form_tw_err') ] },
+ { post => 'l_anidb', required => 0, template => 'int', default => undef },
{ post => 'image', required => 0, default => 0, template => 'int' },
{ post => 'aliases', required => 0, maxlength => 5000, default => '' },
{ post => 'editsum', required => 0, maxlength => 5000 },
@@ -235,12 +248,12 @@ sub edit {
}
if(!$frm->{_err}) {
# parse and normalize
- $frm->{aliases} = jsonEncode $aliases;
+ $frm->{aliases} = jsonEncode [ sort { $a->{name} cmp $b->{name} } @$aliases ];
$frm->{ihid} = $frm->{ihid} ?1:0;
$frm->{ilock} = $frm->{ilock}?1:0;
return $self->resRedirect("/s$sid", 'post')
- if $sid && !first { $frm->{$_} ne $b4{$_} } keys %b4;
+ if $sid && !first { ($frm->{$_}//'') ne ($b4{$_}//'') } keys %b4;
}
if(!$frm->{_err}) {
$frm->{aliases} = [ map [ @{$_}{qw|aid name orig|} ], @$aliases ];
@@ -268,7 +281,10 @@ sub edit {
map [ $_, mt("_gender_$_") ], qw(unknown m f) ] ],
[ select => name => mt('_staffe_form_lang'), short => 'lang',
options => [ map [ $_, "$_ (".mt("_lang_$_").')' ], sort @{$self->{languages}} ] ],
+ [ input => name => mt('_staffe_form_site'), short => 'l_site' ],
[ input => name => mt('_staffe_form_wikipedia'), short => 'l_wp', pre => 'http://en.wikipedia.org/wiki/' ],
+ [ input => name => mt('_staffe_form_twitter'), short => 'l_twitter' ],
+ [ input => name => mt('_staffe_form_anidb'), short => 'l_anidb' ],
[ static => content => '<br />' ],
],
@@ -347,7 +363,6 @@ sub list {
for ($perlist*$c..($perlist*($c+1))-1) {
li;
my $gender = $list->[$_]{gender};
-# cssicon "gen $gender", mt "_gender_$gender" if $gender ne 'unknown';
cssicon 'lang '.$list->[$_]{lang}, mt "_lang_$list->[$_]{lang}";
a href => "/s$list->[$_]{id}",
title => $list->[$_]{original}, $list->[$_]{name};
diff --git a/util/sql/func.sql b/util/sql/func.sql
index a1d776d2..345f4411 100644
--- a/util/sql/func.sql
+++ b/util/sql/func.sql
@@ -483,7 +483,7 @@ BEGIN
INSERT INTO edit_staff (aid) VALUES (0);
-- load revision
ELSE
- INSERT INTO edit_staff SELECT aid, image, gender, lang, "desc", l_wp FROM staff_rev WHERE id = cid;
+ INSERT INTO edit_staff SELECT aid, image, gender, lang, "desc", l_wp, l_site, l_twitter, l_anidb FROM staff_rev WHERE id = cid;
INSERT INTO edit_staff_aliases SELECT id, name, original FROM staff_alias WHERE rid = cid;
END IF;
END;
@@ -500,8 +500,8 @@ BEGIN
SELECT INTO r * FROM edit_commit();
INSERT INTO staff_alias (id, rid, name, original)
SELECT id, r.cid, name, original FROM edit_staff_aliases;
- INSERT INTO staff_rev (id, sid, aid, image, gender, lang, "desc", l_wp)
- SELECT r.cid, r.iid, aid, image, gender, lang, "desc", l_wp FROM edit_staff;
+ INSERT INTO staff_rev (id, sid, aid, image, gender, lang, "desc", l_wp, l_site, l_twitter, l_anidb)
+ SELECT r.cid, r.iid, aid, image, gender, lang, "desc", l_wp, l_site, l_twitter, l_anidb FROM edit_staff;
UPDATE staff SET latest = r.cid WHERE id = r.iid;
RETURN r;
END;
diff --git a/util/sql/staff.sql b/util/sql/staff.sql
index 7c99971e..75a34979 100644
--- a/util/sql/staff.sql
+++ b/util/sql/staff.sql
@@ -18,7 +18,10 @@ CREATE TABLE staff_rev (
gender gender NOT NULL DEFAULT 'unknown',
lang language NOT NULL DEFAULT 'ja',
"desc" text NOT NULL DEFAULT '',
- l_wp varchar(150) NOT NULL DEFAULT ''
+ l_wp varchar(150) NOT NULL DEFAULT '',
+ l_site varchar(250) NOT NULL DEFAULT '',
+ l_twitter varchar(16) NOT NULL DEFAULT '',
+ l_anidb integer
);
CREATE TABLE staff_alias (