1<?php 2/** 3 * Matomo - free/libre analytics platform 4 * 5 * @link https://matomo.org 6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later 7 */ 8 9namespace Piwik\Period; 10 11use Piwik\Config; 12 13class PeriodValidator 14{ 15 /** 16 * @param string $period 17 * @return bool 18 */ 19 public function isPeriodAllowedForUI($period) 20 { 21 return in_array($period, $this->getPeriodsAllowedForUI()); 22 } 23 24 /** 25 * @param string $period 26 * @return bool 27 */ 28 public function isPeriodAllowedForAPI($period) 29 { 30 return in_array($period, $this->getPeriodsAllowedForAPI()); 31 } 32 33 /** 34 * @return string[] 35 */ 36 public function getPeriodsAllowedForUI() 37 { 38 $periodsAllowed = Config::getInstance()->General['enabled_periods_UI']; 39 $periodsAllowed = array_map('trim', explode(',', $periodsAllowed)); 40 $periodsAllowed = array_unique($periodsAllowed); 41 $periodsAllowed = array_values($periodsAllowed); 42 return $periodsAllowed; 43 } 44 45 /** 46 * @return string[] 47 */ 48 public function getPeriodsAllowedForAPI() 49 { 50 $periodsAllowed = Config::getInstance()->General['enabled_periods_API']; 51 $periodsAllowed = array_map('trim', explode(',', $periodsAllowed)); 52 $periodsAllowed = array_unique($periodsAllowed); 53 $periodsAllowed = array_values($periodsAllowed); 54 return $periodsAllowed; 55 } 56} 57