CGI-Widget-DBI-Browse

 view release on metacpan or  search on metacpan

lib/CGI/Widget/DBI/Browse.pm  view on Meta::CPAN

    my ($self, $category_col, $row, @exclude_params) = @_;
    my (@cols, $col_found);
    foreach (@{ $self->{-category_columns} }) {
        push(@cols, $_);
        if ($_ eq $category_col) {
            $col_found = 1;
            last;
        }
    }
    my $extra_vars = $self->{ws}->extra_vars_for_uri([ @{ $self->{'filter_columns'} }, '_browse_skip_to_results_', @exclude_params ]);
    my $category_decoded = $self->decode_utf8($row->{$category_col});
    return $col_found
      ? '<a href="?'.join('&amp;', (map { _uri_param_pair($_, $self->decode_utf8($row->{$_})) } @cols), $extra_vars || ()).'" id="jumpToCategoryLink">'
        .$category_decoded.'</a>'
      : $category_decoded;
}

sub _category_columndata_closure {
    my ($self, $category_col) = @_;
    my $existing_category_filters =
      join('&amp;', map { _uri_param_pair($_, $self->decode_utf8(scalar $self->{q}->param($_))) } @{ $self->{'filter_columns'} });
    my $before_link_closure = $self->{-category_before_link_closures}->{$category_col};
    my $column_closure = $self->{-category_column_closures}->{$category_col};
    my @filter_columns = @{ $self->{'filter_columns'} };
    return sub {
        my ($sd, $row) = @_;
        my $category_decoded = $sd->decode_utf8($row->{$category_col}) || '(empty)';
        my $category_display_value = ref $column_closure eq 'CODE' ? $column_closure->($sd, $row) : $category_decoded;
        my $extra_vars = $sd->extra_vars_for_uri([ @filter_columns, '_browse_skip_to_results_' ]);
        return ($before_link_closure ? $before_link_closure->($sd, $row) : '').'<a href="?'.join(
            '&amp;', $existing_category_filters || (),
            _uri_param_pair($category_col, $category_decoded),
            $extra_vars || (),
        ).'" id="categoryNavLink-'.CGI::escapeHTML($category_decoded).'">'.$category_display_value.'</a>'; # TODO: HTML::Escape is faster than CGI
    };
}


1;
__END__

=back

=head1 AUTHOR



( run in 0.220 second using v1.01-cache-2.11-cpan-a9ef4e587e4 )