On 2011-12-07 22:16, Ruslan Zakirov wrote:
On Wed, Dec 7, 2011 at 10:11 PM, Gerard FENELON<[email protected]> 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
--------
RT Training Sessions (http://bestpractical.com/services/training.html)
* Boston March 5 & 6, 2012