forked from rebillar/site-accueil-insa
		
	
		
			
				
	
	
		
			48 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * Matomo - free/libre analytics platform
 | |
|  *
 | |
|  * @link https://matomo.org
 | |
|  * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
 | |
|  *
 | |
|  */
 | |
| namespace Piwik\Plugins\PagePerformance\Columns;
 | |
| 
 | |
| use Piwik\Exception\InvalidRequestParameterException;
 | |
| use Piwik\Plugin\Dimension\ActionDimension;
 | |
| use Piwik\Tracker\Action;
 | |
| use Piwik\Tracker\ActionPageview;
 | |
| use Piwik\Tracker\Request;
 | |
| use Piwik\Tracker\Visitor;
 | |
| 
 | |
| abstract class Base extends ActionDimension
 | |
| {
 | |
|     protected $type = self::TYPE_DURATION_MS;
 | |
| 
 | |
|     abstract public function getRequestParam();
 | |
| 
 | |
|     public function onNewAction(Request $request, Visitor $visitor, Action $action)
 | |
|     {
 | |
|         if (!($action instanceof ActionPageview)) {
 | |
|             return false;
 | |
|         }
 | |
| 
 | |
|         $time = $request->getParam($this->getRequestParam());
 | |
| 
 | |
|         if ($time === -1) {
 | |
|             return false;
 | |
|         }
 | |
| 
 | |
|         if ($time < 0) {
 | |
|             throw new InvalidRequestParameterException(sprintf('Value for %1$s can\'t be negative.', $this->getRequestParam()));
 | |
|         }
 | |
| 
 | |
|         // ignore values that are too high to be stored in column (unsigned mediumint)
 | |
|         // refs https://github.com/matomo-org/matomo/issues/17035
 | |
|         if ($time > 16777215) {
 | |
|             return false;
 | |
|         }
 | |
| 
 | |
|         return $time;
 | |
|     }
 | |
| }
 |