Specification menu, plugin, widget, dashboard
This page was written a while ago by Matthieu (see his Blog in French), Anthon, and the rest of the Piwik team.
- A plugin
- can output data
- can publish several widgets
- can output a normal plain page
- this page is located in its own section, adding an entry to the menu ; error if the section assigned already exists
- can be
- activated ; the first time it is activated it runs the (optional) installation function
- deactivated
- deleted ; runs the (optional) desinstall function
- can have dependencies with other plugins (not yet implemented)
- can have its own configuration file
- can have its own translation files
- respects the directory structure
- /plugins/PluginName
- PluginName.php ; main plugin file, defining meta information about the plugin, optional hooks, optional widgets, etc
- Controller.php ; if the plugin wants to display data it needs a controller
- API.php ; if the plugin wants to publish an API easily using Piwik architecture, this is the place to go
- /plugins/PluginName
- can output data
- A widget
- is - generally - a small piece of data to display
- is displayed within Piwik
- can be included in the Piwik dashboard
- is embeddable
- can be included in any website or blog using the Iframe / javascript technique
- can also be included in other personalized homepage (igoogle netvibes etc) by using the clearspring.com converter
- by default, the widget is not displayed
- can be included in the dashboard by the user
- can be included in the plugin's output if the plugin developed decided to include it
- has properties
- a title
- a description (optional)
- is basically the output of a php function or method and can be added in the widgets list in the dashboard by calling the Piwik_AddWidget function
- The homepage in piwik is the Dashboard that
- is made of widgets
- is customizable like netvibes/igoogle (add/remove widgets, move widgets in the dashboard)
- has multiple columns, the widgets have different heights ; number of columns customizable
- the number of columns is FIXED (even when resizing the window to a small width, the widgets should stay on the same line)
- the dashboard should handle when the window is resized (eg for width=800 or width=1600 it should occupy 100% of the screen width)
- The dashboard can be customized per user
- each anonymous user can customize the dashboard freely as well
- way to serialize/unserialize the dashboard state
- the widgets in the dashboard are loaded via ajax. Simple way for the developer to "reload" a widget via a javascript function.
- the dashboard should work in a non-javascript mode (the links to other categories should work even if the dashboard itself doesn't display the data loaded in ajax)
Menu hierarchy: 2 levels of depth
- Dashboard
- Visitors
- Overview
- Loyalty (frequency, visits per visitor / time spent by visitor, visitor recency)
- Locations (continent / countrie / provider)
- Settings (browsers / os / plugins / resolutions / screen type)
- Times (local / server time)
- Actions
- Overview
- All actions (pages/downloads/outlinks)
- Entry actions
- Exit actions
- Links
- Overview
- Search engines
- Keywords
- Websites
- Others (direct entry/campaigns/partners)
- Piwik Live!
- Overview (current connected visitors
- Last N visitors details
- Last keywords (more recent, last new)
- Last links (more recent, last new)
Attachments
-
11-questions-dashboard-users-ask.png
(23.1 KB) - added by matt
4 years ago.

