template_preprocess_html
function template_preprocess_html
template_preprocess_html(&$variables)
Preprocess variables for html.tpl.php
See also
system_elements()
File
- includes/theme.inc, line 2544
- The theme system, which controls the output of Drupal.
Code
function template_preprocess_html(&$variables) { // Compile a list of classes that are going to be applied to the body element. // This allows advanced theming based on context (home page, node of certain type, etc.). // Add a class that tells us whether we're on the front page or not. $variables['classes_array'][] = $variables['is_front'] ? 'front' : 'not-front'; // Add a class that tells us whether the page is viewed by an authenticated user or not. $variables['classes_array'][] = $variables['logged_in'] ? 'logged-in' : 'not-logged-in'; // Add information about the number of sidebars. if (!empty($variables['page']['sidebar_first']) && !empty($variables['page']['sidebar_second'])) { $variables['classes_array'][] = 'two-sidebars'; } elseif (!empty($variables['page']['sidebar_first'])) { $variables['classes_array'][] = 'one-sidebar sidebar-first'; } elseif (!empty($variables['page']['sidebar_second'])) { $variables['classes_array'][] = 'one-sidebar sidebar-second'; } else { $variables['classes_array'][] = 'no-sidebars'; } // Populate the body classes. if ($suggestions = theme_get_suggestions(arg(), 'page', '-')) { foreach ($suggestions as $suggestion) { if ($suggestion != 'page-front') { // Add current suggestion to page classes to make it possible to theme // the page depending on the current page type (e.g. node, admin, user, // etc.) as well as more specific data like node-12 or node-edit. $variables['classes_array'][] = drupal_html_class($suggestion); } } } // If on an individual node page, add the node type to body classes. if ($node = menu_get_object()) { $variables['classes_array'][] = drupal_html_class('node-type-' . $node->type); } // RDFa allows annotation of XHTML pages with RDF data, while GRDDL provides // mechanisms for extraction of this RDF content via XSLT transformation // using an associated GRDDL profile. $variables['rdf_namespaces'] = drupal_get_rdf_namespaces(); $variables['grddl_profile'] = 'http://www.w3.org/1999/xhtml/vocab'; $variables['language'] = $GLOBALS['language']; $variables['language']->dir = $GLOBALS['language']->direction ? 'rtl' : 'ltr'; // Add favicon. if (theme_get_setting('toggle_favicon')) { $favicon = theme_get_setting('favicon'); $type = theme_get_setting('favicon_mimetype'); drupal_add_html_head_link(array('rel' => 'shortcut icon', 'href' => drupal_strip_dangerous_protocols($favicon), 'type' => $type)); } // Construct page title. if (drupal_get_title()) { $head_title = array( 'title' => strip_tags(drupal_get_title()), 'name' => check_plain(variable_get('site_name', 'Drupal')), ); } else { $head_title = array('name' => check_plain(variable_get('site_name', 'Drupal'))); if (variable_get('site_slogan', '')) { $head_title['slogan'] = filter_xss_admin(variable_get('site_slogan', '')); } } $variables['head_title_array'] = $head_title; $variables['head_title'] = implode(' | ', $head_title); // Populate the page template suggestions. if ($suggestions = theme_get_suggestions(arg(), 'html')) { $variables['theme_hook_suggestions'] = $suggestions; } }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/includes!theme.inc/function/template_preprocess_html/7.x