resolvePublicAlias($request); if ('' === $publicAlias) { $template->set('errorMessage', 'Es wurde kein Umfrage-Link auf der Ergebnisseite gefunden.'); $template->set('survey', null); $template->set('questionResults', []); $template->set('completedSubmissionCount', 0); return $template->getResponse(); } $survey = $this->surveyRepository->findByPublicAlias($publicAlias, false); if (null === $survey) { $template->set('errorMessage', 'Die Umfrage wurde nicht gefunden.'); $template->set('survey', null); $template->set('questionResults', []); $template->set('completedSubmissionCount', 0); return $template->getResponse(); } if ($htmlHeadBag = $this->getHtmlHeadBag()) { $htmlHeadBag->setTitle((string) $survey->title.' - Ergebnisse'); } $resultsData = $this->surveyResultsViewService->buildForSurvey($survey); $template->set('errorMessage', null); $template->set('survey', $survey); $template->set('completedSubmissionCount', $resultsData['completedSubmissionCount']); $template->set('downloadUrl', $this->buildDownloadUrl((string) $survey->alias)); $template->set('pdfDownloadUrl', $this->hasGotenbergConfiguration() ? $this->buildPdfDownloadUrl((string) $survey->alias) : null); $template->set('questionResults', $resultsData['questionResults']); return $template->getResponse(); } private function buildDownloadUrl(string $alias): string { return $this->urlGenerator->generate('mummert_survey_results_export', ['alias' => $alias]); } private function buildPdfDownloadUrl(string $alias): string { return $this->urlGenerator->generate('mummert_survey_results_pdf_export', ['alias' => $alias]); } private function hasGotenbergConfiguration(): bool { return '' !== trim((string) Config::get('surveyGotenbergUrl')); } private function resolvePublicAlias(Request $request): string { $candidate = $request->attributes->get('auto_item'); if (\is_string($candidate) && '' !== trim($candidate)) { return trim($candidate); } return trim((string) $request->query->get('auto_item', '')); } }