- Timestamp:
- 01/29/09 15:09:14 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ActionTrackerPlugin/lib/Foswiki/Plugins/ActionTrackerPlugin/Format.pm
r2226 r2227 145 145 my $args = shift; 146 146 my $asHTML = shift; 147 if ( defined( &{ref( $object ) . "::_formatField_$vbl"} ) ) { 147 my $fn = "_formatField_$vbl"; 148 if ( $object->can($fn) ) { 148 149 # special format for this field 149 my $fn = "_formatField_$vbl";150 150 return $object->$fn( $args, $asHTML, @_ ); 151 151 } … … 153 153 if( $type ) { 154 154 my $typename = $type->{type}; 155 if ( defined( &{ref( $object ) . "::_formatType_$typename"} ) ) { 155 $fn = "_formatType_$typename"; 156 if ( $object->can($fn) ) { 156 157 # special format for this type 157 my $fn = "_formatType_$typename";158 158 return $object->$fn( $vbl, $args, $asHTML, @_ ); 159 159 } … … 169 169 return ''; 170 170 } 171 }172 173 # PRIVATE STATIC fill in variable expansions in simple text form174 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 values195 # extracted from the given object196 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 expansions208 # returns a non-zero color, then fill in the passed-by-reference color209 # 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;230 171 } 231 172 … … 249 190 my $c; 250 191 my $entry = $i; 192 $entry = Foswiki::Func::decodeFormatTokens($entry); 251 193 $entry =~ s/\$(\w+)(?:\((.*?)\))?/ 252 _expand HTML( $object, $1, $2, 1, $jump, $newWindow )/ges;194 _expandVar( $object, $1, $2, 1, $jump, $newWindow )/ges; 253 195 if( !$anchored ) { 254 196 $entry = CGI::a( { name=>$object->getAnchor() } ).$entry; … … 306 248 my $text = ''; 307 249 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"; 310 255 } 311 256 return $text;
Note: See TracChangeset
for help on using the changeset viewer.
