Created
May 11, 2012 14:47
-
-
Save mkorostoff/2660221 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Preprocess and Process Functions SEE: http://drupal.org/node/254940#variables-processor | |
* 1. Rename each function and instance of "rsn_base" to match | |
* your subthemes name, e.g. if you name your theme "footheme" then the function | |
* name will be "footheme_preprocess_hook". Tip - you can search/replace | |
* on "rsn_base". | |
* 2. Uncomment the required function to use. | |
*/ | |
/** | |
* Override or insert variables into the html templates. | |
*/ | |
function rsn_base_preprocess_html(&$vars) { | |
// Load the media queries styles | |
// Remember to rename these files to match the names used here - they are | |
// in the CSS directory of your subtheme. | |
$media_queries_css = array( | |
'rsn_base.responsive.style.css', | |
'rsn_base.responsive.gpanels.css' | |
); | |
load_subtheme_media_queries($media_queries_css, 'rsn_base'); | |
$vars['body_classes'] = implode(" ",$vars['classes_array']) . " uid-" . $vars['user']->uid . " " . implode(" ",$vars['user']->roles) . " " . implode(" ",arg()); | |
/** | |
* Load IE specific stylesheets | |
* AT automates adding IE stylesheets, simply add to the array using | |
* the conditional comment as the key and the stylesheet name as the value. | |
* | |
* See our online help: http://adaptivethemes.com/documentation/working-with-internet-explorer | |
* | |
* For example to add a stylesheet for IE8 only use: | |
* | |
* 'IE 8' => 'ie-8.css', | |
* | |
* Your IE CSS file must be in the /css/ directory in your subtheme. | |
*/ | |
/* -- Delete this line to add a conditional stylesheet for IE 7 or less. | |
$ie_files = array( | |
'lte IE 7' => 'ie-lte-7.css', | |
); | |
load_subtheme_ie_styles($ie_files, 'rsn_base'); | |
// */ | |
} | |
/* -- Delete this line if you want to use this function | |
function rsn_base_process_html(&$vars) { | |
} | |
// */ | |
/** | |
* Override or insert variables into the page templates. | |
*/ | |
/* -- Delete this line if you want to use these functions | |
function rsn_base_preprocess_page(&$vars) { | |
} | |
function rsn_base_process_page(&$vars) { | |
} | |
// */ | |
/** | |
* Override or insert variables into the node templates. | |
*/ | |
/* -- Delete this line if you want to use these functions | |
function rsn_base_preprocess_node(&$vars) { | |
} | |
function rsn_base_process_node(&$vars) { | |
} | |
// */ | |
/** | |
* Override or insert variables into the comment templates. | |
*/ | |
/* -- Delete this line if you want to use these functions | |
function rsn_base_preprocess_comment(&$vars) { | |
} | |
function rsn_base_process_comment(&$vars) { | |
} | |
// */ | |
/** | |
* Override or insert variables into the block templates. | |
*/ | |
/* -- Delete this line if you want to use these functions | |
function rsn_base_preprocess_block(&$vars) { | |
} | |
function rsn_base_process_block(&$vars) { | |
} | |
// */ | |
/** | |
* Add the Style Schemes if enabled. | |
* NOTE: You MUST make changes in your subthemes theme-settings.php file | |
* also to enable Style Schemes. | |
*/ | |
/* -- Delete this line if you want to enable style schemes. | |
// DONT TOUCH THIS STUFF... | |
function get_at_styles() { | |
$scheme = theme_get_setting('style_schemes'); | |
if (!$scheme) { | |
$scheme = 'style-default.css'; | |
} | |
if (isset($_COOKIE["atstyles"])) { | |
$scheme = $_COOKIE["atstyles"]; | |
} | |
return $scheme; | |
} | |
if (theme_get_setting('style_enable_schemes') == 'on') { | |
$style = get_at_styles(); | |
if ($style != 'none') { | |
drupal_add_css(path_to_theme() . '/css/schemes/' . $style, array( | |
'group' => CSS_THEME, | |
'preprocess' => TRUE, | |
) | |
); | |
} | |
} | |
// */ | |
/** | |
* Theme override for theme_menu_link() | |
* Adds a unique ID class to all menu items. | |
*/ | |
// function rsn_base_menu_link($variables) { | |
// $element = $variables['element']; | |
// static $item_id = 0; | |
// $element['#attributes']['class'][] = 'menu-item-custom-id' . (++$item_id); | |
// $sub_menu = $element['#below'] ? drupal_render($element['#below']) : ''; | |
// $output = l($element['#title'], $element['#href'], $element['#localized_options']); | |
// return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . '</li>\n'; | |
// } | |
/** | |
* Override the News Ticker pager | |
*/ | |
function rsn_base_pager__rsn_news_ticker($variables) { | |
$tags = $variables['tags']; | |
$element = $variables['element']; | |
$parameters = $variables['parameters']; | |
$quantity = 5; | |
global $pager_page_array, $pager_total; | |
// Calculate various markers within this pager piece: | |
// Middle is used to "center" pages around the current page. | |
$pager_middle = ceil($quantity / 2); | |
// current is the page we are currently paged to | |
$pager_current = $pager_page_array[$element] + 1; | |
// first is the first page listed by this pager piece (re quantity) | |
$pager_first = $pager_current - $pager_middle + 1; | |
// last is the last page listed by this pager piece (re quantity) | |
$pager_last = $pager_current + $quantity - $pager_middle; | |
// max is the maximum page number | |
$pager_max = $pager_total[$element]; | |
// End of marker calculations. | |
// Prepare for generation loop. | |
$i = $pager_first; | |
if ($pager_last > $pager_max) { | |
// Adjust "center" if at end of query. | |
$i = $i + ($pager_max - $pager_last); | |
$pager_last = $pager_max; | |
} | |
if (0 >= $i) { | |
// Adjust "center" if at start of query. | |
$pager_last = $pager_last + (1 - $i); | |
$i = 1; | |
} | |
// End of generation loop preparation. | |
$li_previous = theme('pager_previous', array('text' => (isset($tags[1]) ? $tags[1] : t('Previous')), 'element' => $element, 'interval' => 1, 'parameters' => $parameters)); | |
$li_next = theme('pager_next', array('text' => (isset($tags[3]) ? $tags[3] : t('Next')), 'element' => $element, 'interval' => 1, 'parameters' => $parameters)); | |
if (1 < $pager_total[$element]) { | |
if ($li_previous) { | |
$items[] = array( | |
'class' => array('pager-previous'), | |
'data' => $li_previous, | |
); | |
} | |
// When there is more than one page, create the pager list. | |
if ($i != $pager_max) { | |
// Now generate the actual pager piece. | |
$first_item = $i; | |
for (; $i <= $pager_last && $i <= $pager_max; $i++) { | |
if ($i < $pager_current) { | |
$class = array('pager-item'); | |
if ($i == $first_item) { | |
$class[] = 'first-item'; | |
} | |
$items[] = array( | |
'class' => $class, | |
'data' => theme('pager_previous', array('text' => $i, 'element' => $element, 'interval' => ($pager_current - $i), 'parameters' => $parameters)), | |
); | |
} | |
if ($i == $pager_current) { | |
$class = array('pager-item'); | |
if ($i == $first_item) { | |
$class[] = 'first-item'; | |
} | |
$items[] = array( | |
'class' => $class, | |
'data' => $i, | |
); | |
} | |
if ($i > $pager_current) { | |
$items[] = array( | |
'class' => array('pager-item'), | |
'data' => theme('pager_next', array('text' => $i, 'element' => $element, 'interval' => ($i - $pager_current), 'parameters' => $parameters)), | |
); | |
} | |
} | |
} | |
// End generation. | |
if ($li_next) { | |
$items[] = array( | |
'class' => array('pager-next'), | |
'data' => $li_next, | |
); | |
} | |
return '<h2 class="element-invisible">' . t('Pages') . '</h2>' . theme('item_list', array( | |
'items' => $items, | |
'attributes' => array('class' => array('pager')), | |
)); | |
} | |
} | |
function rsn_base_preprocess_views_view(&$vars) { | |
if ('rsn_news_ticker' == $vars['view']->name) { | |
drupal_add_js(drupal_get_path('theme', 'rsn_base') . '/js/news-ticker-fix-header.js'); | |
} | |
} | |
/** | |
* Returns HTML for a query pager. | |
* | |
* Menu callbacks that display paged query results should call theme('pager') to | |
* retrieve a pager control so that users can view other results. Format a list | |
* of nearby pages with additional query results. | |
* | |
* @param $variables | |
* An associative array containing: | |
* - tags: An array of labels for the controls in the pager. | |
* - element: An optional integer to distinguish between multiple pagers on | |
* one page. | |
* - parameters: An associative array of query string parameters to append to | |
* the pager links. | |
* - quantity: The number of pages in the list. | |
* | |
* @ingroup themeable | |
*/ | |
function rsn_base_pager__rsn_video_listing($variables) { | |
$tags = $variables['tags']; | |
$element = $variables['element']; | |
$parameters = $variables['parameters']; | |
$quantity = $variables['quantity']; | |
global $pager_page_array, $pager_total; | |
// Calculate various markers within this pager piece: | |
// Middle is used to "center" pages around the current page. | |
$pager_middle = ceil($quantity / 2); | |
// current is the page we are currently paged to | |
$pager_current = $pager_page_array[$element] + 1; | |
// first is the first page listed by this pager piece (re quantity) | |
$pager_first = $pager_current - $pager_middle + 1; | |
// last is the last page listed by this pager piece (re quantity) | |
$pager_last = $pager_current + $quantity - $pager_middle; | |
// max is the maximum page number | |
$pager_max = $pager_total[$element]; | |
// End of marker calculations. | |
// Prepare for generation loop. | |
$i = $pager_first; | |
if ($pager_last > $pager_max) { | |
// Adjust "center" if at end of query. | |
$i = $i + ($pager_max - $pager_last); | |
$pager_last = $pager_max; | |
} | |
if ($i <= 0) { | |
// Adjust "center" if at start of query. | |
$pager_last = $pager_last + (1 - $i); | |
$i = 1; | |
} | |
// End of generation loop preparation. | |
$li_previous = theme('pager_previous', array('text' => (isset($tags[1]) ? $tags[1] : t('‹ previous')), 'element' => $element, 'interval' => 1, 'parameters' => $parameters)); | |
$li_next = theme('pager_next', array('text' => (isset($tags[3]) ? $tags[3] : t('next ›')), 'element' => $element, 'interval' => 1, 'parameters' => $parameters)); | |
if ($pager_total[$element] > 1) { | |
$items[] = array( | |
'class' => array('pager-page'), | |
'data' => t('Page:'), | |
); | |
if ($li_previous) { | |
$items[] = array( | |
'class' => array('pager-previous'), | |
'data' => $li_previous, | |
); | |
} else { | |
$items[] = array( | |
'class' => array('pager-previous-disabled'), | |
'data' => ' ', | |
); | |
} | |
// When there is more than one page, create the pager list. | |
if ($i != $pager_max) { | |
// Now generate the actual pager piece. | |
$first_item = $i; | |
for (; $i <= $pager_last && $i <= $pager_max; $i++) { | |
if ($i < $pager_current) { | |
$class = array('pager-item'); | |
if ($i == $first_item) { | |
$class[] = 'first-item'; | |
} | |
$items[] = array( | |
'class' => $class, | |
'data' => theme('pager_previous', array('text' => $i, 'element' => $element, 'interval' => ($pager_current - $i), 'parameters' => $parameters)), | |
); | |
} | |
if ($i == $pager_current) { | |
$class = array('pager-item', 'pager-current'); | |
if ($i == $first_item) { | |
$class[] = 'first-item'; | |
} | |
$items[] = array( | |
'class' => $class, | |
'data' => $i, | |
); | |
} | |
if ($i > $pager_current) { | |
$items[] = array( | |
'class' => array('pager-item'), | |
'data' => theme('pager_next', array('text' => $i, 'element' => $element, 'interval' => ($i - $pager_current), 'parameters' => $parameters)), | |
); | |
} | |
} | |
} | |
// End generation. | |
if ($li_next) { | |
$items[] = array( | |
'class' => array('pager-next'), | |
'data' => $li_next, | |
); | |
} else { | |
$items[] = array( | |
'class' => array('pager-next-disabled'), | |
'data' => ' ', | |
); | |
} | |
return theme('item_list', array( | |
'items' => $items, | |
'attributes' => array('class' => array('pager')), | |
)); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment