[rt-users] CF Link values

Gerard FENELON gerard at eve-team.com
Thu Dec 8 09:12:00 EST 2011



On 2011-12-07 22:16, Ruslan Zakirov wrote:
> On Wed, Dec 7, 2011 at 10:11 PM, Gerard FENELON<gerard at eve-team.com>  wrote:
>> Hi
>>
>> I am using RT3.8.8
>>
>> I have a CF where the "Link value to" contains
>>
>> http://cvsweb/__CustomField__
>>
>> RT generates a link but if I click on the link I get a 404 error using
>> Firefox.
>> I am pretty sure that I saw this work when I first set it up with RT 3.6
>>
>> If I look at the generated source of the page, I see
>>
>> <td class="value">
>> <a href="http://cvsweb/aaaa%2Fbbbb%2Fcccc%2Fdddd" target="_new">
>> aaaa/bbbb/cccc/dddd</a>
>> </td>
>>
>> The code is in share/html/Elements/ShowCustomFields
>>
>>     my $linked = $value->LinkValueTo;
>>      if ( defined $linked&&  length $linked ) {
>>          my $linked = $m->interp->apply_escapes( $linked, 'h' );
>>          $m->out('<a href="'. $linked .'" target="_new">');
>>      }
>>
>> The code for RT3.6.10 shows
>>      my $linked = $cf->LinkValueTo;
>>      if ( $linked ) {
>>          $m->out('<a href="'. $value->LinkValueTo .'" target="_new">');
>>      }
>>
>> How can I tell Mason not to escape '/' and still escape the rest ?
>
> Escaping you have problem with is not happening here. Take a look into
> lib/RT/ObjectCustomFieldValue.pm, method _FillInTemplateURL.

Thanks Ruslan

is it safe to change
     CustomField => { value => sub { $_[0]->Content }, escape => 1 },
to
     CustomField => { value => sub { $_[0]->Content } },
in _FillInTemplateURL ?

Or should I change
     $$ref =~ s/([^a-zA-Z0-9_.!~*'()-])/uc sprintf("%%%02X", ord($1))/eg;
to
     $$ref =~ s/([^a-zA-Z0-9_.!~*'()\/-])/uc sprintf("%%%02X", ord($1))/eg;
in RT::Interface::Web::EscapeURI ?

Gerard




More information about the rt-users mailing list