Piwik\Plugins\ScheduledReports\Menu::getTopMenuTranslationKey PHP Метод

getTopMenuTranslationKey() публичный Метод

    function getTopMenuTranslationKey()
    {
        // if MobileMessaging is not activated, display 'Email reports'
        if (!\Piwik\Plugin\Manager::getInstance()->isPluginActivated('MobileMessaging')) {
            return self::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY;
        }
        if (Piwik::isUserIsAnonymous()) {
            return self::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY;
        }
        try {
            $reports = API::getInstance()->getReports();
            $reportCount = count($reports);
            // if there are no reports and the mobile account is
            //  - not configured: display 'Email reports'
            //  - configured: display 'Email & SMS reports'
            if ($reportCount == 0) {
                return APIMobileMessaging::getInstance()->areSMSAPICredentialProvided() ? self::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY : self::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY;
            }
        } catch (\Exception $e) {
            return self::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY;
        }
        $anyMobileReport = false;
        foreach ($reports as $report) {
            if ($report['type'] == MobileMessaging::MOBILE_TYPE) {
                $anyMobileReport = true;
                break;
            }
        }
        // if there is at least one sms report, display 'Email & SMS reports'
        if ($anyMobileReport) {
            return self::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY;
        }
        return self::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY;
    }

Usage Example

Пример #1
0
 /**
  * top menu should display 'Email reports' if there are no SMS reports and at least one email report
  * whatever the status of the mobile provider account
  *
  * @group Plugins
  */
 public function testGetTopMenuTranslationKeyNoSMSReportAccountOK()
 {
     // set mobile provider account
     self::setSuperUser();
     APIMobileMessaging::getInstance()->setSMSAPICredential('StubbedProvider', '');
     self::addReport(self::getMonthlyEmailReportData($this->idSite));
     $pdfReportPlugin = new Menu();
     $this->assertEquals(Menu::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY, $pdfReportPlugin->getTopMenuTranslationKey());
 }