render() public method

See {@link setContentType()}.
public render ( ) : string
return string Generated template.
Example #1
0
 public function index()
 {
     $view = new View('@VisitTime/index');
     $view->dataTableVisitInformationPerLocalTime = $this->renderReport(new GetVisitInformationPerLocalTime());
     $view->dataTableVisitInformationPerServerTime = $this->renderReport(new GetVisitInformationPerServerTime());
     return $view->render();
 }
Example #2
0
 /**
  * @see ViewDataTable::main()
  * @return mixed
  */
 public function render()
 {
     $view = new View('@CoreVisualizations/_dataTableViz_sparklines.twig');
     $columnsList = array();
     if ($this->config->hasSparklineMetrics()) {
         foreach ($this->config->getSparklineMetrics() as $cols) {
             $columns = $cols['columns'];
             if (!is_array($columns)) {
                 $columns = array($columns);
             }
             $columnsList = array_merge($columns, $columnsList);
         }
     }
     $view->allMetricsDocumentation = Metrics::getDefaultMetricsDocumentation();
     $this->requestConfig->request_parameters_to_modify['columns'] = $columnsList;
     $this->requestConfig->request_parameters_to_modify['format_metrics'] = '1';
     if (!empty($this->requestConfig->apiMethodToRequestDataTable)) {
         $this->fetchConfiguredSparklines();
     }
     $view->sparklines = $this->config->getSortedSparklines();
     $view->isWidget = Common::getRequestVar('widget', 0, 'int');
     $view->titleAttributes = $this->config->title_attributes;
     $view->footerMessage = $this->config->show_footer_message;
     $view->areSparklinesLinkable = $this->config->areSparklinesLinkable();
     $view->title = '';
     if ($this->config->show_title) {
         $view->title = $this->config->title;
     }
     return $view->render();
 }
Example #3
0
 /**
  * Renders and echo's HTML that displays the Piwik promo video.
  */
 public function getPromoVideo()
 {
     $view = new View('@CoreHome/getPromoVideo');
     $view->shareText = $this->translator->translate('CoreHome_SharePiwikShort');
     $view->shareTextLong = $this->translator->translate('CoreHome_SharePiwikLong');
     $view->promoVideoUrl = 'https://www.youtube.com/watch?v=OslfF_EH81g';
     return $view->render();
 }
 public function displayDbConnectionMessage($exception = null)
 {
     $view = new PiwikView("@Installation/cannotConnectToDb");
     $view->exceptionMessage = $exception->getMessage();
     $ex = new DatabaseConnectionFailedException($view->render());
     $ex->setIsHtmlMessage();
     throw $ex;
 }
Example #5
0
 public function testJsInclude2()
 {
     $view = new View('@Widgetize/testJsInclude2');
     $view->url1 = '?module=Widgetize&action=js&moduleToWidgetize=UserSettings&actionToWidgetize=getBrowser&idSite=1&period=day&date=yesterday';
     $view->url2 = '?module=Widgetize&action=js&moduleToWidgetize=UserCountry&actionToWidgetize=getCountry&idSite=1&period=day&date=yesterday&viewDataTable=cloud&show_footer=0';
     $view->url3 = '?module=Widgetize&action=js&moduleToWidgetize=Referrers&actionToWidgetize=getKeywords&idSite=1&period=day&date=yesterday&viewDataTable=table&show_footer=0';
     return $view->render();
 }
 /**
  * Renders and returns the language selector HTML.
  *
  * @return string
  */
 public function getLanguagesSelector()
 {
     $view = new View("@LanguagesManager/getLanguagesSelector");
     $view->languages = API::getInstance()->getAvailableLanguageNames();
     $view->currentLanguageCode = self::getLanguageCodeForCurrentUser();
     $view->currentLanguageName = self::getLanguageNameForCurrentUser();
     return $view->render();
 }
Example #7
0
 public function promoPiwikPro()
 {
     $view = new View('@PiwikPro/promoPiwikProWidget');
     $promo = $this->promo->getContent();
     $view->ctaLinkUrl = $this->advertising->getPromoUrlForOnPremises('PromoWidget', $promo['campaignContent']);
     $view->ctaText = $promo['text'];
     $view->ctaLinkTitle = $this->promo->getLinkTitle();
     return $view->render();
 }
