update Piwik to version 2.16 (fixes #91)
This commit is contained in:
parent
9abe039dc8
commit
47263617c5
64 changed files with 418860 additions and 226988 deletions
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
|
|
@ -33,18 +33,18 @@ class API extends \Piwik\Plugin\API
|
|||
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('Sort', array('label', 'asc', true, false));
|
||||
$dataTable->queueFilter('BeautifyTimeRangeLabels', array(
|
||||
Piwik::translate('VisitorInterest_BetweenXYSeconds'),
|
||||
Piwik::translate('VisitorInterest_OneMinute'),
|
||||
Piwik::translate('VisitorInterest_PlusXMin')));
|
||||
Piwik::translate('Intl_OneMinuteShort'),
|
||||
Piwik::translate('Intl_NMinutesShort')));
|
||||
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('Sort', array('label', 'asc', true, false));
|
||||
$dataTable->queueFilter('BeautifyRangeLabels', array(
|
||||
Piwik::translate('VisitorInterest_OnePage'),
|
||||
Piwik::translate('VisitorInterest_NPages')));
|
||||
|
|
@ -65,7 +65,7 @@ class API extends \Piwik\Plugin\API
|
|||
{
|
||||
$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')));
|
||||
$dataTable->queueFilter('BeautifyRangeLabels', array(Piwik::translate('Intl_OneDay'), Piwik::translate('Intl_NDays')));
|
||||
return $dataTable;
|
||||
}
|
||||
|
||||
|
|
@ -87,28 +87,6 @@ class API extends \Piwik\Plugin\API
|
|||
$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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
|
|
@ -128,7 +128,15 @@ class Archiver extends \Piwik\Plugin\Archiver
|
|||
self::VISITS_COUNT_RECORD_NAME,
|
||||
self::DAYS_SINCE_LAST_RECORD_NAME
|
||||
);
|
||||
$this->getProcessor()->aggregateDataTableRecords($dataTableRecords);
|
||||
$columnsAggregationOperation = null;
|
||||
$this->getProcessor()->aggregateDataTableRecords(
|
||||
$dataTableRecords,
|
||||
$maximumRowsInDataTableLevelZero = null,
|
||||
$maximumRowsInSubDataTable = null,
|
||||
$columnToSortByBeforeTruncation = null,
|
||||
$columnsAggregationOperation,
|
||||
$columnsToRenameAfterAggregation = null,
|
||||
$countRowsRecursive = array());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\VisitorInterest\Columns;
|
||||
|
||||
use Piwik\Columns\Dimension;
|
||||
use Piwik\Piwik;
|
||||
|
||||
class PagesPerVisit extends Dimension
|
||||
{
|
||||
public function getName()
|
||||
{
|
||||
return Piwik::translate('VisitorInterest_ColumnPagesPerVisit');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\VisitorInterest\Columns;
|
||||
|
||||
use Piwik\Columns\Dimension;
|
||||
use Piwik\Piwik;
|
||||
|
||||
class VisitDuration extends Dimension
|
||||
{
|
||||
public function getName()
|
||||
{
|
||||
return Piwik::translate('VisitorInterest_ColumnVisitDuration');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\VisitorInterest\Columns;
|
||||
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Plugin\Dimension\VisitDimension;
|
||||
use Piwik\Plugins\CoreHome\Segment;
|
||||
use Piwik\Tracker\Action;
|
||||
use Piwik\Tracker\Request;
|
||||
use Piwik\Tracker\Visitor;
|
||||
|
||||
class VisitsByDaysSinceLastVisit extends VisitDimension
|
||||
{
|
||||
protected $columnName = 'visitor_days_since_last';
|
||||
protected $columnType = 'SMALLINT(5) UNSIGNED NOT NULL';
|
||||
|
||||
protected function configureSegments()
|
||||
{
|
||||
$segment = new Segment();
|
||||
$segment->setSegment('daysSinceLastVisit');
|
||||
$segment->setName('General_DaysSinceLastVisit');
|
||||
$segment->setType(Segment::TYPE_METRIC);
|
||||
|
||||
$this->addSegment($segment);
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return Piwik::translate('VisitorInterest_VisitsByDaysSinceLast');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Visitor $visitor
|
||||
* @param Action|null $action
|
||||
* @return mixed
|
||||
*/
|
||||
public function onNewVisit(Request $request, Visitor $visitor, $action)
|
||||
{
|
||||
return $request->getDaysSinceLastVisit();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\VisitorInterest\Columns;
|
||||
|
||||
use Piwik\Columns\Dimension;
|
||||
use Piwik\Piwik;
|
||||
|
||||
class VisitsbyVisitNumber extends Dimension
|
||||
{
|
||||
public function getName()
|
||||
{
|
||||
return Piwik::translate('VisitorInterest_visitsByVisitCount');
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
|
|
@ -9,51 +9,16 @@
|
|||
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);
|
||||
$view->dataTableNumberOfVisitsPerVisitDuration = $this->renderReport('getNumberOfVisitsPerVisitDuration');
|
||||
$view->dataTableNumberOfVisitsPerPage = $this->renderReport('getNumberOfVisitsPerPage');
|
||||
$view->dataTableNumberOfVisitsByVisitNum = $this->renderReport('getNumberOfVisitsByVisitCount');
|
||||
$view->dataTableNumberOfVisitsByDaysSinceLast = $this->renderReport('getNumberOfVisitsByDaysSinceLast');
|
||||
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__);
|
||||
}
|
||||
}
|
||||
}
|
||||
20
www/analytics/plugins/VisitorInterest/Menu.php
Normal file
20
www/analytics/plugins/VisitorInterest/Menu.php
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\VisitorInterest;
|
||||
|
||||
use Piwik\Menu\MenuReporting;
|
||||
|
||||
class Menu extends \Piwik\Plugin\Menu
|
||||
{
|
||||
public function configureReportingMenu(MenuReporting $menu)
|
||||
{
|
||||
$menu->rename('General_Visitors', 'VisitFrequency_SubmenuFrequency',
|
||||
'General_Visitors', 'VisitorInterest_Engagement');
|
||||
}
|
||||
}
|
||||
18
www/analytics/plugins/VisitorInterest/Reports/Base.php
Normal file
18
www/analytics/plugins/VisitorInterest/Reports/Base.php
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\VisitorInterest\Reports;
|
||||
|
||||
abstract class Base extends \Piwik\Plugin\Report
|
||||
{
|
||||
protected function init()
|
||||
{
|
||||
$this->category = 'General_Visitors';
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\VisitorInterest\Reports;
|
||||
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Plugin\ViewDataTable;
|
||||
use Piwik\Plugins\VisitorInterest\Columns\VisitsByDaysSinceLastVisit;
|
||||
|
||||
class GetNumberOfVisitsByDaysSinceLast extends Base
|
||||
{
|
||||
protected $defaultSortColumn = '';
|
||||
|
||||
protected function init()
|
||||
{
|
||||
parent::init();
|
||||
$this->dimension = new VisitsByDaysSinceLastVisit();
|
||||
$this->name = Piwik::translate('VisitorInterest_VisitsByDaysSinceLast');
|
||||
$this->documentation = Piwik::translate('VisitorInterest_WidgetVisitsByDaysSinceLastDocumentation');
|
||||
$this->metrics = array('nb_visits');
|
||||
$this->processedMetrics = false;
|
||||
$this->constantRowsCount = true;
|
||||
$this->order = 30;
|
||||
$this->widgetTitle = 'VisitorInterest_WidgetVisitsByDaysSinceLast';
|
||||
}
|
||||
|
||||
public function configureView(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'));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\VisitorInterest\Reports;
|
||||
|
||||
use Piwik\Metrics;
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Plugin\ViewDataTable;
|
||||
use Piwik\Plugins\VisitorInterest\Columns\VisitsbyVisitNumber;
|
||||
use Piwik\Plugins\CoreHome\Columns\Metrics\VisitsPercent;
|
||||
|
||||
class GetNumberOfVisitsByVisitCount extends Base
|
||||
{
|
||||
protected $defaultSortColumn = '';
|
||||
|
||||
protected function init()
|
||||
{
|
||||
parent::init();
|
||||
$this->dimension = new VisitsbyVisitNumber();
|
||||
$this->name = Piwik::translate('VisitorInterest_visitsByVisitCount');
|
||||
$this->documentation = Piwik::translate('VisitorInterest_WidgetVisitsByNumDocumentation')
|
||||
. '<br />' . Piwik::translate('General_ChangeTagCloudView');
|
||||
$this->metrics = array('nb_visits');
|
||||
$this->processedMetrics = array(
|
||||
new VisitsPercent()
|
||||
);
|
||||
$this->constantRowsCount = true;
|
||||
$this->order = 25;
|
||||
$this->widgetTitle = 'VisitorInterest_visitsByVisitCount';
|
||||
}
|
||||
|
||||
public function configureView(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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\VisitorInterest\Reports;
|
||||
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Plugin\ViewDataTable;
|
||||
use Piwik\Plugins\CoreVisualizations\Visualizations\Cloud;
|
||||
use Piwik\Plugins\CoreVisualizations\Visualizations\Graph;
|
||||
use Piwik\Plugins\VisitorInterest\Columns\PagesPerVisit;
|
||||
|
||||
class GetNumberOfVisitsPerPage extends Base
|
||||
{
|
||||
protected $defaultSortColumn = '';
|
||||
|
||||
protected function init()
|
||||
{
|
||||
parent::init();
|
||||
$this->dimension = new PagesPerVisit();
|
||||
$this->name = Piwik::translate('VisitorInterest_WidgetPages');
|
||||
$this->documentation = Piwik::translate('VisitorInterest_WidgetPagesDocumentation')
|
||||
. '<br />' . Piwik::translate('General_ChangeTagCloudView');
|
||||
$this->metrics = array('nb_visits');
|
||||
$this->processedMetrics = false;
|
||||
$this->constantRowsCount = true;
|
||||
$this->order = 20;
|
||||
$this->widgetTitle = 'VisitorInterest_WidgetPages';
|
||||
}
|
||||
|
||||
public function getDefaultTypeViewDataTable()
|
||||
{
|
||||
return Cloud::ID;
|
||||
}
|
||||
|
||||
public function configureView(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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\VisitorInterest\Reports;
|
||||
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Plugin\ViewDataTable;
|
||||
use Piwik\Plugins\CoreVisualizations\Visualizations\Cloud;
|
||||
use Piwik\Plugins\CoreVisualizations\Visualizations\Graph;
|
||||
use Piwik\Plugins\VisitorInterest\Columns\VisitDuration;
|
||||
|
||||
class GetNumberOfVisitsPerVisitDuration extends Base
|
||||
{
|
||||
protected $defaultSortColumn = '';
|
||||
|
||||
protected function init()
|
||||
{
|
||||
parent::init();
|
||||
$this->dimension = new VisitDuration();
|
||||
$this->name = Piwik::translate('VisitorInterest_WidgetLengths');
|
||||
$this->documentation = Piwik::translate('VisitorInterest_WidgetLengthsDocumentation')
|
||||
. '<br />' . Piwik::translate('General_ChangeTagCloudView');
|
||||
$this->metrics = array('nb_visits');
|
||||
$this->processedMetrics = false;
|
||||
$this->constantRowsCount = true;
|
||||
$this->order = 15;
|
||||
$this->widgetTitle = 'VisitorInterest_WidgetLengths';
|
||||
}
|
||||
|
||||
public function getDefaultTypeViewDataTable()
|
||||
{
|
||||
return Cloud::ID;
|
||||
}
|
||||
|
||||
public function configureView(ViewDataTable $view)
|
||||
{
|
||||
$view->requestConfig->filter_sort_column = 'label';
|
||||
$view->requestConfig->filter_sort_order = 'asc';
|
||||
|
||||
$view->config->addTranslation('label', $this->dimension->getName());
|
||||
$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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
|
|
@ -10,234 +10,37 @@ 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
|
||||
* @see Piwik\Plugin::registerEvents
|
||||
*/
|
||||
public function getListHooksRegistered()
|
||||
public function registerEvents()
|
||||
{
|
||||
$hooks = array(
|
||||
'WidgetsList.addWidgets' => 'addWidgets',
|
||||
'Menu.Reporting.addItems' => 'addMenu',
|
||||
'API.getReportMetadata' => 'getReportMetadata',
|
||||
'ViewDataTable.configure' => 'configureViewDataTable',
|
||||
'ViewDataTable.getDefaultType' => 'getDefaultTypeViewDataTable'
|
||||
return array(
|
||||
'Live.getAllVisitorDetails' => 'extendVisitorDetails',
|
||||
);
|
||||
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)
|
||||
public static function footerVisitsFrequency(&$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)
|
||||
public function extendVisitorDetails(&$visitor, $details)
|
||||
{
|
||||
$defaultViewTypes['VisitorInterest.getNumberOfVisitsPerVisitDuration'] = Cloud::ID;
|
||||
$defaultViewTypes['VisitorInterest.getNumberOfVisitsPerPage'] = Cloud::ID;
|
||||
$visitor['daysSinceLastVisit'] = $details['visitor_days_since_last'];
|
||||
}
|
||||
|
||||
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'));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
12
www/analytics/plugins/VisitorInterest/lang/am.json
Normal file
12
www/analytics/plugins/VisitorInterest/lang/am.json
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"VisitorInterest": {
|
||||
"ColumnPagesPerVisit": "ጉብኝት ከገፆች ጋር",
|
||||
"ColumnVisitDuration": "የጉብኝት ቆይታዎች",
|
||||
"NPages": "%s ገፆች",
|
||||
"OnePage": "1 ገፅ",
|
||||
"VisitsPerDuration": "ጉብኝት ከጉብኝት ቆይታ ጋር",
|
||||
"VisitsPerNbOfPages": "ጉብኝት ከገፅ ቁጥር ጋር",
|
||||
"WidgetLengths": "የጉብኝት ርዝመት",
|
||||
"WidgetPages": "ጉብኝት ከገፆች ጋር"
|
||||
}
|
||||
}
|
||||
15
www/analytics/plugins/VisitorInterest/lang/ar.json
Normal file
15
www/analytics/plugins/VisitorInterest/lang/ar.json
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"VisitorInterest": {
|
||||
"BetweenXYMinutes": "%1$s - %2$s دقيقة",
|
||||
"BetweenXYSeconds": "%1$s - %2$s ثانية",
|
||||
"ColumnPagesPerVisit": "الصفحات لكل زيارة",
|
||||
"ColumnVisitDuration": "زمن الزيارة",
|
||||
"Engagement": "التفاعل",
|
||||
"NPages": "%s صفحات",
|
||||
"OnePage": "صفحة واحدة",
|
||||
"VisitsPerDuration": "الزيارات لزمن الزيارة",
|
||||
"VisitsPerNbOfPages": "الزيارات لعدد الصفحات",
|
||||
"WidgetLengths": "طول الزيارة",
|
||||
"WidgetPages": "الصفحات لكل زيارة"
|
||||
}
|
||||
}
|
||||
17
www/analytics/plugins/VisitorInterest/lang/be.json
Normal file
17
www/analytics/plugins/VisitorInterest/lang/be.json
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"VisitorInterest": {
|
||||
"BetweenXYMinutes": "%1$s-%2$s хв",
|
||||
"BetweenXYSeconds": "%1$s-%2$sс",
|
||||
"ColumnPagesPerVisit": "Старонак за наведванне",
|
||||
"ColumnVisitDuration": "Даўжыня наведванняў",
|
||||
"Engagement": "Абавязацельства",
|
||||
"NPages": "%s старонак",
|
||||
"OnePage": "1 старонка",
|
||||
"VisitsPerDuration": "Наведванняў па даўжыні візіту",
|
||||
"VisitsPerNbOfPages": "Наведванняў па колькасці старонак",
|
||||
"WidgetLengths": "Даўжыня наведванняў",
|
||||
"WidgetLengthsDocumentation": "У гэтай справаздачы, можна ўбачыць, колькі наведванняў была па пэнай працягласці часу на вэб-сайце. Першапачаткова, справаздачы паказаны, як воблака тэгаў, буйным шрыфтам адлюстроўваюцца працягласці, якия адбыліся часцей за ўсё.",
|
||||
"WidgetPages": "Старніц за наведванне",
|
||||
"WidgetPagesDocumentation": "У гэтай справаздачы, можна ўбачыць, колькі наведванняў была па пэўнай колькасці праглядаў старонак. Першапачаткова, справаздачы паказаны, як воблака тэгаў, буйным шрыфтам адлюстроўваюцца прагляды, якия адбыліся часцей за ўсё."
|
||||
}
|
||||
}
|
||||
24
www/analytics/plugins/VisitorInterest/lang/bg.json
Normal file
24
www/analytics/plugins/VisitorInterest/lang/bg.json
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"VisitorInterest": {
|
||||
"BetweenXYMinutes": "%1$s-%2$s мин",
|
||||
"BetweenXYSeconds": "%1$s-%2$s сек",
|
||||
"ColumnPagesPerVisit": "Импресии\/Посещения",
|
||||
"ColumnVisitDuration": "Продължителност на посещение",
|
||||
"Engagement": "Ангажимент",
|
||||
"NPages": "%s страници",
|
||||
"OnePage": "1 страница",
|
||||
"PluginDescription": "Отчети за интересите на посетителите: брой прегледани страници, време прекарано на уеб страницата, изминали дни от последното му посещение и още много други.",
|
||||
"VisitNum": "Брой посещения",
|
||||
"VisitsByDaysSinceLast": "Посещения на ден от последното посещение",
|
||||
"visitsByVisitCount": "Посещения по брой на посещенията",
|
||||
"VisitsPerDuration": "Посещения по продължителност",
|
||||
"VisitsPerNbOfPages": "Посещения по прегледани страници",
|
||||
"WidgetLengths": "Продължителност на посещенията",
|
||||
"WidgetLengthsDocumentation": "В този отчет, можете да видите колко посещения са имали дадена продължителност. Първоначално, отчета се показва като \"облак от етикети\", по-често срещаните са изобразени с голям шрифт.",
|
||||
"WidgetPages": "Импресии\/Посещения",
|
||||
"WidgetPagesDocumentation": "В този отчет, можете да видите в колко посещения са се видяли определен брой страници. Първоначално, отчета се показва като \"облак от етикети\", по-често срещаните са изобразени с голям шрифт.",
|
||||
"WidgetVisitsByDaysSinceLast": "Посещения по дни след последното посещение",
|
||||
"WidgetVisitsByDaysSinceLastDocumentation": "В този отчет, можете да видито колко посещения са направени от посетители, чието последно посещение е било преди определен брой от дни.",
|
||||
"WidgetVisitsByNumDocumentation": "В този отчет можете да видите броя посещения, които са били N-тото посещение, тоест посетителите, които са посетили вашият уеб сайт поне N пъти."
|
||||
}
|
||||
}
|
||||
23
www/analytics/plugins/VisitorInterest/lang/ca.json
Normal file
23
www/analytics/plugins/VisitorInterest/lang/ca.json
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"VisitorInterest": {
|
||||
"BetweenXYMinutes": "%1$s-%2$s min",
|
||||
"BetweenXYSeconds": "%1$s-%2$ss",
|
||||
"ColumnPagesPerVisit": "Pàgines per visita",
|
||||
"ColumnVisitDuration": "Durada de la visita",
|
||||
"Engagement": "Compromís",
|
||||
"NPages": "%s pàgines",
|
||||
"OnePage": "1 pàgina",
|
||||
"VisitNum": "Nombre de visites",
|
||||
"VisitsByDaysSinceLast": "Visites per dia des de l'última visita",
|
||||
"visitsByVisitCount": "Visites per nombre de visita",
|
||||
"VisitsPerDuration": "Visites segons la durada",
|
||||
"VisitsPerNbOfPages": "Visites segons el nombre de pàgines",
|
||||
"WidgetLengths": "Durada de les visites",
|
||||
"WidgetLengthsDocumentation": "En aquest informe tu pots veure quantes visites han tingut una determinada duració. Inicialment, l'informe es mostra com un núvol d'etiquetes, on les duracions amb visites es mostren més gran.",
|
||||
"WidgetPages": "Pàgines per visita",
|
||||
"WidgetPagesDocumentation": "En aquest informe podeu veure quantes visites han produït un nombre de pàgines vistes. Inicialment, la informació es mostra com un núvol d'etiquetes, on els nombres més comuns es mostren amb una mida més gran.",
|
||||
"WidgetVisitsByDaysSinceLast": "Visites per dia des de l'última visita",
|
||||
"WidgetVisitsByDaysSinceLastDocumentation": "En aquest informe, podeu veure quantes visites han estat de visitant que la seva visita va ser fa un cert nombre de dies.",
|
||||
"WidgetVisitsByNumDocumentation": "En aquest informe podeu veure qui va ser la visita número N. Per exemple, els visitants que han vist el vostre lloc web com a mínim N vegades."
|
||||
}
|
||||
}
|
||||
24
www/analytics/plugins/VisitorInterest/lang/cs.json
Normal file
24
www/analytics/plugins/VisitorInterest/lang/cs.json
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"VisitorInterest": {
|
||||
"BetweenXYMinutes": "%1$s-%2$s minut",
|
||||
"BetweenXYSeconds": "%1$s-%2$ss",
|
||||
"ColumnPagesPerVisit": "Stránek za návštěvu",
|
||||
"ColumnVisitDuration": "Doba návštěvy",
|
||||
"Engagement": "Zapojení",
|
||||
"NPages": "%s stránek",
|
||||
"OnePage": "1 stránka",
|
||||
"PluginDescription": "Hlásí zájem vašich návštěvníků: počet zobrazených stránek, čas na stránkách, dny od poslední návštěvy aj.",
|
||||
"VisitNum": "Číslo návštěvníka",
|
||||
"VisitsByDaysSinceLast": "Návštěvy po dnech od posledního navštívení",
|
||||
"visitsByVisitCount": "Návstěvy podle pořadí",
|
||||
"VisitsPerDuration": "Doba zobrazení na návštěvníka",
|
||||
"VisitsPerNbOfPages": "Počet stránek na návštěvníka",
|
||||
"WidgetLengths": "Doba návštěv",
|
||||
"WidgetLengthsDocumentation": "V tomto hlášení vidíte, kolik návštěv mělo určitou celkovou délku. Nejdříve je toto hlášení zobrazeno jako tag cloud, častější doby jsou větším písmem.",
|
||||
"WidgetPages": "Stránek za návštěvu",
|
||||
"WidgetPagesDocumentation": "V tomto hlášení je zobrazeno, kolik návštěv provedlo určité množství zobrazení stránek. Nejdříve je toto hlášení zobrazeno jako tag cloud, častější čísla mají větší písmo.",
|
||||
"WidgetVisitsByDaysSinceLast": "Návštěvy podle dnů od poslední návštěvy",
|
||||
"WidgetVisitsByDaysSinceLastDocumentation": "V tomto hlášení vidíte kolik návštěv provedli návštěvníci, kteří v minulosti stránku navštívili opakovaně.",
|
||||
"WidgetVisitsByNumDocumentation": "V tomto hlášení vidíte, kolik návštěv bylo n-tou návštěvou, t. j. návštěvníky, kteří navštívili vaše stránky aspoň n-krát."
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue