Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormattpiwik <matthieu.aubry@gmail.com>2009-04-27 08:18:16 +0400
committermattpiwik <matthieu.aubry@gmail.com>2009-04-27 08:18:16 +0400
commit16aab5b2e15377a74c6b3345de82291b90bfa8b5 (patch)
tree6379b457ce107dc84454e26c2ce5938ff3befab2 /plugins/VisitsSummary
parent23ad6dfa4e9413ee0fdb571bf8c69efe75ec5265 (diff)
- API CHANGE: the API for the function Piwik_AddWidget has changed. The new API is Piwik_AddWidget( $widgetCategory, $widgetName, $controllerName, $controllerAction, $customParameters = array()). See examples of calls in all the core Piwik plugins. This change was necessary to make widgets more modular (they now accept custom parameters).
- API CHANGE: a small number of CSV outputs for some API calls would change following the simplification of DataTable_Simple implementation. Affected calls are VisitsSummary.get, Goals.get, VisitFrequency.get. This is due to a change in the implementation of DataTable_Simple (we simplified implementation). - FIXED #84 Added proper translations for all columns, in tables, and graphs. - FIXED #322 piwik is now using open flash chart 2 - FIXED #126 all dates should be correctly displayed in all graphs. For example, evolution graph for days would show, on the X axis "Mon 29", "Wed 31". For months it would show "Aug 2009", etc. - ADDED: when hovering any of the sparklines, the UI makes it clear that clicking will refresh the evolution graph. This feature was in Piwik for months, and even Google Analytics implemented this UI feature after Piwik. However in Piwik it wasn't clear to the user that the sparklines were clickable. - ADDED: now widgets can be created with custom parameters. This makes it possible to create a widget that calls a controller->action with other custom parameters, this is used in Piwik to draw an evolution graph (module=VisitsSummary & action=getEvolutionGraph) for a given metric (&columns[]=nb_visits). These custom parameters are automatically forwarded to the sparkline url, the flash graph when clicked on sparkline, etc. - The widget layout is now saved as a JSON string rather than a custom data structure. The dashboard code should be able to read & restore most of the layouts from the old format (except the evolution graphs widgets). Simplified the Dashboard.js, widgetMenu.js, cleaned up what was a messy code. - Added sentence in Widgetize to let users know they can easily export the Piwik dashboard in an iframe. - Changed the way translations used in Javascript are loaded: all translations strings finishing by _js will be loaded to be used in the templates when calling {loadJavascriptTranslations plugins='YOUR_PLUGIN_NAME'} - Moved all templates in plugins under plugins/$PLUGIN/templates/ - 'Khtml (Konqueror, Safari)' now displayed as 'KHTML (Safari, Chrome)' git-svn-id: http://dev.piwik.org/svn/trunk@1072 59fd770c-687e-43c8-a1e3-f5a4ff64c105
Diffstat (limited to 'plugins/VisitsSummary')
-rw-r--r--plugins/VisitsSummary/API.php51
-rw-r--r--plugins/VisitsSummary/Controller.php103
-rw-r--r--plugins/VisitsSummary/VisitsSummary.php7
-rw-r--r--plugins/VisitsSummary/sparklines.tpl13
-rw-r--r--plugins/VisitsSummary/templates/index.tpl (renamed from plugins/VisitsSummary/index.tpl)7
-rw-r--r--plugins/VisitsSummary/templates/sparklines.tpl13
6 files changed, 94 insertions, 100 deletions
diff --git a/plugins/VisitsSummary/API.php b/plugins/VisitsSummary/API.php
index ed9a75df7c..e042e518df 100644
--- a/plugins/VisitsSummary/API.php
+++ b/plugins/VisitsSummary/API.php
@@ -25,20 +25,37 @@ class Piwik_VisitsSummary_API
return self::$instance;
}
- public function get( $idSite, $period, $date )
+ public function get( $idSite, $period, $date, $columns = array() )
{
Piwik::checkUserHasViewAccess( $idSite );
$archive = Piwik_Archive::build($idSite, $period, $date );
- $toFetch = array( 'max_actions',
- 'nb_uniq_visitors',
- 'nb_visits',
- 'nb_actions',
- 'sum_visit_length',
- 'bounce_count',
- 'nb_visits_converted',
- );
+ $bounceRateRequested = false;
+ if(!empty($columns))
+ {
+ $toFetch = $columns;
+ if(($bounceRateRequested = array_search('bounce_rate', $toFetch)) !== false)
+ {
+ $toFetch = array('nb_visits', 'bounce_count');
+ }
+ }
+ else
+ {
+ $toFetch = array( 'max_actions',
+ 'nb_uniq_visitors',
+ 'nb_visits',
+ 'nb_actions',
+ 'sum_visit_length',
+ 'bounce_count',
+ 'nb_visits_converted',
+ );
+ }
$dataTable = $archive->getDataTableFromNumeric($toFetch);
+ if($bounceRateRequested !== false)
+ {
+ $dataTable->filter('ColumnCallbackAddColumnPercentage', array('bounce_count', 'bounce_rate', 'nb_visits', 0));
+ $dataTable->deleteColumns($toFetch);
+ }
return $dataTable;
}
@@ -70,23 +87,23 @@ class Piwik_VisitsSummary_API
return self::getNumeric( $idSite, $period, $date, 'max_actions');
}
- public function getSumVisitsLength( $idSite, $period, $date )
+ public function getBounceCount( $idSite, $period, $date )
{
- return self::getNumeric( $idSite, $period, $date, 'sum_visit_length');
+ return self::getNumeric( $idSite, $period, $date, 'bounce_count');
}
- public function getSumVisitsLengthPretty( $idSite, $period, $date )
+ public function getVisitsConverted( $idSite, $period, $date )
{
- return Piwik::getPrettyTimeFromSeconds(self::getSumVisitsLength( $idSite, $period, $date ));
+ return self::getNumeric( $idSite, $period, $date, 'nb_visits_converted');
}
- public function getBounceCount( $idSite, $period, $date )
+ public function getSumVisitsLength( $idSite, $period, $date )
{
- return self::getNumeric( $idSite, $period, $date, 'bounce_count');
+ return self::getNumeric( $idSite, $period, $date, 'sum_visit_length');
}
- public function getVisitsConverted( $idSite, $period, $date )
+ public function getSumVisitsLengthPretty( $idSite, $period, $date )
{
- return self::getNumeric( $idSite, $period, $date, 'nb_visits_converted');
+ return Piwik::getPrettyTimeFromSeconds(self::getSumVisitsLength( $idSite, $period, $date ));
}
}
diff --git a/plugins/VisitsSummary/Controller.php b/plugins/VisitsSummary/Controller.php
index 9f7b5ad296..d622dfb19b 100644
--- a/plugins/VisitsSummary/Controller.php
+++ b/plugins/VisitsSummary/Controller.php
@@ -3,51 +3,31 @@ require_once "ViewDataTable.php";
class Piwik_VisitsSummary_Controller extends Piwik_Controller
{
- function index()
+ public function index()
{
- $view = new Piwik_View('VisitsSummary/index.tpl');
+ $view = new Piwik_View('VisitsSummary/templates/index.tpl');
$this->setPeriodVariablesView($view);
- $view->graphEvolutionVisitsSummary = $this->getLastVisitsGraph( true );
+ $view->graphEvolutionVisitsSummary = $this->getEvolutionGraph( true, array('nb_visits') );
$this->setSparklinesAndNumbers($view);
echo $view->render();
}
- protected function setSparklinesAndNumbers($view)
+ public function getSparklines()
{
- $view->urlSparklineNbVisits = $this->getUrlSparkline( 'getLastVisitsGraph');
- $view->urlSparklineNbActions = $this->getUrlSparkline( 'getLastActionsGraph');
- $view->urlSparklineSumVisitLength = $this->getUrlSparkline( 'getLastSumVisitsLengthGraph');
- $view->urlSparklineMaxActions = $this->getUrlSparkline( 'getLastMaxActionsGraph');
- $view->urlSparklineBounceCount = $this->getUrlSparkline( 'getLastBounceCountGraph');
-
- $dataTableVisit = self::getVisitsSummary();
-
- if($view->period == 'day')
- {
- $view->urlSparklineNbUniqVisitors = $this->getUrlSparkline( 'getLastUniqueVisitorsGraph');
- $view->nbUniqVisitors = $dataTableVisit->getColumn('nb_uniq_visitors');
- }
- $view->nbVisits = $dataTableVisit->getColumn('nb_visits');
- $view->nbActions = $dataTableVisit->getColumn('nb_actions');
- $view->sumVisitLength = $dataTableVisit->getColumn('sum_visit_length');
- $view->bounceCount = $dataTableVisit->getColumn('bounce_count');
- $view->maxActions = $dataTableVisit->getColumn('max_actions');
- }
-
- function getSparklines()
- {
- $view = new Piwik_View('VisitsSummary/sparklines.tpl');
+ $view = new Piwik_View('VisitsSummary/templates/sparklines.tpl');
$this->setSparklinesAndNumbers($view);
echo $view->render();
}
- static public function getVisits()
+ public function getEvolutionGraph( $fetch = false, $columns = false)
{
- $requestString = "method=VisitsSummary.getVisits".
- "&format=original".
- "&disable_generic_filters=true";
- $request = new Piwik_API_Request($requestString);
- return $request->process();
+ $view = $this->getLastUnitGraph($this->pluginName, __FUNCTION__, "VisitsSummary.get");
+ if(empty($columns))
+ {
+ $columns = Piwik_Common::getRequestVar('columns');
+ }
+ $view->setColumnsToDisplay($columns);
+ return $this->renderView($view, $fetch);
}
static public function getVisitsSummary()
@@ -61,39 +41,36 @@ class Piwik_VisitsSummary_Controller extends Piwik_Controller
return $request->process();
}
- function getLastVisitsGraph( $fetch = false )
- {
- $view = $this->getLastUnitGraph('VisitsSummary', __FUNCTION__, "VisitsSummary.getVisits");
- return $this->renderView($view, $fetch);
- }
-
- function getLastUniqueVisitorsGraph( $fetch = false )
- {
- $view = $this->getLastUnitGraph('VisitsSummary', __FUNCTION__, "VisitsSummary.getUniqueVisitors");
- return $this->renderView($view, $fetch);
- }
-
- function getLastActionsGraph( $fetch = false )
- {
- $view = $this->getLastUnitGraph('VisitsSummary', __FUNCTION__, "VisitsSummary.getActions");
- return $this->renderView($view, $fetch);
- }
-
- function getLastSumVisitsLengthGraph( $fetch = false )
- {
- $view = $this->getLastUnitGraph('VisitsSummary', __FUNCTION__, "VisitsSummary.getSumVisitsLength");
- return $this->renderView($view, $fetch);
- }
-
- function getLastMaxActionsGraph( $fetch = false )
+ static public function getVisits()
{
- $view = $this->getLastUnitGraph('VisitsSummary', __FUNCTION__, "VisitsSummary.getMaxActions");
- return $this->renderView($view, $fetch);
+ $requestString = "method=VisitsSummary.getVisits".
+ "&format=original".
+ "&disable_generic_filters=true";
+ $request = new Piwik_API_Request($requestString);
+ return $request->process();
}
- function getLastBounceCountGraph( $fetch = false )
+ protected function setSparklinesAndNumbers($view)
{
- $view = $this->getLastUnitGraph('VisitsSummary', __FUNCTION__, "VisitsSummary.getBounceCount");
- return $this->renderView($view, $fetch);
+ $view->urlSparklineNbVisits = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('nb_visits')));
+ $view->urlSparklineNbActions = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('nb_actions')));
+ $view->urlSparklineSumVisitLength = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('sum_visit_length')));
+ $view->urlSparklineMaxActions = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('max_actions')));
+ $view->urlSparklineBounceRate = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('bounce_rate')));
+
+ $dataTableVisit = self::getVisitsSummary();
+ $dataRow = $dataTableVisit->getFirstRow();
+ if($view->period == 'day')
+ {
+ $view->urlSparklineNbUniqVisitors = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('nb_uniq_visitors')));
+ $view->nbUniqVisitors = $dataRow->getColumn('nb_uniq_visitors');
+ }
+ $nbVisits = $dataRow->getColumn('nb_visits');
+ $view->nbVisits = $nbVisits;
+ $view->nbActions = $dataRow->getColumn('nb_actions');
+ $view->sumVisitLength = $dataRow->getColumn('sum_visit_length');
+ $nbBouncedVisits = $dataRow->getColumn('bounce_count');
+ $view->bounceRate = Piwik::getPercentageSafe($nbBouncedVisits, $nbVisits);
+ $view->maxActions = $dataRow->getColumn('max_actions');
}
}
diff --git a/plugins/VisitsSummary/VisitsSummary.php b/plugins/VisitsSummary/VisitsSummary.php
index 29e4398a90..846a3dcb5e 100644
--- a/plugins/VisitsSummary/VisitsSummary.php
+++ b/plugins/VisitsSummary/VisitsSummary.php
@@ -36,10 +36,9 @@ class Piwik_VisitsSummary extends Piwik_Plugin
function addWidgets()
{
- Piwik_AddWidget( 'VisitsSummary', 'getLastVisitsGraph', Piwik_Translate('VisitsSummary_WidgetLastVisits'));
- Piwik_AddWidget( 'VisitsSummary', 'getSparklines', Piwik_Translate('VisitsSummary_WidgetVisits'));
- Piwik_AddWidget( 'VisitsSummary', 'getLastUniqueVisitorsGraph', Piwik_Translate('VisitsSummary_WidgetLastVisitors'));
- Piwik_AddWidget( 'VisitsSummary', 'index', Piwik_Translate('VisitsSummary_WidgetOverviewGraph'));
+ Piwik_AddWidget( 'Visits Summary', 'VisitsSummary_WidgetLastVisits', 'VisitsSummary', 'getEvolutionGraph', array('columns' => array('nb_visits')));
+ Piwik_AddWidget( 'Visits Summary', 'VisitsSummary_WidgetVisits', 'VisitsSummary', 'getSparklines');
+ Piwik_AddWidget( 'Visits Summary', 'VisitsSummary_WidgetOverviewGraph', 'VisitsSummary', 'index');
}
function addMenu()
diff --git a/plugins/VisitsSummary/sparklines.tpl b/plugins/VisitsSummary/sparklines.tpl
deleted file mode 100644
index 7d0f2e28d7..0000000000
--- a/plugins/VisitsSummary/sparklines.tpl
+++ /dev/null
@@ -1,13 +0,0 @@
-<div id='leftcolumn'>
- <p>{sparkline src=$urlSparklineNbVisits} <span>{'VisitsSummary_NbVisits'|translate:"<strong>$nbVisits</strong>"}</span></p>
- {if isset($urlSparklineNbUniqVisitors)}
- <p>{sparkline src=$urlSparklineNbUniqVisitors} <span>{'VisitsSummary_NbUniqueVisitors'|translate:"<strong>$nbUniqVisitors</strong>"}</span></p>
- {/if}
- <p>{sparkline src=$urlSparklineNbActions} <span>{'VisitsSummary_NbActions'|translate:"<strong>$nbActions</strong>"}</span></p>
-</div>
-<div id='rightcolumn'>
- <p>{sparkline src=$urlSparklineSumVisitLength} <span>{assign var=sumtimeVisitLength value=$sumVisitLength|sumtime} {'VisitsSummary_TotalTime'|translate:"<strong>$sumtimeVisitLength</strong>"}</span></p>
- <p>{sparkline src=$urlSparklineMaxActions} <span>{'VisitsSummary_MaxNbActions'|translate:"<strong>$maxActions</strong>"}</span></p>
- <p>{sparkline src=$urlSparklineBounceCount} <span>{'VisitsSummary_NbBounced'|translate:"<strong>$bounceCount</strong>"}</span></p>
-</div>
-<div style="clear:both" /> \ No newline at end of file
diff --git a/plugins/VisitsSummary/index.tpl b/plugins/VisitsSummary/templates/index.tpl
index 8e8e51398d..7255107589 100644
--- a/plugins/VisitsSummary/index.tpl
+++ b/plugins/VisitsSummary/templates/index.tpl
@@ -1,11 +1,12 @@
+
<script type="text/javascript" src="plugins/CoreHome/templates/sparkline.js"></script>
-<a name="evolutionGraph" graphId="VisitsSummarygetLastVisitsGraph"></a>
-<h2>{'VisitsSummary_EvolutionPeriods'|translate:$periodsNames.$period.plural}</h2>
+<a name="evolutionGraph" graphId="VisitsSummarygetEvolutionGraph"></a>
+<h2>{'VisitsSummary_EvolutionOverLastPeriods'|translate:$periodsNames.$period.plural}</h2>
{$graphEvolutionVisitsSummary}
<h2>{'VisitsSummary_Report'|translate}</h2>
-{include file=VisitsSummary/sparklines.tpl}
+{include file=VisitsSummary/templates/sparklines.tpl}
<br /><br /><br />
<p style='color:lightgrey; size:0.8em;'>
diff --git a/plugins/VisitsSummary/templates/sparklines.tpl b/plugins/VisitsSummary/templates/sparklines.tpl
new file mode 100644
index 0000000000..f8ce97cc29
--- /dev/null
+++ b/plugins/VisitsSummary/templates/sparklines.tpl
@@ -0,0 +1,13 @@
+<div id='leftcolumn'>
+ <div class="sparkline">{sparkline src=$urlSparklineNbVisits} {'VisitsSummary_NbVisits'|translate:"<strong>$nbVisits</strong>"}</div>
+ {if isset($urlSparklineNbUniqVisitors)}
+ <div class="sparkline">{sparkline src=$urlSparklineNbUniqVisitors} {'VisitsSummary_NbUniqueVisitors'|translate:"<strong>$nbUniqVisitors</strong>"}</div>
+ {/if}
+ <div class="sparkline">{sparkline src=$urlSparklineNbActions} {'VisitsSummary_NbActions'|translate:"<strong>$nbActions</strong>"}</div>
+</div>
+<div id='rightcolumn'>
+ <div class="sparkline">{sparkline src=$urlSparklineSumVisitLength} {assign var=sumtimeVisitLength value=$sumVisitLength|sumtime} {'VisitsSummary_TotalTime'|translate:"<strong>$sumtimeVisitLength</strong>"}</div>
+ <div class="sparkline">{sparkline src=$urlSparklineMaxActions} {'VisitsSummary_MaxNbActions'|translate:"<strong>$maxActions</strong>"}</div>
+ <div class="sparkline">{sparkline src=$urlSparklineBounceRate} {'VisitsSummary_NbVisitsBounced'|translate:"<strong>$bounceRate%</strong>"}</div>
+</div>
+<div style="clear:both" /> \ No newline at end of file