Same name and namespace in other branches
  1. 4.6.x modules/archive.module \archive_page()

Menu callback; lists all nodes posted on a given date.

1 string reference to 'archive_page'
archive_menu in modules/archive.module
Implementation of hook_menu().

File

modules/archive.module, line 219
Displays a calendar to navigate old content.

Code

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;

  // Display form.
  $output = archive_browse_form($year, $month, $day);
  if ($year && $month && $day) {

    // Fetch nodes for the selected date, if one was specified.
    $sql = db_rewrite_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');
    $countsql = db_rewrite_sql('SELECT count(n.nid) FROM {node} n WHERE n.status = 1 AND n.created > %d AND n.created < %d ORDER BY n.created');
    $result = pager_query($sql, variable_get('default_nodes_main', 10), 0, $countsql, $date, $date_end);
    if (db_num_rows($result) > 0) {
      while ($nid = db_fetch_object($result)) {
        $output .= node_view(node_load($nid->nid), 1);
      }
      $output .= theme('pager');
    }
    else {
      $output .= theme('box', t('No posts found.'), '');
    }
  }
  else {
    $output .= theme('box', t('No posts found.'), '');
  }
  return $output;
}