this is a question how to override themable items in Drupal 6.
According to the book “Pro Drupal Development”, we can override themable items in two ways:
- overriding via Theme functions
- overriding via Template files
So for example, in order to reformat the breadcrumb, I can:
- via function theme_breadcrumb($breadcrumb)
- via breadcrumb.tpl.php
But on my local testing server, the second approach (i.e. via template file) is not working! I see no breadcrumbs at all, while the first approach works fine.
Any idea how could this happen? any special settings I need to configure my Drupal?
thanks!
My custom theme “greyscale”:
sites\all\themes\custom\greyscale:
– breadcrumb.tpl.php
– greyscale.info
– node.tpl.php
– page.tpl.php
– style.css
– template.php
relevant file contents:
* template.php:
function phptemplate_preprocess_breadcrumb(&$variables) {
$variables['breadcrumb_delimiter'] = '#';
}
- breadcrumb.tpl.php:

Theme functions are setup to either use a template or a function to generate the markup, it will never use both as that’s pointless.
For a theme function to use a template, it must be defined when you define it in
hook_theme.A template + preprocess function and a theme function really does the same thing: produce markup. It depends on the situation which method is best to use, that’s why we have two. The good thing about templates, is that it allows themers to change the markup, without know much about PHP or Drupal.
Cache
Drupal caches all templates and theme functions defined in your theme, when you create new ones, you need to clear the cache, this can be done by:
admin/settings/performanceSwitching theme back and forth will work too, but it really not the desired way to do it.