You are here

function history_write in Drupal 8

Same name and namespace in other branches
  1. 9 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.

2 calls to history_write()
HistoryController::readNode in core/modules/history/src/Controller/HistoryController.php
Marks a node as read by the current user right now.
HistoryLegacyTest::testHistoryAttachTimestamp in core/modules/history/tests/src/Kernel/HistoryLegacyTest.php
Tests history_attach_timestamp() deprecation.

File

core/modules/history/history.module, line 106
Records which users have read which content.

Code

function history_write($nid, $account = NULL) {
  if (!isset($account)) {
    $account = \Drupal::currentUser();
  }
  if ($account
    ->isAuthenticated()) {
    \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;
  }
}