controller.php

来自「一款可以和GOOGLE媲美的开源统计系统,运用AJAX.功能强大. 无色提示:」· PHP 代码 · 共 200 行

PHP
200
字号
<?phprequire_once "ViewDataTable.php";class Piwik_Actions_Controller extends Piwik_Controller {		function getDownloads($fetch = false)	{		$view = Piwik_ViewDataTable::factory();		$view->init(  	$this->pluginName, 						__FUNCTION__,						'Actions.getDownloads',						'getDownloadsSubDataTable' );				$view->setColumnsToDisplay( array('label','nb_uniq_visitors') );		$view->setSortedColumn( 'nb_uniq_visitors','desc' );		$view->disableExcludeLowPopulation();		$view->setLimit( 15 );		$view->disableSort();				return $this->renderView($view, $fetch);	}	function getDownloadsSubDataTable($fetch = false)	{		$view = Piwik_ViewDataTable::factory();		$view->init(  	$this->pluginName, 						__FUNCTION__,						'Actions.getDownloads',						'getDownloadsSubDataTable');				$view->setColumnsToDisplay( array('label','nb_uniq_visitors') );		$view->setSortedColumn( 'nb_uniq_visitors','desc' );		$view->disableExcludeLowPopulation();		$view->disableSearchBox();		$view->setLimit( 15 );		$view->disableSort();				$view->main();		return $this->renderView($view, $fetch);	}			function getActions($fetch = false)	{		$view = $this->getActionsView(	$this->pluginName, 										__FUNCTION__,										'Actions.getActions', 										'getActionsSubDataTable' );				return $this->renderView($view, $fetch);	}	function getActionsSubDataTable($fetch = false)	{		$view = $this->getActionsView( 	$this->pluginName, 										__FUNCTION__,										'Actions.getActions', 										'getActionsSubDataTable'  );				return $this->renderView($view, $fetch);	}			function getOutlinks($fetch = false)	{		$view = Piwik_ViewDataTable::factory();		$view->init(  	$this->pluginName, 						__FUNCTION__,						'Actions.getOutlinks',						'getOutlinksSubDataTable' );				$view->setColumnsToDisplay( array('label','nb_uniq_visitors') );		$view->setSortedColumn( 'nb_uniq_visitors','desc' );		$view->disableExcludeLowPopulation();		$view->setLimit( 15 );		$view->disableSort();				return $this->renderView($view, $fetch);	}	function getOutlinksSubDataTable($fetch = false)	{		$view = Piwik_ViewDataTable::factory();		$view->init(	$this->pluginName, 						__FUNCTION__,						'Actions.getOutlinks',						'getOutlinksSubDataTable');				$view->setColumnsToDisplay( array('label','nb_uniq_visitors') );		$view->setSortedColumn( 'nb_uniq_visitors','desc' );		$view->disableExcludeLowPopulation();		$view->disableSearchBox();		$view->setLimit( 15 );		$view->disableSort();				return $this->renderView($view, $fetch);	}			function index()	{		$view = new Piwik_View('Actions/index.tpl');				/* Actions / Downloads / Outlinks */		$view->dataTableActions = $this->getActions( true );		$view->dataTableDownloads = $this->getDownloads( true );		$view->dataTableOutlinks = $this->getOutlinks( true );				echo $view->render();	}		protected function getActionsView($currentControllerName,						$currentMethod,						$methodToCall = 'Actions.getActions', 						$subMethod = 'getActionsSubDataTable')	{		$view = Piwik_ViewDataTable::factory();		$view->init(  	$currentControllerName,						$currentMethod, 						$methodToCall, 						$subMethod );		$view->setTemplate('CoreHome/templates/datatable_actions.tpl');				if(Piwik_Common::getRequestVar('idSubtable', -1) != -1)		{			$view->setTemplate('CoreHome/templates/datatable_actions_subdatable.tpl');		}		$currentlySearching = $view->setSearchRecursive();				if($currentlySearching)		{			$view->setTemplate('CoreHome/templates/datatable_actions_recursive.tpl');		}		$view->disableSort();				$view->setSortedColumn( 'nb_hits', 'desc' );				$view->disableOffsetInformation();				$view->setColumnsToDisplay( array('label','nb_uniq_visitors','nb_hits') );		$view->setLimit( 100 );		// computing minimum value to exclude		require_once "VisitsSummary/Controller.php";		$visitsInfo = Piwik_VisitsSummary_Controller::getVisitsSummary();		$nbActions = $visitsInfo->getColumn('nb_actions');		$nbActionsLowPopulationThreshold = floor(0.02 * $nbActions); // 2 percent of the total number of actions				// we remove 1 to make sure some actions/downloads are displayed in the case we have a very few of them		// and each of them has 1 or 2 hits...		$nbActionsLowPopulationThreshold = min($visitsInfo->getColumn('max_actions')-1, $nbActionsLowPopulationThreshold-1);				$view->setExcludeLowPopulation( $nbActionsLowPopulationThreshold, 'nb_hits' );				$view->main();				// we need to rewrite the phpArray so it contains all the recursive arrays		if($currentlySearching)		{			$phpArrayRecursive = $this->getArrayFromRecursiveDataTable($view->getDataTable());//			var_dump($phpArrayRecursive);exit;			$view->getView()->arrayDataTable = $phpArrayRecursive;		}//		var_dump( $view->view->arrayDataTable);exit;		return $view;	}		protected function getArrayFromRecursiveDataTable( $dataTable, $depth = 0 )	{		$table = array();		foreach($dataTable->getRows() as $row)		{			$phpArray = array();			if(($idSubtable = $row->getIdSubDataTable()) !== null)			{				$subTable = Piwik_DataTable_Manager::getInstance()->getTable( $idSubtable );									if($subTable->getRowsCount() > 0)				{					$phpArray = $this->getArrayFromRecursiveDataTable( $subTable, $depth + 1 );				}			}						$label = $row->getColumn('label');			$newRow = array(				'level' => $depth,				'columns' => $row->getColumns(),				'metadata' => $row->getMetadata(),				'idsubdatatable' => $row->getIdSubDataTable()				);			$table[] = $newRow;			if(count($phpArray) > 0)			{				$table = array_merge( $table,  $phpArray);			}		}		return $table;	}			}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?