labeled_data_row —
Interchange 5.9.0:
Source: lib/Vend/Interpolate.pm
Lines: 3593
sub tag_labeled_data_row { my ($key, $text) = @_; my ($row, $table, $tabRE); my $done; my $prefix; if(defined $Prefix) { $prefix = $Prefix; undef $Prefix; $LdB = qr(\[$prefix[-_]data$Spacef)i; $LdIB = qr(\[if[-_]$prefix[-_]data(\d*)$Spacef(!?)(?:%20|\s)*)i; $LdIE = qr(\[/if[-_]$prefix[-_]data)i; $LdExpr = qr{ \[(?:$prefix[-_]data|if[-_]$prefix[-_]data(\d*)) \s+ !?\s* ($Codere) \s (?!$All\[(?:$prefix[-_]data|if[-_]$prefix[-_]data\1)) }xi; %Data_cache = (); } # Want the last one #::logDebug(<<EOF); #tag_labeled_data_row: # prefix=$prefix # LdB =$LdB # LdIB =$LdIB # LdIE =$LdIE # LdD =$LdD # LdI =$LdI # LdExpr=$LdExpr #EOF while($$text =~ $LdExpr) { $table = $2; $tabRE = qr/$table/; $row = $Data_cache{"$table.$key"} || ( $Data_cache{"$table.$key"} = Vend::Data::database_row($table, $key) ) || {}; $done = 1; $$text =~ s#$LdIB$tabRE$LdI$LdIE\1\]# $row->{$3} ? pull_if($5,$2,$4,$row->{$3}) : pull_else($5,$2,$4,$row->{$3})#ge and undef $done; #::logDebug("after if: table=$table 1=$1 2=$2 3=$3 $$text =~ s#$LdIB $tabRE $LdI $LdIE#"); $$text =~ s/$LdB$tabRE$LdD/ed($row->{$1})/eg and undef $done; last if $done; } return $_; }