\n"; $output .= "". variable_get(site_name, "drupal") .""; $output .= theme_head($main); $output .= "background\" text=\"$this->foreground\">"; $output .= "
"; print $output; $this->box(t("Navigation"), @implode("
", link_page())); theme_blocks("all", $this); print "
"; } function links($links, $delimiter = " | ") { return implode($delimiter, $links); } function image($name) { return "misc/$name"; } function node($node, $main) { if (module_exist("taxonomy")) { $terms = taxonomy_link("taxonomy terms", $node); } $output = "$node->title by ". format_name($node) ."
"; if (count($terms)) { $output .= "(". $this->links($terms) .")
"; } if ($main && $node->teaser) { $output .= check_output($node->teaser); } else { $output .= check_output($node->body); } if ($links = link_node($node, $main)) { $output .= "
[ ". $this->links($links) ." ]"; } $output .= "
"; print $output; } function box($subject, $content, $region = "main") { $output = "

$subject
$content

"; print $output; } function block($subject, $content, $region = "main") { global $theme; $theme->box($subject, $content, $region); } function footer() { $output = "
"; $output .= ""; print $output; } } function theme_mark() { /* ** Return a marker. Used to indicate new comments or required form ** fields. */ return "*"; } function theme_item_list($items = array(), $title = NULL) { /* ** Return a formatted array of items. */ if (isset($title)) { $output .= "$title
"; } if (isset($items)) { foreach ($items as $item) { $output .= "- $item
"; } } return $output; } function theme_error($message) { /* ** Return an error message. */ return "
$message
"; } function theme_list($refresh = 0) { static $list; if ($refresh) { unset($list); } if (!$list) { $list = array(); $result = db_query("SELECT * FROM system where type = 'theme' AND status = '1' ORDER BY name"); while ($theme = db_fetch_object($result)) { if (file_exists($theme->filename)) { $list[$theme->name] = $theme; } } } return $list; } function theme_head($main = 0) { $head = module_invoke_all("head", $main); return implode($head, "\n"); } function theme_init() { global $user; $themes = theme_list(); $name = $user->theme ? $user->theme : variable_get("theme_default", 0); if (is_object($themes[$name])) { include_once($themes[$name]->filename); $class = "Theme_$name"; $instance =& new $class(); $instance->path = dirname($themes[$name]->filename); } else { $instance =& new BaseTheme; } return $instance; } /** * Render blocks available for $user and $region calling $theme->block($region). * * @param string $region main|left|right */ function theme_blocks($region) { global $user, $REQUEST_URI; $result = db_query("SELECT * FROM blocks WHERE (status = '1' OR custom = '1') ". ($region != "all" ? "AND region = '%s' " : "") ."ORDER BY weight, module", $region == "left" ? 0 : 1); while ($result && ($block = db_fetch_object($result))) { if ((($block->status && (!$user->uid || !$block->custom)) || ($block->custom && $user->block[$block->module][$block->delta])) && (!$block->path || preg_match('/'. str_replace('/', '\/', $block->path) .'/', request_uri()))) { $block_data = module_invoke($block->module, "block", "view", $block->delta); if ($block_data["content"]) { theme("block", $block_data["subject"], $block_data["content"], $region); } } } } function theme() { global $theme; $args = func_get_args(); $function = array_shift($args); if (method_exists($theme, $function)) { return call_user_method_array($function, $theme, $args); } else { return call_user_func_array($function, $args); } } ?>