Opened 5 years ago

Closed 5 years ago

#745 closed Bug (fixed)

Page names are recorded but if a "/0/" if in the URL, it will be removed when it shouldn't

Reported by: matt Owned by:
Priority: major Milestone: Piwik 0.4.2
Component: Core Keywords:
Cc: Sensitive:


from email:

> Piwik removes url path section which contains 0,  e.g.
> portal/ategories/223/1/0/1/company/3107
> is recorded as 
> portal/ategories/223/1/1/company/3107
> in log table - which is incorrect.

see code in tracker/action and matching unit tests, need fixing

Attachments (2)

745_patch.txt (1.6 KB) - added by craigmj 5 years ago.
Fix for bug #745
745_patch.2.txt (1.4 KB) - added by craigmj 5 years ago.
745 bugfix #2 - using 'strlen'

Download all attachments as: .zip

Change History (8)

comment:1 Changed 5 years ago by matt (mattab)

in core/Tracker/Action.php

remove empty categories
$split = array_filter($split);

filter out /0/ in url path like:


this is wrong!

comment:2 Changed 5 years ago by vipsoft (robocoder)

  • Milestone changed from 2- DigitalVibes to 1 - Piwik 0.4.2

Changed 5 years ago by craigmj

Fix for bug #745

comment:3 Changed 5 years ago by craigmj

Attachment 745_patch.txt appears to fix the problem by only removing empty-strings in the array_filter. This is accomplished using a filter function implemented as a static on the Piwik_Tracker_Action class (a lambda function could also be used, but I guess that would be less efficient).

Unit test tests/core/Tracker/Action.test.php has also been updated to include the given test case above. Unit test passes successfully.

comment:4 Changed 5 years ago by vipsoft (robocoder)

Thanks. FYI "ClassName::StaticFunction" is a 5.2.x-ism for callbacks. In general, for backwards compatibility, we should be using this syntax, array('ClassName', 'StaticFunction'). However, in this specific case, I believe we can just use 'strlen' for the callback.

Changed 5 years ago by craigmj

745 bugfix #2 - using 'strlen'

comment:5 Changed 5 years ago by craigmj

Yes, of course! Rather stupid of me, forgetting that 0 evaluates to false when that was the cause of the problem I was trying to fix.

I've attached 745_patch.2.txt which has the fix.

comment:6 Changed 5 years ago by vipsoft (robocoder)

  • Resolution set to fixed
  • Status changed from new to closed

(In [1272]) Fixes #745 - patch and test case by craigmj; thanks

Note: See TracTickets for help on using tickets.