@halfdan opened this Issue on May 23rd 2010 Member

After #762, #1369 and #1371 I took the liberty and refactored the generateVisits.php into an own plugin (see Attachment). Basically the plugin replaces the generateVisits.php and introduces a smarter interface which can be called from a browser. It does not provide a CLI though.
When the plugin is activated it adds itself to the AdminMenu (if the user is SuperUser).

I set milestone to 0.6.2 as I think this can be easily included into the core. Fell free to change this to third party plugins.

@halfdan commented on May 23rd 2010 Member
@halfdan commented on May 23rd 2010 Member
@halfdan commented on May 28th 2010 Member
@halfdan commented on May 28th 2010 Member

Attachment: VisitorGenerator plugin + en.php.patch
VisitorGenerator.zip

@halfdan commented on May 31st 2010 Member

Attachment:
API.patch

@halfdan commented on June 1st 2010 Member

Attachment:
templates.patch

@robocoder commented on May 23rd 2010 Contributor

Just took a cursory look. For future reference, please indent using tab stops every 4 spaces. See wiki:CodingStandard

Are you sure you meant #762? That ticket was to move core/Tracker/Generator.php, core/Tracker/Generator/, and misc/generateVisitsData/ into a plugin.

@halfdan commented on May 23rd 2010 Member

Mh, indeed #762 is a wrong reference.

I re-uploaded the archive. Tab indent should comply to the Coding Standard now.

@mattab commented on May 24th 2010 Owner

I think this is a good improvement to the current visit generator. code review:

  • have the language strings in the langs/en.php file. Language strings should not contain line breaks or HTML. It is better to create 3 different strings for the 'VisitorGenerator_Warning'
    • instead of action="index.php?module=VisitorGenerator&action=generate" you can use {url module=VisitorGenerator action=generate
  • move misc/generateVisitsData/ into the plugin
  • remove @author and change plugin info to be the standard core plugins info (no author, points to piwik.org, etc.)
  • change the message 'API_QuickDocumentation' (which was bad practise anyway as it contains links, html, etc.) on the API page to explain how to generate fake visits (enable the plugin, etc.).

We will use data from this website as golden logs: divezone.net - diving guide since it is a classic piwik use case website.

@robocoder commented on May 24th 2010 Contributor

IIRC core/Tracker/Generator/* has hardcoded references to misc/generateVisitsData, so it would be more self-contained to move these into the plugin as well.

@halfdan commented on May 24th 2010 Member

matt: Alright, thanks for review. Adjusted everything and added patch to add the plugin.

I moved core/Tracker/Generator.php, core/Tracker/Generator/* and misc/generateVisitsData/* into the plugin.

@mattab commented on May 24th 2010 Owner

code review

  • Maybe the UI could use a table to have the labels aligned (like in the User Settings page).
  • split the 'API_QuickDocumentation' help string into multiple strings (so that there is no HTML in it, and the visit generator help string is in a different string)
    • the generator help string would be displayed only for the super user ( if($isSuperUser) in smarty. The message could read "If you don\'t have data for today you can first generate some data using the VisitorGenerator plugin. You can enable the VisitGenerator plugin, then click on the 'Visitor Generator' menu in the Piwik Admin area.
    • in the language, It will <b>not</b> should be It will %s not %s and %s replaced by <b> at run time
  • it seems you removed the 'token_auth' check, but it is important (against CSRF). You can use $this->checkTokenInUrl(); (see example in UsersManager.Controller.setIgnoreCookie )
@halfdan commented on May 24th 2010 Member

New patch, all fixed.

@mattab commented on May 28th 2010 Owner

The patch seems to be missing the files core/Tracker/Generator/* in the plugin itself?

@halfdan commented on May 28th 2010 Member

They have been moved into the plugin itself (see Tracker.php, etc.)

@mattab commented on May 28th 2010 Owner

yes but they are not in the patch, so when applying the patch, i get the error 'file missing xxx'

@halfdan commented on May 28th 2010 Member

Very strange - reuploaded the patch, according to the trac output it should fix the problem.

@mattab commented on May 28th 2010 Owner

it seems your patch is not against trunk. For example, plugins/VisitorGenerator/Generator.php is a DIFF but this file doesn't exist in trunk, so it should be the full file in the patch. do you see what I mean?

@halfdan commented on May 28th 2010 Member

matt: Yep, I see. Sorry for that, I exported another patch (this time using Netbeans - looked good to me). I seriously need to switch back to my Linux development machine, SVN under Windows is a pain :(

@mattab commented on May 31st 2010 Owner

(In [2245]) Refs #1374 Moving visitor generator tool to its own plugin. Patch by halfdan!

Also renamed setPluginsToLoad to loadPlugins()
Note: still missing updates to the API plugin help as this part was missing from the patch.

@mattab commented on May 31st 2010 Owner

Thanks for the patch!

Note:

  • the patch was not deleting the files in core/Tracker/Generator.php and Tracker/Generator/* but I deleted them manually.
  • the patch was missing the part for the API template to use the new help strings.
    can you please submit patch for the API template + adding the english strings as well (I had to temporarily remove them).

Thanks!

@halfdan commented on May 31st 2010 Member

I knew I missed something ;) Added the patch for the API template. Thanks for integrating that into the core.

@mattab commented on May 31st 2010 Owner

(In [2247]) Fixes #1374 Patch by halfdan

I modified it a bit to simplify the translation messages

@halfdan commented on June 1st 2010 Member

Just noticed that my patch is missing the templates for the VisitorGenerator plugin sigh. It's attached now..

@robocoder commented on June 2nd 2010 Contributor

(In [2257]) fixes #1374 - check in the missing templates

This Issue was closed on June 2nd 2010
Powered by GitHub Issue Mirror