history_read_multiple($nids)
Retrieves the last viewed timestamp for each of the passed node IDs.
Parameters
array $nids: An array of node IDs.
Return value
array Array of timestamps keyed by node ID. If a node has been previously viewed by the user, the timestamp in seconds of when the last view occurred; otherwise, zero.
File
- core/modules/history/history.module, line 62
- Records which users have read which content.
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | function history_read_multiple( $nids ) { $history = &drupal_static( __FUNCTION__ , array ()); $return = array (); $nodes_to_read = array (); foreach ( $nids as $nid ) { if (isset( $history [ $nid ])) { $return [ $nid ] = $history [ $nid ]; } else { // Initialize value if current user has not viewed the node. $nodes_to_read [ $nid ] = 0; } } if ( empty ( $nodes_to_read )) { return $return ; } $result = db_query( 'SELECT nid, timestamp FROM {history} WHERE uid = :uid AND nid IN ( :nids[] )' , array ( ':uid' => \Drupal::currentUser()->id(), ':nids[]' => array_keys ( $nodes_to_read ), )); foreach ( $result as $row ) { $nodes_to_read [ $row ->nid] = (int) $row ->timestamp; } $history += $nodes_to_read ; return $return + $nodes_to_read ; } |
Please login to continue.