1 node.module node_get_recent($number = 10)

Finds the most recently changed nodes that are available to the current user.

Parameters

$number: (optional) The maximum number of nodes to find. Defaults to 10.

Return value

An array of node entities or an empty array if there are no recent nodes: visible to the current user.

File

core/modules/node/node.module, line 2192
The core module that allows content to be submitted to the site.

Code

function node_get_recent($number = 10) {
  $query = db_select('node', 'n');

  if (!user_access('bypass node access') && !user_access('view any unpublished content')) {
    // If the user is able to view unpublished nodes, allow them to see these
    // in addition to published nodes. Check that they actually have some
    // unpublished nodes to view before adding the condition.
    // Note: this query still ignores unpublished by type permissions.
    // See: https://github.com/backdrop/backdrop-issues/issues/146.
    $own_unpublished = db_query('SELECT nid FROM {node} WHERE uid = :uid AND status = :status', 
    array(':uid' => $GLOBALS['user']->uid, ':status' => NODE_NOT_PUBLISHED))->fetchCol();
    if (user_access('view own unpublished content') && $own_unpublished) {
      $query->condition(db_or()
        ->condition('n.status', NODE_PUBLISHED)
        ->condition('n.nid', $own_unpublished, 'IN')
        );
    }
    else {
      // If not, restrict the query to published nodes.
      $query->condition('n.status', NODE_PUBLISHED);
    }
  }
  $nids = $query
  ->fields('n', array('nid'))
    ->orderBy('n.changed', 'DESC')
    ->range(0, $number)
    ->addTag('node_access')
    ->execute()
    ->fetchCol();

  $nodes = node_load_multiple($nids);

  return $nodes ? $nodes : array();
}