Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Visitor Generator generates Future Visits #1369

Closed
robocoder opened this Issue · 3 comments

3 participants

@robocoder

At 23:55 PM EDT on May 20th, I ran misc/generateVisits.php. Looking in piwik_log_visit, the visits were generated for May 21st and May 22nd.

(daysToCompute is 1)

@JulienMoumne
Collaborator

Attachment:
piwik.patch

@JulienMoumne
Collaborator

To override default behaviors of a visit a subclass of /core/Tracker/Visit.php has been created : /core/Tracker/Generator/Visit.php.

This extension allows a fake generated timestamp to be assigned to a visit. In order to do so, an overridden method has been created in /core/Tracker/Generator/Visit.php : 33


    protected function getCurrentTimestamp()
    {
        self::$timestampToUse = max(@$this->visitorInfo['visit_last_action_time'],self::$timestampToUse);
        self::$timestampToUse += mt_rand(4,1840);
        return self::$timestampToUse;
    }

In /core/Tracker/Visit.php : 226, 254, 290, 356, 427, 572, 773 and 804, the method getCurrentTimestamp() is called.

The method getCurrentTimestamp() of class /core/Tracker/Visit.php is supposed to be an accessor method and not a computational one. Each call of the overridden method getCurrentTimestamp() of class /core/Tracker/Generator/Visit.php computes a new timestamp instead of reusing the first generated one. Because of those unnecessary increments, the time goes too much ahead.

Proposal: Remove the time increment from getCurrentTimestamp() and add a generateTimestamp() method. I have attached a patch to solve this issue. I have decided to access this method from /core/Tracker/Generator/Tracker.php after the creation of the visit. It could be done in the constructor of /core/Tracker/Generator/Visit.php.

@mattab
Owner

(In [2211]) Fixes #1369 Thanks JulienM!

@robocoder robocoder added this to the Piwik 0.6.2 milestone
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.