Example #8
0
 public function index()
 {
     $view = new View('@VisitorInterest/index');
     $view->dataTableNumberOfVisitsPerVisitDuration = $this->getNumberOfVisitsPerVisitDuration(true);
     $view->dataTableNumberOfVisitsPerPage = $this->getNumberOfVisitsPerPage(true);
     $view->dataTableNumberOfVisitsByVisitNum = $this->getNumberOfVisitsByVisitCount(true);
     $view->dataTableNumberOfVisitsByDaysSinceLast = $this->getNumberOfVisitsByDaysSinceLast(true);
     return $view->render();
 }
Example #9
0
 public function promoServices()
 {
     $view = new View('@ProfessionalServices/promoServicesWidget');
     $promo = $this->promo->getContent();
     $view->ctaLinkUrl = $this->advertising->getPromoUrlForPiwikProUpgrade();
     $view->ctaText = $promo['text'];
     $view->ctaLinkTitle = $this->promo->getLinkTitle();
     return $view->render();
 }
Example #10
0
 /**
  * Echo's an HTML chunk describing the current database size, and the estimated space
  * savings after the scheduled data purge is run.
  */
 public function getDatabaseSize()
 {
     Piwik::checkUserHasSuperUserAccess();
     $view = new View('@PrivacyManager/getDatabaseSize');
     $forceEstimate = Common::getRequestVar('forceEstimate', 0);
     $view->dbStats = $this->getDeleteDBSizeEstimate($getSettingsFromQuery = true, $forceEstimate);
     $view->language = LanguagesManager::getLanguageCodeForCurrentUser();
     return $view->render();
 }
Example #11
0
 public function render()
 {
     $view = new View('@ProfessionalServices/promoServicesWidget');
     $promo = $this->promo->getContent();
     $view->ctaLinkUrl = $promo['url'];
     $view->ctaText = $promo['text'];
     $view->ctaLinkTitle = $this->promo->getLinkTitle();
     return $view->render();
 }
Example #12
0
 public function indexSiteSearch()
 {
     $view = new View('@Actions/indexSiteSearch');
     $view->keywords = $this->getSiteSearchKeywords(true);
     $view->noResultKeywords = $this->getSiteSearchNoResultKeywords(true);
     $view->pagesUrlsFollowingSiteSearch = $this->getPageUrlsFollowingSiteSearch(true);
     $categoryTrackingEnabled = \Piwik\Plugin\Manager::getInstance()->isPluginActivated('CustomVariables');
     if ($categoryTrackingEnabled) {
         $view->categories = $this->getSiteSearchCategories(true);
     }
     return $view->render();
 }
Example #13
0
 public function goalConversionsOverview()
 {
     $view = new View('@Goals/conversionOverview');
     $idGoal = Common::getRequestVar('idGoal', null, 'string');
     $view->topDimensions = $this->getTopDimensions($idGoal);
     $goalMetrics = Request::processRequest('Goals.get', array('idGoal' => $idGoal));
     // conversion rate for new and returning visitors
     $view->conversion_rate_returning = $this->formatConversionRate($goalMetrics, 'conversion_rate_returning_visit');
     $view->conversion_rate_new = $this->formatConversionRate($goalMetrics, 'conversion_rate_new_visit');
     $view->idGoal = $idGoal;
     return $view->render();
 }
Example #14
0
 public function index()
 {
     $view = new View('@UserSettings/index');
     $view->dataTablePlugin = $this->getPlugin(true);
     $view->dataTableResolution = $this->getResolution(true);
     $view->dataTableConfiguration = $this->getConfiguration(true);
     $view->dataTableOS = $this->getOS(true);
     $view->dataTableBrowser = $this->getBrowser(true);
     $view->dataTableBrowserType = $this->getBrowserType(true);
     $view->dataTableMobileVsDesktop = $this->getMobileVsDesktop(true);
     $view->dataTableBrowserLanguage = $this->getLanguage(true);
     return $view->render();
 }
