add icons for Character groups
This commit is contained in:
commit
2d9a41a5fe
3461 changed files with 594457 additions and 0 deletions
114
www/analytics/plugins/VisitorInterest/API.php
Normal file
114
www/analytics/plugins/VisitorInterest/API.php
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\VisitorInterest;
|
||||
|
||||
use Piwik\Archive;
|
||||
use Piwik\DataTable;
|
||||
use Piwik\Metrics;
|
||||
use Piwik\Piwik;
|
||||
|
||||
/**
|
||||
* VisitorInterest API lets you access two Visitor Engagement reports: number of visits per number of pages,
|
||||
* and number of visits per visit duration.
|
||||
*
|
||||
* @method static \Piwik\Plugins\VisitorInterest\API getInstance()
|
||||
*/
|
||||
class API extends \Piwik\Plugin\API
|
||||
{
|
||||
protected function getDataTable($name, $idSite, $period, $date, $segment, $column = Metrics::INDEX_NB_VISITS)
|
||||
{
|
||||
Piwik::checkUserHasViewAccess($idSite);
|
||||
$archive = Archive::build($idSite, $period, $date, $segment);
|
||||
$dataTable = $archive->getDataTable($name);
|
||||
$dataTable->queueFilter('ReplaceColumnNames');
|
||||
return $dataTable;
|
||||
}
|
||||
|
||||
public function getNumberOfVisitsPerVisitDuration($idSite, $period, $date, $segment = false)
|
||||
{
|
||||
$dataTable = $this->getDataTable(Archiver::TIME_SPENT_RECORD_NAME, $idSite, $period, $date, $segment);
|
||||
$dataTable->queueFilter('Sort', array('label', 'asc', true));
|
||||
$dataTable->queueFilter('BeautifyTimeRangeLabels', array(
|
||||
Piwik::translate('VisitorInterest_BetweenXYSeconds'),
|
||||
Piwik::translate('VisitorInterest_OneMinute'),
|
||||
Piwik::translate('VisitorInterest_PlusXMin')));
|
||||
return $dataTable;
|
||||
}
|
||||
|
||||
public function getNumberOfVisitsPerPage($idSite, $period, $date, $segment = false)
|
||||
{
|
||||
$dataTable = $this->getDataTable(Archiver::PAGES_VIEWED_RECORD_NAME, $idSite, $period, $date, $segment);
|
||||
$dataTable->queueFilter('Sort', array('label', 'asc', true));
|
||||
$dataTable->queueFilter('BeautifyRangeLabels', array(
|
||||
Piwik::translate('VisitorInterest_OnePage'),
|
||||
Piwik::translate('VisitorInterest_NPages')));
|
||||
return $dataTable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a DataTable that associates counts of days (N) with the count of visits that
|
||||
* occurred within N days of the last visit.
|
||||
*
|
||||
* @param int $idSite The site to select data from.
|
||||
* @param string $period The period type.
|
||||
* @param string $date The date type.
|
||||
* @param string|bool $segment The segment.
|
||||
* @return DataTable the archived report data.
|
||||
*/
|
||||
public function getNumberOfVisitsByDaysSinceLast($idSite, $period, $date, $segment = false)
|
||||
{
|
||||
$dataTable = $this->getDataTable(
|
||||
Archiver::DAYS_SINCE_LAST_RECORD_NAME, $idSite, $period, $date, $segment, Metrics::INDEX_NB_VISITS);
|
||||
$dataTable->queueFilter('BeautifyRangeLabels', array(Piwik::translate('General_OneDay'), Piwik::translate('General_NDays')));
|
||||
return $dataTable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a DataTable that associates ranges of visit numbers with the count of visits
|
||||
* whose visit number falls within those ranges.
|
||||
*
|
||||
* @param int $idSite The site to select data from.
|
||||
* @param string $period The period type.
|
||||
* @param string $date The date type.
|
||||
* @param string|bool $segment The segment.
|
||||
* @return DataTable the archived report data.
|
||||
*/
|
||||
public function getNumberOfVisitsByVisitCount($idSite, $period, $date, $segment = false)
|
||||
{
|
||||
$dataTable = $this->getDataTable(
|
||||
Archiver::VISITS_COUNT_RECORD_NAME, $idSite, $period, $date, $segment, Metrics::INDEX_NB_VISITS);
|
||||
|
||||
$dataTable->queueFilter('BeautifyRangeLabels', array(
|
||||
Piwik::translate('General_OneVisit'), Piwik::translate('General_NVisits')));
|
||||
|
||||
// add visit percent column
|
||||
self::addVisitsPercentColumn($dataTable);
|
||||
|
||||
return $dataTable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility function that adds a visit percent column to a data table,
|
||||
* regardless of whether the data table is an data table array or just
|
||||
* a data table.
|
||||
*
|
||||
* @param DataTable $dataTable The data table to modify.
|
||||
*/
|
||||
private static function addVisitsPercentColumn($dataTable)
|
||||
{
|
||||
if ($dataTable instanceof DataTable\Map) {
|
||||
foreach ($dataTable->getDataTables() as $table) {
|
||||
self::addVisitsPercentColumn($table);
|
||||
}
|
||||
} else {
|
||||
$totalVisits = array_sum($dataTable->getColumn(Metrics::INDEX_NB_VISITS));
|
||||
$dataTable->queueFilter('ColumnCallbackAddColumnPercentage', array('nb_visits_percentage', 'nb_visits', $totalVisits));
|
||||
}
|
||||
}
|
||||
}
|
||||
154
www/analytics/plugins/VisitorInterest/Archiver.php
Normal file
154
www/analytics/plugins/VisitorInterest/Archiver.php
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
|
||||
namespace Piwik\Plugins\VisitorInterest;
|
||||
|
||||
use Piwik\DataAccess\LogAggregator;
|
||||
use Piwik\DataTable;
|
||||
use Piwik\Metrics;
|
||||
|
||||
class Archiver extends \Piwik\Plugin\Archiver
|
||||
{
|
||||
// third element is unit (s for seconds, default is munutes)
|
||||
const TIME_SPENT_RECORD_NAME = 'VisitorInterest_timeGap';
|
||||
const PAGES_VIEWED_RECORD_NAME = 'VisitorInterest_pageGap';
|
||||
const VISITS_COUNT_RECORD_NAME = 'VisitorInterest_visitsByVisitCount';
|
||||
const DAYS_SINCE_LAST_RECORD_NAME = 'VisitorInterest_daysSinceLastVisit';
|
||||
|
||||
protected static $timeGap = array(
|
||||
array(0, 10, 's'),
|
||||
array(11, 30, 's'),
|
||||
array(31, 60, 's'),
|
||||
array(1, 2),
|
||||
array(2, 4),
|
||||
array(4, 7),
|
||||
array(7, 10),
|
||||
array(10, 15),
|
||||
array(15, 30),
|
||||
array(30)
|
||||
);
|
||||
protected static $pageGap = array(
|
||||
array(1, 1),
|
||||
array(2, 2),
|
||||
array(3, 3),
|
||||
array(4, 4),
|
||||
array(5, 5),
|
||||
array(6, 7),
|
||||
array(8, 10),
|
||||
array(11, 14),
|
||||
array(15, 20),
|
||||
array(20)
|
||||
);
|
||||
/**
|
||||
* The set of ranges used when calculating the 'visitors who visited at least N times' report.
|
||||
*/
|
||||
protected static $visitNumberGap = array(
|
||||
array(1, 1),
|
||||
array(2, 2),
|
||||
array(3, 3),
|
||||
array(4, 4),
|
||||
array(5, 5),
|
||||
array(6, 6),
|
||||
array(7, 7),
|
||||
array(8, 8),
|
||||
array(9, 14),
|
||||
array(15, 25),
|
||||
array(26, 50),
|
||||
array(51, 100),
|
||||
array(101, 200),
|
||||
array(200)
|
||||
);
|
||||
/**
|
||||
* The set of ranges used when calculating the 'days since last visit' report.
|
||||
*/
|
||||
protected static $daysSinceLastVisitGap = array(
|
||||
array(0, 0),
|
||||
array(1, 1),
|
||||
array(2, 2),
|
||||
array(3, 3),
|
||||
array(4, 4),
|
||||
array(5, 5),
|
||||
array(6, 6),
|
||||
array(7, 7),
|
||||
array(8, 14),
|
||||
array(15, 30),
|
||||
array(31, 60),
|
||||
array(61, 120),
|
||||
array(121, 364),
|
||||
array(364)
|
||||
);
|
||||
|
||||
public function aggregateDayReport()
|
||||
{
|
||||
// these prefixes are prepended to the 'SELECT as' parts of each SELECT expression. detecting
|
||||
// these prefixes allows us to get all the data in one query.
|
||||
$prefixes = array(
|
||||
self::TIME_SPENT_RECORD_NAME => 'tg',
|
||||
self::PAGES_VIEWED_RECORD_NAME => 'pg',
|
||||
self::VISITS_COUNT_RECORD_NAME => 'vbvn',
|
||||
self::DAYS_SINCE_LAST_RECORD_NAME => 'dslv',
|
||||
);
|
||||
|
||||
// collect our extra aggregate select fields
|
||||
$selects = array();
|
||||
$selects = array_merge($selects, LogAggregator::getSelectsFromRangedColumn(
|
||||
'visit_total_time', self::getSecondsGap(), 'log_visit', $prefixes[self::TIME_SPENT_RECORD_NAME]
|
||||
));
|
||||
$selects = array_merge($selects, LogAggregator::getSelectsFromRangedColumn(
|
||||
'visit_total_actions', self::$pageGap, 'log_visit', $prefixes[self::PAGES_VIEWED_RECORD_NAME]
|
||||
));
|
||||
$selects = array_merge($selects, LogAggregator::getSelectsFromRangedColumn(
|
||||
'visitor_count_visits', self::$visitNumberGap, 'log_visit', $prefixes[self::VISITS_COUNT_RECORD_NAME]
|
||||
));
|
||||
$selects = array_merge($selects, LogAggregator::getSelectsFromRangedColumn(
|
||||
'visitor_days_since_last', self::$daysSinceLastVisitGap, 'log_visit', $prefixes[self::DAYS_SINCE_LAST_RECORD_NAME],
|
||||
$restrictToReturningVisitors = true
|
||||
));
|
||||
|
||||
$query = $this->getLogAggregator()->queryVisitsByDimension(array(), $where = false, $selects, array());
|
||||
$row = $query->fetch();
|
||||
foreach ($prefixes as $recordName => $selectAsPrefix) {
|
||||
$cleanRow = LogAggregator::makeArrayOneColumn($row, Metrics::INDEX_NB_VISITS, $selectAsPrefix);
|
||||
$dataTable = DataTable::makeFromIndexedArray($cleanRow);
|
||||
$this->getProcessor()->insertBlobRecord($recordName, $dataTable->getSerialized());
|
||||
}
|
||||
}
|
||||
|
||||
public function aggregateMultipleReports()
|
||||
{
|
||||
$dataTableRecords = array(
|
||||
self::TIME_SPENT_RECORD_NAME,
|
||||
self::PAGES_VIEWED_RECORD_NAME,
|
||||
self::VISITS_COUNT_RECORD_NAME,
|
||||
self::DAYS_SINCE_LAST_RECORD_NAME
|
||||
);
|
||||
$this->getProcessor()->aggregateDataTableRecords($dataTableRecords);
|
||||
}
|
||||
|
||||
/**
|
||||
* Transforms and returns the set of ranges used to calculate the 'visits by total time'
|
||||
* report from ranges in minutes to equivalent ranges in seconds.
|
||||
*/
|
||||
protected static function getSecondsGap()
|
||||
{
|
||||
$secondsGap = array();
|
||||
foreach (self::$timeGap as $gap) {
|
||||
if (count($gap) == 3 && $gap[2] == 's') // if the units are already in seconds, just assign them
|
||||
{
|
||||
$secondsGap[] = array($gap[0], $gap[1]);
|
||||
} else if (count($gap) == 2) {
|
||||
$secondsGap[] = array($gap[0] * 60, $gap[1] * 60);
|
||||
} else {
|
||||
$secondsGap[] = array($gap[0] * 60);
|
||||
}
|
||||
}
|
||||
return $secondsGap;
|
||||
}
|
||||
|
||||
}
|
||||
59
www/analytics/plugins/VisitorInterest/Controller.php
Normal file
59
www/analytics/plugins/VisitorInterest/Controller.php
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\VisitorInterest;
|
||||
|
||||
use Piwik\View;
|
||||
use Piwik\ViewDataTable\Factory;
|
||||
|
||||
/**
|
||||
*/
|
||||
class Controller extends \Piwik\Plugin\Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$view = new View('@VisitorInterest/index');
|
||||
$view->dataTableNumberOfVisitsPerVisitDuration = $this->getNumberOfVisitsPerVisitDuration(true);
|
||||
$view->dataTableNumberOfVisitsPerPage = $this->getNumberOfVisitsPerPage(true);
|
||||
$view->dataTableNumberOfVisitsByVisitNum = $this->getNumberOfVisitsByVisitCount(true);
|
||||
$view->dataTableNumberOfVisitsByDaysSinceLast = $this->getNumberOfVisitsByDaysSinceLast(true);
|
||||
return $view->render();
|
||||
}
|
||||
|
||||
public function getNumberOfVisitsPerVisitDuration()
|
||||
{
|
||||
return $this->renderReport(__FUNCTION__);
|
||||
}
|
||||
|
||||
public function getNumberOfVisitsPerPage()
|
||||
{
|
||||
return $this->renderReport(__FUNCTION__);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a report that lists the count of visits for different ranges of
|
||||
* a visitor's visit number.
|
||||
*
|
||||
* @return string The rendered report or nothing if $fetch is set to false.
|
||||
*/
|
||||
public function getNumberOfVisitsByVisitCount()
|
||||
{
|
||||
return $this->renderReport(__FUNCTION__);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a rendered report that lists the count of visits for different ranges
|
||||
* of days since a visitor's last visit.
|
||||
*
|
||||
* @return string The rendered report or nothing if $fetch is set to false.
|
||||
*/
|
||||
public function getNumberOfVisitsByDaysSinceLast()
|
||||
{
|
||||
return $this->renderReport(__FUNCTION__);
|
||||
}
|
||||
}
|
||||
243
www/analytics/plugins/VisitorInterest/VisitorInterest.php
Normal file
243
www/analytics/plugins/VisitorInterest/VisitorInterest.php
Normal file
|
|
@ -0,0 +1,243 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\VisitorInterest;
|
||||
|
||||
use Piwik\ArchiveProcessor;
|
||||
use Piwik\FrontController;
|
||||
use Piwik\Menu\MenuMain;
|
||||
use Piwik\Metrics;
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Plugin\ViewDataTable;
|
||||
use Piwik\Plugins\CoreVisualizations\Visualizations\Cloud;
|
||||
use Piwik\Plugins\CoreVisualizations\Visualizations\Graph;
|
||||
use Piwik\WidgetsList;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class VisitorInterest extends \Piwik\Plugin
|
||||
{
|
||||
/**
|
||||
* @see Piwik\Plugin::getListHooksRegistered
|
||||
*/
|
||||
public function getListHooksRegistered()
|
||||
{
|
||||
$hooks = array(
|
||||
'WidgetsList.addWidgets' => 'addWidgets',
|
||||
'Menu.Reporting.addItems' => 'addMenu',
|
||||
'API.getReportMetadata' => 'getReportMetadata',
|
||||
'ViewDataTable.configure' => 'configureViewDataTable',
|
||||
'ViewDataTable.getDefaultType' => 'getDefaultTypeViewDataTable'
|
||||
);
|
||||
return $hooks;
|
||||
}
|
||||
|
||||
public function getReportMetadata(&$reports)
|
||||
{
|
||||
$reports[] = array(
|
||||
'category' => Piwik::translate('General_Visitors'),
|
||||
'name' => Piwik::translate('VisitorInterest_WidgetLengths'),
|
||||
'module' => 'VisitorInterest',
|
||||
'action' => 'getNumberOfVisitsPerVisitDuration',
|
||||
'dimension' => Piwik::translate('VisitorInterest_ColumnVisitDuration'),
|
||||
'metrics' => array('nb_visits'),
|
||||
'processedMetrics' => false,
|
||||
'constantRowsCount' => true,
|
||||
'documentation' => Piwik::translate('VisitorInterest_WidgetLengthsDocumentation')
|
||||
. '<br />' . Piwik::translate('General_ChangeTagCloudView'),
|
||||
'order' => 15
|
||||
);
|
||||
|
||||
$reports[] = array(
|
||||
'category' => Piwik::translate('General_Visitors'),
|
||||
'name' => Piwik::translate('VisitorInterest_WidgetPages'),
|
||||
'module' => 'VisitorInterest',
|
||||
'action' => 'getNumberOfVisitsPerPage',
|
||||
'dimension' => Piwik::translate('VisitorInterest_ColumnPagesPerVisit'),
|
||||
'metrics' => array('nb_visits'),
|
||||
'processedMetrics' => false,
|
||||
'constantRowsCount' => true,
|
||||
'documentation' => Piwik::translate('VisitorInterest_WidgetPagesDocumentation')
|
||||
. '<br />' . Piwik::translate('General_ChangeTagCloudView'),
|
||||
'order' => 20
|
||||
);
|
||||
|
||||
$reports[] = array(
|
||||
'category' => Piwik::translate('General_Visitors'),
|
||||
'name' => Piwik::translate('VisitorInterest_visitsByVisitCount'),
|
||||
'module' => 'VisitorInterest',
|
||||
'action' => 'getNumberOfVisitsByVisitCount',
|
||||
'dimension' => Piwik::translate('VisitorInterest_visitsByVisitCount'),
|
||||
'metrics' => array(
|
||||
'nb_visits',
|
||||
'nb_visits_percentage' => Piwik::translate('General_ColumnPercentageVisits'),
|
||||
),
|
||||
'processedMetrics' => false,
|
||||
'constantRowsCount' => true,
|
||||
'documentation' => Piwik::translate('VisitorInterest_WidgetVisitsByNumDocumentation')
|
||||
. '<br />' . Piwik::translate('General_ChangeTagCloudView'),
|
||||
'order' => 25
|
||||
);
|
||||
|
||||
$reports[] = array(
|
||||
'category' => Piwik::translate('General_Visitors'),
|
||||
'name' => Piwik::translate('VisitorInterest_VisitsByDaysSinceLast'),
|
||||
'module' => 'VisitorInterest',
|
||||
'action' => 'getNumberOfVisitsByDaysSinceLast',
|
||||
'dimension' => Piwik::translate('VisitorInterest_VisitsByDaysSinceLast'),
|
||||
'metrics' => array('nb_visits'),
|
||||
'processedMetrics' => false,
|
||||
'constantRowsCount' => true,
|
||||
'documentation' => Piwik::translate('VisitorInterest_WidgetVisitsByDaysSinceLastDocumentation'),
|
||||
'order' => 30
|
||||
);
|
||||
}
|
||||
|
||||
public function addWidgets()
|
||||
{
|
||||
WidgetsList::add('General_Visitors', 'VisitorInterest_WidgetLengths', 'VisitorInterest', 'getNumberOfVisitsPerVisitDuration');
|
||||
WidgetsList::add('General_Visitors', 'VisitorInterest_WidgetPages', 'VisitorInterest', 'getNumberOfVisitsPerPage');
|
||||
WidgetsList::add('General_Visitors', 'VisitorInterest_visitsByVisitCount', 'VisitorInterest', 'getNumberOfVisitsByVisitCount');
|
||||
WidgetsList::add('General_Visitors', 'VisitorInterest_WidgetVisitsByDaysSinceLast', 'VisitorInterest', 'getNumberOfVisitsByDaysSinceLast');
|
||||
}
|
||||
|
||||
public function addMenu()
|
||||
{
|
||||
MenuMain::getInstance()->rename('General_Visitors', 'VisitFrequency_SubmenuFrequency',
|
||||
'General_Visitors', 'VisitorInterest_Engagement');
|
||||
}
|
||||
|
||||
function postLoad()
|
||||
{
|
||||
Piwik::addAction('Template.headerVisitsFrequency', array('Piwik\Plugins\VisitorInterest\VisitorInterest', 'headerVisitsFrequency'));
|
||||
Piwik::addAction('Template.footerVisitsFrequency', array('Piwik\Plugins\VisitorInterest\VisitorInterest', 'footerVisitsFrequency'));
|
||||
}
|
||||
|
||||
static public function headerVisitsFrequency(&$out)
|
||||
{
|
||||
$out = '<div id="leftcolumn">';
|
||||
}
|
||||
|
||||
static public function footerVisitsFrequency(&$out)
|
||||
{
|
||||
$out = '</div>
|
||||
<div id="rightcolumn">
|
||||
';
|
||||
$out .= FrontController::getInstance()->fetchDispatch('VisitorInterest', 'index');
|
||||
$out .= '</div>';
|
||||
}
|
||||
|
||||
public function getDefaultTypeViewDataTable(&$defaultViewTypes)
|
||||
{
|
||||
$defaultViewTypes['VisitorInterest.getNumberOfVisitsPerVisitDuration'] = Cloud::ID;
|
||||
$defaultViewTypes['VisitorInterest.getNumberOfVisitsPerPage'] = Cloud::ID;
|
||||
}
|
||||
|
||||
public function configureViewDataTable(ViewDataTable $view)
|
||||
{
|
||||
switch ($view->requestConfig->apiMethodToRequestDataTable) {
|
||||
case 'VisitorInterest.getNumberOfVisitsPerVisitDuration':
|
||||
$this->configureViewForGetNumberOfVisitsPerVisitDuration($view);
|
||||
break;
|
||||
case 'VisitorInterest.getNumberOfVisitsPerPage':
|
||||
$this->configureViewForGetNumberOfVisitsPerPage($view);
|
||||
break;
|
||||
case 'VisitorInterest.getNumberOfVisitsByVisitCount':
|
||||
$this->configureViewForGetNumberOfVisitsByVisitCount($view);
|
||||
break;
|
||||
case 'VisitorInterest.getNumberOfVisitsByDaysSinceLast':
|
||||
$this->configureViewForGetNumberOfVisitsByDaysSinceLast($view);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private function configureViewForGetNumberOfVisitsPerVisitDuration(ViewDataTable $view)
|
||||
{
|
||||
$view->requestConfig->filter_sort_column = 'label';
|
||||
$view->requestConfig->filter_sort_order = 'asc';
|
||||
|
||||
$view->config->addTranslation('label', Piwik::translate('VisitorInterest_ColumnVisitDuration'));
|
||||
$view->config->enable_sort = false;
|
||||
$view->config->show_exclude_low_population = false;
|
||||
$view->config->show_offset_information = false;
|
||||
$view->config->show_pagination_control = false;
|
||||
$view->config->show_limit_control = false;
|
||||
$view->config->show_search = false;
|
||||
$view->config->show_table_all_columns = false;
|
||||
$view->config->columns_to_display = array('label', 'nb_visits');
|
||||
|
||||
if ($view->isViewDataTableId(Graph::ID)) {
|
||||
$view->config->show_series_picker = false;
|
||||
$view->config->selectable_columns = array();
|
||||
$view->config->max_graph_elements = 10;
|
||||
}
|
||||
}
|
||||
|
||||
private function configureViewForGetNumberOfVisitsPerPage(ViewDataTable $view)
|
||||
{
|
||||
$view->requestConfig->filter_sort_column = 'label';
|
||||
$view->requestConfig->filter_sort_order = 'asc';
|
||||
|
||||
$view->config->addTranslation('label', Piwik::translate('VisitorInterest_ColumnVisitDuration'));
|
||||
$view->config->enable_sort = false;
|
||||
$view->config->show_exclude_low_population = false;
|
||||
$view->config->show_offset_information = false;
|
||||
$view->config->show_pagination_control = false;
|
||||
$view->config->show_limit_control = false;
|
||||
$view->config->show_search = false;
|
||||
$view->config->show_table_all_columns = false;
|
||||
$view->config->columns_to_display = array('label', 'nb_visits');
|
||||
|
||||
if ($view->isViewDataTableId(Graph::ID)) {
|
||||
$view->config->show_series_picker = false;
|
||||
$view->config->selectable_columns = array();
|
||||
$view->config->max_graph_elements = 10;
|
||||
}
|
||||
}
|
||||
|
||||
private function configureViewForGetNumberOfVisitsByVisitCount(ViewDataTable $view)
|
||||
{
|
||||
$view->requestConfig->filter_sort_column = 'label';
|
||||
$view->requestConfig->filter_sort_order = 'asc';
|
||||
$view->requestConfig->filter_limit = 15;
|
||||
|
||||
$view->config->addTranslations(array(
|
||||
'label' => Piwik::translate('VisitorInterest_VisitNum'),
|
||||
'nb_visits_percentage' => Metrics::getPercentVisitColumn())
|
||||
);
|
||||
|
||||
$view->config->columns_to_display = array('label', 'nb_visits', 'nb_visits_percentage');
|
||||
$view->config->show_exclude_low_population = false;
|
||||
|
||||
$view->config->enable_sort = false;
|
||||
$view->config->show_offset_information = false;
|
||||
$view->config->show_pagination_control = false;
|
||||
$view->config->show_limit_control = false;
|
||||
$view->config->show_search = false;
|
||||
$view->config->show_table_all_columns = false;
|
||||
$view->config->show_all_views_icons = false;
|
||||
}
|
||||
|
||||
private function configureViewForGetNumberOfVisitsByDaysSinceLast(ViewDataTable $view)
|
||||
{
|
||||
$view->requestConfig->filter_sort_column = 'label';
|
||||
$view->requestConfig->filter_sort_order = 'asc';
|
||||
$view->requestConfig->filter_limit = 15;
|
||||
|
||||
$view->config->show_search = false;
|
||||
$view->config->enable_sort = false;
|
||||
$view->config->show_offset_information = false;
|
||||
$view->config->show_pagination_control = false;
|
||||
$view->config->show_limit_control = false;
|
||||
$view->config->show_all_views_icons = false;
|
||||
$view->config->show_table_all_columns = false;
|
||||
$view->config->show_exclude_low_population = false;
|
||||
$view->config->addTranslation('label', Piwik::translate('General_DaysSinceLastVisit'));
|
||||
}
|
||||
}
|
||||
11
www/analytics/plugins/VisitorInterest/templates/index.twig
Normal file
11
www/analytics/plugins/VisitorInterest/templates/index.twig
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<h2 piwik-enriched-headline>{{ 'VisitorInterest_VisitsPerDuration'|translate }}</h2>
|
||||
{{ dataTableNumberOfVisitsPerVisitDuration|raw }}
|
||||
|
||||
<h2 piwik-enriched-headline>{{ 'VisitorInterest_VisitsPerNbOfPages'|translate }}</h2>
|
||||
{{ dataTableNumberOfVisitsPerPage|raw }}
|
||||
|
||||
<h2 piwik-enriched-headline>{{ 'VisitorInterest_visitsByVisitCount'|translate }}</h2>
|
||||
{{ dataTableNumberOfVisitsByVisitNum|raw }}
|
||||
|
||||
<h2 piwik-enriched-headline>{{ 'VisitorInterest_VisitsByDaysSinceLast'|translate }}</h2>
|
||||
{{ dataTableNumberOfVisitsByDaysSinceLast|raw }}
|
||||
Loading…
Add table
Add a link
Reference in a new issue