diff options
author | Yorhel <git@yorhel.nl> | 2009-07-04 13:53:36 +0200 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2009-07-04 13:53:36 +0200 |
commit | 1c3769e0bac96979cc1aba0a80081b69a8470528 (patch) | |
tree | 95ce961d93f72b3e14c2b2dd71d65f60eae94f13 /lib/VNDB/DB/ULists.pm | |
parent | 45843fa3b02a69951fe7f4144ccdcbca76609180 (diff) |
Implemented support for multilingual releases
The 'language' column in releases_rev has been replaced with a
releases_lang table. As this is quite a big change, there may still
be bugs floating around somewhere.
Diffstat (limited to 'lib/VNDB/DB/ULists.pm')
-rw-r--r-- | lib/VNDB/DB/ULists.pm | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/lib/VNDB/DB/ULists.pm b/lib/VNDB/DB/ULists.pm index 829ee537..4fca60f7 100644 --- a/lib/VNDB/DB/ULists.pm +++ b/lib/VNDB/DB/ULists.pm @@ -77,8 +77,8 @@ sub dbVNListList { $_->{vid}, $_->{rels} } @$r; - push @{$vns{$_->{vid}}}, $_ for (@{$self->dbAll(q| - SELECT rv.vid, rr.rid, rr.title, rr.original, rr.released, rr.type, rr.language, rr.minage, rl.rstat, rl.vstat + my $rel = $self->dbAll(q| + SELECT rv.vid, rr.rid, r.latest, rr.title, rr.original, rr.released, rr.type, rr.minage, rl.rstat, rl.vstat FROM rlists rl JOIN releases r ON rl.rid = r.id JOIN releases_rev rr ON rr.id = r.latest @@ -87,7 +87,22 @@ sub dbVNListList { AND rv.vid IN(!l) ORDER BY rr.released ASC|, $o{uid}, [ keys %vns ] - )}); + ); + + if(@$rel) { + my %rel = map { + $_->{languages}=[]; + $_->{latest}, $_->{languages} + } @$rel; + + push(@{$rel{$_->{rid}}}, $_->{lang}) for (@{$self->dbAll(q| + SELECT rid, lang + FROM releases_lang + WHERE rid IN(!l)|, + [ keys %rel ] + )}); + push @{$vns{$_->{vid}}}, $_ for @$rel; + } } return wantarray ? ($r, $np) : $r; |