Example #15
0
 /**
  * Assigns the given variables to the template and renders it.
  *
  * Example:
  *
  *     public function myControllerAction () {
  *        return $this->renderTemplate('index', array(
  *            'answerToLife' => '42'
  *        ));
  *     }
  *
  * This will render the 'index.twig' file within the plugin templates folder and assign the view variable
  * `answerToLife` to `42`.
  *
  * @param string $template   The name of the template file. If only a name is given it will automatically use
  *                           the template within the plugin folder. For instance 'myTemplate' will result in
  *                           '@$pluginName/myTemplate.twig'. Alternatively you can include the full path:
  *                           '@anyOtherFolder/otherTemplate'. The trailing '.twig' is not needed.
  * @param array $variables   For instance array('myViewVar' => 'myValue'). In template you can use {{ myViewVar }}
  * @return string
  * @api
  */
 protected function renderTemplate($template, array $variables = array())
 {
     if (false === strpos($template, '@') || false === strpos($template, '/')) {
         $aPluginName = explode('\\', get_class($this));
         $aPluginName = $aPluginName[2];
         $template = '@' . $aPluginName . '/' . $template;
     }
     $view = new View($template);
     foreach ($variables as $key => $value) {
         $view->{$key} = $value;
     }
     return $view->render();
 }
 public function render()
 {
     $lastMinutes = Config::getInstance()->General[Controller::SIMPLE_VISIT_COUNT_WIDGET_LAST_MINUTES_CONFIG_KEY];
     $lastNData = Request::processRequest('Live.getCounters', array('lastMinutes' => $lastMinutes));
     $view = new View('@Live/getSimpleLastVisitCount');
     $view->lastMinutes = $lastMinutes;
     $view->visitors = MetricsFormatter::getPrettyNumber($lastNData[0]['visitors']);
     $view->visits = MetricsFormatter::getPrettyNumber($lastNData[0]['visits']);
     $view->actions = MetricsFormatter::getPrettyNumber($lastNData[0]['actions']);
     $view->refreshAfterXSecs = Config::getInstance()->General['live_widget_refresh_after_seconds'];
     $view->translations = array('one_visitor' => Piwik::translate('Live_NbVisitor'), 'visitors' => Piwik::translate('Live_NbVisitors'), 'one_visit' => Piwik::translate('General_OneVisit'), 'visits' => Piwik::translate('General_NVisits'), 'one_action' => Piwik::translate('General_OneAction'), 'actions' => Piwik::translate('VisitsSummary_NbActionsDescription'), 'one_minute' => Piwik::translate('General_OneMinute'), 'minutes' => Piwik::translate('General_NMinutes'));
     return $view->render();
 }
Example #17
0
 public function displayDbConnectionMessage($exception = null)
 {
     Common::sendResponseCode(500);
     $errorMessage = $exception->getMessage();
     if (Request::isApiRequest($_GET)) {
         $ex = new DatabaseConnectionFailedException($errorMessage);
         throw $ex;
     }
     $view = new PiwikView("@Installation/cannotConnectToDb");
     $view->exceptionMessage = $errorMessage;
     $ex = new DatabaseConnectionFailedException($view->render());
     $ex->setIsHtmlMessage();
     throw $ex;
 }
Example #18
0
 public function indexSiteSearch()
 {
     $view = new View('@Actions/indexSiteSearch');
     $keyword = Report::factory($this->pluginName, 'getSiteSearchKeywords');
     $noResult = Report::factory($this->pluginName, 'getSiteSearchNoResultKeywords');
     $pageUrls = Report::factory($this->pluginName, 'getPageUrlsFollowingSiteSearch');
     $view->keywords = $keyword->render();
     $view->noResultKeywords = $noResult->render();
     $view->pagesUrlsFollowingSiteSearch = $pageUrls->render();
     $categoryTrackingEnabled = Actions::isCustomVariablesPluginsEnabled();
     if ($categoryTrackingEnabled) {
         $categories = Report::factory($this->pluginName, 'getSiteSearchCategories');
         $view->categories = $categories->render();
     }
     return $view->render();
 }
