? availability_calendars-333149-25.patch Index: availability_calendars.css =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/availability_calendars/availability_calendars.css,v retrieving revision 1.1.4.4 diff -u -p -r1.1.4.4 availability_calendars.css --- availability_calendars.css 14 Sep 2009 00:07:53 -0000 1.1.4.4 +++ availability_calendars.css 29 Aug 2010 13:05:17 -0000 @@ -15,27 +15,27 @@ tr.caldays { color: #ccc; } -td.calnote { +table.cal tr td.calnote { color: #000; } -td.calother { - background: #fff; +table.cal tr td.calother { + background: #fff; } -td.calavailable { +table.cal tr td.calavailable { color: #000; background: lightgreen; text-align: center; } -td.calnotavailable { +table.cal tr td.calnotavailable { color: #fff; text-align: center; background: lightpink; } -td.calnotavailableprov { +table.cal tr td.calnotavailableprov { color: #ccc; text-align: center; background: lightyellow; @@ -52,4 +52,8 @@ div.month_title{ div.calmonth-wrapper { float:left; -} \ No newline at end of file +} +.caltoday { + border: 1px solid #A00000; +} + Index: availability_calendars.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/availability_calendars/availability_calendars.module,v retrieving revision 1.1.4.9 diff -u -p -r1.1.4.9 availability_calendars.module --- availability_calendars.module 10 Oct 2009 04:21:51 -0000 1.1.4.9 +++ availability_calendars.module 29 Aug 2010 13:05:17 -0000 @@ -21,8 +21,11 @@ function availability_calendars_init() { /** * A callback function to see if allowed to edit the calendar. */ -function availability_can_edit() { - return user_access('edit availability calendars') || user_access('edit own availability calendars'); +function availability_can_edit($nid) { + $node = node_load($nid); + global $user; + return user_access('edit availability calendars') || + (user_access('edit own availability calendars') && $user->uid == $node->uid); } /** @@ -38,14 +41,14 @@ function availability_calendars_menu() { 'page arguments' => array('availability_calendars_admin_settings'), 'access arguments' => array('edit availability calendars') ); - - $items['availability-calendars'] = array( + $items['availability-calendars/%'] = array( 'title' => 'Availability calendar', 'page callback' => 'availability_calendars_page', + 'page arguments' => array(1), 'access callback' => 'availability_can_edit', + 'access arguments' => array(1), 'type' => MENU_CALLBACK, ); - return $items; } @@ -269,13 +272,14 @@ function availability_calendars_node_edi */ function availability_calendars_theme() { - return array('availability_calendars_node' => array( - 'arguments' => array('node' => NULL, 'year' => 2008, 'month' => 01, 'monthstodisplay' => 12) - ), - 'availability_calendars_month' => array( - 'arguments' => array('node' => NULL, 'year' => 2008, 'month' => 01, 'startofweek' => NULL, 'booked' => NULL, 'firstletter' => NULL) - ) - ); + return array( + 'availability_calendars_node' => array( + 'arguments' => array('node' => NULL, 'year' => 2008, 'month' => 01, 'monthstodisplay' => 12) + ), + 'availability_calendars_month' => array( + 'arguments' => array('node' => NULL, 'year' => 2008, 'month' => 01, 'startofweek' => NULL, 'booked' => NULL, 'firstletter' => NULL) + ) + ); } @@ -297,7 +301,7 @@ function theme_availability_calendars_no $firstletter = variable_get('availability_calendars_'. $node->nid .'_firstletter', 0); // Create our key for the availability calendar if the node has it set to do so - if($showkey == 1) { + if($showkey == 1) { $output .= availability_calendars_key(); } @@ -313,17 +317,17 @@ function theme_availability_calendars_no } // add an extra three months for editors only - if (user_access('edit availability calendars')) { + if ( availability_can_edit($node->nid) ) { $monthsremaining = 3; while ($monthsremaining > 0) { $output .= theme('availability_calendars_month', $node, $year, $month, $startofweek, $booked, $firstletter); - $monthsremaining--; + $monthsremaining--; $month++; if ($month > 12) { $month = 1; - $year++; + $year++; } - } + } } return $output; @@ -361,9 +365,9 @@ function availability_calendars_month_me $month_meta['weeksinmonth'] = ceil($tempDays / 7); // Stop empty weeks occuring at start of month - if ($month_meta['firstday'] > 6) { - $month_meta['firstday'] = $month_meta['firstday'] - 7; - $month_meta['weeksinmonth'] --; + if ($month_meta['firstday'] > 6) { + $month_meta['firstday'] = $month_meta['firstday'] - 7; + $month_meta['weeksinmonth'] --; } return $month_meta; } @@ -398,12 +402,12 @@ function theme_availability_calendars_mo $week[$j][$i] = $counter; // offset the days $week[$j][$i] -= $month_meta['firstday']; - if (($week[$j][$i] < 1) || ($week[$j][$i] > $month_meta['daysinmonth'])) { + if (($week[$j][$i] < 1) || ($week[$j][$i] > $month_meta['daysinmonth'])) { $week[$j][$i] = ""; } } } - if (user_access('edit availability calendars')) { //month_title has the edit link if permissable + if ( availability_can_edit($node->nid)) { //month_title has the edit link if permissable $month_title = t("@date", array('@date' => format_date(mktime(12, 0, 0, $month, 1, $year), 'custom', 'F Y'))).' '.l(t('edit'), 'availability-calendars/'. $node->nid .'/'. date('Y/m', mktime(0, 0, 0, $month, 1, $year)) .'/edit', array('query' => 'destination=node/'. $node->nid)); } else { // no edit link @@ -428,6 +432,7 @@ function theme_availability_calendars_mo $day_status[$status['day']] = $status['status']; } $availability_calendars_options = availability_calendars_options(); + $today = date("j,m,Y"); $rows = array(); // our container for rows $cells = array(); // our container for cells foreach ($week as $key => $val) { @@ -436,14 +441,18 @@ function theme_availability_calendars_mo for ($i=0; $i<7; $i++) { // if there's a date, it's part of this month if ($week[$key][$i]) { + $todayclass = ''; + if ( $today == $week[$key][$i] . ',' . $month . ',' . $year) { + $todayclass = 'caltoday'; + } if ($day_status[$week[$key][$i]] == 1) { // booked - array_push($cells, array('data' => $week[$key][$i], 'class' => 'calnotavailable')); + array_push($cells, array('data' => $week[$key][$i], 'class' => "calnotavailable $todayclass")); } elseif ($day_status[$week[$key][$i]] == 2) { // provisionally booked - array_push($cells, array('data' => $week[$key][$i], 'class' => 'calnotavailableprov')); + array_push($cells, array('data' => $week[$key][$i], 'class' => "calnotavailableprov $todayclass")); } else { // available - array_push($cells, array('data' => $week[$key][$i], 'class' => 'calavailable')); + array_push($cells, array('data' => $week[$key][$i], 'class' => "calavailable $todayclass")); } } else { // empty, typically row 1 or 5 in a month @@ -594,7 +603,7 @@ function availability_calendars_enabled( /** * All block functions */ - + /** * Implementation of hook_block(). * @@ -627,5 +636,6 @@ function availability_calendars_block_ke $block = array(); $block['subject'] = variable_get('availability_calendars_title', t('Availability Key')); $block['content'] = availability_calendars_key(); - return($block); -} \ No newline at end of file + return($block); +} +