[ic] area tag encoding dash in sku to %2d

Mike Heins mikeh at endpoint.com
Sat Jun 10 11:32:42 UTC 2017


Quoting Peter (peter at pajamian.dhs.org):
> On 10/06/17 09:10, IC wrote:
> > I am trying to stop the area tag from encoding a dash in the sku to %2d
> > in mv_arg in the url, ie when using:-
> > 
> > <a href="[area function/stock_alert [item-code]]">[L]In-Stock
> > Notification[/L]</a>
> > 
> > If the sku is 100-10 the url generated is
> > /function/stock_alert?mv_arg=100%2d10
> 
> It shouldn't hurt anything, but if you want it to go away try this:
> [area href=function/stock_alert form="mv_arg=[item-code]"]
> 
> > Where does the dash get encoded to %2d, I looked in Interpolate.pm and
> > various other files but couldn't work out where is was being encoded.
> > 
> > Can I make dash an allowed character somwhere?
> 
> Alternatively you can replace the hexify function in Util.pm using a
> globalsub (in interchange.cfg):
> 
> GlobalSub <<<EOR
> sub override_hacking {
>     package Vend::Util;
>     sub hexify {
>         my $string = shift;
>         $string =~ s/([^\w-])/sprintf '%%%02x', ord($1)/ge;
>         return $string;
>     }
> }
> EOR

I think you have one too many < in the here doc. Should work fine, though.

We could consider defining that string in Vend::Util like is done
for HTML::Entities, but the above is the functional equivalent and not
difficult to do.

-- 
Mike Heins
End Point -- Expert Internet Consulting    http://www.endpoint.com/
phone +1.765.253.4194  <mikeh at endpoint.com>

For a successful technology, reality must take precedence over public
relations, for Nature cannot be fooled. -- Dick Feynman



More information about the interchange-users mailing list