Commit 3bdce46182d68be9fb2663b4d692ebed38120b9c

Authored by Victor Costa
1 parent c2223bbc

piwik: allow custom path for url

plugins/piwik/lib/ext/environment.rb
... ... @@ -2,6 +2,7 @@ require_dependency 'environment'
2 2  
3 3 class Environment
4 4 settings_items :piwik_domain
  5 + settings_items :piwik_path, :default => 'piwik'
5 6 settings_items :piwik_site_id
6   - attr_accessible :piwik_domain, :piwik_site_id
  7 + attr_accessible :piwik_domain, :piwik_site_id, :piwik_path
7 8 end
... ...
plugins/piwik/lib/piwik_plugin.rb
... ... @@ -17,7 +17,9 @@ class PiwikPlugin < Noosfero::Plugin
17 17 domain = context.environment.piwik_domain
18 18 site_id = context.environment.piwik_site_id
19 19 unless domain.blank? || site_id.blank?
20   - expanded_template('tracking-code.rhtml',{:domain => domain, :site_id => site_id})
  20 + piwik_url = "#{domain}/#{context.environment.piwik_path}"
  21 + piwik_url = "#{piwik_url}/" unless piwik_url.end_with?('/')
  22 + expanded_template('tracking-code.rhtml', {:site_id => site_id, :piwik_url => piwik_url})
21 23 end
22 24 end
23 25  
... ...
plugins/piwik/test/functional/piwik_plugin_test.rb
... ... @@ -19,10 +19,12 @@ class PiwikPluginAdminControllerTest < ActionController::TestCase
19 19  
20 20 should 'update piwik plugin settings' do
21 21 assert_nil @environment.reload.piwik_domain
  22 + assert_equal 'piwik', @environment.reload.piwik_path
22 23 assert_nil @environment.reload.piwik_site_id
23   - post :index, :environment => { :piwik_domain => 'http://something', :piwik_site_id => 10 }
24   - assert_not_nil @environment.reload.piwik_domain
25   - assert_not_nil @environment.reload.piwik_site_id
  24 + post :index, :environment => { :piwik_domain => 'something', :piwik_site_id => 10, :piwik_path => 'some_path' }
  25 + assert_equal 'something', @environment.reload.piwik_domain
  26 + assert_equal '10', @environment.reload.piwik_site_id
  27 + assert_equal 'some_path', @environment.reload.piwik_path
26 28 end
27 29  
28 30 end
... ...
plugins/piwik/test/unit/piwik_plugin_test.rb
... ... @@ -39,4 +39,19 @@ class PiwikPluginTest < ActiveSupport::TestCase
39 39 assert_respond_to Environment.new, :piwik_site_id
40 40 end
41 41  
  42 + should 'set default path to piwik' do
  43 + @environment.piwik_domain = 'piwik.domain.example.com'
  44 + @environment.piwik_site_id = 5
  45 + @plugin.expects(:expanded_template).with('tracking-code.rhtml', {:site_id => @environment.piwik_site_id, :piwik_url => "piwik.domain.example.com/piwik/"})
  46 + @plugin.body_ending
  47 + end
  48 +
  49 + should 'allow empty path in piwik url' do
  50 + @environment.piwik_domain = 'piwik.domain.example.com'
  51 + @environment.piwik_path = ''
  52 + @environment.piwik_site_id = 5
  53 + @plugin.expects(:expanded_template).with('tracking-code.rhtml', {:site_id => @environment.piwik_site_id, :piwik_url => "piwik.domain.example.com/"})
  54 + @plugin.body_ending
  55 + end
  56 +
42 57 end
... ...
plugins/piwik/views/piwik_plugin_admin/index.html.erb
... ... @@ -4,6 +4,8 @@
4 4  
5 5 <%= labelled_form_field _('Piwik domain'), f.text_field(:piwik_domain) %>
6 6  
  7 + <%= labelled_form_field _('Piwik path'), f.text_field(:piwik_path) %>
  8 +
7 9 <%= labelled_form_field _('Piwik site id'), f.text_field(:piwik_site_id) %>
8 10  
9 11 <% button_bar do %>
... ...
plugins/piwik/views/tracking-code.rhtml
... ... @@ -4,12 +4,12 @@
4 4 _paq.push(['trackPageView']);
5 5 _paq.push(['enableLinkTracking']);
6 6 (function() {
7   - var u=(("https:" == document.location.protocol) ? "https" : "http") + "://<%= escape_javascript locals[:domain] %>/piwik/";
  7 + var u=(("https:" == document.location.protocol) ? "https" : "http") + "://<%= escape_javascript locals[:piwik_url] %>";
8 8 _paq.push(['setTrackerUrl', u+'piwik.php']);
9 9 _paq.push(['setSiteId', <%= escape_javascript locals[:site_id] %>]);
10 10 var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript';
11 11 g.defer=true; g.async=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
12 12 })();
13 13 </script>
14   -<noscript><p><img src="http://<%= escape_javascript locals[:domain] %>/piwik/piwik.php?idsite=<%= escape_javascript locals[:site_id] %>" style="border:0;" alt="" /></p></noscript>
  14 +<noscript><p><img src="http://<%= escape_javascript locals[:piwik_url] %>piwik.php?idsite=<%= escape_javascript locals[:site_id] %>" style="border:0;" alt="" /></p></noscript>
15 15 <!-- End Piwik Code -->
... ...