diff --git a/.github/workflows/build_release.yml b/.github/workflows/build_release.yml index 0c9a999..4896c8f 100644 --- a/.github/workflows/build_release.yml +++ b/.github/workflows/build_release.yml @@ -6,7 +6,7 @@ name: Sportsmanager Release on: push: tags: - - 'v[0-9]+.[0-9]+.[0-9]+' # run only on version tags like v1.0.0 + - 'v[0-9]+.[0-9]+.[0-9]+' # run only on version tags like v1.0.0 jobs: build: runs-on: ubuntu-latest @@ -24,7 +24,19 @@ jobs: - name: Install npm dependencies run: npm ci - + + - name: Get version from git tag + run: echo "VERSION=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV + + - name: Update version.php + run: | + echo " src/structure/components/com_sportsmanager/util/version.php + echo "defined('_JEXEC') or die;" >> src/structure/components/com_sportsmanager/util/version.php + echo "return [" >> src/structure/components/com_sportsmanager/util/version.php + echo " 'version' => '${{ env.VERSION }}'," >> src/structure/components/com_sportsmanager/util/version.php + echo " 'date' => '$(date +%F)'," >> src/structure/components/com_sportsmanager/util/version.php + echo "];" >> src/structure/components/com_sportsmanager/util/version.php + - name: Generate release notes id: release_notes_extension uses: release-drafter/release-drafter@v6 @@ -37,10 +49,10 @@ jobs: - name: Save release notes to file run: | echo "${{ steps.release_notes_extension.outputs.body }}" > RELEASE_NOTES.md - + - name: Run build script run: npm run release - + - name: Generate release notes id: release_notes_github uses: release-drafter/release-drafter@v6 @@ -52,7 +64,7 @@ jobs: - name: Save release notes to file run: | echo "${{ steps.release_notes_github.outputs.body }}" > RELEASE_NOTES.md - + - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: @@ -62,7 +74,7 @@ jobs: body_path: "RELEASE_NOTES.md" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - + - name: Delete draft release via API # workaround: remove leftover draft by release-drafter env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -70,7 +82,7 @@ jobs: run: | drafts=$(curl -s -H "Authorization: token $GITHUB_TOKEN" \ https://api.github.com/repos/$REPO/releases | jq '.[] | select(.draft == true)') - + if [ -n "$drafts" ]; then id=$(echo "$drafts" | jq -r '.id') curl -s -X DELETE -H "Authorization: token $GITHUB_TOKEN" \ diff --git a/src/structure/components/com_sportsmanager/sportsmanager.php b/src/structure/components/com_sportsmanager/sportsmanager.php index 78f7976..2415dcf 100644 --- a/src/structure/components/com_sportsmanager/sportsmanager.php +++ b/src/structure/components/com_sportsmanager/sportsmanager.php @@ -15,7 +15,6 @@ use Joomla\CMS\Uri\Uri; use Joomla\CMS\Version; defined('_JEXEC') or die('Restricted access'); -const SPORTS_MANAGER_VERSION = "2.0.3"; function laufzeitInit(): void { @@ -56,6 +55,7 @@ else if (isset($_REQUEST['filter_saison_id'])) global $content; global $task; global $params; + $app = Factory::getContainer()->get(SiteApplication::class); $jInput = $app->input; $task = $jInput->getCmd('task'); diff --git a/src/structure/components/com_sportsmanager/util/version.php b/src/structure/components/com_sportsmanager/util/version.php new file mode 100644 index 0000000..f7c44af --- /dev/null +++ b/src/structure/components/com_sportsmanager/util/version.php @@ -0,0 +1,6 @@ + 'DEV', + 'date' => '2025-08-05', +]; diff --git a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php index eacb8df..5e4243b 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -12,7 +12,8 @@ defined('_JEXEC') or die('Restricted access'); require_once JPATH_SITE . '/components/com_sportsmanager/views/sportsmanager/view_tools.php'; require_once JPATH_SITE . '/components/com_sportsmanager/util/image.php'; -function formatTimediff( $timestamp1, $timestamp2, $verbose ) { +function formatTimediff( $timestamp1, $timestamp2, $verbose ): string +{ if (empty($timestamp1) || empty($timestamp2)) { return ""; } else { @@ -27,7 +28,8 @@ function formatTimediff( $timestamp1, $timestamp2, $verbose ) { } } -function formatTeamName( $team_name, $team_id, $highlight_team_id ) { +function formatTeamName( $team_name, $team_id, $highlight_team_id ): string +{ if ($team_id == $highlight_team_id) { return "" . htmlentities_utf8($team_name) . ""; } else { @@ -37,10 +39,25 @@ function formatTeamName( $team_name, $team_id, $highlight_team_id ) { class HTML_sportsmanager_admin { + private static $versionData = null; + + private static function loadVersionData(): void + { + if (self::$versionData === null) { + self::$versionData = include JPATH_SITE . '/components/com_sportsmanager/util/version.php'; + } + } + + public static function getVersion(): string + { + self::loadVersionData(); + return self::$versionData['version'] ?? 'DEV'; + } + static function adminUebersicht($veranstaltungen, $spielerstatistiken, $turniere, $ranglisten, $individualwettbewerbe, $statistik, $saisons, $filter_saison_id, $externe_datenbank): void { - function checkZeilenumbruch($Spalte_Nr, $max_Spalten) - { + function checkZeilenumbruch($Spalte_Nr, $max_Spalten): int + { $Spalte_Nr++; if ($Spalte_Nr >= $max_Spalten){ echo "\n