Ignore:
Timestamp:
01/29/09 15:09:14 (3 years ago)
Author:
CrawfordCurrie
Message:

Item4312: support for header, footer etc. Item412: added =reverse= sort for searches

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ActionTrackerPlugin/lib/Foswiki/Plugins/ActionTrackerPlugin/Format.pm

    r2226 r2227  
    145145    my $args = shift; 
    146146    my $asHTML = shift; 
    147     if ( defined( &{ref( $object ) . "::_formatField_$vbl"} ) ) { 
     147    my $fn = "_formatField_$vbl"; 
     148    if ( $object->can($fn) ) { 
    148149        # special format for this field 
    149         my $fn = "_formatField_$vbl"; 
    150150        return $object->$fn( $args, $asHTML, @_ ); 
    151151    } 
     
    153153    if( $type ) { 
    154154        my $typename = $type->{type}; 
    155         if ( defined( &{ref( $object ) . "::_formatType_$typename"} ) ) { 
     155        $fn = "_formatType_$typename"; 
     156        if ( $object->can($fn) ) { 
    156157            # special format for this type 
    157             my $fn = "_formatType_$typename"; 
    158158            return $object->$fn( $vbl, $args, $asHTML, @_ ); 
    159159        } 
     
    169169        return ''; 
    170170    } 
    171 } 
    172  
    173 # PRIVATE STATIC fill in variable expansions in simple text form 
    174 sub _expandString { 
    175     my $object = shift; 
    176     my $var = shift; 
    177     my $args = shift; 
    178  
    179     if ( $var eq "dollar") { 
    180         return "\$"; 
    181     } elsif ($var eq "nop") { 
    182         return ""; 
    183     } elsif ($var eq "n") { 
    184         return "\n"; 
    185     } elsif ($var eq "percnt") { 
    186         return "%"; 
    187     } elsif ($var eq "quot") { 
    188         return "\""; 
    189     } 
    190     my $t = _expandVar( $object, $var, $args, @_ ); 
    191     return $t; 
    192 } 
    193  
    194 # PUBLIC fill in the text template using values 
    195 # extracted from the given object 
    196 sub _formatAsString { 
    197     my $this = shift; 
    198     my $object = shift; 
    199  
    200     my $fmt = $this->{TEXTFORM} || ''; 
    201     $fmt =~ s/\$(\w+\b)(?:\((.*?)\))?/ 
    202       _expandString( $object, $1, $2, 0, @_ )/geos; 
    203  
    204     return $fmt; 
    205 } 
    206  
    207 # PRIVATE STATIC fill in variable expansions. If any of the expansions 
    208 # returns a non-zero color, then fill in the passed-by-reference color 
    209 # variable $col with the value returned. 
    210 sub _expandHTML { 
    211     my $object = shift; 
    212     my $var = shift; 
    213     my $args = shift; 
    214  
    215     if ( $var eq "dollar") { 
    216         return "\$"; 
    217     } elsif ($var eq "nop") { 
    218         return ""; 
    219     } elsif ($var eq "n") { 
    220         return CGI::br(); 
    221     } elsif ($var eq "percnt") { 
    222         return "%"; 
    223     } elsif ($var eq "quot") { 
    224         return "\""; 
    225     } 
    226  
    227     my $t = _expandVar( $object, $var, $args, @_ ); 
    228  
    229     return $t; 
    230171} 
    231172 
     
    249190            my $c; 
    250191            my $entry = $i; 
     192            $entry = Foswiki::Func::decodeFormatTokens($entry); 
    251193            $entry =~ s/\$(\w+)(?:\((.*?)\))?/ 
    252               _expandHTML( $object, $1, $2, 1, $jump, $newWindow )/ges; 
     194              _expandVar( $object, $1, $2, 1, $jump, $newWindow )/ges; 
    253195            if( !$anchored ) { 
    254196                $entry = CGI::a( { name=>$object->getAnchor() } ).$entry; 
     
    306248    my $text = ''; 
    307249    foreach my $row ( @$data ) { 
    308         my $horzrow = $this->_formatAsString( $row, @_ ); 
    309         $text .= $horzrow."\n"; 
     250        my $fmt = $this->{TEXTFORM} || ''; 
     251        $fmt = Foswiki::Func::decodeFormatTokens($fmt); 
     252        $fmt =~ s/\$(\w+\b)(?:\((.*?)\))?/ 
     253          _expandVar( $row, $1, $2, 0, @_ )/geos; 
     254        $text .= $fmt."\n"; 
    310255    } 
    311256    return $text; 
Note: See TracChangeset for help on using the changeset viewer.