roles); // Check for Admin, logged in
$vars['logged_in'] = ($user->uid > 0) ? TRUE : FALSE;
}
function acquia_marina_preprocess_page(&$vars) {
global $language;
// Remove sidebars if disabled e.g., for Panels
if (!$vars['show_blocks']) {
$vars['sidebar_first'] = '';
$vars['sidebar_last'] = '';
}
// Build array of helpful body classes
$body_classes = array();
$body_classes[] = ($vars['logged_in']) ? 'logged-in' : 'not-logged-in'; // Page user is logged in
$body_classes[] = ($vars['is_front']) ? 'front' : 'not-front'; // Page is front page
if (isset($vars['node'])) {
$body_classes[] = ($vars['node']) ? 'full-node' : ''; // Page is one full node
$body_classes[] = (($vars['node']->type == 'forum') || (arg(0) == 'forum')) ? 'forum' : ''; // Page is Forum page
$body_classes[] = ($vars['node']->type) ? 'node-type-'. $vars['node']->type : ''; // Page has node-type-x, e.g., node-type-page
}
else {
$body_classes[] = (arg(0) == 'forum') ? 'forum' : ''; // Page is Forum page
}
$body_classes[] = (module_exists('panels_page') && (panels_page_get_current())) ? 'panels' : ''; // Page is Panels page
$body_classes[] = 'layout-'. (($vars['sidebar_first']) ? 'first-main' : 'main') . (($vars['sidebar_last']) ? '-last' : ''); // Page sidebars are active
if ($vars['preface_first'] || $vars['preface_middle'] || $vars['preface_last']) { // Preface regions are active
$preface_regions = 'preface';
$preface_regions .= ($vars['preface_first']) ? '-first' : '';
$preface_regions .= ($vars['preface_middle']) ? '-middle' : '';
$preface_regions .= ($vars['preface_last']) ? '-last' : '';
$body_classes[] = $preface_regions;
}
if ($vars['postscript_first'] || $vars['postscript_middle'] || $vars['postscript_last']) { // Postscript regions are active
$postscript_regions = 'postscript';
$postscript_regions .= ($vars['postscript_first']) ? '-first' : '';
$postscript_regions .= ($vars['postscript_middle']) ? '-middle' : '';
$postscript_regions .= ($vars['postscript_last']) ? '-last' : '';
$body_classes[] = $postscript_regions;
}
$body_classes = array_filter($body_classes); // Remove empty elements
$vars['body_classes'] = implode(' ', $body_classes); // Create class list separated by spaces
// Add preface & postscript classes with number of active sub-regions
$region_list = array(
'prefaces' => array('preface_first', 'preface_middle', 'preface_last'),
'postscripts' => array('postscript_first', 'postscript_middle', 'postscript_last')
);
foreach ($region_list as $sub_region_key => $sub_region_list) {
$active_regions = array();
foreach ($sub_region_list as $region_item) {
if (!empty($vars[$region_item])) {
$active_regions[] = $region_item;
}
}
$vars[$sub_region_key] = $sub_region_key .'-'. strval(count($active_regions));
}
// Generate menu tree from source of primary links
if (module_exists('i18nmenu')) {
$vars['primary_links_tree']=i18nmenu_translated_tree(variable_get('menu_primary_links_source', 'primary-links'));
}
else {
$vars['primary_links_tree'] = menu_tree(variable_get('menu_primary_links_source', 'primary-links'));
}
// TNT THEME SETTINGS SECTION
// Display mission statement on all pages
if (theme_get_setting('mission_statement_pages') == 'all') {
$vars['mission'] = theme_get_setting('mission', false);
}
// Hide breadcrumb on all pages
if (theme_get_setting('breadcrumb_display') == 0) {
$vars['breadcrumb'] = '';
}
// Set site title, slogan, mission, page title & separator
if (!module_exists('page_title')) {
$title = t(variable_get('site_name', ''));
$slogan = t(variable_get('site_slogan', ''));
$mission = t(variable_get('site_mission', ''));
$page_title = t(drupal_get_title());
$title_separator = theme_get_setting('configurable_separator');
if (drupal_is_front_page()) { // Front page title settings
switch (theme_get_setting('front_page_title_display')) {
case 'title_slogan':
$vars['head_title'] = drupal_set_title($title . $title_separator . $slogan);
break;
case 'slogan_title':
$vars['head_title'] = drupal_set_title($slogan . $title_separator . $title);
break;
case 'title_mission':
$vars['head_title'] = drupal_set_title($title . $title_separator . $mission);
break;
case 'custom':
if (theme_get_setting('page_title_display_custom') !== '') {
$vars['head_title'] = drupal_set_title(t(theme_get_setting('page_title_display_custom')));
}
}
}
else { // Non-front page title settings
switch (theme_get_setting('other_page_title_display')) {
case 'ptitle_slogan':
$vars['head_title'] = drupal_set_title($page_title . $title_separator . $slogan);
break;
case 'ptitle_stitle':
$vars['head_title'] = drupal_set_title($page_title . $title_separator . $title);
break;
case 'ptitle_smission':
$vars['head_title'] = drupal_set_title($page_title . $title_separator . $mission);
break;
case 'ptitle_custom':
if (theme_get_setting('other_page_title_display_custom') !== '') {
$vars['head_title'] = drupal_set_title($page_title . $title_separator . t(theme_get_setting('other_page_title_display_custom')));
}
break;
case 'custom':
if (theme_get_setting('other_page_title_display_custom') !== '') {
$vars['head_title'] = drupal_set_title(t(theme_get_setting('other_page_title_display_custom')));
}
}
}
$vars['head_title'] = strip_tags($vars['head_title']); // Remove any potential html tags
}
// Set meta keywords and description (unless using Meta tags module)
if (!module_exists('nodewords')) {
if (theme_get_setting('meta_keywords') !== '') {
$keywords = '';
$vars['head'] .= $keywords ."\n";
}
if (theme_get_setting('meta_description') !== '') {
$keywords = '';
$vars['head'] .= $keywords ."\n";
}
}
// Add custom theme settings
$theme_settings_path = path_to_theme() . '/theme_settings/';
drupal_add_css($theme_settings_path . theme_get_setting('theme_width') . '.css', 'theme');
drupal_add_css($theme_settings_path . theme_get_setting('theme_fonts') . '.css', 'theme');
$banner_file = theme_get_setting('theme_banner');
$vars['banner_image'] = ($banner_file == 'none') ? '' : 'style="background: url('. base_path() . $theme_settings_path .'banners/'. $banner_file .') no-repeat;"';
// Set IE6 & IE7 stylesheets, plus right-to-left versions
$theme_path = base_path() . path_to_theme();
$vars['ie6_styles'] = '' . "\n";
$vars['ie7_styles'] = '' . "\n";
if (defined('LANGUAGE_RTL') && $language->direction == LANGUAGE_RTL) {
$vars['ie6_styles'] .= ' ' . "\n";
$vars['ie7_styles'] .= ' ' . "\n";
}
if (file_exists(path_to_theme() . '/local.css')) { // Add local css file if present
$theme_path = base_path() . path_to_theme() . '/local.css';
$vars['local_styles'] = '' . "\n";
}
// Use grouped import technique for more than 30 un-aggregated stylesheets (css limit fix for IE)
$css = drupal_add_css();
if (theme_get_setting('fix_css_limit') && !variable_get('preprocess_css', FALSE) && acquia_marina_css_count($css) > 26) {
$styles = '';
$suffix = "\n".''."\n";
foreach ($css as $media => $types) {
$prefix = '