From 70dc8c78d42c8fb954b2a29bb1391988e6f31a02 Mon Sep 17 00:00:00 2001 From: Sean Hammond Date: Fri, 19 Oct 2012 16:10:58 +0200 Subject: [PATCH] Add CKAN 2.0 resource download event tracking --- .../googleanalytics_event_tracking.js | 15 +++++++++++++++ ckanext/googleanalytics/plugin.py | 12 ++++++++++-- ckanext/googleanalytics/templates/base.html | 7 +++++-- 3 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 ckanext/googleanalytics/fanstatic_library/googleanalytics_event_tracking.js diff --git a/ckanext/googleanalytics/fanstatic_library/googleanalytics_event_tracking.js b/ckanext/googleanalytics/fanstatic_library/googleanalytics_event_tracking.js new file mode 100644 index 0000000..a6c9f35 --- /dev/null +++ b/ckanext/googleanalytics/fanstatic_library/googleanalytics_event_tracking.js @@ -0,0 +1,15 @@ +// Add Google Analytics Event Tracking to resource download links. +this.ckan.module('google-analytics', function(jQuery, _) { + return { + options: { + googleanalytics_resource_prefix: '' + }, + initialize: function() { + resource_prefix = this.options.googleanalytics_resource_prefix; + jQuery('a.resource-url-analytics').on('click', function(){ + resource_url = resource_prefix + encodeURIComponent(this.href); + _gaq.push(['_trackPageview', resource_url]); + }); + } + } +}); diff --git a/ckanext/googleanalytics/plugin.py b/ckanext/googleanalytics/plugin.py index 70aa623..910a8a1 100644 --- a/ckanext/googleanalytics/plugin.py +++ b/ckanext/googleanalytics/plugin.py @@ -38,14 +38,22 @@ class GoogleAnalyticsPlugin(p.SingletonPlugin): self.googleanalytics_javascript_url = h.url_for_static( '/scripts/ckanext-googleanalytics.js') - self.googleanalytics_resource_prefix = config.get( - 'googleanalytics.resource_prefix', commands.DEFAULT_RESOURCE_URL_TAG) + # If resource_prefix is not in config file then write the default value + # to the config dict, otherwise templates seem to get 'true' when they + # try to read resource_prefix from config. + if 'googleanalytics.resource_prefix' not in config: + config['googleanalytics.resource_prefix'] = ( + commands.DEFAULT_RESOURCE_URL_TAG) + self.googleanalytics_resource_prefix = config[ + 'googleanalytics.resource_prefix'] self.show_downloads = converters.asbool( config.get('googleanalytics.show_downloads', True)) self.track_events = converters.asbool( config.get('googleanalytics.track_events', False)) + p.toolkit.add_resource('fanstatic_library', 'ckanext-googleanalytics') + def update_config(self, config): '''Change the CKAN (Pylons) environment configuration. diff --git a/ckanext/googleanalytics/templates/base.html b/ckanext/googleanalytics/templates/base.html index 45fe844..57f01f0 100644 --- a/ckanext/googleanalytics/templates/base.html +++ b/ckanext/googleanalytics/templates/base.html @@ -9,7 +9,10 @@ {% block scripts %} {{ super() }} - {% block googleanalytics_footer %} - {{ h.googleanalytics_footer() }} + {% block googleanalytics_event_tracking %} + {% resource 'ckanext-googleanalytics/googleanalytics_event_tracking.js' %} +
+
{% endblock %} {% endblock %}