This is a changelog for Piwik platform developers. All changes for our HTTP API’s, Plugins, Themes, etc will be listed here.
nb_users
which measures the number of unique users when a User ID is set.Piwik\Menu\MenuAbstract::add()
method is deprecated in favor of addItem()
. Read more about this here: #6140. We do not plan to remove the deprecated method before Piwik 3.0.core:clear-caches
Lets you easily delete all caches. This command can be useful for instance after updating Piwik files manually.'json'
API format is considered deprecated. We ask all new code to use the 'json2'
format. Eventually when Piwik 3.0 is released the 'json'
format will be replaced with 'json2'
. Differences in the json2 format include:
array('name' => 'value', 'name2' => 'value2')
will now appear correctly as {"name":"value","name2":"value2"}
in JSON API output instead of [{"name":"value","name2":"value2"}]
. API methods like SitesManager.getSiteFromId & UsersManager.getUser are affected.filter_limit
and filter_offset
. This was before only possible if an API returned a DataTable.getLastVisitDetails
or getVisitorProfile
. If all core plugins are enabled as by default there will be no change at all except the order of the properties within one visitor.core:run-scheduled-tasks
Let’s you run all scheduled tasks due to run at this time. Useful for instance when testing tasks.core/Loader.php
will no longer exist. In case you are using Piwik from Git make sure to run php composer.phar self-update && php composer.phar install
to make your Piwik work again. Also make sure to no longer include core/Loader.php
in case it is used in any custom script.Tracker.*
or Request.initAuthenticationObject
event or it has to define dimensions in order to be detected as a tracker plugin.getCustomVariable
function to access custom variables values that were set on previous page views, you now must also call storeCustomVariablesInCookie
before the first call to trackPageView
. Read more about Javascript Tracking here.&
to &
. If you still want this behavior - for instance to prevent XSS - you can define a filter by setting the transform
property like this:
$setting->transform = function ($value) { return Common::sanitizeInputValue($value); }
disable_merged_assets
moved from Debug
section to Development
. The updater will automatically change the section for you.API.getRowEvolution
will throw an exception if a report is requested that does not have a dimension, for instance VisitsSummary.get
. This is a fix as an invalid format was returned before see #5951MultiSites.getAll
returns from now on always an array of websites. In the past it returned a single object and it didn’t contain all properties in case only one website was found which was a bug see #5987The following events are considered as deprecated and the new structure should be used in the future. We have not scheduled when those events will be removed but probably in Piwik 3.0 which is not scheduled yet and won’t be soon. New features will be added only to the new classes.
API.getReportMetadata
, API.getSegmentDimensionMetadata
, Goals.getReportsWithGoalMetrics
, ViewDataTable.configure
, ViewDataTable.getDefaultType
: use Report class instead to define new reports. There is an updated guide as well Part1WidgetsList.addWidgets
: use Widgets class instead to define new widgetsMenu.Admin.addItems
, Menu.Reporting.addItems
, Menu.Top.addItems
: use Menu class insteadTaskScheduler.getScheduledTasks
: use Tasks class instead to define new tasksTracker.recordEcommerceGoal
, Tracker.recordStandardGoals
, Tracker.newConversionInformation
: use Conversion Dimension class insteadTracker.existingVisitInformation
, Tracker.newVisitorInformation
, Tracker.getVisitFieldsToPersist
: use Visit Dimension class insteadViewDataTable.addViewDataTable
: This event is no longer needed. Visualizations are automatically discovered if they are placed within a Visualizations
directory inside the plugin.As a plugin developer you might want to reuse existing translation keys. You can now find all available translations and translation keys by opening the page “Settings => Development:Translation search” in your Piwik installation. Read more about internationalization here.
It is now possible to use the filter_sort_column
parameter when requesting Live.getLastVisitDetails
. For instance &filter_sort_column=visitCount
.
We are using @since
annotations in case we are introducing new API’s to make it easy to see in which Piwik version a new method was added. This information is now displayed in the Classes API-Reference.
Reports
generate:theme
Let’s you easily generate a new theme and customize colors, see the Theming guidegenerate:update
Let’s you generate an update filegenerate:report
Let’s you generate a reportgenerate:dimension
Let’s you enhance the tracking by adding new dimensionsgenerate:menu
Let’s you generate a menu class to add or modify menu itemsgenerate:widgets
Let’s you generate a widgets class to add or modify widgetsgenerate:tasks
Let’s you generate a tasks class to add or modify tasksdevelopment:enable
Let’s you enable the development mode which will will disable some caching to make code changes directly visible and it will assist developers by performing additional checks to prevent for instance typos. Should not be used in production.development:disable
Let’s you disable the development mode