function _tracker_add
Same name in other branches
- 9 core/modules/tracker/tracker.module \_tracker_add()
- 8.9.x core/modules/tracker/tracker.module \_tracker_add()
- 10 core/modules/tracker/tracker.module \_tracker_add()
- 11.x core/modules/tracker/tracker.module \_tracker_add()
Updates indexing tables when a node is added, updated, or commented on.
Parameters
$nid: A node ID.
$uid: The node or comment author.
$changed: The node updated timestamp or comment timestamp.
3 calls to _tracker_add()
- tracker_comment_publish in modules/
tracker/ tracker.module - Implements hook_comment_publish().
- tracker_node_insert in modules/
tracker/ tracker.module - Implements hook_node_insert().
- tracker_node_update in modules/
tracker/ tracker.module - Implements hook_node_update().
File
-
modules/
tracker/ tracker.module, line 250
Code
function _tracker_add($nid, $uid, $changed) {
$node = db_query('SELECT nid, status, uid, changed FROM {node} WHERE nid = :nid', array(
':nid' => $nid,
))->fetchObject();
// Adding a comment can only increase the changed timestamp, so our
// calculation here is simple.
$changed = max($node->changed, $changed);
// Update the node-level data.
db_merge('tracker_node')->key(array(
'nid' => $nid,
))
->fields(array(
'changed' => $changed,
'published' => $node->status,
))
->execute();
// Create or update the user-level data, first for the user posting.
db_merge('tracker_user')->key(array(
'nid' => $nid,
'uid' => $uid,
))
->fields(array(
'changed' => $changed,
'published' => $node->status,
))
->execute();
// Update the times for all the other users tracking the post.
db_update('tracker_user')->condition('nid', $nid)
->fields(array(
'changed' => $changed,
'published' => $node->status,
))
->execute();
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.