Sigh. We discovered a bug in our recently reworked tools.perceptus.ca (“PWT”) site.
We have a simple, custom, partial MVC system that runs a few of our smaller websites. That system uses the PEAR HTML_Template_IT package to do the final template rendering. We ported PWT to our MVC to make future site changes much easier.
A week after going live with the changes, we found a baffling bug. The tools were eating the dollar sign and dollar amounts (but not the decimals) from the input text. E.g. “$103.00” would get returned as “.00”. Not good.
Apparently, HTML_Template_IT defaults to processing all text with regex. Not cool.
There might be a historical reason for this, but for new users, this has got to be confusing. Plus, this is NOT mentioned in the intro documentation: http://pear.php.net/manual/en/package.html.html-template-it.intro.php
We’re not the only ones caught by this: http://pear.php.net/bugs/bug.php?id=50.
The fix is to initialize and set the use_preg option, like this:
$tpl = new HTML_Template_IT(‘./’,array(‘use_preg’=>true));
I have glanced at the package pages, and while this behavior is documented it is buried quite deeply in the documentation.
This also explains a typo we had years ago on a static page that had the text like $5 in it. That time, we just changed the copy to read 5 dollars and got on with life.
Tags: bug, documentation, dollar, eat, pear, php, regex, template
April 13th, 2012 at 1:25 pm
pretty sure that should be ‘use_preg’=>false