Example #19
0
 public function getConversionsOverview()
 {
     $view = new View('@Ecommerce/conversionOverview');
     $idGoal = Common::getRequestVar('idGoal', null, 'string');
     $goalMetrics = Request::processRequest('Goals.get', array('idGoal' => $idGoal));
     $dataRow = $goalMetrics->getFirstRow();
     $view->idSite = Common::getRequestVar('idSite', null, 'int');
     $view->idGoal = $idGoal;
     if ($dataRow) {
         $view->revenue = $dataRow->getColumn('revenue');
         $view->revenue_subtotal = $dataRow->getColumn('revenue_subtotal');
         $view->revenue_tax = $dataRow->getColumn('revenue_tax');
         $view->revenue_shipping = $dataRow->getColumn('revenue_shipping');
         $view->revenue_discount = $dataRow->getColumn('revenue_discount');
     }
     return $view->render();
 }
Example #20
0
 /**
  * @internal For Debugging only
  * Call metadata reports and draw the default graph for each report.
  */
 public function index()
 {
     Piwik::checkUserHasSomeAdminAccess();
     $idSite = Common::getRequestVar('idSite', 1, 'int');
     $period = Common::getRequestVar('period', 'day', 'string');
     $date = Common::getRequestVar('date', 'today', 'string');
     $_GET['token_auth'] = Piwik::getCurrentUserTokenAuth();
     $reports = APIPlugins::getInstance()->getReportMetadata($idSite, $period, $date);
     $plot = array();
     foreach ($reports as $report) {
         if (!empty($report['imageGraphUrl'])) {
             $plot[] = array($report['category'] . ' › ' . $report['name'], SettingsPiwik::getPiwikUrl() . $report['imageGraphUrl']);
         }
     }
     $view = new View('@ImageGraph/index');
     $view->titleAndUrls = $plot;
     return $view->render();
 }
Example #21
0
 public function getMeasurableTypeSettings()
 {
     $idSite = Common::getRequestVar('idSite', 0, 'int');
     $idType = Common::getRequestVar('idType', '', 'string');
     if ($idSite >= 1) {
         Piwik::checkUserHasAdminAccess($idSite);
     } else {
         if ($idSite === 0) {
             Piwik::checkUserHasSomeAdminAccess();
         } else {
             throw new Exception('Invalid idSite parameter. IdSite has to be zero or higher');
         }
     }
     $view = new View('@SitesManager/measurable_type_settings');
     $propSettings = new MeasurableSettings($idSite, $idType);
     $view->settings = $propSettings->getSettingsForCurrentUser();
     return $view->render();
 }
Example #22
0
 function getRank()
 {
     $idSite = Common::getRequestVar('idSite');
     $site = new Site($idSite);
     $url = urldecode(Common::getRequestVar('url', '', 'string'));
     if (!empty($url) && strpos($url, 'http://') !== 0 && strpos($url, 'https://') !== 0) {
         $url = 'http://' . $url;
     }
     if (empty($url) || !UrlHelper::isLookLikeUrl($url)) {
         $url = $site->getMainUrl();
     }
     $dataTable = API::getInstance()->getRank($url);
     $view = new View('@SEO/getRank');
     $view->urlToRank = RankChecker::extractDomainFromUrl($url);
     /** @var \Piwik\DataTable\Renderer\Php $renderer */
     $renderer = Renderer::factory('php');
     $renderer->setSerialize(false);
     $view->ranks = $renderer->render($dataTable);
     return $view->render();
 }
Example #23
0
 /**
  * Generate the reports for the dashboard
  * @return View
  */
 public function index()
 {
     $view = new View('@CampaignDetailed/index');
     $view->graphEvolutionCampaigns = $this->getCampaignEvolutionGraph();
     $view->graphPieCampaigns = $this->getCampaignPieReport();
     $view->graphKeywords = $this->getKeywordPieReport();
     $view->graphMediums = $this->getMediumBarReport();
     $view->graphContents = $this->getContentBarReport();
     $view->graphSources = $this->getSourcePieReport();
     $distinctMetrics = $this->getDistinctUtmMetrics();
     foreach ($distinctMetrics as $name => $value) {
         $view->{$name} = $value;
     }
     $view->sparklineCampaign = $this->getUrlSparkline('getNumberOfDistinctCampaignSparkline');
     $view->sparklineKeyword = $this->getUrlSparkline('getNumberOfDistinctKeywordSparkline');
     $view->sparklineMedium = $this->getUrlSparkline('getNumberOfDistinctMediumSparkline');
     $view->sparklineContent = $this->getUrlSparkline('getNumberOfDistinctContentSparkline');
     $view->sparklineSource = $this->getUrlSparkline('getNumberOfDistinctSourceSparkline');
     return $view->render();
 }
