Loading composer.json 0 → 100644 +8 −0 Original line number Diff line number Diff line { "name": "drupal/visitors", "description": "Visitors is a native drupal web analytics software.", "type": "drupal-module", "license": "GPL-2.0+", "require": { } } forms/admin_settings.inc +14 −4 Original line number Diff line number Diff line Loading @@ -12,6 +12,10 @@ * The form. */ function visitors_admin_settings() { $roles = []; foreach (user_roles() as $role) { $roles[$role] = $role; } $form = array(); // Statistics settings. Loading @@ -23,11 +27,17 @@ function visitors_admin_settings() { '#description' => t('Visitors statistics settings'), ); $form['visitors_statistics']['visitors_exclude_administer_users'] = array( $form['visitors_statistics']['visitors_exclude_user1'] = array( '#type' => 'checkbox', '#title' => t('Exclude administer users from statistics'), '#default_value' => variable_get('visitors_exclude_administer_users', 0), '#description' => t('Exclude hits of administer users from statistics.'), '#title' => t('Exclude user1 from statistics'), '#default_value' => variable_get('visitors_exclude_user1', 0), '#description' => t('Exclude hits of user1 from statistics.'), ); $form['visitors_statistics']['visitors_excluded_roles'] = array( '#type' => 'checkboxes', '#title' => t('Excluded Roles'), '#options' => $roles, '#default_value' => variable_get('visitors_excluded_roles', []), ); $form['visitors_statistics']['visitors_lines_per_page'] = array( Loading visitors.exit.inc +45 −34 Original line number Diff line number Diff line Loading @@ -135,10 +135,22 @@ function visitors_exit() { drupal_load('module', 'user'); global $user; $not_admin = !in_array('administrator', $user->roles); $log_admin = !variable_get('visitors_exclude_administer_users', 0); if ($log_admin || $not_admin) { $exclude_user1 = variable_get('visitors_exclude_user1', 0); $excluded_roles = array_values(variable_get('visitors_excluded_roles', [])); $skip_because_user1 = $user->uid == 1 && $exclude_user1; if ($skip_because_user1) { return NULL; } foreach ($excluded_roles as $role) { $skip_because_role = in_array($role, $user->roles, TRUE); if ($skip_because_role) { return NULL; } } $ip_str = visitors_get_ip_str(); $fields = array( Loading Loading @@ -172,4 +184,3 @@ function visitors_exit() { ->fields($fields) ->execute(); } } visitors.install +12 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ function visitors_install() { function visitors_uninstall() { drupal_uninstall_schema('visitors'); variable_del('visitors_exclude_administer_users'); variable_del('visitors_excluded_roles'); variable_del('visitors_chart_height'); variable_del('visitors_chart_width'); variable_del('visitors_flush_log_timer'); Loading Loading @@ -110,3 +110,14 @@ function visitors_update_7013() { ) ); } /** * Allow exclusion by role. */ function visitors_update_7110() { $exclude = variable_get('visitors_exclude_administer_users', 0); if ($exclude) { variable_set('visitors_excluded_roles', ['administrator']); } variable_del('visitors_exclude_administer_users'); } Loading
composer.json 0 → 100644 +8 −0 Original line number Diff line number Diff line { "name": "drupal/visitors", "description": "Visitors is a native drupal web analytics software.", "type": "drupal-module", "license": "GPL-2.0+", "require": { } }
forms/admin_settings.inc +14 −4 Original line number Diff line number Diff line Loading @@ -12,6 +12,10 @@ * The form. */ function visitors_admin_settings() { $roles = []; foreach (user_roles() as $role) { $roles[$role] = $role; } $form = array(); // Statistics settings. Loading @@ -23,11 +27,17 @@ function visitors_admin_settings() { '#description' => t('Visitors statistics settings'), ); $form['visitors_statistics']['visitors_exclude_administer_users'] = array( $form['visitors_statistics']['visitors_exclude_user1'] = array( '#type' => 'checkbox', '#title' => t('Exclude administer users from statistics'), '#default_value' => variable_get('visitors_exclude_administer_users', 0), '#description' => t('Exclude hits of administer users from statistics.'), '#title' => t('Exclude user1 from statistics'), '#default_value' => variable_get('visitors_exclude_user1', 0), '#description' => t('Exclude hits of user1 from statistics.'), ); $form['visitors_statistics']['visitors_excluded_roles'] = array( '#type' => 'checkboxes', '#title' => t('Excluded Roles'), '#options' => $roles, '#default_value' => variable_get('visitors_excluded_roles', []), ); $form['visitors_statistics']['visitors_lines_per_page'] = array( Loading
visitors.exit.inc +45 −34 Original line number Diff line number Diff line Loading @@ -135,10 +135,22 @@ function visitors_exit() { drupal_load('module', 'user'); global $user; $not_admin = !in_array('administrator', $user->roles); $log_admin = !variable_get('visitors_exclude_administer_users', 0); if ($log_admin || $not_admin) { $exclude_user1 = variable_get('visitors_exclude_user1', 0); $excluded_roles = array_values(variable_get('visitors_excluded_roles', [])); $skip_because_user1 = $user->uid == 1 && $exclude_user1; if ($skip_because_user1) { return NULL; } foreach ($excluded_roles as $role) { $skip_because_role = in_array($role, $user->roles, TRUE); if ($skip_because_role) { return NULL; } } $ip_str = visitors_get_ip_str(); $fields = array( Loading Loading @@ -172,4 +184,3 @@ function visitors_exit() { ->fields($fields) ->execute(); } }
visitors.install +12 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ function visitors_install() { function visitors_uninstall() { drupal_uninstall_schema('visitors'); variable_del('visitors_exclude_administer_users'); variable_del('visitors_excluded_roles'); variable_del('visitors_chart_height'); variable_del('visitors_chart_width'); variable_del('visitors_flush_log_timer'); Loading Loading @@ -110,3 +110,14 @@ function visitors_update_7013() { ) ); } /** * Allow exclusion by role. */ function visitors_update_7110() { $exclude = variable_get('visitors_exclude_administer_users', 0); if ($exclude) { variable_set('visitors_excluded_roles', ['administrator']); } variable_del('visitors_exclude_administer_users'); }