summaryrefslogtreecommitdiff
path: root/lib/VNDB/DB/ULists.pm
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2009-07-04 13:53:36 +0200
committerYorhel <git@yorhel.nl>2009-07-04 13:53:36 +0200
commit1c3769e0bac96979cc1aba0a80081b69a8470528 (patch)
tree95ce961d93f72b3e14c2b2dd71d65f60eae94f13 /lib/VNDB/DB/ULists.pm
parent45843fa3b02a69951fe7f4144ccdcbca76609180 (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.pm21
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;