function system_region_list in Drupal 5
Same name and namespace in other branches
- 8 core/modules/system/system.module \system_region_list()
- 4 modules/system.module \system_region_list()
- 6 modules/system/system.module \system_region_list()
- 7 modules/system/system.module \system_region_list()
- 9 core/modules/system/system.module \system_region_list()
Get a list of available regions from a specified theme.
Parameters
$theme_key: The name of a theme.
Return value
An array of regions in the form $region['name'] = 'description'.
6 calls to system_region_list()
- block_admin_display in modules/
block/ block.module - Generate main block administration form.
- phptemplate_page in themes/
engines/ phptemplate/ phptemplate.engine - Prepare the values passed to the theme_page function to be passed into a pluggable template engine. Uses the arg() function to generate a series of page template files suggestions based on the current path. If none are found, the default page.tpl.php…
- system_default_region in modules/
system/ system.module - Get the name of the default region for a given theme.
- system_initialize_theme_blocks in modules/
system/ system.module - Assign an initial, default set of blocks for a theme.
- theme_block_admin_display in modules/
block/ block.module - Theme main block administration form submission.
File
- modules/
system/ system.module, line 996 - Configuration system that lets administrators modify the workings of the site.
Code
function system_region_list($theme_key) {
static $list = array();
if (!array_key_exists($theme_key, $list)) {
$theme = db_fetch_object(db_query("SELECT * FROM {system} WHERE type = 'theme' AND name = '%s'", $theme_key));
// Stylesheets can't have regions; use its theme.
if (strpos($theme->filename, '.css')) {
return system_region_list(basename(dirname($theme->description)));
}
// If this is a custom theme, load it in before moving on.
if (file_exists($file = dirname($theme->filename) . '/' . $theme_key . '.theme')) {
include_once "./{$file}";
}
$regions = array();
// This theme has defined its own regions.
if (function_exists($theme_key . '_regions')) {
$regions = call_user_func($theme_key . '_regions');
}
else {
if (strpos($theme->description, '.engine')) {
include_once './' . $theme->description;
$theme_engine = basename($theme->description, '.engine');
$regions = function_exists($theme_engine . '_regions') ? call_user_func($theme_engine . '_regions') : array();
}
}
$list[$theme_key] = $regions;
}
return $list[$theme_key];
}