function nodeviewcount_count_node_view_ajax in Node view count 7.3
Same name and namespace in other branches
- 7 includes/pages/nodeviewcount.pages.inc \nodeviewcount_count_node_view_ajax()
- 7.2 includes/pages/nodeviewcount.pages.inc \nodeviewcount_count_node_view_ajax()
Page callback: Add node view ajax.
Parameters
object $node: The node for counting.
object $user: The user for counting.
int $timestamp: When the node was viewed.
string $uip: The user ID for viewed.
string $token: Token generated to verify the URL.
1 string reference to 'nodeviewcount_count_node_view_ajax'
- nodeviewcount_menu in ./
nodeviewcount.module - Implements hook_menu().
File
- includes/
pages/ nodeviewcount.pages.inc, line 22 - Contains ajax callback.
Code
function nodeviewcount_count_node_view_ajax($node, $user, $timestamp, $uip, $token) {
$is_js_way = variable_get('nodeviewcount_way_counting', NODEVIEWCOUNT_PHP_WAY_COUNT_VIEWS) == NODEVIEWCOUNT_JS_WAY_COUNT_VIEWS;
// Process the request only if the JS counting method is the selected.
if ($is_js_way) {
$token_data = array(
$node->nid,
$user->uid,
$timestamp,
$uip,
);
$recreated_token = _nodeviewcount_create_token($token_data);
$is_valid_token = $token == $recreated_token;
// Check the request can be trusted through token validation.
if ($is_valid_token) {
$sessionTimeLimit = _nodeviewcount_get_session_time_limit($node->nid, TRUE);
$sessionTimeLimitTs = $sessionTimeLimit === FALSE ? 0 : $sessionTimeLimit
->getTimestamp();
// Check the time limit condition is met and the view can be counted.
if ($timestamp >= $sessionTimeLimitTs) {
if ($node && $user) {
$_SESSION['nodeviewcount_views_limit_js'][$node->nid] = $_SESSION['nodeviewcount_views_limit'][$node->nid];
nodeviewcount_insert_node_view($node->nid, $user->uid, $uip);
}
}
}
}
}