function opigno_statistics_app_exit in Opigno Statistics App 7
Implements hook_exit().
Gathers statistics for group content viewed
File
- ./
opigno_statistics_app.module, line 242 - Module file. Defines module hooks.
Code
function opigno_statistics_app_exit() {
global $user;
drupal_bootstrap(DRUPAL_BOOTSTRAP_VARIABLES);
if ($user->uid) {
$month_year = mktime(0, 0, 0, date('m', time()), 1);
if (arg(0) == 'node' && is_numeric(arg(1))) {
//Handle group context statistics
if (isset($_SESSION['og_context']['gid']) && (opigno_statistics_app_node_id_og_group_content($_SESSION['og_context']['gid'], arg(1)) || $_SESSION['og_context']['gid'] == arg(1))) {
db_merge('opigno_statistics_user_group')
->key(array(
'nid' => arg(1),
'group_nid' => $_SESSION['og_context']['gid'],
'uid' => $user->uid,
))
->fields(array())
->expression('page_views', 'page_views + 1')
->execute();
opigno_statistics_group_insert($_SESSION['og_context']['gid'], arg(1), $month_year);
}
}
//User statistics
$month_year = mktime(0, 0, 0, date('m', time()), 1);
db_merge('opigno_statistics_user')
->key(array(
'uid' => $user->uid,
'month_year' => $month_year,
))
->fields(array())
->expression('page_views', 'page_views + 1')
->execute();
//User classes statistics
$query = db_query('SELECT gid FROM {og_membership} ogm
INNER JOIN {node} n
ON ogm.gid = n.nid
WHERE etid = :uid
AND entity_type = :user_type
AND n.type = :node_type', array(
':uid' => $user->uid,
':user_type' => 'user',
':node_type' => 'class',
));
foreach ($query as $record) {
db_update('opigno_statistics_group')
->expression('page_views', 'page_views + 1')
->condition('group_nid', $record->gid)
->condition('month_year', $month_year)
->execute();
}
}
else {
drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION);
include_once DRUPAL_ROOT . '/includes/unicode.inc';
$month_year = mktime(0, 0, 0, date('m', time()), 1);
if (isset($_SESSION['og_context']['gid']) && (opigno_statistics_app_node_id_og_group_content($_SESSION['og_context']['gid'], arg(1)) || $_SESSION['og_context']['gid'] == arg(1))) {
opigno_statistics_group_insert($_SESSION['og_context']['gid'], arg(1), $month_year);
}
}
}