--- archive.module.old Fri Apr 01 17:54:58 2005 +++ archive.module Sun May 08 00:56:58 2005 @@ -1,5 +1,5 @@ timezone; // Extract the requested date: - if ($edit['year'] && $edit['month'] && $edit['day']) { + if ($edit['year'] && $edit['month']) { $year = $edit['year']; $month = $edit['month']; $day = $edit['day']; - $requested = mktime(0, 0, 0, $month, $day, $year) + $user->timezone; + // AH050508 If $day not defined, assume 2nd day of the month to build calender, avoiding any timezone confusion + $requested = mktime(0, 0, 0, $month, $day?$day:2, $year) + $user->timezone; } - else if (arg(0) == 'archive' && arg(3)) { + else if (arg(0) == 'archive' && arg(2)) { $year = arg(1); $month = arg(2); $day = arg(3); - $requested = mktime(0, 0, 0, $month, $day, $year) + $user->timezone; + $requested = mktime(0, 0, 0, $month, $day?$day:2, $year) + $user->timezone; } else { $year = date('Y', time()); @@ -68,9 +69,9 @@ // Calculate previous and next months dates and check for shorter months (28/30 days) $prevmonth = mktime(23, 59, 59, $month - 1, 1, $year); - $prev = mktime(23, 59, 59, $month - 1, min(date('t', $prevmonth), $day), $year); + $prev = mktime(23, 59, 59, $month - 1, min(date('t', $prevmonth), $day?$day:1), $year); $nextmonth = mktime(23, 59, 59, $month + 1, 1, $year); - $next = mktime(23, 59, 59, $month + 1, min(date('t', $nextmonth), $day), $year); + $next = mktime(23, 59, 59, $month + 1, min(date('t', $nextmonth), $day?$day:1), $year); $sql = 'SELECT n.nid, n.created FROM {node} n WHERE n.status = 1 AND n.created > %d AND n.created < %d ORDER BY n.created'; $sql = db_rewrite_sql($sql); @@ -91,7 +92,7 @@ $output .= "\n\n"; $output .= '
$daytext | \n"; } else if ($date == $start_of_today) { @@ -226,8 +227,14 @@ $day = $edit['day']; } - $date = mktime(0, 0, 0, $month, $day, $year) - $user->timezone; - $date_end = mktime(0, 0, 0, $month, $day + 1, $year) - $user->timezone; + if ($day) { + $date = mktime(0, 0, 0, $month, $day, $year) - $user->timezone; + $date_end = mktime(0, 0, 0, $month, $day + 1, $year) - $user->timezone; + } else { + $day = 0; + $date = mktime(0, 0, 0, $month, 1, $year) - $user->timezone; + $date_end = mktime(23, 59, 59, $month, 31, $year) - $user->timezone; + } // Prepare the values of the form fields. $years = drupal_map_assoc(range(2000, 2005)); @@ -235,11 +242,11 @@ $days = drupal_map_assoc(range(0, 31)); $start = '