Matomo 2.5
15 August 2014
Matomo version 2.5 is now available (major release).
Upgrading to Matomo 2.5
Matomo 2.5 can be upgraded to (or installed) using any of Installatron's products. Use Installatron's optional Automatic Update feature to automatically apply Matomo updates as new versions are released, or use Installatron's Clone feature to duplicate an existing Matomo install to test the 2.5 upgrade prior to applying it live. Get started managing your Matomo installations with Installatron
What's New in Matomo 2.5
In this release there are breaking API changes, API deprecations, and also new features: Translation search, Reporting API improvement, @since annotation, loads of New APIs, and New commmands for plugin developers.
Breaking Changes:
- Javascript Tracking API: if you are using 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.
- The settings API will receive the actual entered value and will no longer convert characters like & 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); }
- Config setting 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 #5951
- MultiSites.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 #5987
Deprecations: The 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 Part1
- WidgetsList.addWidgets: use Widgets class instead to define new widgets
- Menu.Admin.addItems, Menu.Reporting.addItems, Menu.Top.addItems: use Menu class instead
- TaskScheduler.getScheduledTasks: use Tasks class instead to define new tasks
- Tracker.recordEcommerceGoal, Tracker.recordStandardGoals, Tracker.newConversionInformation: use Conversion Dimension class instead
- Tracker.existingVisitInformation, Tracker.newVisitorInformation, Tracker.getVisitFieldsToPersist: use Visit Dimension class instead
- ViewDataTable.addViewDataTable: This event is no longer needed. Visualizations are automatically discovered if they are placed within a Visualizations directory inside the plugin.
New features:
- Translation search: 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.
- Reporting API: It is now possible to use the filter_sort_column parameter when requesting Live.getLastVisitDetails. For instance &filter_sort_column=visitCount.
- @since annotation: 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.
New APIs:
- Report to add a new report
- Action Dimension to add a dimension that tracks action related information
- Visit Dimension to add a dimension that tracks visit related information
- Conversion Dimension to add a dimension that tracks conversion related information
- Dimension to add a basic non tracking dimension that can be used in Reports
- Widgets to add or modfiy widgets
- These Menu classes got new methods that make it easier to add new items to a specific section
- MenuAdmin to add or modify admin menu items.
- MenuReporting to add or modify reporting menu items
- MenuUser to add or modify user menu items
- Tasks to add scheduled tasks
New commands:
- generate:theme Let's you easily generate a new theme and customize colors, see the Theming guide
- generate:update Let's you generate an update file
- generate:report Let's you generate a report
- generate:dimension Let's you enhance the tracking by adding new dimensions
- generate:menu Let's you generate a menu class to add or modify menu items
- generate:widgets Let's you generate a widgets class to add or modify widgets
- generate:tasks Let's you generate a tasks class to add or modify tasks
- development: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