| 5 phptemplate.engine | _phptemplate_callback($hook, $variables = array(), $suggestions = array()) |
Execute a template engine call.
Each call to the template engine has two parts. Namely preparing the variables, and then doing something with them.
The first step is done by all template engines / themes, the second step is dependent on the engine used.
Parameters
$hook: The name of the theme function being executed.
$variables: A sequential array of variables passed to the theme function.
$suggestions: An array of suggested template files to use. If none of the files are found, the default $hook.tpl.php will be used.
Return value
The HTML generated by the template system.
File
- themes/
engines/ phptemplate/ phptemplate.engine, line 55 - Handles integration of templates written in pure php with the Drupal theme system.
Code
<?php
function _phptemplate_callback($hook, $variables = array(), $suggestions = array()) {
global $theme_engine;
$variables = array_merge($variables, _phptemplate_default_variables($hook, $variables));
// Allow specified variables to be overridden
$variables_function = '_' . $theme_engine . '_variables';
if (function_exists($variables_function)) {
$variables = array_merge($variables, call_user_func($variables_function, $hook, $variables));
}
if (isset($variables['template_files'])) {
$suggestions = array_merge($suggestions, $variables['template_files']);
}
if (isset($variables['template_file'])) {
$suggestions[] = $variables['template_file'];
}
$hook_function = '_' . $theme_engine . '_' . $hook;
$default_function = '_' . $theme_engine . '_default';
if (function_exists($hook_function)) {
return call_user_func($hook_function, $variables, $suggestions);
}
elseif (function_exists($default_function)) {
return call_user_func($default_function, $hook, $variables, $suggestions);
}
}
?>Login or register to post comments