summaryrefslogtreecommitdiff
path: root/sites/all/themes/zen/STARTERKIT/template.php
diff options
context:
space:
mode:
Diffstat (limited to 'sites/all/themes/zen/STARTERKIT/template.php')
-rw-r--r--sites/all/themes/zen/STARTERKIT/template.php220
1 files changed, 220 insertions, 0 deletions
diff --git a/sites/all/themes/zen/STARTERKIT/template.php b/sites/all/themes/zen/STARTERKIT/template.php
new file mode 100644
index 000000000..8130d2351
--- /dev/null
+++ b/sites/all/themes/zen/STARTERKIT/template.php
@@ -0,0 +1,220 @@
+<?php
+/**
+ * @file
+ * Contains the theme's functions to manipulate Drupal's default markup.
+ *
+ * A QUICK OVERVIEW OF DRUPAL THEMING
+ *
+ * The default HTML for all of Drupal's markup is specified by its modules.
+ * For example, the comment.module provides the default HTML markup and CSS
+ * styling that is wrapped around each comment. Fortunately, each piece of
+ * markup can optionally be overridden by the theme.
+ *
+ * Drupal deals with each chunk of content using a "theme hook". The raw
+ * content is placed in PHP variables and passed through the theme hook, which
+ * can either be a template file (which you should already be familiary with)
+ * or a theme function. For example, the "comment" theme hook is implemented
+ * with a comment.tpl.php template file, but the "breadcrumb" theme hooks is
+ * implemented with a theme_breadcrumb() theme function. Regardless if the
+ * theme hook uses a template file or theme function, the template or function
+ * does the same kind of work; it takes the PHP variables passed to it and
+ * wraps the raw content with the desired HTML markup.
+ *
+ * Most theme hooks are implemented with template files. Theme hooks that use
+ * theme functions do so for performance reasons - theme_field() is faster
+ * than a field.tpl.php - or for legacy reasons - theme_breadcrumb() has "been
+ * that way forever."
+ *
+ * The variables used by theme functions or template files come from a handful
+ * of sources:
+ * - the contents of other theme hooks that have already been rendered into
+ * HTML. For example, the HTML from theme_breadcrumb() is put into the
+ * $breadcrumb variable of the page.tpl.php template file.
+ * - raw data provided directly by a module (often pulled from a database)
+ * - a "render element" provided directly by a module. A render element is a
+ * nested PHP array which contains both content and meta data with hints on
+ * how the content should be rendered. If a variable in a template file is a
+ * render element, it needs to be rendered with the render() function and
+ * then printed using:
+ * <?php print render($variable); ?>
+ *
+ * ABOUT THE TEMPLATE.PHP FILE
+ *
+ * The template.php file is one of the most useful files when creating or
+ * modifying Drupal themes. With this file you can do three things:
+ * - Modify any theme hooks variables or add your own variables, using
+ * preprocess or process functions.
+ * - Override any theme function. That is, replace a module's default theme
+ * function with one you write.
+ * - Call hook_*_alter() functions which allow you to alter various parts of
+ * Drupal's internals, including the render elements in forms. The most
+ * useful of which include hook_form_alter(), hook_form_FORM_ID_alter(),
+ * and hook_page_alter(). See api.drupal.org for more information about
+ * _alter functions.
+ *
+ * OVERRIDING THEME FUNCTIONS
+ *
+ * If a theme hook uses a theme function, Drupal will use the default theme
+ * function unless your theme overrides it. To override a theme function, you
+ * have to first find the theme function that generates the output. (The
+ * api.drupal.org website is a good place to find which file contains which
+ * function.) Then you can copy the original function in its entirety and
+ * paste it in this template.php file, changing the prefix from theme_ to
+ * STARTERKIT_. For example:
+ *
+ * original, found in modules/field/field.module: theme_field()
+ * theme override, found in template.php: STARTERKIT_field()
+ *
+ * where STARTERKIT is the name of your sub-theme. For example, the
+ * zen_classic theme would define a zen_classic_field() function.
+ *
+ * Note that base themes can also override theme functions. And those
+ * overrides will be used by sub-themes unless the sub-theme chooses to
+ * override again.
+ *
+ * Zen core only overrides one theme function. If you wish to override it, you
+ * should first look at how Zen core implements this function:
+ * theme_breadcrumbs() in zen/template.php
+ *
+ * For more information, please visit the Theme Developer's Guide on
+ * Drupal.org: http://drupal.org/node/173880
+ *
+ * CREATE OR MODIFY VARIABLES FOR YOUR THEME
+ *
+ * Each tpl.php template file has several variables which hold various pieces
+ * of content. You can modify those variables (or add new ones) before they
+ * are used in the template files by using preprocess functions.
+ *
+ * This makes THEME_preprocess_HOOK() functions the most powerful functions
+ * available to themers.
+ *
+ * It works by having one preprocess function for each template file or its
+ * derivatives (called theme hook suggestions). For example:
+ * THEME_preprocess_page alters the variables for page.tpl.php
+ * THEME_preprocess_node alters the variables for node.tpl.php or
+ * for node--forum.tpl.php
+ * THEME_preprocess_comment alters the variables for comment.tpl.php
+ * THEME_preprocess_block alters the variables for block.tpl.php
+ *
+ * For more information on preprocess functions and theme hook suggestions,
+ * please visit the Theme Developer's Guide on Drupal.org:
+ * http://drupal.org/node/223440 and http://drupal.org/node/1089656
+ */
+
+
+/**
+ * Override or insert variables into the maintenance page template.
+ *
+ * @param $variables
+ * An array of variables to pass to the theme template.
+ * @param $hook
+ * The name of the template being rendered ("maintenance_page" in this case.)
+ */
+/* -- Delete this line if you want to use this function
+function STARTERKIT_preprocess_maintenance_page(&$variables, $hook) {
+ // When a variable is manipulated or added in preprocess_html or
+ // preprocess_page, that same work is probably needed for the maintenance page
+ // as well, so we can just re-use those functions to do that work here.
+ STARTERKIT_preprocess_html($variables, $hook);
+ STARTERKIT_preprocess_page($variables, $hook);
+}
+// */
+
+/**
+ * Override or insert variables into the html templates.
+ *
+ * @param $variables
+ * An array of variables to pass to the theme template.
+ * @param $hook
+ * The name of the template being rendered ("html" in this case.)
+ */
+/* -- Delete this line if you want to use this function
+function STARTERKIT_preprocess_html(&$variables, $hook) {
+ $variables['sample_variable'] = t('Lorem ipsum.');
+
+ // The body tag's classes are controlled by the $classes_array variable. To
+ // remove a class from $classes_array, use array_diff().
+ //$variables['classes_array'] = array_diff($variables['classes_array'], array('class-to-remove'));
+}
+// */
+
+/**
+ * Override or insert variables into the page templates.
+ *
+ * @param $variables
+ * An array of variables to pass to the theme template.
+ * @param $hook
+ * The name of the template being rendered ("page" in this case.)
+ */
+/* -- Delete this line if you want to use this function
+function STARTERKIT_preprocess_page(&$variables, $hook) {
+ $variables['sample_variable'] = t('Lorem ipsum.');
+}
+// */
+
+/**
+ * Override or insert variables into the node templates.
+ *
+ * @param $variables
+ * An array of variables to pass to the theme template.
+ * @param $hook
+ * The name of the template being rendered ("node" in this case.)
+ */
+/* -- Delete this line if you want to use this function
+function STARTERKIT_preprocess_node(&$variables, $hook) {
+ $variables['sample_variable'] = t('Lorem ipsum.');
+
+ // Optionally, run node-type-specific preprocess functions, like
+ // STARTERKIT_preprocess_node_page() or STARTERKIT_preprocess_node_story().
+ $function = __FUNCTION__ . '_' . $variables['node']->type;
+ if (function_exists($function)) {
+ $function($variables, $hook);
+ }
+}
+// */
+
+/**
+ * Override or insert variables into the comment templates.
+ *
+ * @param $variables
+ * An array of variables to pass to the theme template.
+ * @param $hook
+ * The name of the template being rendered ("comment" in this case.)
+ */
+/* -- Delete this line if you want to use this function
+function STARTERKIT_preprocess_comment(&$variables, $hook) {
+ $variables['sample_variable'] = t('Lorem ipsum.');
+}
+// */
+
+/**
+ * Override or insert variables into the region templates.
+ *
+ * @param $variables
+ * An array of variables to pass to the theme template.
+ * @param $hook
+ * The name of the template being rendered ("region" in this case.)
+ */
+/* -- Delete this line if you want to use this function
+function STARTERKIT_preprocess_region(&$variables, $hook) {
+ // Don't use Zen's region--sidebar.tpl.php template for sidebars.
+ if (strpos($variables['region'], 'sidebar_') === 0) {
+ $variables['theme_hook_suggestions'] = array_diff($variables['theme_hook_suggestions'], array('region__sidebar'));
+ }
+}
+// */
+
+/**
+ * Override or insert variables into the block templates.
+ *
+ * @param $variables
+ * An array of variables to pass to the theme template.
+ * @param $hook
+ * The name of the template being rendered ("block" in this case.)
+ */
+/* -- Delete this line if you want to use this function
+function STARTERKIT_preprocess_block(&$variables, $hook) {
+ // Add a count to all the blocks in the region.
+ $variables['classes_array'][] = 'count-' . $variables['block_id'];
+}
+// */