Esempio n. 1
0
 public function index()
 {
     $view = Piwik_View::factory('index');
     $this->setGeneralVariablesView($view);
     $view->countWebsites = count(Piwik_SitesManager_API::getInstance()->getSitesIdWithAtLeastViewAccess());
     // get report types
     $reportTypes = Piwik_PDFReports_API::getReportTypes();
     $view->reportTypes = $reportTypes;
     $view->defaultReportType = self::DEFAULT_REPORT_TYPE;
     $view->defaultReportFormat = Piwik_PDFReports::DEFAULT_REPORT_FORMAT;
     $reportsByCategoryByType = array();
     $reportFormatsByReportType = array();
     $allowMultipleReportsByReportType = array();
     foreach ($reportTypes as $reportType => $reportTypeIcon) {
         // get report formats
         $reportFormatsByReportType[$reportType] = Piwik_PDFReports_API::getReportFormats($reportType);
         $allowMultipleReportsByReportType[$reportType] = Piwik_PDFReports_API::allowMultipleReports($reportType);
         // get report metadata
         $reportsByCategory = array();
         $availableReportMetadata = Piwik_PDFReports_API::getReportMetadata($this->idSite, $reportType);
         foreach ($availableReportMetadata as $reportMetadata) {
             $reportsByCategory[$reportMetadata['category']][] = $reportMetadata;
         }
         $reportsByCategoryByType[$reportType] = $reportsByCategory;
     }
     $view->reportsByCategoryByReportType = $reportsByCategoryByType;
     $view->reportFormatsByReportType = $reportFormatsByReportType;
     $view->allowMultipleReportsByReportType = $allowMultipleReportsByReportType;
     $reports = array();
     $reportsById = array();
     if (!Piwik::isUserIsAnonymous()) {
         $reports = Piwik_PDFReports_API::getInstance()->getReports($this->idSite, $period = false, $idReport = false, $ifSuperUserReturnOnlySuperUserReports = true);
         foreach ($reports as &$report) {
             $report['recipients'] = Piwik_PDFReports_API::getReportRecipients($report);
             $reportsById[$report['idreport']] = $report;
         }
     }
     $view->reports = $reports;
     $view->reportsJSON = Piwik_Common::json_encode($reportsById);
     $view->downloadOutputType = Piwik_PDFReports_API::OUTPUT_INLINE;
     $periods = array_merge(array('never' => Piwik_Translate('General_Never')), Piwik_PDFReports::getPeriodToFrequency());
     // Do not display date range in selector
     unset($periods['range']);
     $view->periods = $periods;
     $view->defaultPeriod = Piwik_PDFReports::DEFAULT_PERIOD;
     $view->language = Piwik_LanguagesManager::getLanguageCodeForCurrentUser();
     echo $view->render();
 }
 /**
  * Create one MAIL and two MOBILE scheduled reports
  *
  * Reports sent by mail can contain PNG graphs when the user specifies it.
  * Depending on the system under test, generated images differ slightly.
  * Because of this discrepancy, PNG graphs are only tested if the system under test
  * has the characteristics described in 'canImagesBeIncludedInScheduledReports'
  *
  * @see canImagesBeIncludedInScheduledReports
  * @param int $idSite id of website created
  */
 protected static function setUpScheduledReports($idSite)
 {
     $includeImages = self::canImagesBeIncludedInScheduledReports();
     // fake access is needed so API methods can call Piwik::getCurrentUserLogin(), e.g: 'PDFReports.addReport'
     $pseudoMockAccess = new FakeAccess();
     FakeAccess::$superUser = true;
     Zend_Registry::set('access', $pseudoMockAccess);
     // retrieve available reports
     $availableReportMetadata = Piwik_PDFReports_API::getReportMetadata($idSite, Piwik_PDFReports::EMAIL_TYPE);
     $availableReportIds = array();
     foreach ($availableReportMetadata as $reportMetadata) {
         $availableReportIds[] = $reportMetadata['uniqueId'];
     }
     //@review should we also test evolution graphs?
     // set-up mail report
     Piwik_PDFReports_API::getInstance()->addReport($idSite, 'Mail Test report', 'day', Piwik_PDFReports::EMAIL_TYPE, Piwik_ReportRenderer::HTML_FORMAT, $availableReportIds, array("displayFormat" => $includeImages ? Piwik_PDFReports::DISPLAY_FORMAT_TABLES_AND_GRAPHS : Piwik_PDFReports::DISPLAY_FORMAT_TABLES_ONLY));
     // set-up sms report for one website
     Piwik_PDFReports_API::getInstance()->addReport($idSite, 'SMS Test report, one website', 'day', Piwik_MobileMessaging::MOBILE_TYPE, Piwik_MobileMessaging::SMS_FORMAT, array("MultiSites_getOne"), array("phoneNumbers" => array()));
     // set-up sms report for all websites
     Piwik_PDFReports_API::getInstance()->addReport($idSite, 'SMS Test report, all websites', 'day', Piwik_MobileMessaging::MOBILE_TYPE, Piwik_MobileMessaging::SMS_FORMAT, array("MultiSites_getAll"), array("phoneNumbers" => array()));
 }