This is in response to http://drupal.org/node/61713
I'm placing my response here to open up discussion.
Documentation for the Smarty theme-engine is lacking -- in some ways this is appropriate as it mirrors the functionality of phptemplate in many ways but this leads to confusion. Between work and classes I haven't had time to write much doc -- I'm more than willing to accept submissions from anyone and will be sitting down to write more comprehensive documentation soon.
--------------------------------
To do custom theming of that (or any themable) function you'll need an entry in the smartytemplate.php file residing within the theme's directory.
If you'd like to do rendering with smarty as opposed to having your rendering logic in straight php within smartytemplate.php you can call _smarty_callback*() with the appropriate parameters and create a corresponding .tpl file.
/**
* Catch the theme_item_list function, and redirect through the template api
*/
function smarty_item_list($items = array(), $title = NULL) {
// Pass to phptemplate, including translating the parameters to an associative array. The element names are the names that the variables
// will be assigned within your template.
return _smarty_callback('item_list', array('items' => $items, 'title' => $title));
}
This example would allow you to then make a item_list.tpl file within the theme directory and do the rendering there.