Commit 3bdce46182d68be9fb2663b4d692ebed38120b9c
1 parent
c2223bbc
Exists in
master
and in
18 other branches
piwik: allow custom path for url
Showing
6 changed files
with
29 additions
and
7 deletions
Show diff stats
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 --> | ... | ... |