node_get_recent($number = 10)
Finds the most recently changed nodes that are available to the current user.
$number: (optional) The maximum number of nodes to find. Defaults to 10.
\Drupal\node\NodeInterface[] An array of node entities or an empty array if there are no recent nodes visible to the current user.
function node_get_recent($number = 10) { $account = \Drupal::currentUser(); $query = \Drupal::entityQuery('node'); if (!$account->hasPermission('bypass node access')) { // If the user is able to view their own 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. $access_query = \Drupal::entityQuery('node') ->condition('uid', $account->id()) ->condition('status', NODE_NOT_PUBLISHED); if ($account->hasPermission('view own unpublished content') && ($own_unpublished = $access_query->execute())) { $query->orConditionGroup() ->condition('status', NODE_PUBLISHED) ->condition('nid', $own_unpublished, 'IN'); } else { // If not, restrict the query to published nodes. $query->condition('status', NODE_PUBLISHED); } } $nids = $query ->sort('changed', 'DESC') ->range(0, $number) ->addTag('node_access') ->execute(); $nodes = Node::loadMultiple($nids); return $nodes ? $nodes : array(); }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!modules!node!node.module/function/node_get_recent/8.1.x