diff options
author | mattab <matthieu.aubry@gmail.com> | 2014-04-09 08:24:44 +0400 |
---|---|---|
committer | mattab <matthieu.aubry@gmail.com> | 2014-04-09 08:24:44 +0400 |
commit | c3d78269d2492976e94c4990a10a4228c33703e9 (patch) | |
tree | a12adf3c84ec2e1eeabb08aced5ca5aa7c14ce1e /plugins/Events/API.php | |
parent | df8fc0f43d44325792561872eca9a800a7762dfe (diff) |
Refs #472 Custom Events Archiver and API
Diffstat (limited to 'plugins/Events/API.php')
-rw-r--r-- | plugins/Events/API.php | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/plugins/Events/API.php b/plugins/Events/API.php new file mode 100644 index 0000000000..2d8b24919e --- /dev/null +++ b/plugins/Events/API.php @@ -0,0 +1,85 @@ +<?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\Events; + +use Piwik\Archive; +use Piwik\DataTable\Row; +use Piwik\DataTable; +use Piwik\Metrics; +use Piwik\Piwik; + +/** + * Custom Events API + * + * @package Events + * @method static \Piwik\Plugins\Events\API getInstance() + */ +class API extends \Piwik\Plugin\API +{ + protected function getDataTable($name, $idSite, $period, $date, $segment, $expanded = false, $idSubtable = null) + { + Piwik::checkUserHasViewAccess($idSite); + $dataTable = Archive::getDataTableFromArchive($name, $idSite, $period, $date, $segment, $expanded, $idSubtable); + $dataTable->filter('Sort', array(Metrics::INDEX_NB_VISITS)); + $dataTable->queueFilter('ReplaceColumnNames'); + $dataTable->queueFilter('ReplaceSummaryRowLabel'); + $dataTable->filter(function (DataTable $table) { + $row = $table->getRowFromLabel(Archiver::EVENT_NAME_NOT_SET); + if($row) { + $row->setColumn('label', Piwik::translate(Archiver::EVENT_NAME_NOT_SET)); + } + }); + return $dataTable; + } + + public function getCategory($idSite, $period, $date, $segment = false, $expanded = false) + { + return $this->getDataTable(Archiver::EVENTS_CATEGORY_ACTION_RECORD_NAME, $idSite, $period, $date, $segment, $expanded); + } + + public function getAction($idSite, $period, $date, $segment = false, $expanded = false) + { + return $this->getDataTable(Archiver::EVENTS_ACTION_NAME_RECORD_NAME, $idSite, $period, $date, $segment, $expanded); + } + + public function getName($idSite, $period, $date, $segment = false, $expanded = false) + { + return $this->getDataTable(Archiver::EVENTS_NAME_ACTION_RECORD_NAME, $idSite, $period, $date, $segment, $expanded); + } + + public function getActionFromCategoryId($idSite, $period, $date, $idSubtable, $segment = false) + { + return $this->getDataTable(Archiver::EVENTS_CATEGORY_ACTION_RECORD_NAME, $idSite, $period, $date, $segment, $expanded = false, $idSubtable); + } + + public function getNameFromCategoryId($idSite, $period, $date, $idSubtable, $segment = false) + { + return $this->getDataTable(Archiver::EVENTS_CATEGORY_NAME_RECORD_NAME, $idSite, $period, $date, $segment, $expanded = false, $idSubtable); + } + + public function getCategoryFromActionId($idSite, $period, $date, $idSubtable, $segment = false) + { + return $this->getDataTable(Archiver::EVENTS_ACTION_CATEGORY_RECORD_NAME, $idSite, $period, $date, $segment, $expanded = false, $idSubtable); + } + + public function getNameFromActionId($idSite, $period, $date, $idSubtable, $segment = false) + { + return $this->getDataTable(Archiver::EVENTS_ACTION_NAME_RECORD_NAME, $idSite, $period, $date, $segment, $expanded = false, $idSubtable); + } + + public function getActionFromNameId($idSite, $period, $date, $idSubtable, $segment = false) + { + return $this->getDataTable(Archiver::EVENTS_NAME_ACTION_RECORD_NAME, $idSite, $period, $date, $segment, $expanded = false, $idSubtable); + } + + public function getCategoryFromNameId($idSite, $period, $date, $idSubtable, $segment = false) + { + return $this->getDataTable(Archiver::EVENTS_NAME_CATEGORY_RECORD_NAME, $idSite, $period, $date, $segment, $expanded = false, $idSubtable); + } +}
\ No newline at end of file |