Index: sites/all/modules/google_analytics/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
--- sites/all/modules/google_analytics/googleanalytics.admin.inc 22 Aug 2009 11:48:15 -0000 1.4.2.14
+++ sites/all/modules/google_analytics/googleanalytics.admin.inc 29 Jan 2010 04:40:13 -0000
@@ -236,7 +236,52 @@
'#wysiwyg' => FALSE,
'#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 '.$i),
+ '#default_value' => variable_get('googleanalytics_custom_var_'.$i.'_name', ''),
+ '#description' => t("The name for the custom variable for index ".$i),
+ );
+ $form['advanced']['custom_var']['googleanalytics_custom_var_'.$i.'_value'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Value of index '.$i),
+ '#default_value' => variable_get('googleanalytics_custom_var_'.$i.'_value', ''),
+ '#description' => t("The value for the custom variable for index ".$i),
+ );
+ $form['advanced']['custom_var']['googleanalytics_custom_var_'.$i.'_scope'] = array(
+ '#type' => 'select',
+ '#title' => t('Scope of 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: sites/all/modules/google_analytics/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
--- sites/all/modules/google_analytics/googleanalytics.module 22 Aug 2009 10:51:25 -0000 1.19.2.11
+++ sites/all/modules/google_analytics/googleanalytics.module 29 Jan 2010 04:40:13 -0000
@@ -153,6 +153,20 @@
$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_i = variable_get('googleanalytics_custom_var_'.$i.'_name', '');
+ if (!empty($custom_var_i)) {
+ if (module_exists('token')) {
+ $node = menu_get_object();
+ $custom_var .= token_replace('pageTracker._setCustomVar('.$i.',"'.$custom_var_i.'","'.variable_get('googleanalytics_custom_var_'.$i.'_value', '').'",'.variable_get('googleanalytics_custom_var_'.$i.'_scope', '').');','node',$node);
+ }else {
+ $custom_var .= 'pageTracker._setCustomVar('.$i.',"'.$custom_var_i.'","'.variable_get('googleanalytics_custom_var_'.$i.'_value', '').'",'.variable_get('googleanalytics_custom_var_'.$i.'_scope', '').');';
+ }
+ }
+ }
+
// Build tracker code for footer.
$script = 'try{';
$script .= 'var pageTracker = _gat._getTracker('. drupal_to_js($id) .');';
@@ -166,6 +180,9 @@
if (!empty($codesnippet_after)) {
$script .= $codesnippet_after;
}
+ if (!empty($custom_var)) {
+ $script .= $custom_var;
+ }
$script .= '} catch(err) {}';
drupal_add_js($script, 'inline', 'footer');