View | Details | Raw Unified | Return to bug 33242
Collapse All | Expand All

(-)a/Koha/Template/Plugin/KohaDates.pm (-1 / +15 lines)
Lines 32-43 sub filter { Link Here
32
    $config->{with_hours} //= 0;
32
    $config->{with_hours} //= 0;
33
33
34
    my $dt = dt_from_string( $text, 'iso' );
34
    my $dt = dt_from_string( $text, 'iso' );
35
    $dt->add( %$_ ) for _parse_config_for_durations($config); # Allow date add/subtract; see _parse_config_for_durations
35
36
36
    return $config->{as_due_date} ?
37
    return $config->{as_due_date} ?
37
        output_pref({ dt => $dt, as_due_date => 1, dateformat => $config->{dateformat} }) :
38
        output_pref({ dt => $dt, as_due_date => 1, dateformat => $config->{dateformat} }) :
38
        output_pref({ dt => $dt, dateonly => !$config->{with_hours}, dateformat => $config->{dateformat} });
39
        output_pref({ dt => $dt, dateonly => !$config->{with_hours}, dateformat => $config->{dateformat} });
39
}
40
}
40
41
42
sub _parse_config_for_durations {
43
# Supports passing things like add_years => 1 or subtract_years => 1
44
# Same for months, weeks, days, hours, minutes or seconds
45
# Returns a list of hashrefs like { years => 1 }, { days => -1 } that can be passed to dt->add
46
    my $config = shift;
47
    my @results;
48
    foreach my $entry ( keys %$config ) {
49
        if( $entry =~ /^(add|subtract)_(years|months|weeks|days|hours|minutes|seconds)$/ ) {
50
            push @results, { $2 => ( $1 eq 'add' ? 1 : -1 ) * $config->{$entry} };
51
        }
52
    }
53
    return @results;
54
}
55
41
sub output_preference {
56
sub output_preference {
42
    my ( $self, @params ) = @_;
57
    my ( $self, @params ) = @_;
43
    return output_pref( @params );
58
    return output_pref( @params );
44
- 

Return to bug 33242