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:
authormatt <matt@59fd770c-687e-43c8-a1e3-f5a4ff64c105>2008-05-18 21:22:35 +0400
committermatt <matt@59fd770c-687e-43c8-a1e3-f5a4ff64c105>2008-05-18 21:22:35 +0400
commit8787eb7594388ee4b4577d7648137c8b4e757a60 (patch)
tree882d420a253e89c432470e90f5c2d0deb0811939 /plugins/Referers/API.php
parent21e89891f990639144358109c8e14cf3ca6af717 (diff)
- remove useless __construct()
- renamed empty filter to Null filter - columns are now renamed recursively, fixing bug in not valid XML code when the columns still had a numeric name - added a new parameter in API for Referers module: expanded. If set to true, it will load the data recursively (eg. all keywords + the search engines for each keyword).
Diffstat (limited to 'plugins/Referers/API.php')
-rw-r--r--plugins/Referers/API.php137
1 files changed, 73 insertions, 64 deletions
diff --git a/plugins/Referers/API.php b/plugins/Referers/API.php
index 19196cb23a..a4e898c9b2 100644
--- a/plugins/Referers/API.php
+++ b/plugins/Referers/API.php
@@ -1,157 +1,166 @@
<?php
/**
* Piwik - Open source web analytics
- *
+ *
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
* @version $Id$
- *
+ *
* @package Piwik_Referers
*/
-
+
/**
- *
+ *
* @package Piwik_Referers
*/
class Piwik_Referers_API extends Piwik_Apiable
{
static private $instance = null;
- protected function __construct()
- {
- parent::__construct();
- }
-
static public function getInstance()
{
if (self::$instance == null)
- {
+ {
$c = __CLASS__;
self::$instance = new $c();
}
return self::$instance;
}
-
- private function getDataTable($name, $idSite, $period, $date, $idSubtable = null)
+
+ private function getDataTable($name, $idSite, $period, $date, $expanded, $idSubtable = null)
{
Piwik::checkUserHasViewAccess( $idSite );
$archive = Piwik_Archive::build($idSite, $period, $date );
-
- $dataTable = $archive->getDataTable($name, $idSubtable);
+
+ if($expanded)
+ {
+ $dataTable = $archive->getDataTableExpanded($name, $idSubtable);
+ $dataTable->enableRecursiveSort();
+ }
+ else
+ {
+ $dataTable = $archive->getDataTable($name, $idSubtable);
+ }
$dataTable->queueFilter('Piwik_DataTable_Filter_ReplaceColumnNames');
return $dataTable;
}
+
function getRefererType($idSite, $period, $date)
{
- $dataTable = $this->getDataTable('Referers_type',$idSite, $period, $date);
+ $dataTable = $this->getDataTable('Referers_type',$idSite, $period, $date, $expanded = false);
$dataTable->queueFilter('Piwik_DataTable_Filter_ColumnCallbackReplace', array('label', 'Piwik_getRefererTypeLabel'));
return $dataTable;
}
-
- function getKeywords($idSite, $period, $date)
+
+ function getKeywords($idSite, $period, $date, $expanded = false)
{
- $dataTable = $this->getDataTable('Referers_searchEngineByKeyword',$idSite, $period, $date);
+ $dataTable = $this->getDataTable('Referers_searchEngineByKeyword',$idSite, $period, $date, $expanded);
return $dataTable;
}
-
+
function getSearchEnginesFromKeywordId($idSite, $period, $date, $idSubtable)
{
- $dataTable = $this->getDataTable('Referers_searchEngineByKeyword',$idSite, $period, $date, $idSubtable);
+ $dataTable = $this->getDataTable('Referers_searchEngineByKeyword',$idSite, $period, $date, $expanded = false, $idSubtable);
$dataTable->queueFilter('Piwik_DataTable_Filter_ColumnCallbackAddDetail', array( 'label', 'url', 'Piwik_getSearchEngineUrlFromName') );
$dataTable->queueFilter('Piwik_DataTable_Filter_DetailCallbackAddDetail', array( 'url', 'logo', 'Piwik_getSearchEngineLogoFromName') );
- return $dataTable;
+ return $dataTable;
}
-
- function getSearchEngines($idSite, $period, $date)
+
+ function getSearchEngines($idSite, $period, $date, $expanded = false)
{
- $dataTable = $this->getDataTable('Referers_keywordBySearchEngine',$idSite, $period, $date);
+ $dataTable = $this->getDataTable('Referers_keywordBySearchEngine',$idSite, $period, $date, $expanded);
$dataTable->queueFilter('Piwik_DataTable_Filter_ColumnCallbackAddDetail', array( 'label', 'url', 'Piwik_getSearchEngineUrlFromName') );
$dataTable->queueFilter('Piwik_DataTable_Filter_DetailCallbackAddDetail', array( 'url', 'logo', 'Piwik_getSearchEngineLogoFromName') );
return $dataTable;
}
-
+
function getKeywordsFromSearchEngineId($idSite, $period, $date, $idSubtable)
{
- $dataTable = $this->getDataTable('Referers_keywordBySearchEngine',$idSite, $period, $date, $idSubtable);
- return $dataTable;
+ $dataTable = $this->getDataTable('Referers_keywordBySearchEngine',$idSite, $period, $date, $expanded = false, $idSubtable);
+ return $dataTable;
}
-
- function getCampaigns($idSite, $period, $date)
+
+ function getCampaigns($idSite, $period, $date, $expanded = false)
{
- $dataTable = $this->getDataTable('Referers_keywordByCampaign',$idSite, $period, $date);
+ $dataTable = $this->getDataTable('Referers_keywordByCampaign',$idSite, $period, $date, $expanded);
return $dataTable;
}
-
+
function getKeywordsFromCampaignId($idSite, $period, $date, $idSubtable)
{
- $dataTable = $this->getDataTable('Referers_keywordByCampaign',$idSite, $period, $date, $idSubtable);
- return $dataTable;
+ $dataTable = $this->getDataTable('Referers_keywordByCampaign',$idSite, $period, $date, $expanded = false, $idSubtable);
+ return $dataTable;
}
-
- function getWebsites($idSite, $period, $date)
+
+ function getWebsites($idSite, $period, $date, $expanded = false)
{
- $dataTable = $this->getDataTable('Referers_urlByWebsite',$idSite, $period, $date);
+ $dataTable = $this->getDataTable('Referers_urlByWebsite',$idSite, $period, $date, $expanded);
return $dataTable;
}
function getUrlsFromWebsiteId($idSite, $period, $date, $idSubtable)
- {
- $dataTable = $this->getDataTable('Referers_urlByWebsite',$idSite, $period, $date, $idSubtable);
+ {
+ $dataTable = $this->getDataTable('Referers_urlByWebsite',$idSite, $period, $date, $expanded = false, $idSubtable);
$dataTable->queueFilter('Piwik_DataTable_Filter_ColumnCallbackAddDetail', array( 'label', 'url', create_function('$label', 'return $label;')) );
$dataTable->queueFilter('Piwik_DataTable_Filter_ColumnCallbackReplace', array('label', 'Piwik_getPathFromUrl'));
$dataTable->queueFilter('Piwik_DataTable_Filter_ColumnCallbackReplace', array('label', 'Piwik_truncatePath'));
- return $dataTable;
+ return $dataTable;
}
-
- function getPartners($idSite, $period, $date)
+
+ function getPartners($idSite, $period, $date, $expanded = false)
{
- $dataTable = $this->getDataTable('Referers_urlByPartner',$idSite, $period, $date);
+ $dataTable = $this->getDataTable('Referers_urlByPartner',$idSite, $period, $date, $expanded);
return $dataTable;
}
-
+
function getUrlsFromPartnerId($idSite, $period, $date, $idSubtable)
- {
- $dataTable = $this->getDataTable('Referers_urlByPartner',$idSite, $period, $date, $idSubtable);
+ {
+ $dataTable = $this->getDataTable('Referers_urlByPartner',$idSite, $period, $date, $expanded = false, $idSubtable);
$dataTable->queueFilter('Piwik_DataTable_Filter_ColumnCallbackAddDetail', array( 'label', 'url', create_function('$label', 'return $label;')) );
$dataTable->queueFilter('Piwik_DataTable_Filter_ColumnCallbackReplace', array('label', 'Piwik_getPathFromUrl'));
- return $dataTable;
- }
-
- private function getNumeric($name, $idSite, $period, $date)
- {
- Piwik::checkUserHasViewAccess( $idSite );
- $archive = Piwik_Archive::build($idSite, $period, $date );
- return $archive->getDataTableFromNumeric($name);
+ return $dataTable;
}
-
+
function getNumberOfDistinctSearchEngines($idSite, $period, $date)
{
return $this->getNumeric('Referers_distinctSearchEngines', $idSite, $period, $date);
}
-
+
function getNumberOfDistinctKeywords($idSite, $period, $date)
{
return $this->getNumeric('Referers_distinctKeywords', $idSite, $period, $date);
}
+
function getNumberOfDistinctCampaigns($idSite, $period, $date)
{
return $this->getNumeric('Referers_distinctCampaigns', $idSite, $period, $date);
}
+
function getNumberOfDistinctWebsites($idSite, $period, $date)
{
return $this->getNumeric('Referers_distinctWebsites', $idSite, $period, $date);
}
+
function getNumberOfDistinctWebsitesUrls($idSite, $period, $date)
{
return $this->getNumeric('Referers_distinctWebsitesUrls', $idSite, $period, $date);
}
+
function getNumberOfDistinctPartners($idSite, $period, $date)
{
return $this->getNumeric('Referers_distinctPartners', $idSite, $period, $date);
}
+
function getNumberOfDistinctPartnersUrls($idSite, $period, $date)
{
return $this->getNumeric('Referers_distinctPartnersUrls', $idSite, $period, $date);
}
+
+ private function getNumeric($name, $idSite, $period, $date)
+ {
+ Piwik::checkUserHasViewAccess( $idSite );
+ $archive = Piwik_Archive::build($idSite, $period, $date );
+ return $archive->getDataTableFromNumeric($name);
+ }
}
function Piwik_getPathFromUrl($url)
@@ -197,39 +206,39 @@ function Piwik_getSearchEngineLogoFromName($url)
$path = 'plugins/Referers/images/searchEngines/%s.png';
$beginningUrl = strpos($url,'//') + 2;
$normalPath = sprintf($path, substr($url,$beginningUrl));
-
+
// flags not in the package !
if(!file_exists($normalPath))
{
- return sprintf($path, 'xx');
+ return sprintf($path, 'xx');
}
return $normalPath;
}
function Piwik_getRefererTypeLabel($label)
-{
+{
$indexTranslation = '';
switch($label)
{
case Piwik_Common::REFERER_TYPE_DIRECT_ENTRY:
$indexTranslation = 'Referers_DirectEntry';
- break;
+ break;
case Piwik_Common::REFERER_TYPE_SEARCH_ENGINE:
$indexTranslation = 'Referers_SearchEngines';
- break;
+ break;
case Piwik_Common::REFERER_TYPE_WEBSITE:
$indexTranslation = 'Referers_Websites';
- break;
+ break;
case Piwik_Common::REFERER_TYPE_PARTNER:
$indexTranslation = 'Referers_Partners';
- break;
+ break;
case Piwik_Common::REFERER_TYPE_NEWSLETTER:
$indexTranslation = 'Referers_Newsletters';
- break;
+ break;
case Piwik_Common::REFERER_TYPE_CAMPAIGN:
$indexTranslation = 'Referers_Campaigns';
- break;
+ break;
}
return Piwik_Translate($indexTranslation);
}