<?php
// $Id: template.php,v 1.2 2008/05/19 0829 Exp $
/**
* Get theme setting values.
*/
if (is_null(theme_get_setting('diykit_skin'))) {
global $theme_key;
$themes =
list_themes();
$defaults =
$themes[$theme_key]->
info['settings'];
$settings =
theme_get_settings($theme_key);
if (module_exists('node')) {
foreach (node_get_types() as $type =>
$name) {
unset($settings['toggle_node_info_' .
$type]);
}
}
variable_set(
str_replace('/',
'_',
'theme_'.
$theme_key .
'_settings'),
array_merge($defaults,
$settings)
);
theme_get_setting('',
TRUE);
}
/**
* Override or insert PHPTemplate variables into the page.tpl.php.
*/
function phptemplate_preprocess_page
(&
$vars) {
global $theme;
// $xml
$user_agent =
getenv('HTTP_USER_AGENT');
if (!
(strpos($user_agent,
'Windows') !==
FALSE &&
strpos($user_agent,
'MSIE') !==
FALSE) ||
strpos($user_agent,
'MSIE 7') !==
FALSE) {
$vars['xml'] =
'<?xml version="1.0" encoding="utf-8"?>' .
"\n";
}
// $css, $styles, $iefix
$skin =
theme_get_setting($theme .
'_skin');
$iefix =
$vars['directory'] .
'/css/ie-fix.css';
$vars['iefix'] =
'';
if (file_exists($iefix)) {
$vars['iefix'] .=
'<!--[if IE]><link type="text/css" rel="stylesheet" media="all" href="' .
base_path() .
$iefix .
'" /><![endif]-->' .
"\n";
}
if ($skin ==
'default') {
$css =
$vars['directory'] .
'/css/skin.css';
if (file_exists($css)) {
drupal_add_css($css,
'theme',
'all');
}
}
else if ($skin) {
$css =
$vars['directory'] .
'/skin/' .
$skin .
'/skin.css';
$skin_iefix =
$vars['directory'] .
'/skin/' .
$skin .
'/ie-fix.css';
if (file_exists($css)) {
drupal_add_css($css,
'theme',
'all');
}
if (file_exists($skin_iefix)) {
$vars['iefix'] .=
'<!--[if IE]><link type="text/css" rel="stylesheet" media="all" href="' .
base_path() .
$skin_iefix .
'" /><![endif]-->' .
"\n";
}
}
$vars['css'] =
drupal_add_css();
$vars['styles'] =
drupal_get_css();
// $body_classes
$body_classes =
array($vars['body_classes']);
$layout =
theme_get_setting($theme .
'_layout');
$column =
theme_get_setting($theme .
'_column');
if ($layout) { $body_classes[] =
$layout;
}
if ($column) { $body_classes[] =
$column;
}
$vars['body_classes'] =
implode(' ',
$body_classes);
}
/**
* Override or insert PHPTemplate variables into the node.tpl.php.
*/
function phptemplate_preprocess_node
(&
$vars) {
// $node_classes
$node_classes[] =
'node';
if ($vars['teaser']) {
$node_classes[] =
'teaser';
$node_classes[] =
$vars['zebra'];
}
if ($vars['page']) {
$node_classes[] =
'page';
}
if ($vars['sticky']) {
$node_classes[] =
'sticky';
}
if (!
$vars['status']) {
$node_classes[] =
'node-unpublished';
}
$vars['node_classes'] =
implode(' ',
$node_classes);
// $content_body_top, $content_body_bottom
if ($vars['page']) {
$vars['content_body_top'] =
theme('blocks',
'content_body_top');
$vars['content_body_bottom'] =
theme('blocks',
'content_body_bottom');
}
}
/**
* Override or insert PHPTemplate variables into the comment-wrapper.tpl.php.
*/
function phptemplate_preprocess_comment_wrapper
(&
$vars) {
// $comments_title
if ($vars['content'] &&
$vars['node']->
type !=
'forum') {
$vars['comments_title'] = t
('Comments');
}
}
/**
* Override or insert PHPTemplate variables into the comment.tpl.php.
*/
function phptemplate_preprocess_comment
(&
$vars) {
global $user;
// $comment_classes
$comment_classes[] =
'comment';
if ($vars['comment']->
new) {
$comment_classes[] =
'comment-new';
}
if ($vars['comment']->
status ==
COMMENT_NOT_PUBLISHED) {
$comment_classes[] =
'comment-unpublished';
}
if ($vars['comment']->
uid ==
$vars['node']->
uid) {
$comment_classes[] =
'comment-by-author';
}
if ($user->
uid &&
$vars['comment']->
uid ==
$user->
uid) {
$comment_classes[] =
'comment-mine';
}
if ($vars['comment']->
uid) {
$comment_classes[] =
'comment-uid-' .
$vars['comment']->
uid;
}
$comment_classes[] =
$vars['zebra'];
$vars['comment_classes'] =
implode(' ',
$comment_classes);
}
/**
* Override or insert PHPTemplate variables into the block.tpl.php.
*/
function phptemplate_preprocess_block
(&
$vars) {
// $block_classes
$block_classes[] =
'block';
$block_classes[] =
'block-' .
$vars['block']->
module;
$block_classes[] =
$vars['zebra'];
$block_classes[] =
$vars['block']->
region .
'-' .
$vars['block_zebra'];
$block_classes[] =
$vars['block']->
region .
'-' .
$vars['block_id'];
$vars['block_classes'] =
implode(' ',
$block_classes);
}
/**
* Override theme functions.
*/
function phptemplate_links
($links,
$attributes =
array('class' =>
'links')) {
$output =
'';
if (count($links) >
0) {
$output =
'<ul' .
drupal_attributes($attributes) .
'>';
$num_links =
count($links);
$i =
1;
foreach ($links as $key =>
$link) {
$class =
$key;
if ($i ==
1) {
$class .=
' first';
}
if ($i ==
$num_links) {
$class .=
' last';
}
if (isset($link['href']) &&
($link['href'] ==
$_GET['q'] ||
($link['href'] ==
'<front>' &&
drupal_is_front_page()))) {
$class .=
' active';
}
$output .=
'<li class="'.
$class .
'">';
if (isset($link['href'])) {
$link['html'] =
TRUE;