From 14f3efc8d24ec353f47e2e34570f60d40711fce0 Mon Sep 17 00:00:00 2001 From: Lina Wolf <48202465+linawolf@users.noreply.github.com> Date: Sat, 21 Sep 2024 11:47:21 +0200 Subject: [PATCH] [BUGFIX] Fix Link to system extension docs in report button (#755) --- .../src/Twig/TwigExtension.php | 23 +++++++++++++++---- ...87616-RemovedHookForAlteringPageLinks.html | 2 +- .../expected/Changelog/12.0/Index.html | 2 +- .../tests-full/changelog/expected/Index.html | 2 +- .../changelog/expected/Sitemap.html | 2 +- .../report-issue-forge/expected/index.html | 2 +- 6 files changed, 24 insertions(+), 9 deletions(-) diff --git a/packages/typo3-docs-theme/src/Twig/TwigExtension.php b/packages/typo3-docs-theme/src/Twig/TwigExtension.php index 29bfd47fb..3345cb69d 100644 --- a/packages/typo3-docs-theme/src/Twig/TwigExtension.php +++ b/packages/typo3-docs-theme/src/Twig/TwigExtension.php @@ -398,9 +398,20 @@ public function enrichForgeLink(string $reportButton, RenderContext $renderConte } if (str_ends_with($reportButton, '/new')) { $reportButton .= '?issue[category_id]=1004&issue[subject]='; - $description = $this->getIssueTitle($renderContext); - $reportButton .= urlencode($description); $version = $this->typo3VersionService->getPreferredVersion(); + $extension = $this->themeSettings->getSettings('interlink_shortcode'); + if ($extension === 'changelog') { + $extension = 'typo3/cms-core'; + } + $description = $this->getIssueTitle( + $renderContext, + sprintf( + 'https://docs.typo3.org/c/%s/%s/en-us', + $extension, + $version, + ) + ); + $reportButton .= urlencode($description); switch ($version) { case 'main': $reportButton .= '&issue[custom_field_values][4]=' . Typo3VersionMapping::getMajorVersionOfMain()->value; @@ -423,9 +434,13 @@ public function enrichForgeLink(string $reportButton, RenderContext $renderConte * @param RenderContext $renderContext * @return string */ - public function getIssueTitle(RenderContext $renderContext): string + public function getIssueTitle(RenderContext $renderContext, ?string $docsPath = null): string { - return 'Problem on ' . $this->themeSettings->getSettings('project_home') . '/' . $renderContext->getCurrentFileName() . '.html'; + return sprintf( + 'Problem on %s/%s.html', + $docsPath ?? $this->themeSettings->getSettings('project_home'), + $renderContext->getCurrentFileName() + ); } /** diff --git a/tests/Integration/tests-full/changelog/expected/Changelog/12.0/Breaking-87616-RemovedHookForAlteringPageLinks.html b/tests/Integration/tests-full/changelog/expected/Changelog/12.0/Breaking-87616-RemovedHookForAlteringPageLinks.html index b936a422c..068558b16 100644 --- a/tests/Integration/tests-full/changelog/expected/Changelog/12.0/Breaking-87616-RemovedHookForAlteringPageLinks.html +++ b/tests/Integration/tests-full/changelog/expected/Changelog/12.0/Breaking-87616-RemovedHookForAlteringPageLinks.html @@ -134,7 +134,7 @@ -