Turn off this feature on production websites.', array('!link' => url('admin/build/themes/settings/'. $GLOBALS['theme']))), 'warning'); } global $theme_key; // Get node types $node_types = node_get_types('names'); /** * The default values for the theme variables. Make sure $defaults exactly * matches the $defaults in the theme-settings.php file. */ $defaults = array( 'user_notverified_display' => 1, 'breadcrumb' => 'yes', 'breadcrumb_separator' => ' » ', 'breadcrumb_home' => 0, 'breadcrumb_trailing' => 0, 'breadcrumb_title' => 0, 'search_snippet' => 1, 'search_info_type' => 1, 'search_info_user' => 1, 'search_info_date' => 1, 'search_info_comment' => 1, 'search_info_upload' => 1, 'mission_statement_pages' => 'home', 'front_page_title_display' => 'title_slogan', 'page_title_display_custom' => '', 'other_page_title_display' => 'ptitle_slogan', 'other_page_title_display_custom' => '', 'configurable_separator' => ' | ', 'meta_keywords' => '', 'meta_description' => '', 'taxonomy_display_default' => 'only', 'taxonomy_format_default' => 'vocab', 'taxonomy_enable_content_type' => 0, 'submitted_by_author_default' => 1, 'submitted_by_date_default' => 1, 'submitted_by_enable_content_type' => 0, 'readmore_default' => t('Read more'), 'readmore_title_default' => t('Read the rest of this posting.'), 'readmore_prefix_default' => '', 'readmore_suffix_default' => '', 'readmore_enable_content_type' => 0, 'comment_singular_default' => t('1 comment'), 'comment_plural_default' => t('@count comments'), 'comment_title_default' => t('Jump to the first comment of this posting.'), 'comment_prefix_default' => '', 'comment_suffix_default' => '', 'comment_new_singular_default' => t('1 new comment'), 'comment_new_plural_default' => t('@count new comments'), 'comment_new_title_default' => t('Jump to the first new comment of this posting.'), 'comment_new_prefix_default' => '', 'comment_new_suffix_default' => '', 'comment_add_default' => t('Add new comment'), 'comment_add_title_default' => t('Add a new comment to this page.'), 'comment_add_prefix_default' => '', 'comment_add_suffix_default' => '', 'comment_node_default' => t('Add new comment'), 'comment_node_title_default' => t('Share your thoughts and opinions related to this posting.'), 'comment_node_prefix_default' => '', 'comment_node_suffix_default' => '', 'comment_enable_content_type' => 0, 'rebuild_registry' => 0, 'at_admin_theme' => 1, 'at_admin_theme_node' => 1, 'at_admin_theme_logo' => 0, 'block_edit_links' => 1, 'at_admin_hide_help' => 0 ); // Make the default content-type settings the same as the default theme settings, // so we can tell if content-type-specific settings have been altered. $defaults = array_merge($defaults, theme_get_settings()); // Set the default values for content-type-specific settings foreach ($node_types as $type => $name) { $defaults["taxonomy_display_{$type}"] = $defaults['taxonomy_display_default']; $defaults["taxonomy_format_{$type}"] = $defaults['taxonomy_format_default']; $defaults["submitted_by_author_{$type}"] = $defaults['submitted_by_author_default']; $defaults["submitted_by_date_{$type}"] = $defaults['submitted_by_date_default']; $defaults["readmore_{$type}"] = $defaults['readmore_default']; $defaults["readmore_title_{$type}"] = $defaults['readmore_title_default']; $defaults["readmore_prefix_{$type}"] = $defaults['readmore_prefix_default']; $defaults["readmore_suffix_{$type}"] = $defaults['readmore_suffix_default']; $defaults["comment_singular_{$type}"] = $defaults['comment_singular_default']; $defaults["comment_plural_{$type}"] = $defaults['comment_plural_default']; $defaults["comment_title_{$type}"] = $defaults['comment_title_default']; $defaults["comment_prefix_{$type}"] = $defaults['comment_prefix_default']; $defaults["comment_suffix_{$type}"] = $defaults['comment_suffix_default']; $defaults["comment_new_singular_{$type}"] = $defaults['comment_new_singular_default']; $defaults["comment_new_plural_{$type}"] = $defaults['comment_new_plural_default']; $defaults["comment_new_title_{$type}"] = $defaults['comment_new_title_default']; $defaults["comment_new_prefix_{$type}"] = $defaults['comment_new_prefix_default']; $defaults["comment_new_suffix_{$type}"] = $defaults['comment_new_suffix_default']; $defaults["comment_add_{$type}"] = $defaults['comment_add_default']; $defaults["comment_add_title_{$type}"] = $defaults['comment_add_title_default']; $defaults["comment_add_prefix_{$type}"] = $defaults['comment_add_prefix_default']; $defaults["comment_add_suffix_{$type}"] = $defaults['comment_add_suffix_default']; $defaults["comment_node_{$type}"] = $defaults['comment_node_default']; $defaults["comment_node_title_{$type}"] = $defaults['comment_node_title_default']; $defaults["comment_node_prefix_{$type}"] = $defaults['comment_node_prefix_default']; $defaults["comment_node_suffix_{$type}"] = $defaults['comment_node_suffix_default']; } // Get default theme settings. $settings = theme_get_settings($theme_key); // If content type-specifc settings are not enabled, reset the values if (!$settings['readmore_enable_content_type']) { foreach ($node_types as $type => $name) { $settings["readmore_{$type}"] = $settings['readmore_default']; $settings["readmore_title_{$type}"] = $settings['readmore_title_default']; $settings["readmore_prefix_{$type}"] = $settings['readmore_prefix_default']; $settings["readmore_suffix_{$type}"] = $settings['readmore_suffix_default']; } } if (!$settings['comment_enable_content_type']) { foreach ($node_types as $type => $name) { $defaults["comment_singular_{$type}"] = $defaults['comment_singular_default']; $defaults["comment_plural_{$type}"] = $defaults['comment_plural_default']; $defaults["comment_title_{$type}"] = $defaults['comment_title_default']; $defaults["comment_prefix_{$type}"] = $defaults['comment_prefix_default']; $defaults["comment_suffix_{$type}"] = $defaults['comment_suffix_default']; $defaults["comment_new_singular_{$type}"] = $defaults['comment_new_singular_default']; $defaults["comment_new_plural_{$type}"] = $defaults['comment_new_plural_default']; $defaults["comment_new_title_{$type}"] = $defaults['comment_new_title_default']; $defaults["comment_new_prefix_{$type}"] = $defaults['comment_new_prefix_default']; $defaults["comment_new_suffix_{$type}"] = $defaults['comment_new_suffix_default']; $defaults["comment_add_{$type}"] = $defaults['comment_add_default']; $defaults["comment_add_title_{$type}"] = $defaults['comment_add_title_default']; $defaults["comment_add_prefix_{$type}"] = $defaults['comment_add_prefix_default']; $defaults["comment_add_suffix_{$type}"] = $defaults['comment_add_suffix_default']; $defaults["comment_node_{$type}"] = $defaults['comment_node_default']; $defaults["comment_node_title_{$type}"] = $defaults['comment_node_title_default']; $defaults["comment_node_prefix_{$type}"] = $defaults['comment_node_prefix_default']; $defaults["comment_node_suffix_{$type}"] = $defaults['comment_node_suffix_default']; } } // Don't save the toggle_node_info_ variables if (module_exists('node')) { foreach (node_get_types() as $type => $name) { unset($settings['toggle_node_info_'. $type]); } } // Save default theme settings variable_set( str_replace('/', '_', 'theme_'. $theme_key .'_settings'), array_merge($defaults, $settings) ); // Force refresh of Drupal internals theme_get_setting('', TRUE); } // Load collapsed js on blocks page if (theme_get_setting('at_admin_theme')) { if (arg(2) == 'block') { drupal_add_js('misc/collapse.js', 'core', 'header', FALSE, TRUE, TRUE); } } /** * Modify theme variables */ function phptemplate_preprocess(&$vars) { global $user; // Get the current user $vars['is_admin'] = in_array('admin', $user->roles); // Check for Admin, logged in $vars['logged_in'] = ($user->uid > 0) ? TRUE : FALSE; } function phptemplate_preprocess_page(&$vars) { global $theme; // ADPT THEME SETTINGS SECTION // Display mission statement on all pages if (theme_get_setting('mission_statement_pages') == 'all') { $vars['mission'] = theme_get_setting('mission', FALSE); } // Template suggestions for admin theme if (!$vars['is_front']) { if (theme_get_setting('at_admin_theme')) { if ((arg(0) == 'admin')) { $vars['template_files'][] = 'page-at_admin'; } if (arg(2) == 'block') { $vars['template_files'][] = 'page'; } } if (theme_get_setting('at_admin_theme_node')) { if ((arg(0) == 'node' && arg(1) == 'add') || (is_numeric(arg(1)) && (arg(2) == 'edit' || arg(2) == 'delete'))) { $vars['template_files'][] = 'page-at_admin'; } } } /** * Load the admin theme CSS file. */ if (theme_get_setting('at_admin_theme') || theme_get_setting('at_admin_theme_node')) { if ((arg(0) == 'admin') || (arg(0) == 'node' && arg(1) == 'add') || (is_numeric(arg(1)) && (arg(2) == 'edit' || arg(2) == 'delete'))) { drupal_add_css(path_to_theme() .'/css/core/at-admin.css', 'theme', 'all'); } } // Unset stuff to make theming easier. if (theme_get_setting('at_admin_theme') || theme_get_setting('at_admin_theme_node')) { if ((arg(0) == 'admin') || (arg(0) == 'node' && arg(1) == 'add') || (is_numeric(arg(1)) && (arg(2) == 'edit' || arg(2) == 'delete'))) { // Unset vars unset($vars['primary_links']); unset($vars['secondary_links']); // Check whether logo is enabled for admin pages. if (theme_get_setting('at_admin_theme_logo') == 0) { unset($vars['logo']); } // Check whether help is disabled if (theme_get_setting('at_admin_hide_help')) { unset($vars['help']); } // Unset CSS $css = drupal_add_css(); $core_styles = array('dev.css', 'dark.css', 'starter.css'); $path_to_core = path_to_theme() .'/css/core/'; foreach ($core_styles as $stylesheet) { $file = $path_to_core . $stylesheet; unset($css['all']['theme'][$file]); } // Comment out the following if using the array/foreach loop below it to unset custom stylesheets. $theme_styles = path_to_theme() .'/css/theme/theme.css'; // Uncomment and add to this array if you need to unset additional theme CSS files. If you don't it could mess up the admin themes. // $theme_styles = array('theme.css'); // $path_to_theme = path_to_theme() .'/css/theme/'; // foreach ($theme_styles as $stylesheet) { // $file = $path_to_theme . $stylesheet; // unset($css['all']['theme'][$file]); // } unset($css['all']['theme'][$theme_styles]); $vars['styles'] = drupal_get_css($css); return $vars; } } // Hide breadcrumb on all pages. //if (theme_get_setting('breadcrumb_display') == 0) { // $vars['breadcrumb'] = ''; //} // Set site title, slogan, mission, page title & separator $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 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"; } } } function phptemplate_preprocess_node(&$vars) { global $theme; // Node Theme Settings // Date & author $date = t('Posted ') . format_date($vars['node']->created, 'medium'); // Format date as small, medium, or large $author = theme('username', $vars['node']); $author_only_separator = t('Posted by '); $author_date_separator = t(' by '); $submitted_by_content_type = (theme_get_setting('submitted_by_enable_content_type') == 1) ? $vars['node']->type : 'default'; $date_setting = (theme_get_setting('submitted_by_date_'. $submitted_by_content_type) == 1); $author_setting = (theme_get_setting('submitted_by_author_'. $submitted_by_content_type) == 1); $author_separator = ($date_setting) ? $author_date_separator : $author_only_separator; $date_author = ($date_setting) ? $date : ''; $date_author .= ($author_setting) ? $author_separator . $author : ''; $vars['submitted'] = $date_author; // Taxonomy $taxonomy_content_type = (theme_get_setting('taxonomy_enable_content_type') == 1) ? $vars['node']->type : 'default'; $taxonomy_display = theme_get_setting('taxonomy_display_'. $taxonomy_content_type); $taxonomy_format = theme_get_setting('taxonomy_format_'. $taxonomy_content_type); if ((module_exists('taxonomy')) && ($taxonomy_display == 'all' || ($taxonomy_display == 'only' && $vars['page']))) { $vocabularies = taxonomy_get_vocabularies($vars['node']->type); $output = ''; $vocab_delimiter = ''; foreach ($vocabularies as $vocabulary) { if (theme_get_setting('taxonomy_vocab_display_'. $taxonomy_content_type .'_'. $vocabulary->vid) == 1) { $terms = taxonomy_node_get_terms_by_vocabulary($vars['node'], $vocabulary->vid); if ($terms) { $output .= ($taxonomy_format == 'vocab') ? '