'Example Plugin',
'description' => 'Example Plugin: This plugin shows how to create a very simple plugin, that exports two widgets in the Dashboard.',
'author' => 'Piwik',
'author_homepage' => 'http://piwik.org/',
'version' => '0.1',
'translationAvailable' => true,
);
}
public function getListHooksRegistered()
{
return array(
// 'Controller.renderView' => 'addUniqueVisitorsColumnToGivenReport',
);
}
function addUniqueVisitorsColumnToGivenReport($notification)
{
$view = $notification->getNotificationInfo();
$view = $view['view'];
if($view->getCurrentControllerName() == 'Referers'
&& $view->getCurrentControllerAction() == 'getWebsites')
{
$view->addColumnToDisplay('nb_uniq_visitors');
}
}
function postLoad()
{
// we register the widgets so they appear in the "Add a new widget" window in the dashboard
// Note that the first two parameters can be either a normal string, or an index to a translation string
Piwik_AddWidget('ExamplePlugin_exampleWidgets', 'ExamplePlugin_exampleWidget', 'ExamplePlugin', 'exampleWidget');
Piwik_AddWidget('ExamplePlugin_exampleWidgets', 'ExamplePlugin_blogPiwikRss', 'ExamplePlugin', 'blogPiwik');
Piwik_AddWidget('ExamplePlugin_exampleWidgets', 'ExamplePlugin_photostreamMatt', 'ExamplePlugin', 'photostreamMatt');
}
}
/**
*
* @package Piwik_ExamplePlugin
*/
class Piwik_ExamplePlugin_Controller extends Piwik_Controller
{
/**
* Go to /piwik/?module=ExamplePlugin&action=helloWorld to execute this method
*
*/
function helloWorld()
{
echo "Hello world!
";
echo "Happy coding with Piwik :)";
}
/**
* See the result on piwik/?module=ExamplePlugin&action=exampleWidget
* or in the dashboard > Add a new widget
*
*/
function exampleWidget()
{
echo "Hello world!
You can output whatever you want in widgets, and put them on dashboard or everywhere on the web (in your blog, website, etc.).
Widgets can include graphs, tables, flash, text, images, etc.
It's very easy to create a new plugin and widgets in Piwik. Have a look at this example file (/plugins/ExamplePlugin/ExamplePlugin.php).
$this->date
= current selected Piwik_Date object (class)$period = Piwik_Common::getRequestVar("period");
- Get the current selected period$idSite = Piwik_Common::getRequestVar("idSite");
- Get the selected idSite$site = new Piwik_Site($idSite);
- Build the Piwik_Site object (class)$this->str_date
= current selected date in YYYY-MM-DD formatPiwik_AddMenu( $mainMenuName, $subMenuName, $url );
- Adds an entry to the menu in the Piwik interface (See the example in the UserCountry Plugin file)Piwik_AddWidget( $widgetCategory, $widgetName, $controllerName, $controllerAction, $customParameters = array());
- Adds a widget that users can add in the dashboard, or export using the Widgets link at the top of the screen. See the example in the UserCountry Plugin file or any other plugin)Piwik::prefixTable("site")
= ' . Piwik::prefixTable("site") . 'Piwik::getCurrentUserLogin()
= ' . Piwik::getCurrentUserLogin() . 'Piwik::isUserHasSomeAdminAccess()
= ' . self::boolToString(Piwik::isUserHasSomeAdminAccess()) . 'Piwik::isUserHasAdminAccess( array $idSites = array(1,2) )
= ' . self::boolToString(Piwik::isUserHasAdminAccess(array(1,2) )) . 'Piwik::isUserHasViewAccess( array $idSites = array(1) )
= ' . self::boolToString(Piwik::isUserHasViewAccess(array(1))) . 'Piwik::isUserIsSuperUser()
= ' . self::boolToString(Piwik::isUserIsSuperUser()) . 'Piwik_FetchOne("'.$txtQuery.'", array("anonymous"))
= ' . var_export($result,true) . '$query = Piwik_Query("'.$txtQuery.'", array("anonymous"))
$fetched = $query->fetch();
$fetched[\'token_auth\'] == '.var_export($token_auth,true) . '
Piwik_SitesManager_API::getSitesWithViewAccess()
= ' .var_export(Piwik_SitesManager_API::getSitesWithViewAccess(),true) . '
Piwik_SitesManager_API::getSitesWithAdminAccess()
= ' .var_export(Piwik_SitesManager_API::getSitesWithAdminAccess(),true) . '
Piwik_UsersManager_API::getUsersSitesFromAccess("view");
or Piwik_UsersManager_API::deleteUser("userToDelete");