drupal/themes/xtemplate/xtemplate.theme

188 lines
7.0 KiB
Plaintext

<?php
// $Id$
if (!class_exists("XTemplate")) {
include_once("themes/xtemplate/xtemplate.inc");
}
$GLOBALS["xtemplate"]->template = new XTemplate("themes/xtemplate/xtemplate.xtmpl");
$GLOBALS["xtemplate"]->template->SetNullBlock(" "); // "" doesnt work!
function xtemplate_settings() {
$output .= form_textarea(t("Message on front page"), "xtemplate_mission", variable_get("xtemplate_mission", "edit mission"), 70, 6, t("This text will be displayed on the front page. It can be used to display a mission statement, announcement or site description.."));
$output .= form_textfield(t("Stylesheet URL"), "xtemplate_stylesheet", variable_get("xtemplate_stylesheet", "themes/xtemplate/xtemplate.css"), 70, 300, t("The URL for your theme's cascading stylesheet."));
$output .= form_textarea(t("Logo"), "xtemplate_logo", variable_get("xtemplate_logo", "<img src=\"themes/xtemplate/images/druplicon.gif\" alt=\"Druplicon\" />"), 70, 4, t("The HTML code for displaying the logo."));
$output .= form_textarea(t("Primary links"), "xtemplate_primary_links", variable_get("xtemplate_primary_links", l("edit primary links", "admin/system/themes/xtemplate")), 70, 8, t("The HTML code for the primary links."));
$output .= form_textarea(t("Secondary links"), "xtemplate_secondary_links", variable_get("xtemplate_secondary_links", l("edit secondary links", "admin/system/themes/xtemplate")), 70, 8, t("The HTML code for the secondary links."));
$output .= form_radios(t("Search box"), "xtemplate_search_box", variable_get("xtemplate_search_box", 0), array(t("Disabled"), t("Enabled")), t("Show a search box in the upper right corner."));
return $output;
}
function xtemplate_help($section) {
$output = "";
switch ($section) {
case 'admin/system/themes#description':
$output = t('A template driven theme');
break;
}
return $output;
}
function xtemplate_node($node, $main = 0, $page = 0) {
global $xtemplate;
$xtemplate->template->assign(array(
"link" => url("node/view/$node->nid"),
"title" => $node->title,
"author" => format_name($node),
"date" => format_date($node->created),
"static" => ($main && $node->static) ? 'static' : '',
"content" => ($main && $node->teaser) ? $node->teaser : $node->body));
if ($page == 0) {
$xtemplate->template->parse("node.title");
}
if (module_exist("taxonomy") && ($taxonomy = taxonomy_link("taxonomy terms", $node))) {
$xtemplate->template->assign("taxonomy", theme_links($taxonomy));
$xtemplate->template->parse("node.taxonomy");
}
if ($links = link_node($node, $main)) {
$xtemplate->template->assign("links", theme_links($links));
$xtemplate->template->parse("node.links");
}
$xtemplate->template->parse("node");
$output = $xtemplate->template->text("node");
$xtemplate->template->reset("node");
return $output;
}
function xtemplate_comment($comment, $links = 0) {
global $xtemplate;
$xtemplate->template->assign(array (
"title" => $comment->subject,
"author" => format_name($comment),
"date" => format_date($comment->timestamp),
"content" => $comment->comment
));
if ($comment->new) {
$xtemplate->template->parse("comment.new");
}
if ($links) {
$xtemplate->template->assign("links", $links);
$xtemplate->template->parse("comment.links");
}
$xtemplate->template->parse("comment");
$output = $xtemplate->template->text("comment");
$xtemplate->template->reset("comment");
return $output;
}
function xtemplate_header() {
global $xtemplate;
$xtemplate->template->assign(array(
"head_title" => (drupal_get_title() ? drupal_get_title() ." | ". variable_get("site_name", "drupal") : variable_get("site_name", "drupal") ." | ". variable_get("site_slogan", "")),
"body_title" => drupal_get_title(),
"site" => variable_get("site_name", "drupal"),
"head" => theme_head(),
"stylesheet" => variable_get("xtemplate_stylesheet", "themes/xtemplate/xtemplate.css"),
"onload_attributes" => theme_onload_attribute(),
"logo" => variable_get("xtemplate_logo", "<img src=\"themes/xtemplate/images/druplicon.gif\" />"),
"primary_links" => variable_get("xtemplate_primary_links", l("edit primary links", "admin/system/themes/xtemplate")),
"secondary_links" => variable_get("xtemplate_secondary_links", l("edit secondary links", "admin/system/themes/xtemplate")),
"breadcrumb" => theme("breadcrumb", drupal_get_breadcrumb())
));
if ($help = menu_get_active_help()) {
$xtemplate->template->assign("help", $help);
$xtemplate->template->parse("header.help");
}
if ($message = drupal_get_message()) {
$xtemplate->template->assign("message", ucfirst($message->message));
$xtemplate->template->assign("type", $message->type);
$xtemplate->template->parse("header.message");
}
if (variable_get("xtemplate_search_box", 1)) {
$xtemplate->template->assign(array(
//"search" => search_form(),
"search_url" => url("search"),
"search_button_text" => t("Search")
));
$xtemplate->template->parse("header.search_box");
}
// only parse the mission block if we are on the frontpage ...
if ($_GET["q"] == variable_get("site_frontpage", "node") && ($mission = variable_get("xtemplate_mission", "edit mission"))) {
$xtemplate->template->assign("mission", $mission);
$xtemplate->template->parse("header.mission");
}
if ($blocks = theme("blocks", "left")) {
$xtemplate->template->assign("blocks", $blocks);
$xtemplate->template->parse("header.blocks");
}
$xtemplate->template->parse("header");
return $xtemplate->template->text("header");
}
function xtemplate_block(&$block) {
global $xtemplate;
// create template variables for all block variables (module, delta, region, subject, content, ...)
foreach ($block as $key => $value) {
$xtemplate->template->assign($key == "subject" ? "title" : $key, $value); // TODO: standardize on 'title' (ie. rename all $block["subject"] to "title")
}
$xtemplate->template->parse("block");
$output = $xtemplate->template->text("block");
$xtemplate->template->reset("block");
return $output;
}
function xtemplate_box($title, $content, $region = "main") {
global $xtemplate;
$xtemplate->template->assign(array(
"title" => $title,
"content" => $content));
$xtemplate->template->parse("box");
$output = $xtemplate->template->text("box");
$xtemplate->template->reset("box");
return $output;
}
function xtemplate_footer() {
global $xtemplate;
if ($blocks = theme("blocks", "right")) {
$xtemplate->template->assign("blocks", $blocks);
$xtemplate->template->parse("footer.blocks");
}
// only parse the footer block if site_footer is set
if ($footer_message = variable_get("site_footer", FALSE)) {
$xtemplate->template->assign("footer_message", $footer_message);
$xtemplate->template->parse("footer.message");
}
$xtemplate->template->assign("footer", theme_closure());
$xtemplate->template->parse("footer");
return $xtemplate->template->text("footer");
}
?>