function history_write

Same name in other branches
  1. 8.9.x core/modules/history/history.module \history_write()
  2. 10 core/modules/history/history.module \history_write()
  3. 11.x core/modules/history/history.module \history_write()

Updates 'last viewed' timestamp of the specified entity for the current user.

Parameters

$nid: The node ID that has been read.

$account: (optional) The user account to update the history for. Defaults to the current user.

1 call to history_write()
HistoryController::readNode in core/modules/history/src/Controller/HistoryController.php
Marks a node as read by the current user right now.

File

core/modules/history/history.module, line 107

Code

function history_write($nid, $account = NULL) {
    if (!isset($account)) {
        $account = \Drupal::currentUser();
    }
    if ($account->isAuthenticated()) {
        $request_time = \Drupal::time()->getRequestTime();
        \Drupal::database()->merge('history')
            ->keys([
            'uid' => $account->id(),
            'nid' => $nid,
        ])
            ->fields([
            'timestamp' => $request_time,
        ])
            ->execute();
        // Update static cache.
        $history =& drupal_static('history_read_multiple', []);
        $history[$nid] = $request_time;
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.