Same name and namespace in other branches
  1. 5.x includes/theme.inc \theme_get_function()

Determine if a theme function exists, and if so return which one was found.

Parameters

$function: The name of the theme function to test.

Return value

The name of the theme function that should be used, or false if no function exists.

File

includes/theme.inc, line 177
The theme system, which controls the output of Drupal.

Code

function theme_get_function($function) {
  global $theme, $theme_engine;

  // Because theme() is called a lot, calling init_theme() only to have it
  // smartly return is a noticeable performance hit.   Don't do it.
  if (!isset($theme)) {
    init_theme();
  }
  if ($theme != '' && function_exists($theme . '_' . $function)) {

    // call theme function
    return $theme . '_' . $function;
  }
  elseif ($theme != '' && isset($theme_engine) && function_exists($theme_engine . '_' . $function)) {

    // call engine function
    return $theme_engine . '_' . $function;
  }
  elseif (function_exists('theme_' . $function)) {

    // call Drupal function
    return 'theme_' . $function;
  }
  return false;
}