Index: googleanalytics.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/google_analytics/googleanalytics.admin.inc,v
retrieving revision 1.4.2.14
diff -u -r1.4.2.14 googleanalytics.admin.inc
--- googleanalytics.admin.inc 22 Aug 2009 11:48:15 -0000 1.4.2.14
+++ googleanalytics.admin.inc 24 May 2010 14:11:48 -0000
@@ -237,6 +237,51 @@
'#description' => t("Code in this textarea will be added after pageTracker._trackPageview(). This is useful if you'd like to track a site in two accounts.")
);
+ $form['advanced']['custom_var'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Custom Variables'),
+ '#collapsible' => TRUE,
+ '#collapsed' => TRUE,
+ '#description' => t('You can add Google Analytics Custom Variables here. These will be added to every page that Google Analytics appears on.', array('@custom_var' => 'http://code.google.com/intl/zh-TW/apis/analytics/docs/tracking/gaTrackingCustomVariables.html'))
+ );
+ if (module_exists('token')) {
+ $form['advanced']['custom_var']['token_help'] = array(
+ '#title' => t('Replacement patterns'),
+ '#type' => 'fieldset',
+ '#collapsible' => TRUE,
+ '#collapsed' => TRUE,
+ );
+
+ $form['advanced']['custom_var']['token_help']['help'] = array(
+ '#value' => theme('token_help', 'node'),
+ );
+ }
+ for ($i=1;$i<6;$i++) {
+ $form['advanced']['custom_var']['googleanalytics_custom_var_'. $i .'_name'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Name of index %index', array('%index' => $i)),
+ '#default_value' => variable_get('googleanalytics_custom_var_'. $i .'_name', ''),
+ '#description' => t('The name for the custom variable for index @i.', array('@i' => $i)),
+ );
+ $form['advanced']['custom_var']['googleanalytics_custom_var_'. $i .'_value'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Value of %index', array('%index' => $i)),
+ '#default_value' => variable_get('googleanalytics_custom_var_'. $i .'_value', ''),
+ '#description' => t('The value for the custom variable for index @i.', array('@i' => $i)),
+ );
+ $form['advanced']['custom_var']['googleanalytics_custom_var_'. $i .'_scope'] = array(
+ '#type' => 'select',
+ '#title' => t('Scope of %index', array('%index' => $i)),
+ '#default_value' => variable_get('googleanalytics_custom_var_'. $i .'_scope', 3),
+ '#options' => array(
+ 3 => "page",
+ 2 => "session",
+ 1 => "visitor",
+ ),
+ '#description' => t('The scope for the custom variable for this var.')
+ );
+ }
+
$form['advanced']['googleanalytics_js_scope'] = array(
'#type' => 'select',
'#title' => t('JavaScript scope'),
Index: googleanalytics.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/google_analytics/googleanalytics.install,v
retrieving revision 1.6.2.12
diff -u -r1.6.2.12 googleanalytics.install
--- googleanalytics.install 22 Aug 2009 10:51:25 -0000 1.6.2.12
+++ googleanalytics.install 24 May 2010 14:11:48 -0000
@@ -39,6 +39,11 @@
variable_del('googleanalytics_visibility');
variable_del('googleanalytics_pages');
variable_del('googleanalytics_translation_set');
+ for ($i=1;$i<6;$i++) {
+ variable_del('googleanalytics_custom_var_'. $i .'_name');
+ variable_del('googleanalytics_custom_var_'. $i .'_value');
+ variable_del('googleanalytics_custom_var_'. $i .'_scope');
+}
}
/**
Index: googleanalytics.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/google_analytics/googleanalytics.module,v
retrieving revision 1.19.2.11
diff -u -r1.19.2.11 googleanalytics.module
--- googleanalytics.module 22 Aug 2009 10:51:25 -0000 1.19.2.11
+++ googleanalytics.module 24 May 2010 14:11:48 -0000
@@ -153,6 +153,24 @@
$codesnippet_before = variable_get('googleanalytics_codesnippet_before', '');
$codesnippet_after = variable_get('googleanalytics_codesnippet_after', '');
+ // Add custom var
+ $custom_var = '';
+ for ($i=1;$i<6;$i++) {
+ $custom_var_name = variable_get('googleanalytics_custom_var_'. $i .'_name', '');
+ if ($custom_var_name!='') {
+ $custom_var_name = drupal_to_js($custom_var_name);
+ $custom_var_value = drupal_to_js(variable_get('googleanalytics_custom_var_'. $i .'_value', ''));
+ $custom_var_scope = drupal_to_js(variable_get('googleanalytics_custom_var_'. $i .'_scope', ''));
+ if (module_exists('token')) {
+ $node = menu_get_object();
+ $custom_var .= token_replace('pageTracker._setCustomVar('. $i .','. $custom_var_name .','. $custom_var_value .','. $custom_var_scope .');', 'node', $node);
+ }
+ else {
+ $custom_var .= 'pageTracker._setCustomVar('. $i .','. $custom_var_name .','. $custom_var_value .','. $custom_var_scope .');';
+ }
+ }
+ }
+
// Build tracker code for footer.
$script = 'try{';
$script .= 'var pageTracker = _gat._getTracker('. drupal_to_js($id) .');';
@@ -162,6 +180,9 @@
if (!empty($codesnippet_before)) {
$script .= $codesnippet_before;
}
+ if (!empty($custom_var)) {
+ $script .= $custom_var;
+ }
$script .= 'pageTracker._trackPageview('. $url_custom .');';
if (!empty($codesnippet_after)) {
$script .= $codesnippet_after;