summaryrefslogtreecommitdiff
path: root/httemplate/search/elements/search.html
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate/search/elements/search.html')
-rw-r--r--httemplate/search/elements/search.html59
1 files changed, 57 insertions, 2 deletions
diff --git a/httemplate/search/elements/search.html b/httemplate/search/elements/search.html
index 78754fe00..0f499d2d0 100644
--- a/httemplate/search/elements/search.html
+++ b/httemplate/search/elements/search.html
@@ -91,7 +91,12 @@
foreach my $field ( @{$opt{'fields'}} ) {
if ( ref($field) eq 'CODE' ) {
- push @line, &{$field}($row);
+ push @line, map {
+ ref($_) eq 'ARRAY'
+ ? '(N/A)' #unimplemented
+ : $_;
+ }
+ &{$field}($row);
} else {
push @line, $row->$field();
}
@@ -153,7 +158,11 @@
#}
if ( ref($field) eq 'CODE' ) {
foreach my $value ( &{$field}($row) ) {
- $worksheet->write($r, $c++, $value );
+ if ( ref($value) eq 'ARRAY' ) {
+ $worksheet->write($r, $c++, '(N/A)' ); #unimplemented
+ } else {
+ $worksheet->write($r, $c++, $value );
+ }
}
} else {
$worksheet->write($r, $c++, $row->$field() );
@@ -258,6 +267,52 @@
foreach my $field (
map {
+ if ( ref($_) eq 'ARRAY' ) {
+
+ my $tableref = $_;
+
+ '<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0'.
+ ' STYLE="border:none">'.
+
+ join('', map {
+
+ my $rowref = $_;
+
+ '<tr>'.
+
+ join('', map {
+
+ my $element = $_;
+
+ '<TD STYLE="border:none"'.
+ ( $element->{'align'}
+ ? ' ALIGN="'. $element->{'align'}. '"'
+ : ''
+ ). '>'.
+ ( $element->{'link'}
+ ? '<A HREF="'. $element->{'link'}.'">'
+ : ''
+ ).
+ $element->{'data'}.
+ ( $element->{'link'}
+ ? '</A>'
+ : ''
+ ).
+ '</td>';
+
+ } @$rowref ).
+
+ '</tr>';
+ } @$tableref ).
+
+ '</table>';
+
+ } else {
+ $_;
+ }
+ }
+
+ map {
if ( ref($_) eq 'CODE' ) {
&{$_}($row);
} else {