controller.php
来自「一款可以和GOOGLE媲美的开源统计系统,运用AJAX.功能强大. 无色提示:」· PHP 代码 · 共 366 行
PHP
366 行
<?phprequire_once "ViewDataTable.php";class Piwik_Referers_Controller extends Piwik_Controller { function index() { $view = new Piwik_View('Referers/index.tpl'); $view->graphEvolutionReferers = $this->getLastDirectEntryGraph(true); $view->nameGraphEvolutionReferers = 'ReferersgetLastDirectEntryGraph'; // must be the function name used above $view->numberDistinctSearchEngines = $this->getNumberOfDistinctSearchEngines(true); $view->numberDistinctKeywords = $this->getNumberOfDistinctKeywords(true); $view->numberDistinctWebsites = $this->getNumberOfDistinctWebsites(true); $view->numberDistinctWebsitesUrls = $this->getNumberOfDistinctWebsitesUrls(true); $view->numberDistinctPartners = $this->getNumberOfDistinctPartners(true); $view->numberDistinctPartnersUrls = $this->getNumberOfDistinctPartnersUrls(true); $view->numberDistinctCampaigns = $this->getNumberOfDistinctCampaigns(true); // building the referers summary report $view->dataTableRefererType = $this->getRefererType(true); $nameValues = $this->getReferersVisitorsByType(); foreach($nameValues as $name => $value) { $view->$name = $value; } // sparkline for the historical data of the above values $view->urlSparklineSearchEngines = $this->getUrlSparkline('getLastSearchEnginesGraph'); $view->urlSparklineDirectEntry = $this->getUrlSparkline('getLastDirectEntryGraph'); $view->urlSparklineWebsites = $this->getUrlSparkline('getLastWebsitesGraph'); $view->urlSparklineCampaigns = $this->getUrlSparkline('getLastCampaignsGraph'); $view->urlSparklineNewsletters = $this->getUrlSparkline('getLastNewslettersGraph'); $view->urlSparklinePartners = $this->getUrlSparkline('getLastPartnersGraph'); // sparklines for the evolution of the distinct keywords count/websites count/ etc $view->urlSparklineDistinctSearchEngines = $this->getUrlSparkline('getLastDistinctSearchEnginesGraph'); $view->urlSparklineDistinctKeywords = $this->getUrlSparkline('getLastDistinctKeywordsGraph'); $view->urlSparklineDistinctWebsites = $this->getUrlSparkline('getLastDistinctWebsitesGraph'); $view->urlSparklineDistinctPartners = $this->getUrlSparkline('getLastDistinctPartnersGraph'); $view->urlSparklineDistinctCampaigns = $this->getUrlSparkline('getLastDistinctCampaignsGraph'); echo $view->render(); } function getSearchEnginesAndKeywords() { $view = new Piwik_View('Referers/searchEngines_Keywords.tpl'); $view->searchEngines = $this->getSearchEngines(true) ; $view->keywords = $this->getKeywords(true); echo $view->render(); } /** * Referers */ function getRefererType( $fetch = false) { $view = Piwik_ViewDataTable::factory('cloud'); $view->init( $this->pluginName, 'getRefererType', 'Referers.getRefererType' ); $view->disableSearchBox(); $view->disableOffsetInformation(); $view->disableExcludeLowPopulation(); $view->doNotShowFooter(); $view->setColumnsToDisplay( array('label','nb_uniq_visitors', 'nb_visits') ); return $this->renderView($view, $fetch); } function getKeywords( $fetch = false) { $view = Piwik_ViewDataTable::factory(); $view->init( $this->pluginName, 'getKeywords', 'Referers.getKeywords', 'getSearchEnginesFromKeywordId' ); $view->disableExcludeLowPopulation(); $view->setColumnsToDisplay( array('label','nb_visits') ); return $this->renderView($view, $fetch); } function getSearchEnginesFromKeywordId( $fetch = false ) { $view = Piwik_ViewDataTable::factory(); $view->init( $this->pluginName, 'getSearchEnginesFromKeywordId', 'Referers.getSearchEnginesFromKeywordId' ); $view->disableSearchBox(); $view->disableExcludeLowPopulation(); $view->setColumnsToDisplay( array('label','nb_visits') ); return $this->renderView($view, $fetch); } function getSearchEngines( $fetch = false) { $view = Piwik_ViewDataTable::factory(); $view->init( $this->pluginName, 'getSearchEngines', 'Referers.getSearchEngines', 'getKeywordsFromSearchEngineId' ); $view->disableSearchBox(); $view->disableExcludeLowPopulation(); $view->setColumnsToDisplay( array('label','nb_visits') ); return $this->renderView($view, $fetch); } public function getSearchEnginesEvolution($fetch = false)
{
$view = Piwik_ViewDataTable::factory('graphEvolution');
$view->init( 'Referers', __FUNCTION__, 'Referers.getSearchEngines' );
$view->setColumnsToDisplay( 'nb_uniq_visitors' );
$view->setExactPattern( array('Google','Yahoo!'), 'label');
//$view->setExactPattern( array('Google'), 'label');
return $this->renderView($view, $fetch);
}
function getKeywordsFromSearchEngineId( $fetch = false ) { $view = Piwik_ViewDataTable::factory(); $view->init( $this->pluginName, 'getKeywordsFromSearchEngineId', 'Referers.getKeywordsFromSearchEngineId' ); $view->disableSearchBox(); $view->disableExcludeLowPopulation(); $view->setColumnsToDisplay( array('label','nb_visits') ); return $this->renderView($view, $fetch); } function getWebsites( $fetch = false) { $view = Piwik_ViewDataTable::factory(); $view->init( $this->pluginName, 'getWebsites', 'Referers.getWebsites', 'getUrlsFromWebsiteId' ); $view->disableExcludeLowPopulation(); $view->setColumnsToDisplay( array('label','nb_visits') ); $view->setLimit(10); $view->setGraphLimit(12); return $this->renderView($view, $fetch); } function getCampaigns( $fetch = false) { $view = Piwik_ViewDataTable::factory(); $view->init( $this->pluginName, 'getCampaigns', 'Referers.getCampaigns', 'getKeywordsFromCampaignId' ); $view->disableSearchBox(); $view->disableExcludeLowPopulation(); $view->setLimit( 5 ); $view->setColumnsToDisplay( array('label','nb_visits') ); return $this->renderView($view, $fetch); } function getKeywordsFromCampaignId( $fetch = false) { $view = Piwik_ViewDataTable::factory(); $view->init( $this->pluginName, 'getKeywordsFromCampaignId', 'Referers.getKeywordsFromCampaignId' ); $view->disableSearchBox(); $view->disableExcludeLowPopulation(); $view->setColumnsToDisplay( array('label','nb_visits') ); return $this->renderView($view, $fetch); } function getUrlsFromWebsiteId( $fetch = false) { $view = Piwik_ViewDataTable::factory(); $view->init( $this->pluginName, 'getUrlsFromWebsiteId', 'Referers.getUrlsFromWebsiteId' ); $view->disableSearchBox(); $view->disableExcludeLowPopulation(); $view->setColumnsToDisplay( array('label','nb_visits') ); return $this->renderView($view, $fetch); } function getPartners( $fetch = false) { $view = Piwik_ViewDataTable::factory(); $view->init( $this->pluginName, 'getPartners', 'Referers.getPartners', 'getUrlsFromPartnerId' ); $view->disableSearchBox(); $view->disableExcludeLowPopulation(); $view->setLimit( 5 ); $view->setColumnsToDisplay( array('label','nb_visits') ); return $this->renderView($view, $fetch); } function getUrlsFromPartnerId( $fetch = false) { $view = Piwik_ViewDataTable::factory(); $view->init( $this->pluginName, 'getUrlsFromPartnerId', 'Referers.getUrlsFromPartnerId' ); $view->disableSearchBox(); $view->disableExcludeLowPopulation(); $view->setColumnsToDisplay( array('label','nb_visits') ); return $this->renderView($view, $fetch); } function getReferersType() { // we disable the queued filters because here we want to get the visits coming from search engines // if the filters were applied we would have to look up for a label looking like "Search Engines" // which is not good when we have translations $requestString = "method=Referers.getRefererType &format=original &disable_queued_filters=1"; $request = new Piwik_API_Request($requestString); return $request->process(); } protected function getReferersVisitorsByType() { // this is raw data (no filters applied, on purpose) so we select the data using the magic integers ID $dataTableReferersType = $this->getReferersType(true); $nameToColumnId = array( 'visitorsFromSearchEngines' => Piwik_Common::REFERER_TYPE_SEARCH_ENGINE, 'visitorsFromDirectEntry' => Piwik_Common::REFERER_TYPE_DIRECT_ENTRY, 'visitorsFromWebsites' => Piwik_Common::REFERER_TYPE_WEBSITE, 'visitorsFromCampaigns' => Piwik_Common::REFERER_TYPE_CAMPAIGN, 'visitorsFromNewsletters' => Piwik_Common::REFERER_TYPE_NEWSLETTER, 'visitorsFromPartners' => Piwik_Common::REFERER_TYPE_PARTNER, ); $return = array(); foreach($nameToColumnId as $nameVar => $columnId) { $value = 0; $row = $dataTableReferersType->getRowFromLabel($columnId); if($row !== false) { $value = $row->getColumn(Piwik_Archive::INDEX_NB_UNIQ_VISITORS); } $return[$nameVar] = $value; } return $return; } function getLastSearchEnginesGraph( $fetch = false ) { $view = $this->getLastUnitGraph($this->pluginName,__FUNCTION__, 'Referers.getRefererType'); $view->setSearchPattern(Piwik_Common::REFERER_TYPE_SEARCH_ENGINE, 'label'); return $this->renderView($view, $fetch); } function getLastDirectEntryGraph( $fetch = false ) { $view = $this->getLastUnitGraph($this->pluginName,__FUNCTION__, 'Referers.getRefererType'); $view->setSearchPattern(Piwik_Common::REFERER_TYPE_DIRECT_ENTRY, 'label'); return $this->renderView($view, $fetch); } function getLastWebsitesGraph( $fetch = false ) { $view = $this->getLastUnitGraph($this->pluginName,__FUNCTION__, 'Referers.getRefererType'); $view->setSearchPattern(Piwik_Common::REFERER_TYPE_WEBSITE, 'label'); return $this->renderView($view, $fetch); } function getLastCampaignsGraph( $fetch = false ) { $view = $this->getLastUnitGraph($this->pluginName,__FUNCTION__, 'Referers.getRefererType'); $view->setSearchPattern(Piwik_Common::REFERER_TYPE_CAMPAIGN, 'label'); return $this->renderView($view, $fetch); } function getLastNewslettersGraph( $fetch = false ) { $view = $this->getLastUnitGraph($this->pluginName,__FUNCTION__, 'Referers.getRefererType'); $view->setSearchPattern(Piwik_Common::REFERER_TYPE_NEWSLETTER, 'label'); return $this->renderView($view, $fetch); } function getLastPartnersGraph( $fetch = false ) { $view = $this->getLastUnitGraph($this->pluginName,__FUNCTION__, 'Referers.getRefererType'); $view->setSearchPattern(Piwik_Common::REFERER_TYPE_PARTNER, 'label'); return $this->renderView($view, $fetch); } function getLastDistinctSearchEnginesGraph( $fetch = false ) { $view = $this->getLastUnitGraph($this->pluginName,__FUNCTION__, "Referers.getNumberOfDistinctSearchEngines"); return $this->renderView($view, $fetch); } function getLastDistinctKeywordsGraph( $fetch = false ) { $view = $this->getLastUnitGraph($this->pluginName,__FUNCTION__, "Referers.getNumberOfDistinctKeywords"); return $this->renderView($view, $fetch); } function getLastDistinctWebsitesGraph( $fetch = false ) { $view = $this->getLastUnitGraph($this->pluginName,__FUNCTION__, "Referers.getNumberOfDistinctWebsites"); return $this->renderView($view, $fetch); } function getLastDistinctPartnersGraph( $fetch = false ) { $view = $this->getLastUnitGraph($this->pluginName,__FUNCTION__, "Referers.getNumberOfDistinctPartners"); return $this->renderView($view, $fetch); } function getLastDistinctCampaignsGraph( $fetch = false ) { $view = $this->getLastUnitGraph($this->pluginName,__FUNCTION__, "Referers.getNumberOfDistinctCampaigns"); return $this->renderView($view, $fetch); } function getNumberOfDistinctSearchEngines( $fetch = false) { return $this->getNumericValue('Referers.' . __FUNCTION__); } function getNumberOfDistinctKeywords( $fetch = false) { return $this->getNumericValue('Referers.' . __FUNCTION__); } function getNumberOfDistinctCampaigns( $fetch = false) { return $this->getNumericValue('Referers.' . __FUNCTION__); } function getNumberOfDistinctWebsites( $fetch = false) { return $this->getNumericValue('Referers.' . __FUNCTION__); } function getNumberOfDistinctWebsitesUrls( $fetch = false) { return $this->getNumericValue('Referers.' . __FUNCTION__); } function getNumberOfDistinctPartners( $fetch = false) { return $this->getNumericValue('Referers.' . __FUNCTION__); } function getNumberOfDistinctPartnersUrls ( $fetch = false) { return $this->getNumericValue('Referers.' . __FUNCTION__); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?