Report abuse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
sub build_value {
# convert and build MT template tags within a passed value.
    my ($ctx, $value, $case_sensitive) = @_;
        # within a value argument, you can use MT tags, but with
        # square brackets instead of angle brackets and single quotes
        # instead of double quotes; literal square brackets and single
        # quotes must be escaped with a backslash
        # convert non-escaped []'
    $value =~ s/(?<!\\)\[/</g;
    $value =~ s/(?<!\\)\]/>/g;
    $value =~ s/(?<!\\)'/"/g;
        # de-escape escaped []'
    $value =~ s/\\([\[\]'])/$1/g;
        # any MT tags?
    if ($value =~ /<MT/) {
        my $builder = $ctx->stash('builder');
        my $tok = $builder->compile($ctx, $value);
        $value = $builder->build($ctx, $tok);
        return $ctx->error($builder->errstr) unless defined($value);
    }
    $value = lc($value) unless ($case_sensitive);
    return $value;
}