Index: archive.module =================================================================== RCS file: /cvs/drupal/drupal/modules/archive.module,v retrieving revision 1.89 diff -u -r1.89 archive.module --- archive.module 5 Jun 2006 09:32:46 -0000 1.89 +++ archive.module 12 Jul 2006 05:24:35 -0000 @@ -67,9 +67,10 @@ function archive_calendar() { global $user; + $user_time = time() + $user->timezone; // Extract today's date: - $start_of_today = mktime(0, 0, 0, date('n', time()), date('d', time()), date('Y', time())) + $user->timezone; - $end_of_today = mktime(23, 59, 59, date('n', time()), date('d', time()), date('Y', time())) + $user->timezone; + $start_of_today = gmmktime(0, 0, 0, gmdate('n', $user_time), gmdate('d', $user_time), gmdate('Y', $user_time)) - $user->timezone; + $end_of_today = gmmktime(23, 59, 59, gmdate('n', $user_time), gmdate('d', $user_time), gmdate('Y', $user_time)) - $user->timezone; // Extract the requested date: if (arg(0) == 'archive' && arg(3)) { @@ -77,25 +78,25 @@ $month = arg(2); $day = arg(3); - $requested = mktime(0, 0, 0, $month, $day, $year) + $user->timezone; + $requested = gmmktime(0, 0, 0, $month, $day, $year) - $user->timezone; } else { - $year = date('Y', time()); - $month = date('n', time()); - $day = date('d', time()); + $year = gmdate('Y', $user_time); + $month = gmdate('n', $user_time); + $day = gmdate('d', $user_time); - $requested = $end_of_today + $user->timezone; + $requested = $end_of_today; } - $start_of_month = mktime(0, 0, 0, $month, 1, $year); + $start_of_month = gmmktime(0, 0, 0, $month, 1, $year) - $user->timezone; // Extract first day of the month: - $first = date('w', $start_of_month); + $first = gmdate('w', $start_of_month + $user->timezone); // Extract last day of the month: - $last = date('t', $start_of_month); + $last = gmdate('t', $start_of_month + $user->timezone); - $end_of_month = mktime(23, 59, 59, $month, $last, $year); + $end_of_month = gmmktime(23, 59, 59, $month, $last, $year) - $user->timezone; $cache = cache_get("archive:calendar:$day-$month-$year"); @@ -104,10 +105,10 @@ } // 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); - $nextmonth = mktime(23, 59, 59, $month + 1, 1, $year); - $next = mktime(23, 59, 59, $month + 1, min(date('t', $nextmonth), $day), $year); + $prevmonth = gmmktime(23, 59, 59, $month - 1, 1, $year) - $user->timezone; + $prev = gmmktime(23, 59, 59, $month - 1, min(gmdate('t', $prevmonth + $user->timezone), $day), $year) - $user->timezone; + $nextmonth = gmmktime(23, 59, 59, $month + 1, 1, $year) - $user->timezone; + $next = gmmktime(23, 59, 59, $month + 1, min(gmdate('t', $nextmonth + $user->timezone), $day), $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); @@ -115,7 +116,7 @@ $days_with_posts = array(); while ($day_with_post = db_fetch_object($result)) { - $daynum = date('j', $day_with_post->created + $user->timezone); + $daynum = gmdate('j', $day_with_post->created + $user->timezone); if (isset($days_with_posts[$daynum])) { $days_with_posts[$daynum]++; } @@ -128,7 +129,7 @@ $output .= "\n\n"; $output .= '
'; $output .= '\n"; - $output .= ' \n"; + $output .= ' \n"; // First day of week (0 => Sunday, 1 => Monday, ...) $weekstart = variable_get('date_first_day', 0); @@ -137,8 +138,6 @@ ($weekstart - 1 == -1) ? $lastday = 6 : $lastday = $weekstart - 1; // Generate the days of the week: - $firstcolumn = mktime(0, 0, 0, 3, 20 + $weekstart, 1994); - $output .= " \n"; $days = array(t('Sunday') => t('Su'), t('Monday') => t('Mo'), t('Tuesday') => t('Tu'), t('Wednesday') => t('We'), t('Thursday') => t('Th'), t('Friday') => t('Fr'), t('Saturday') => t('Sa')); if ($weekstart) { @@ -168,7 +167,7 @@ } // Print one cell: - $date = mktime(0, 0, 0, $month, $nday, $year) + $user->timezone; + $date = gmmktime(0, 0, 0, $month, $nday, $year) - $user->timezone; if (isset($days_with_posts[$nday])) { $daytext = l($nday, "archive/$year/$month/$nday", array("title" => format_plural($days_with_posts[$nday], "1 post", "%count posts"))); $dayclass = 'day-link'; @@ -220,15 +219,15 @@ function archive_page($year = 0, $month = 0, $day = 0) { global $user; - $date = mktime(0, 0, 0, $month, $day, $year) - $user->timezone; - $date_end = mktime(0, 0, 0, $month, $day + 1, $year) - $user->timezone; + $date = gmmktime(0, 0, 0, $month, $day, $year) - $user->timezone; + $date_end = gmmktime(0, 0, 0, $month, $day + 1, $year) - $user->timezone; // Display form. $output = archive_browse_form($year, $month, $day); if ($year && $month && $day) { // Fetch nodes for the selected date, if one was specified. - $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 = '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); $result = db_query_range($sql, $date, $date_end, 0, 20); if (db_num_rows($result) > 0) { @@ -251,21 +250,24 @@ * Generate a form that retrieves archives for a certain date. */ function archive_browse_form($year, $month, $day) { + global $user; + // Prepare the values of the form fields. $years = drupal_map_assoc(range(2000, date('Y'))); $months = array(1 => t('January'), 2 => t('February'), 3 => t('March'), 4 => t('April'), 5 => t('May'), 6 => t('June'), 7 => t('July'), 8 => t('August'), 9 => t('September'), 10 => t('October'), 11 => t('November'), 12 => t('December')); $days = drupal_map_assoc(range(1, 31)); + $user_time = time() + $user->timezone; $form['year'] = array('#type' => 'select', - '#default_value' => ($year ? $year : date('Y')), + '#default_value' => ($year ? $year : gmdate('Y', $user_time)), '#options' => $years, ); $form['month'] = array('#type' => 'select', - '#default_value' => ($month ? $month : date('m')), + '#default_value' => ($month ? $month : gmdate('m', $user_time)), '#options' => $months, ); $form['day'] = array('#type' => 'select', - '#default_value' => ($day ? $day : date('d')), + '#default_value' => ($day ? $day : gmdate('d', $user_time)), '#options' => $days, ); $form['show'] = array('#type' => 'submit',
'. l('«', 'archive/'. date('Y/m/d', $prev), array('title' => t('Previous month'))) .' '. format_date($requested, 'custom', 'F') . date(' Y', $requested) .' '. ($nextmonth <= time() ? l('»', 'archive/'. date('Y/m/d', $next), array('title' => t('Next month'))) : ' ') ."'. l('«', 'archive/'. gmdate('Y/m/d', $prev + $user->timezone), array('title' => t('Previous month'))) .' '. format_date($requested + $user->timezone, 'custom', 'F') . gmdate(' Y', $requested + $user->timezone) .' '. ($nextmonth <= time() ? l('»', 'archive/'. gmdate('Y/m/d', $next + $user->timezone), array('title' => t('Next month'))) : ' ') ."