Smarty does allow you to call PHP functions, but it’s assumed that you shouldn’t need to and so it’s not as easy as it could be. The general philosophy of Smarty is that you should avoid tying your templates too closely to your application code (i.e. the PHP), as this would make Smarty itself somewhat redundant.
This thread may be of use:
solved php functions using with smarty template [closed]