Example #24
0
 public function render()
 {
     // prepare the all steps templates
     $this->currentStepId = array_search($this->currentStepName, $this->steps);
     $this->totalNumberOfSteps = count($this->steps);
     $this->percentDone = round($this->currentStepId * 100 / ($this->totalNumberOfSteps - 1));
     $this->percentToDo = 100 - $this->percentDone;
     $this->nextModuleName = '';
     if (isset($this->steps[$this->currentStepId + 1])) {
         $this->nextModuleName = $this->steps[$this->currentStepId + 1];
     }
     $this->previousModuleName = '';
     if (isset($this->steps[$this->currentStepId - 1])) {
         $this->previousModuleName = $this->steps[$this->currentStepId - 1];
     }
     $this->previousPreviousModuleName = '';
     if (isset($this->steps[$this->currentStepId - 2])) {
         $this->previousPreviousModuleName = $this->steps[$this->currentStepId - 2];
     }
     return parent::render();
 }
Example #25
0
 /**
  * Reset password action. Stores new password as hash and sends email
  * to confirm use.
  *
  * @param none
  */
 function resetPassword()
 {
     $infoMessage = null;
     $formErrors = null;
     $form = new FormResetPassword();
     if ($form->validate()) {
         $nonce = $form->getSubmitValue('form_nonce');
         if (Nonce::verifyNonce('Login.login', $nonce)) {
             $formErrors = $this->resetPasswordFirstStep($form);
             if (empty($formErrors)) {
                 $infoMessage = Piwik::translate('Login_ConfirmationLinkSent');
             }
         } else {
             $formErrors = array($this->getMessageExceptionNoAccess());
         }
     } else {
         // if invalid, display error
         $formData = $form->getFormData();
         $formErrors = $formData['errors'];
     }
     $view = new View('@Login/resetPassword');
     $view->infoMessage = $infoMessage;
     $view->formErrors = $formErrors;
     return $view->render();
 }
Example #26
0
 public function indexWebsites()
 {
     $view = new View('@Referrers/indexWebsites');
     $view->websites = $this->renderReport(new GetWebsites());
     $view->socials = $this->renderReport(new GetSocials());
     return $view->render();
 }
Example #27
0
 /**
  * Shows the "Track Visits" checkbox.
  */
 public function optOut()
 {
     $trackVisits = !IgnoreCookie::isIgnoreCookieFound();
     $nonce = Common::getRequestVar('nonce', false);
     $language = Common::getRequestVar('language', '');
     if ($nonce !== false && Nonce::verifyNonce('Piwik_OptOut', $nonce)) {
         Nonce::discardNonce('Piwik_OptOut');
         IgnoreCookie::setIgnoreCookie();
         $trackVisits = !$trackVisits;
     }
     $view = new View('@CoreAdminHome/optOut');
     $view->trackVisits = $trackVisits;
     $view->nonce = Nonce::getNonce('Piwik_OptOut', 3600);
     $view->language = APILanguagesManager::getInstance()->isLanguageAvailable($language) ? $language : LanguagesManager::getLanguageCodeForCurrentUser();
     return $view->render();
 }
