Created
February 11, 2014 04:55
-
-
Save mohit-rocks/8929474 to your computer and use it in GitHub Desktop.
override the pager title for the calendar(Drupal 7)
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 | |
/** | |
* @file | |
* Template file for the example display. | |
* | |
* Variables available: | |
* | |
* $plugin: The pager plugin object. This contains the view. | |
* | |
* $plugin->view | |
* The view object for this navigation. | |
* | |
* $nav_title | |
* The formatted title for this view. In the case of block | |
* views, it will be a link to the full view, otherwise it will | |
* be the formatted name of the year, month, day, or week. | |
* | |
* $prev_url | |
* $next_url | |
* Urls for the previous and next calendar pages. The links are | |
* composed in the template to make it easier to change the text, | |
* add images, etc. | |
* | |
* $prev_options | |
* $next_options | |
* Query strings and other options for the links that need to | |
* be used in the l() function, including rel=nofollow. | |
*/ | |
?> | |
<?php if (!empty($cur_month)): ?> | |
<h1 class="current-month"><?php print ($cur_month); ?></h1> | |
<?php endif; ?> | |
<?php if (!empty($pager_prefix)) print $pager_prefix; ?> | |
<div class="date-nav-wrapper clearfix<?php if (!empty($extra_classes)) print $extra_classes; ?>"> | |
<div class="date-nav item-list"> | |
<ul class="pager"> | |
<?php if (!empty($prev_url)) : ?> | |
<li class="date-prev"> | |
<?php print l('«' . ($mini ? '' : ' ' . t($prev_title, array(), array('context' => 'date_nav'))), $prev_url, $prev_options); ?> | |
</li> | |
<?php endif; ?> | |
<?php if (!empty($next_url)) : ?> | |
<li class="date-next"> | |
<?php print l(($mini ? '' : t($next_title, array(), array('context' => 'date_nav')) . ' ') . '»', $next_url, $next_options); ?> | |
</li> | |
<?php else:?> | |
<li class="date-pager-spacer"> | |
</li> | |
<?php endif; ?> | |
</ul> | |
</div> |
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 function for Date pager template. | |
*/ | |
function MYTHEME_preprocess_date_views_pager(&$vars) { | |
ctools_add_css('date_views', 'date_views'); | |
$plugin = $vars['plugin']; | |
$input = $vars['input']; | |
$view = $plugin->view; | |
$vars['nav_title'] = ''; | |
$vars['next_url'] = ''; | |
$vars['prev_url'] = ''; | |
if (empty($view->date_info) || empty($view->date_info->min_date)) { | |
return; | |
} | |
$date_info = $view->date_info; | |
// Make sure we have some sort of granularity. | |
$granularity = !empty($date_info->granularity) ? $date_info->granularity : 'month'; | |
$pos = $date_info->date_arg_pos; | |
if (!empty($input)) { | |
$id = $plugin->options['date_id']; | |
if (array_key_exists($id, $input) && !empty($input[$id])) { | |
$view->args[$pos] = $input[$id]; | |
} | |
} | |
$next_args = $view->args; | |
$prev_args = $view->args; | |
$min_date = $date_info->min_date; | |
$max_date = $date_info->max_date; | |
// Set up the pager link format. Setting the block identifier | |
// will force pager style links. | |
if ((isset($date_info->date_pager_format) && $date_info->date_pager_format != 'clean') || !empty($date_info->mini)) { | |
if (empty($date_info->block_identifier)) { | |
$date_info->block_identifier = $date_info->pager_id; | |
} | |
} | |
if (empty($date_info->hide_nav)) { | |
$prev_date = clone($min_date); | |
date_modify($prev_date, '-1 ' . $granularity); | |
$next_date = clone($min_date); | |
date_modify($next_date, '+1 ' . $granularity); | |
$format = array('year' => 'Y', 'month' => 'Y-m', 'day' => 'Y-m-d'); | |
switch ($granularity) { | |
case 'week': | |
$next_week = date_week(date_format($next_date, 'Y-m-d')); | |
$prev_week = date_week(date_format($prev_date, 'Y-m-d')); | |
$next_arg = date_format($next_date, 'Y-\W') . date_pad($next_week); | |
$prev_arg = date_format($prev_date, 'Y-\W') . date_pad($prev_week); | |
break; | |
default: | |
$next_arg = date_format($next_date, $format[$granularity]); | |
$prev_arg = date_format($prev_date, $format[$granularity]); | |
} | |
$next_path = str_replace($date_info->date_arg, $next_arg, $date_info->url); | |
$prev_path = str_replace($date_info->date_arg, $prev_arg, $date_info->url); | |
$next_args[$pos] = $next_arg; | |
$prev_args[$pos] = $prev_arg; | |
$vars['next_url'] = date_pager_url($view, NULL, $next_arg); | |
$vars['prev_url'] = date_pager_url($view, NULL, $prev_arg); | |
$vars['next_options'] = $vars['prev_options'] = array(); | |
} | |
else { | |
$next_path = ''; | |
$prev_path = ''; | |
$vars['next_url'] = ''; | |
$vars['prev_url'] = ''; | |
$vars['next_options'] = $vars['prev_options'] = array(); | |
} | |
// Check whether navigation links would point to | |
// a date outside the allowed range. | |
if (!empty($next_date) && !empty($vars['next_url']) && date_format($next_date, 'Y') > $date_info->limit[1]) { | |
$vars['next_url'] = ''; | |
} | |
if (!empty($prev_date) && !empty($vars['prev_url']) && date_format($prev_date, 'Y') < $date_info->limit[0]) { | |
$vars['prev_url'] = ''; | |
} | |
$vars['prev_options'] += array('attributes' => array()); | |
$vars['next_options'] += array('attributes' => array()); | |
$prev_title = ''; | |
$next_title = ''; | |
// Build next/prev link titles. | |
switch ($granularity) { | |
case 'year': | |
$prev_title = t('Navigate to previous year'); | |
$next_title = t('Navigate to next year'); | |
break; | |
case 'month': | |
$prev_title = t('Navigate to previous month'); | |
$next_title = t('Navigate to next month'); | |
break; | |
case 'week': | |
$prev_title = t('Navigate to previous week'); | |
$next_title = t('Navigate to next week'); | |
break; | |
case 'day': | |
$prev_title = t('Navigate to previous day'); | |
$next_title = t('Navigate to next day'); | |
break; | |
} | |
$vars['prev_options']['attributes'] += array('title' => $prev_title); | |
$vars['next_options']['attributes'] += array('title' => $next_title); | |
// Add nofollow for next/prev links. | |
$vars['prev_options']['attributes'] += array('rel' => 'nofollow'); | |
$vars['next_options']['attributes'] += array('rel' => 'nofollow'); | |
// Need this so we can use '«' or images in the links. | |
$vars['prev_options'] += array('html' => TRUE); | |
$vars['next_options'] += array('html' => TRUE); | |
$link = FALSE; | |
// Month navigation titles are used as links in the block view. | |
if (!empty($date_info->mini) && $granularity == 'month') { | |
$link = TRUE; | |
} | |
$params = array( | |
'granularity' => $granularity, | |
'view' => $view, | |
'link' => $link, | |
); | |
$nav_title = theme('date_nav_title', $params); | |
$vars['nav_title'] = $nav_title; | |
$vars['mini'] = !empty($date_info->mini); | |
// Get the date information from the view. | |
$date_info = $view->date_info; | |
// Choose the dislpay format of the month name. | |
$format = 'F'; | |
// Get the previous month. | |
$dateString = $date_info->min_date; | |
$prev_month = new DateTime($dateString); | |
$prev_month->modify('-1 month'); | |
$prev_pager_title = format_date($prev_month->getTimestamp(), 'custom', $format); | |
$vars['prev_title'] = $prev_pager_title; | |
// Get the next month. | |
$next_month = new DateTime($dateString); | |
$next_month->modify('+1 month'); | |
$next_pager_title = format_date($next_month->getTimestamp(), 'custom', $format); | |
$vars['next_title'] = $next_pager_title; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment