diff options
Diffstat (limited to 'plugins/PagePerformance/Columns/Base.php')
-rw-r--r-- | plugins/PagePerformance/Columns/Base.php | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/plugins/PagePerformance/Columns/Base.php b/plugins/PagePerformance/Columns/Base.php new file mode 100644 index 0000000000..374493b067 --- /dev/null +++ b/plugins/PagePerformance/Columns/Base.php @@ -0,0 +1,42 @@ +<?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())); + } + + return $time; + } +} |