Example #28
0
 public function safemode($lastError = array())
 {
     $this->tryToRepairPiwik();
     if (empty($lastError)) {
         $lastError = array('message' => Common::getRequestVar('error_message', null, 'string'), 'file' => Common::getRequestVar('error_file', null, 'string'), 'line' => Common::getRequestVar('error_line', null, 'integer'));
     }
     $outputFormat = Common::getRequestVar('format', 'html', 'string');
     $outputFormat = strtolower($outputFormat);
     if (!empty($outputFormat) && 'html' !== $outputFormat) {
         $errorMessage = $lastError['message'];
         if (Piwik::isUserIsAnonymous()) {
             $errorMessage = 'A fatal error occurred.';
         }
         $response = new \Piwik\API\ResponseBuilder($outputFormat);
         $message = $response->getResponseException(new Exception($errorMessage));
         return $message;
     }
     if (Common::isPhpCliMode()) {
         // TODO: I can't find how this will ever get called / safeMode is never set for Console
         throw new Exception("Error: " . var_export($lastError, true));
     }
     $view = new View('@CorePluginsAdmin/safemode');
     $view->lastError = $lastError;
     $view->isSuperUser = Piwik::hasUserSuperUserAccess();
     $view->isAnonymousUser = Piwik::isUserIsAnonymous();
     $view->plugins = Plugin\Manager::getInstance()->loadAllPluginsAndGetTheirInfo();
     $view->deactivateNonce = Nonce::getNonce(static::DEACTIVATE_NONCE);
     $view->uninstallNonce = Nonce::getNonce(static::UNINSTALL_NONCE);
     $view->emailSuperUser = implode(',', Piwik::getAllSuperUserAccessEmailAddresses());
     $view->piwikVersion = Version::VERSION;
     $view->showVersion = !Common::getRequestVar('tests_hide_piwik_version', 0);
     $view->pluginCausesIssue = '';
     if (!empty($lastError['file'])) {
         preg_match('/piwik\\/plugins\\/(.*)\\//', $lastError['file'], $matches);
         if (!empty($matches[1])) {
             $view->pluginCausesIssue = $matches[1];
         }
     }
     return $view->render();
 }
Example #29
0
 public static function template_reportParametersScheduledReports(&$out)
 {
     $view = new View('@ScheduledReports/reportParametersScheduledReports');
     $view->currentUserEmail = Piwik::getCurrentUserEmail();
     $view->reportType = self::EMAIL_TYPE;
     $view->defaultDisplayFormat = self::DEFAULT_DISPLAY_FORMAT;
     $view->defaultEmailMe = self::EMAIL_ME_PARAMETER_DEFAULT_VALUE ? 'true' : 'false';
     $view->defaultEvolutionGraph = self::EVOLUTION_GRAPH_PARAMETER_DEFAULT_VALUE ? 'true' : 'false';
     $out .= $view->render();
 }
Example #30
-1
 /**
  * send email to Piwik team and display nice thanks
  * @throws Exception
  */
 function sendFeedback()
 {
     $email = Common::getRequestVar('email', '', 'string');
     $body = Common::getRequestVar('body', '', 'string');
     $category = Common::getRequestVar('category', '', 'string');
     $nonce = Common::getRequestVar('nonce', '', 'string');
     $view = new View('@Feedback/sendFeedback');
     $view->feedbackEmailAddress = Config::getInstance()->General['feedback_email_address'];
     try {
         $minimumBodyLength = 40;
         if (strlen($body) < $minimumBodyLength || strpos($email, 'probe@') !== false || strpos($body, '&lt;probe') !== false) {
             throw new Exception(Piwik::translate('Feedback_ExceptionBodyLength', array($minimumBodyLength)));
         }
         if (!Piwik::isValidEmailString($email)) {
             throw new Exception(Piwik::translate('UsersManager_ExceptionInvalidEmail'));
         }
         if (preg_match('/https?:/i', $body)) {
             throw new Exception(Piwik::translate('Feedback_ExceptionNoUrls'));
         }
         if (!Nonce::verifyNonce('Feedback.sendFeedback', $nonce)) {
             throw new Exception(Piwik::translate('General_ExceptionNonceMismatch'));
         }
         Nonce::discardNonce('Feedback.sendFeedback');
         $mail = new Mail();
         $mail->setFrom(Common::unsanitizeInputValue($email));
         $mail->addTo($view->feedbackEmailAddress, 'Piwik Team');
         $mail->setSubject('[ Feedback form - Piwik ] ' . $category);
         $mail->setBodyText(Common::unsanitizeInputValue($body) . "\n" . 'Piwik ' . Version::VERSION . "\n" . 'IP: ' . IP::getIpFromHeader() . "\n" . 'URL: ' . Url::getReferrer() . "\n");
         @$mail->send();
     } catch (Exception $e) {
         $view->errorString = $e->getMessage();
         $view->message = $body;
     }
     return $view->render();
 }