Piwik\Plugins\ScheduledReports\API::addReport PHP Method

addReport() public method

Creates a new report and schedules it.
public addReport ( integer $idSite, string $description, string $period, integer $hour, string $reportType, string $reportFormat, array $reports, array $parameters, boolean | integer $idSegment = false ) : integer
$idSite integer
$description string Report description
$period string Schedule frequency: day, week or month
$hour integer Hour (0-23) when the report should be sent
$reportType string 'email' or any other format provided via the ScheduledReports.getReportTypes hook
$reportFormat string 'pdf', 'html' or any other format provided via the ScheduledReports.getReportFormats hook
$reports array array of reports
$parameters array array of parameters
$idSegment boolean | integer Segment Identifier
return integer idReport generated
    public function addReport($idSite, $description, $period, $hour, $reportType, $reportFormat, $reports, $parameters, $idSegment = false)
    {
        Piwik::checkUserIsNotAnonymous();
        Piwik::checkUserHasViewAccess($idSite);
        $currentUser = Piwik::getCurrentUserLogin();
        self::ensureLanguageSetForUser($currentUser);
        self::validateCommonReportAttributes($period, $hour, $description, $idSegment, $reportType, $reportFormat);
        // report parameters validations
        $parameters = self::validateReportParameters($reportType, $parameters);
        // validation of requested reports
        $reports = self::validateRequestedReports($idSite, $reportType, $reports);
        $idReport = $this->getModel()->createReport(array('idsite' => $idSite, 'login' => $currentUser, 'description' => $description, 'idsegment' => $idSegment, 'period' => $period, 'hour' => $hour, 'type' => $reportType, 'format' => $reportFormat, 'parameters' => $parameters, 'reports' => $reports, 'ts_created' => Date::now()->getDatetime(), 'deleted' => 0));
        return $idReport;
    }