From d03465b573c10b10819201bba8257e59362589f1 Mon Sep 17 00:00:00 2001 From: Yorhel Date: Sat, 21 Feb 2009 19:00:12 +0100 Subject: Aliases field to producer entries --- ChangeLog | 3 +++ data/docs/4 | 2 ++ lib/VNDB/DB/Producers.pm | 8 ++++---- lib/VNDB/Handler/Producers.pm | 7 ++++++- util/dump.sql | 3 ++- util/updates/update_2.3.sql | 5 +++++ 6 files changed, 22 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 164d96b5..8aa03ff7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,9 @@ - Homepage shows platform icons for releases - Don't show deleted items on /u+ recent changes - Catalog number field to release entries + - Aliases field to producers + - Various small improvements to the BBcode + - Various bugfixes 2.2 - 2009-01-16 - Additional custom CSS field to user profile diff --git a/data/docs/4 b/data/docs/4 index 71293904..ea99500c 100644 --- a/data/docs/4 +++ b/data/docs/4 @@ -17,6 +17,8 @@ The name of the producer in the Latin alphabet (using Romanisation or translation).
Original name
If the Name (above) has been Romanised or translated, place the original name here. +
Aliases
+ Other names the producer is known as. Multiple aliases should be separated by a comma.
Primary language
The language the the producer works in most of the time. By default, it is Japanese.
Website
diff --git a/lib/VNDB/DB/Producers.pm b/lib/VNDB/DB/Producers.pm index c7abd765..141639f9 100644 --- a/lib/VNDB/DB/Producers.pm +++ b/lib/VNDB/DB/Producers.pm @@ -27,7 +27,7 @@ sub dbProducerGet { $o{id} ? ( 'p.id = ?' => $o{id} ) : (), $o{search} ? ( - '(pr.name ILIKE ? OR pr.original ILIKE ?)', [ '%%'.$o{search}.'%%', '%%'.$o{search}.'%%' ] ) : (), + '(pr.name ILIKE ? OR pr.original ILIKE ? OR pr.alias ILIKE ?)', [ map '%%'.$o{search}.'%%', 1..3 ] ) : (), $o{char} ? ( 'LOWER(SUBSTR(pr.name, 1, 1)) = ?' => $o{char} ) : (), defined $o{char} && !$o{char} ? ( @@ -41,7 +41,7 @@ sub dbProducerGet { push @join, 'JOIN changes c ON c.id = pr.id' if $o{what} =~ /changes/ || $o{rev}; push @join, 'JOIN users u ON u.id = c.requester' if $o{what} =~ /changes/; - my $select = 'p.id, p.locked, p.hidden, pr.type, pr.name, pr.original, pr.website, pr.lang, pr.desc'; + my $select = 'p.id, p.locked, p.hidden, pr.type, pr.name, pr.original, pr.website, pr.lang, pr.desc, pr.alias'; $select .= ', c.added, c.requester, c.comments, p.latest, pr.id AS cid, u.username, c.rev' if $o{what} =~ /changes/; my($r, $np) = $self->dbPage(\%o, q| @@ -105,9 +105,9 @@ sub dbProducerAdd { sub insert_rev { my($self, $cid, $pid, $o) = @_; $self->dbExec(q| - INSERT INTO producers_rev (id, pid, name, original, website, type, lang, "desc") + INSERT INTO producers_rev (id, pid, name, original, website, type, lang, "desc", alias) VALUES (!l)|, - [ $cid, $pid, @$o{qw| name original website type lang desc|} ] + [ $cid, $pid, @$o{qw| name original website type lang desc alias|} ] ); } diff --git a/lib/VNDB/Handler/Producers.pm b/lib/VNDB/Handler/Producers.pm index 0efd2f47..36b9b1cf 100644 --- a/lib/VNDB/Handler/Producers.pm +++ b/lib/VNDB/Handler/Producers.pm @@ -36,6 +36,7 @@ sub page { [ type => 'Type', serialize => sub { $self->{producer_types}{$_[0]} } ], [ name => 'Name (romaji)', diff => 1 ], [ original => 'Original name', diff => 1 ], + [ alias => 'Aliases', diff => 1 ], [ lang => 'Language', serialize => sub { "$_[0] ($self->{languages}{$_[0]})" } ], [ website => 'Website', diff => 1 ], [ desc => 'Description', diff => 1 ], @@ -48,6 +49,7 @@ sub page { h2 class => 'alttitle', $p->{original} if $p->{original}; p class => 'center'; txt "$self->{languages}{$p->{lang}} \L$self->{producer_types}{$p->{type}}"; + txt "\na.k.a. $p->{alias}" if $p->{alias}; if($p->{website}) { txt "\n"; a href => $p->{website}, $p->{website}; @@ -94,7 +96,7 @@ sub edit { return $self->htmlDenied if !$self->authCan('edit') || $pid && ($p->{locked} && !$self->authCan('lock') || $p->{hidden} && !$self->authCan('del')); - my %b4 = !$pid ? () : map { $_ => $p->{$_} } qw|type name original lang website desc|; + my %b4 = !$pid ? () : map { $_ => $p->{$_} } qw|type name original lang website desc alias|; my $frm; if($self->reqMethod eq 'POST') { @@ -102,6 +104,7 @@ sub edit { { name => 'type', enum => [ keys %{$self->{producer_types}} ] }, { name => 'name', maxlength => 200 }, { name => 'original', required => 0, maxlength => 200, default => '' }, + { name => 'alias', required => 0, maxlength => 500, default => '' }, { name => 'lang', enum => [ keys %{$self->{languages}} ] }, { name => 'website', required => 0, template => 'url', default => '' }, { name => 'desc', required => 0, maxlength => 5000, default => '' }, @@ -137,6 +140,8 @@ sub edit { [ input => name => 'Name (romaji)', short => 'name' ], [ input => name => 'Original name', short => 'original' ], [ static => content => q|The original name of the producer, leave blank if it is already in the Latin alphabet.| ], + [ input => name => 'Aliases', short => 'alias', width => 400 ], + [ static => content => q|(Un)official aliases, separated by a comma.| ], [ select => name => 'Primary language', short => 'lang', options => [ map [ $_, "$_ ($self->{languages}{$_})" ], sort keys %{$self->{languages}} ] ], [ input => name => 'Website', short => 'website' ], diff --git a/util/dump.sql b/util/dump.sql index 470a8aeb..e3652a0f 100644 --- a/util/dump.sql +++ b/util/dump.sql @@ -58,7 +58,8 @@ CREATE TABLE producers_rev ( original varchar(200) NOT NULL DEFAULT '', website varchar(250) NOT NULL DEFAULT '', lang varchar NOT NULL DEFAULT 'ja', - "desc" text NOT NULL DEFAULT '' + "desc" text NOT NULL DEFAULT '', + alias varchar(500) NOT NULL DEFAULT '' ); diff --git a/util/updates/update_2.3.sql b/util/updates/update_2.3.sql index d43718c9..21db32ca 100644 --- a/util/updates/update_2.3.sql +++ b/util/updates/update_2.3.sql @@ -9,3 +9,8 @@ CREATE TABLE quotes ( -- catalog numbers for releases ALTER TABLE releases_rev ADD COLUMN catalog varchar(50) NOT NULL DEFAULT ''; + + +-- aliases field for producers +ALTER TABLE producers_rev ADD COLUMN alias varchar(500) NOT NULL DEFAULT ''; + -- cgit v1.2.3