# returns a string for a single crossover. The input is a hash ref.
sub get_crossover {
my ($crossover) = @_;
my $episode = $crossover->{'episode'};
my $season = $crossover->{'season'};
my $program = $crossover->{'movie'};
my $cseries = $crossover->{'series'};
my $crossover_text = undef;
if ($episode || $season || $program || $cseries) {
my $season_text = $season ? "season $season" : undef;
my $episode_text = $episode ? textify(qq( "$episode")) : '';
my $search = $cseries ? $cseries : $program ? $program : undef;
my $id = $cseries && $series->{$cseries} ? [grep(defined,($program,$season_text))] : $program && $movies->{$program} && $season_text ? [$season_text] : undef;
$crossover_text = search_link($search,$id).qq($episode_text);
}
return $crossover_text;
}
####
# creates a link to the Movies_by_series page. It is used in series_text, get_crossover, and elsewhere.
sub search_link {
my ($movie, $id) = @_;
my $search = undef;
my $texti = textify($movie);
if (($series->{$movie} && $id) || ($movies->{$movie} && $id)) {
$search = searchify($movie,$id);
$texti = $movies->{$id->[0]} ? textify($id->[0]) : textify($movie);
}
elsif($series->{$movie} || $movies->{$movie}) {
$search = searchify($movie);
}
my $text = "$texti";
my $root_link = get_root('link');
my $search_text = $search ? anchor($text, { 'href' => "$root_link/Movies/Movies_by_series.pl?series=$search" }) : $text;
return $search_text;
}
##
##
# returns the title in italics and the start year in parentheses.
sub display_simple_movie {
my ($imovie) = @_;
my $movie = movie($imovie, 'display_simple_movie');
my $title = textify($imovie);
my $start = $movie->{'start year'} ? $movie->{'start year'} : undef;
my $item;
if ($movie->{'series'}) {
my $group;
if (@{$movie->{'series'}} > 1) {
($group) = sort { scalar @{$series->{$b}{'programs'}} <=> scalar @{$series->{$a}{'programs'}} } @{$movie->{'series'}};
}
else {
$group = $movie->{'series'}[0];
}
$item = search_link($group, [$movie->{'title'}]);
}
elsif ($movie->{'seasons'}) {
$item = search_link($movie->{'title'});
}
else {
$item = "$title";
}
$item .= $start ? " ($start)" : undef;
return $item;
}
##
##
# returns the title in italics and the start year in parentheses.
sub display_simple_movie {
my ($movie) = @_;
my $title = textify($movie->{'title'});
my $start = $movie->{'start year'} ? $movie->{'start year'} : undef;
my $item;
if ($movie->{'series'}) {
my $group;
my @list = keys %{$movie->{'series'}};
if (keys %{$movie->{'series'}} > 1) {
($group) = sort { $movie->{'series'}{$b} <=> $movie->{'series'}{$a} } keys %{$movie->{'series'}};
}
else {
$group = $list[0];
}
$item = search_link($group, [$movie->{'title'}]);
}
elsif ($movie->{'seasons'}) {
$item = search_link($movie->{'title'});
}
else {
$item = "$title";
}
$item .= $start ? " ($start)" : undef;
return $item;
}