Compare commits

..

78 Commits

Author SHA1 Message Date
MarvinF 40633f864a Merge pull request #106 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod pr
2025-06-25 17:23:09 +02:00
MarvinF 8e6aa127c6 Merge pull request #105 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage pr
2025-06-25 17:21:52 +02:00
MarvinF 9289843cb1 Update README.md 2025-06-25 17:19:33 +02:00
MarvinF 7a70500175 Merge pull request #76 from Deutscher-Tischfussballbund/php-debugging
feat: add debugging for php in docker
2025-06-25 17:14:02 +02:00
MarvinF 31b8e5251e Update release-drafter_extension.yml 2025-06-25 01:22:57 +02:00
MarvinF 455f845ab0 Update build_release.yml 2025-06-25 01:21:52 +02:00
MarvinF f55d89827a Merge pull request #103 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod pr
2025-06-25 01:00:10 +02:00
MarvinF 874e06e061 Merge pull request #102 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage pr
2025-06-25 00:59:11 +02:00
MarvinF 83b8e1c25f Create release-drafter_github.yml 2025-06-25 00:52:06 +02:00
MarvinF 3c9fac7e1a Rename release-drafter.yml to release-drafter_extension.yml 2025-06-25 00:50:45 +02:00
MarvinF 4ec02e5f02 Update build_release.yml 2025-06-25 00:49:57 +02:00
MarvinF 4d1573729d Merge pull request #101 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod PR
2025-06-25 00:36:39 +02:00
MarvinF 6da371569a Merge pull request #100 from Deutscher-Tischfussballbund/sportsmanager2-dev
Dev to Stage PR
2025-06-25 00:35:48 +02:00
MarvinF fdede4a4a7 Delete .github/release-drafter_github.yml 2025-06-25 00:31:36 +02:00
MarvinF 7ced30cf5b Rename release-drafter_extension.yml to release-drafter.yml 2025-06-25 00:31:08 +02:00
MarvinF 934b5b4971 Update build_release.yml 2025-06-25 00:30:35 +02:00
MarvinF 085e5a8aeb Merge pull request #99 from Deutscher-Tischfussballbund/sportsmanager2-stage
Stage to Prod PR
2025-06-24 23:29:31 +02:00
MarvinF 53ada7c6b0 Merge pull request #98 from Deutscher-Tischfussballbund/sportsmanager2-dev
Dev to Stage PR
2025-06-24 23:28:19 +02:00
MarvinF 29dbfaeea4 Update build_release.yml 2025-06-24 23:25:58 +02:00
MarvinF 95e02435fd Merge pull request #97 from Deutscher-Tischfussballbund/sportsmanager2-stage
Stage to Prod PR
2025-06-24 23:06:32 +02:00
MarvinF 32eacde07d Merge pull request #96 from Deutscher-Tischfussballbund/sportsmanager2-dev
Dev to Stage PR
2025-06-24 23:05:43 +02:00
MarvinF 2b19aee00f Update release-drafter_extension.yml 2025-06-24 23:04:06 +02:00
MarvinF 8b6ad5103c Update release-drafter_github.yml 2025-06-24 23:03:51 +02:00
MarvinF 743f2b4013 Update release-drafter_github.yml 2025-06-24 22:53:45 +02:00
MarvinF 2d2a124239 Update release-drafter_extension.yml 2025-06-24 22:53:23 +02:00
MarvinF d1e0dec74a Update autolabel.yaml 2025-06-24 22:52:56 +02:00
MarvinF c4c3ea88fc Merge pull request #95 from Deutscher-Tischfussballbund/sportsmanager2-stage
Stage to Prod PR
2025-06-24 22:42:28 +02:00
MarvinF 761e04b6f2 Merge pull request #94 from Deutscher-Tischfussballbund/sportsmanager2-dev
Dev to Stage PR
2025-06-24 22:41:27 +02:00
MarvinF 089796d201 Create autolabel.yaml 2025-06-24 22:37:05 +02:00
MarvinF e2b6f48498 Update release-drafter_github.yml 2025-06-24 22:33:49 +02:00
MarvinF 3422813152 Update release-drafter_github.yml 2025-06-24 22:32:31 +02:00
MarvinF 67b46f121a Update release-drafter_extension.yml 2025-06-24 22:31:47 +02:00
MarvinF 6c3c9badfd Create release-drafter_github.yml 2025-06-24 22:06:27 +02:00
MarvinF e05d107af3 Rename release-drafter.yml to release-drafter_extension.yml 2025-06-24 22:05:51 +02:00
MarvinF 2f94c29c7e Update build_release.yml 2025-06-24 22:05:24 +02:00
MarvinF b656cb5df3 Merge pull request #93 from Deutscher-Tischfussballbund/sportsmanager2-stage
Stage to prod PR
2025-06-24 21:49:28 +02:00
MarvinF af97c59960 Merge pull request #92 from Deutscher-Tischfussballbund/sportsmanager2-dev
Dev to Stage PR
2025-06-24 21:48:48 +02:00
MarvinF ebb3580fad Update build_release.yml 2025-06-24 21:47:56 +02:00
MarvinF 4a313d5914 Merge pull request #91 from Deutscher-Tischfussballbund/sportsmanager2-stage
Stage to prod PR
2025-06-24 21:23:42 +02:00
MarvinF 771856b842 Merge pull request #90 from Deutscher-Tischfussballbund/sportsmanager2-dev
Dev to Stage PR
2025-06-24 21:22:59 +02:00
MarvinF 0c4d0820d1 Update build_release.yml 2025-06-24 21:22:00 +02:00
MarvinF 8a0ad8d8e9 Merge pull request #89 from Deutscher-Tischfussballbund/sportsmanager2-stage
Stage 2 Prod PR
2025-06-24 21:06:54 +02:00
MarvinF 03a448f4cc Merge pull request #88 from Deutscher-Tischfussballbund/sportsmanager2-dev
stage PR
2025-06-24 21:05:39 +02:00
MarvinF 9d75619c2c Update release-drafter.yml 2025-06-24 20:28:20 +02:00
MarvinF a1890c51c0 feat: add release notes to extension installation 2025-06-24 20:20:28 +02:00
Marvin Flock 51ee656f66 feat: add release notes to extension installation 2025-06-24 20:16:51 +02:00
MarvinF 6d9df0e769 Create release-drafter.yml 2025-06-24 20:11:53 +02:00
MarvinF a74bcb0ee8 Update build_release.yml 2025-06-24 20:10:53 +02:00
MarvinF 6399eab0af Update build_release.yml 2025-06-24 19:33:06 +02:00
MarvinF 9cde84a1d0 Update build_snapshot.yml 2025-06-24 19:32:50 +02:00
MarvinF 76738ec307 Update build_snapshot.yml 2025-06-24 19:30:36 +02:00
MarvinF 59e1a4571b Create prod release pipeline 2025-06-24 19:29:17 +02:00
Tim 7952c95217 Merge branch 'sportsmanager2-dev' into php-debugging 2025-06-24 18:58:07 +02:00
MarvinF 1e4e34ef71 Merge pull request #65 from Deutscher-Tischfussballbund/tfvb_league_admin_infos
Tfvb league admin infos
2025-06-22 21:27:50 +02:00
DTFB-PaulF d98f7da7b9 Merge pull request #78 from Deutscher-Tischfussballbund/feature-test-paul-jürgen
Test2
2025-06-19 19:24:28 +02:00
Jürgen Meyer 94e768ef51 Test2 2025-06-19 19:19:21 +02:00
Marvin Flock 1d7369e456 Merge branch 'sportsmanager2-stage' into sportsmanager2-dev 2025-06-17 21:36:16 +02:00
Marvin Flock de467c0d4a feat: add debugging for php in docker 2025-06-17 21:29:15 +02:00
Tim 0225e49beb Updated/added envs in README.md
Updated/added environments
2025-06-17 00:08:32 +02:00
Jürgen Meyer e1ecec502b Überarbeitung Startseite: 2025-06-15 16:22:58 +02:00
Jürgen Meyer 000731a289 In Kategorieliste Verbandsorgane hinzugefügt. 2025-06-13 11:40:01 +02:00
Wieland Hagen 385bef0752 Admin League Team View: add tooltip 2025-06-12 17:55:05 +02:00
Jürgen Meyer 902ae55a9a Formular Veranstaltung übersichtlicher gestaltet 2025-06-12 17:04:20 +02:00
Jürgen Meyer feb08ff903 Falsche Versionsnr in script.php. Style von Formular Export Spielberichte optimiert. 2025-06-12 10:50:57 +02:00
Jürgen Meyer a922b11b6d Korrektur der Farben in Formular Gruppenspiele erzeugen (issue #71) 2025-06-11 14:52:22 +02:00
Marvin Flock 254d556899 Merge branch 'dev' into sportsmanager2-dev 2025-06-10 17:41:28 +02:00
MarvinF 6793c53002 Update build_snapshot.yml 2025-06-09 16:58:45 +02:00
MarvinF 984156ca95 Update build_snapshot.yml 2025-06-09 16:48:13 +02:00
MarvinF 8b671fd005 Update build_snapshot.yml 2025-06-09 16:44:51 +02:00
MarvinF 37ad8dd24c Create build_snapshot.yml 2025-06-09 16:44:50 +02:00
MarvinF 6ae7388a44 Update build_snapshot.yml 2025-06-09 16:40:49 +02:00
MarvinF 4f78e31277 Create build_snapshot.yml 2025-06-09 16:40:12 +02:00
Marvin Flock 35f128d949 change: update Readme for deployment trigger 2025-06-04 17:38:46 +02:00
Marvin Flock 825e643959 change: update Readme for deployment trigger 2025-06-02 23:36:49 +02:00
Helmut Poppen eb6b81b3dd Changed DisplayController from UTF8-BOM to UTF8 2025-05-20 10:34:30 +02:00
Wieland Hagen 2dddfa473a Admin League Games View: display "+0d" for 0 day shifts, fix SQL query 2025-05-11 21:26:22 +02:00
Wieland Hagen 82c0f3a58b Admin League Games View: show various additional information
- mark teams which have requested a game shift
- display amount of time that a game has been shifted
- display time that has passed between game and result proposal, and result proposal and result validation
- mark games with incomplete player data
2025-05-04 21:04:36 +02:00
Wieland Hagen a6fe497cad Admin League Team View: show number of shifts that each team is responsible for 2025-05-04 20:59:06 +02:00
20 changed files with 3573 additions and 808 deletions
+25
View File
@@ -0,0 +1,25 @@
name-template: "Release $COMPLETE"
tag-template: "v$COMPLETE"
draft: false
exclude:
pulls: true
exclude-labels:
- changelog-ignore
categories:
- title: "Features"
labels: ["feature", "enhancement"]
- title: "Fixes"
labels: ["bug"]
- title: "Maintenance"
labels: ["chore", "refactor"]
change-template: "- $TITLE [#$NUMBER]"
template: |
# Release $RESOLVED_VERSION
## Changes
$CHANGES
+23
View File
@@ -0,0 +1,23 @@
name-template: "Release $COMPLETE"
tag-template: "v$COMPLETE"
draft: false
exclude:
pulls: true
exclude-labels:
- changelog-ignore
categories:
- title: "Features"
labels: ["feature", "enhancement"]
- title: "Fixes"
labels: ["bug"]
- title: "Maintenance"
labels: ["chore", "refactor"]
change-template: "- $TITLE [#$NUMBER]"
template: |
## Changes
$CHANGES
+25
View File
@@ -0,0 +1,25 @@
name: Auto-label PRs
on:
pull_request:
types: [opened, reopened, synchronize, edited]
jobs:
label-changelog-ignore:
runs-on: ubuntu-latest
steps:
- name: Label PRs
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const base = context.payload.pull_request.base.ref;
const head = context.payload.pull_request.head.ref;
if ((base === 'sportsmanager2-prod' && head === 'sportsmanager2-stage') || (base === 'sportsmanager2-stage' && head === 'sportsmanager2-dev')) {
await github.rest.issues.addLabels({
...context.repo,
issue_number: context.payload.pull_request.number,
labels: ['changelog-ignore']
});
}
+81
View File
@@ -0,0 +1,81 @@
# This workflow will run release using node and then publish a package to GitHub Packages when a release is created
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
name: Sportsmanager Release
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+' # run only on version tags like v1.0.0
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: sportsmanager2-prod
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install npm dependencies
run: npm ci
- name: Generate release notes
id: release_notes_extension
uses: release-drafter/release-drafter@v6
with:
config-name: release-drafter_extension.yml
version: ${{ github.ref_name }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- 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
with:
config-name: release-drafter_github.yml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- 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:
tag_name: "${{ github.ref_name }}"
name: "Release ${{ github.ref_name }}"
files: package/packages/com_sportsmanager.zip
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 }}
REPO: ${{ github.repository }}
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" \
https://api.github.com/repos/$REPO/releases/$id
echo "Deleted draft release with ID: $id"
else
echo "No draft releases found"
fi
+39
View File
@@ -0,0 +1,39 @@
# This workflow will run release using node and then publish a package to GitHub Packages when a release is created
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
name: Snapshot Release
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+-snapshot' # run only on version tags like v1.0.0-snapshot
# - 'v*' # Run only on version tags like v1.0.0
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: sportsmanager2-stage
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install npm dependencies
run: npm ci
- name: Run build script
run: npm run release
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
prerelease: true
name: "Snapshot ${{ github.ref_name }}"
files: package/packages/com_sportsmanager.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+54 -7
View File
@@ -1,16 +1,25 @@
# SportsManager
## Deploy status
## DEV/STAGE environments
### DEV environment
[![buddy pipeline](https://buddy.kicktemp.com/kicktemp/com-sportsmanager/pipelines/pipeline/173/badge.svg?token=de39e4e4c47351d592b59a5d1e26a41cf5196861f67d4499bbab990600468001 "buddy pipeline")](https://buddy.kicktemp.com/kicktemp/com-sportsmanager/pipelines/pipeline/173) [Preview: sportsmanager.s10.kicktemp.dev](https://sportsmanager.s10.kicktemp.dev)
| LV | HOSTER | DOMAIN | BRANCH |
| ------ | -------- | ------------------------------------------------------------ | -------------------- |
| DTFB | Kicktemp | [stage.dtfb.de](https://stage.dtfb.de) | dev |
| TFVHH | Kicktemp | [stage.kickern-hamburg.de](https://stage.kickern-hamburg.de) | dev |
| STFVH | DTFB | [stage.stfv.de](https://stage.stfv.de/) | sportsmanager2-stage |
| MTFV | DTFB | [stage.mtfv.de](https://stage.mtfv.de/) | ? |
| TFVSH | DTFB | [relaunch.tfvsh.de](https://relaunch.tfvsh.de) | ? |
[![buddy pipeline](https://buddy.kicktemp.com/kicktemp/com-sportsmanager/pipelines/pipeline/204/badge.svg?token=de39e4e4c47351d592b59a5d1e26a41cf5196861f67d4499bbab990600468001 "buddy pipeline")](https://buddy.kicktemp.com/kicktemp/com-sportsmanager/pipelines/pipeline/204) [Preview: stage.kickern-hamburg.de](https://stage.kickern-hamburg.de)
### PROD environment
[![buddy pipeline](https://buddy.kicktemp.com/kicktemp/com-sportsmanager/pipelines/pipeline/218/badge.svg?token=de39e4e4c47351d592b59a5d1e26a41cf5196861f67d4499bbab990600468001 "buddy pipeline")](https://buddy.kicktemp.com/kicktemp/com-sportsmanager/pipelines/pipeline/218) [Preview: dtfb.de](https://dtfb.de)
## PROD environments
[![buddy pipeline](https://buddy.kicktemp.com/kicktemp/com-sportsmanager/pipelines/pipeline/219/badge.svg?token=de39e4e4c47351d592b59a5d1e26a41cf5196861f67d4499bbab990600468001 "buddy pipeline")](https://buddy.kicktemp.com/kicktemp/com-sportsmanager/pipelines/pipeline/219) [Preview: kickern-hamburg.de](https://kickern-hamburg.de)
| LV | HOSTER | DOMAIN | BRANCH |
| ------ | -------- | ------------------------------------------------ | ------------------- |
| DTFB | Kicktemp | [dtfb.de](https://dtfb.de) | production |
| TFVHH | Kicktemp | [kickern-hamburg.de](https://kickern-hamburg.de) | production |
| MTFV | DTFB | [mtfv.de](https://mtfv.de/) | sportsmanager2-prod |
| TFVSH | DTFB | [tfvsh.de](https://tfvsh.de/) | sportsmanager2-prod |
| STFVH | DTFB | [stfv.de](https://stfv.de/) | sportsmanager2-prod |
## Test setup
@@ -40,3 +49,41 @@ joomla specific database prefixes like #__
To set it up, insert into the configuration popup which follows after you enable the framework support:
Joomla install path: `./data/joomla_data`
JConfig: `./data/joomla_data/configuration.php`
> This works only with mounted volumes. However, mounted volumes will slow down the joomla instance significantly.
> The current setup does not use mounted volumes.
> An alternative would be to download joomla and use that installation
### Debugging (with Docker/Intellij)
1. Start Docker Container (see above)
2. Create a terminal for that container
```shell
docker exec -it <container_name> bash
```
3. install xdebug within the container since joomla does not come with xdebug preinstalled
```shell
pecl install xdebug
```
4. restart the container
5. In Intellij Go to [File | Settings | Languages & Frameworks | PHP | Servers](jetbrains://idea/settings?name=Languages+%26+Frameworks--PHP--Servers) and setup your server
| | |
|----------|-----------|
| name | anything |
| host | localhost |
| port | 8080 |
| debugger | xdebug |
use the path mapping and map the repo structure to the container content
| File/Directory | path on server |
|------------------------------------------------------------------|----------------------------------------|
| \<path>/com_sportsmanager/src/structure/administrator/components | /var/www/html/administrator/components |
| \<path>/com_sportsmanager/src/structure/components | /var/www/html/components |
7. Click on "Start Listening for PHP Debug Connections" in the top row of intellij
8. (Not sure if optional) Install a browser extension by Jetbrains
https://chromewebstore.google.com/detail/xdebug-helper-by-jetbrain/aoelhdemabeimdhedkidlnbkfhnhgnhm
=======
Test
View File
+1
View File
@@ -30,6 +30,7 @@ services:
MYSQL_USER: joomla
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
TZ: Europe/Berlin
volumes:
- joomla_database:/var/lib/mysql
networks:
+9
View File
@@ -1924,3 +1924,12 @@ opcache.file_cache = /tmp/opcache_file
; List of headers files to preload, wildcard patterns allowed.
;ffi.preload=
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=host.docker.internal
xdebug.client_port=9003
xdebug.log=/tmp/xdebug.log
xdebug.discover_client_host=false
xdebug.log_level=7
+5 -1
View File
@@ -43,7 +43,7 @@ export const config = {
watch: ['src/structure/**/*.{php,html,xml,ini,less,json,js,css}'],
},
copyrelease: {
src: ['src/structure/**/**', 'src/structure/**/.*', '!src/structure/**/*.{php,html,xml,ini,less,json,js,css}', '!src/structure/**/.*.{php,html,xml,ini,less,json,js,css}'],
src: ['RELEASE_NOTES.md','src/structure/**/**', 'src/structure/**/.*', '!src/structure/**/*.{php,html,xml,ini,less,json,js,css}', '!src/structure/**/.*.{php,html,xml,ini,less,json,js,css}'],
replacesrc: ['src/structure/**/**.{php,html,xml,ini,less,json,js,css}', 'src/structure/**/.*.{php,html,xml,ini,less,json,js,css}'],
dest: 'releasefiles/'
},
@@ -90,6 +90,10 @@ export const config = {
{
src: './releasefiles/plugins/system/kickyootheme/**/**',
dest: 'sourcefiles/plg_system_kickyootheme'
},
{
src: './releasefiles/RELEASE_NOTES.md',
dest: 'sourcefiles/com_sportsmanager/admin/'
}
],
package: [
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "sportsmanager",
"description": "",
"version": "0.0.1",
"version": "2.0.0",
"scripts": {
"boilerplate": "cross-env NODE_ENV=development gulp boilerplate",
"build": "cross-env NODE_ENV=production gulp build",
@@ -16,7 +16,7 @@
},
"repository": {
"type": "git",
"url": "git+https://github.com/nielsnuebel/com_sportsmanager.git"
"url": "https://github.com/Deutscher-Tischfussballbund/com_sportsmanager.git"
},
"keywords": [],
"author": {
@@ -24,6 +24,15 @@ class HtmlView extends BaseHtmlView
?>
<h3><?php echo Text::_('COM_SPORTSMANAGER'); ?> &#8211; Created by Sven Nickel | Maintained by DTFB</h3>
<?php
$notesPath = JPATH_COMPONENT_ADMINISTRATOR . '/RELEASE_NOTES.md';
if (file_exists($notesPath)) {
$notes = file_get_contents($notesPath);
echo '<div style="padding:1em;"><h3>Release Notes</h3><pre>' .
htmlspecialchars($notes) . '</pre></div>';
}
// Display the template
parent::display($tpl);
}
@@ -5183,6 +5183,9 @@ function adminKategorien(): void
$kategorien[2] = array();
$kategorien[3] = array();
$kategorien[4] = array();
$kategorien[5] = array();
$kategorien[6] = array();
$kategorien[7] = array();
foreach ($rows as $row)
$kategorien[$row->typ][$row->nummer] = $row->bezeichnung;
@@ -5216,12 +5219,12 @@ function adminKategorien(): void
$kategorien[4] = array();
$kategorien[5] = array();
$kategorien[6] = array();
$kategorien[7] = array();
foreach ($rows as $row)
$kategorien[$row->typ][$row->nummer] = $row->bezeichnung;
for ($typ = 1; $typ <= 6; $typ++) {
for ($typ = 1; $typ <= 7; $typ++) {
for ($nummer = 1; $nummer <= 50; $nummer++) {
$bezeichnung = $db->escape($jInput->get('bezeichnung_' . $typ . '_' . $nummer, '', 'RAW'));
if (empty($bezeichnung)) {
@@ -7200,7 +7203,16 @@ function adminMannschaften(): void
$query = "SELECT #__sportsmanager_team.*, #__sportsmanager_verein.vereinsname, #__sportsmanager_spielort.*,"
. "\n (SELECT COUNT(*) FROM #__sportsmanager_mitglied_von_team WHERE #__sportsmanager_team.team_id = #__sportsmanager_mitglied_von_team.team_id AND NOT ausgetreten) AS mitglieder_aktiv,"
. "\n (SELECT COUNT(*) FROM #__sportsmanager_mitglied_von_team WHERE #__sportsmanager_team.team_id = #__sportsmanager_mitglied_von_team.team_id) AS mitglieder,"
. "\n (SELECT COUNT(*) FROM #__sportsmanager_begegnung WHERE heim_team_id = #__sportsmanager_team.team_id OR gast_team_id = #__sportsmanager_team.team_id) AS begegnungen"
. "\n (SELECT COUNT(*) FROM #__sportsmanager_begegnung WHERE heim_team_id = #__sportsmanager_team.team_id OR gast_team_id = #__sportsmanager_team.team_id) AS begegnungen,"
. "\n (SELECT COUNT(team_id) FROM #__sportsmanager_begegnung_historie"
. "\n WHERE begegnung_historie_id IN ("
. "\n SELECT MIN(begegnung_historie_id) AS historie_id FROM #__sportsmanager_begegnung_historie "
. "\n WHERE aktion IN (0, 3) AND team_id in "
. "\n (SELECT team_id FROM #__sportsmanager_team WHERE veranstaltung_id = $veranstaltungId)"
. "\n GROUP BY begegnung_id"
. "\n )"
. "\n AND team_id = #__sportsmanager_team.team_id"
. "\n ) AS anzahl_verschiebungen"
. "\n FROM #__sportsmanager_team"
. "\n LEFT JOIN #__sportsmanager_verein ON #__sportsmanager_verein.verein_id = #__sportsmanager_team.verein_id"
. "\n LEFT JOIN #__sportsmanager_spielort ON #__sportsmanager_spielort.spielort_id = #__sportsmanager_team.heimspielort_id"
@@ -8872,7 +8884,56 @@ function adminBegegnungen(): void
$query = "SELECT t1.*, t2.teamname AS heim_name, t3.teamname AS gast_name, t4.unbestaetigtes_ergebnis_id, t4.zwischenergebnis, t2.nichtraucherschutz AS heim_nichtraucherschutz, t3.nichtraucherschutz AS gast_nichtraucherschutz,"
. "\n EXISTS(SELECT * FROM #__sportsmanager_begegnung_historie USE INDEX (begegnung_id) WHERE #__sportsmanager_begegnung_historie.begegnung_id = t1.begegnung_id AND aktion IN (1, 5)) AS verlegt,"
. "\n (SELECT IF(#__sportsmanager_begegnung_historie.aktion NOT IN (0, 3, 4), NULL, #__sportsmanager_begegnung_historie.eingetragen) AS eingetragen FROM #__sportsmanager_begegnung_historie USE INDEX (begegnung_id) WHERE #__sportsmanager_begegnung_historie.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen"
. "\n (SELECT IF(#__sportsmanager_begegnung_historie.aktion NOT IN (0, 3, 4), NULL, #__sportsmanager_begegnung_historie.eingetragen) AS eingetragen FROM #__sportsmanager_begegnung_historie USE INDEX (begegnung_id) WHERE #__sportsmanager_begegnung_historie.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen,"
. "\n UNIX_TIMESTAMP(t1.zeitpunkt) AS termin_spiel,"
. "\n ("
. "\n SELECT UNIX_TIMESTAMP(zeitpunkt)"
. "\n FROM #__sportsmanager_begegnung_historie"
. "\n WHERE begegnung_id = t1.begegnung_id AND aktion = 2"
. "\n ORDER BY begegnung_historie_id ASC"
. "\n LIMIT 1"
. "\n ) AS termin_original,"
. "\n ("
. "\n SELECT team_id"
. "\n FROM #__sportsmanager_begegnung_historie"
. "\n WHERE begegnung_id = t1.begegnung_id AND aktion IN (0, 3)"
. "\n ORDER BY begegnung_historie_id ASC"
. "\n LIMIT 1"
. "\n ) AS verantwortliches_team,"
. "\n ("
. "\n SELECT UNIX_TIMESTAMP(zeitpunkt)"
. "\n FROM #__sportsmanager_begegnung_historie"
. "\n WHERE begegnung_id = t1.begegnung_id AND aktion = 1"
. "\n ORDER BY begegnung_historie_id ASC"
. "\n LIMIT 1"
. "\n ) AS termin_akzeptiert,"
. "\n ("
. "\n SELECT UNIX_TIMESTAMP(eingetragen)"
. "\n FROM #__sportsmanager_begegnung_historie"
. "\n WHERE begegnung_id = t1.begegnung_id AND aktion = 6"
. "\n ORDER BY begegnung_historie_id ASC"
. "\n LIMIT 1"
. "\n ) AS ergebnis_vorgeschlagen,"
. "\n ("
. "\n SELECT UNIX_TIMESTAMP(eingetragen)"
. "\n FROM #__sportsmanager_begegnung_historie"
. "\n WHERE begegnung_id = t1.begegnung_id AND aktion = 7"
. "\n ORDER BY begegnung_historie_id ASC"
. "\n LIMIT 1"
. "\n ) AS ergebnis_akzeptiert,"
. "\n ("
. "\n SELECT COUNT(*) FROM #__sportsmanager_teamspiel"
. "\n WHERE begegnung_id = t1.begegnung_id"
. "\n AND (heim_spieler_1_id = 0 OR heim_spieler_2_id = 0 OR gast_spieler_1_id = 0 OR gast_spieler_2_id = 0)"
. "\n ) AS fehlende_spieler"
. "\n FROM #__sportsmanager_begegnung AS t1"
. "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id"
. "\n LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id"
@@ -11255,6 +11316,7 @@ function adminBegegnungenExportForm(): void
// Veranstaltung ermitteln
$query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $veranstaltungId";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
@@ -1,4 +1,4 @@
<?php
<?php
namespace Dtfb\Component\com_sportsmanager\Site\Controller;
/*
* Sports Manager (C) 2006-2020, Sven Nickel
File diff suppressed because it is too large Load Diff
@@ -12,149 +12,183 @@ 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 ) {
if (empty($timestamp1) || empty($timestamp2)) {
return "";
} else {
$daydiff = round(($timestamp2 - $timestamp1) / (3600.0 * 24.0));
if ($verbose) {
return sprintf("%+d d", $daydiff);
} else if (abs($daydiff) > 0) {
return sprintf("%dd", $daydiff);
} else {
return "-";
}
}
}
function formatTeamName( $team_name, $team_id, $highlight_team_id ) {
if ($team_id == $highlight_team_id) {
return "<b><i>" . htmlentities_utf8($team_name) . "</i></b>";
} else {
return htmlentities_utf8($team_name);
}
}
class HTML_sportsmanager_admin
{
static function adminUebersicht($veranstaltungen, $spielerstatistiken, $turniere, $ranglisten, $individualwettbewerbe, $statistik, $saisons, $filter_saison_id, $externe_datenbank): void
{
global $params;
function checkZeilenumbruch($Spalte_Nr, $max_Spalten)
{
$Spalte_Nr++;
if ($Spalte_Nr >= $max_Spalten){
echo "</tr>\n<tr>\n";
$Spalte_Nr = 0;
}
return $Spalte_Nr;
}
global $params;
?>
<div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><a
href="https://github.com/Deutscher-Tischfussballbund/" target="_blank">Sports
Manager <?php echo SPORTS_MANAGER_VERSION; ?> </a>
<div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>" style='font-weight: bold;'>
<a href="https://github.com/Deutscher-Tischfussballbund/" target="_blank">
Sports Manager <?php echo SPORTS_MANAGER_VERSION; ?> </a>
</div>
<table style="border-spacing: 10px">
<?php
if (benutzerZugriff("spieler_aendern")
|| benutzerVeranstalterModerator()
|| benutzerVereinModerator()
|| benutzerZugriff("vereine_aendern")
|| benutzerZugriff("organisationen_aendern")
|| benutzerZugriff("kategorien_aendern")
|| benutzerZugriff("moderatoren_aendern")
|| benutzerZugriff("einstufungen_aendern")
|| benutzerZugriff("basiseinstellungen_aendern")) {
?>
<table>
<tr>
<?php
$max_Spalten = 6;
$Spalte_Nr = 0;
if (benutzerZugriff("spieler_aendern") || benutzerVeranstalterModerator() || benutzerVereinModerator()) {
?>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_spieler'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_PLAYERS'); ?></a>
<td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_spieler'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_PLAYERS'); ?></a>
</td>
<?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
}
if (benutzerZugriff("vereine_aendern")) {
?>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_vereine'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CLUBS'); ?></a>
<td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_vereine'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CLUBS'); ?></a>
</td>
<?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
}
if (benutzerZugriff("organisationen_aendern")) {
?>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_veranstalter'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ORGANISATIONS'); ?></a>
<td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_veranstalter'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ORGANISATIONS'); ?></a>
</td>
<?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
}
if (benutzerZugriff("kategorien_aendern")) {
?>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_kategorien'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CATEGORIES'); ?></a>
<td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_kategorien'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CATEGORIES'); ?></a>
</td>
<?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
}
if (benutzerZugriff("moderatoren_aendern")) {
?>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_moderatoren'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_MODERATORS'); ?></a>
<td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_moderatoren'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_MODERATORS'); ?></a>
</td>
<?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
}
if (benutzerZugriff("einstufungen_aendern")) {
?>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_einstufungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CLASSIFICATIONS'); ?></a>
<td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_einstufungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CLASSIFICATIONS'); ?></a>
</td>
<?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
}
if (benutzerZugriff("basiseinstellungen_aendern")) {
?>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_einstellungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_SETTINGS'); ?></a>
</td>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_datenbank'); ?>"><?php echo $externe_datenbank ? Text::_('COM_SPORTSMANAGER_DATABASE_EXTERNAL') : Text::_('COM_SPORTSMANAGER_DATABASE_LOCAL'); ?></a>
<td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_einstellungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_SETTINGS'); ?></a>
</td>
<?php
}
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
?>
</tr>
<td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_datenbank'); ?>"><?php echo $externe_datenbank ? Text::_('COM_SPORTSMANAGER_DATABASE_EXTERNAL') : Text::_('COM_SPORTSMANAGER_DATABASE_LOCAL'); ?></a>
</td>
<?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
}
?>
<tr>
<?php
if (benutzerZugriff("termine_aendern")) {
?>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_termine'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_APPOINTMENTS'); ?></a>
<td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_termine'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_APPOINTMENTS'); ?></a>
</td>
<?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
}
if (benutzerZugriff("verteiler_aendern") || benutzerZugriff("verteiler_lesen")) {
?>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_verteiler'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_MAILING_LISTS'); ?></a>
<td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_verteiler'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_MAILING_LISTS'); ?></a>
</td>
<?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
}
if (benutzerZugriff("rechnungen_aendern") && $statistik["saisons"] > 0) {
?>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_rechnungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_INVOICES'); ?></a>
<td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_rechnungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_INVOICES'); ?></a>
</td>
<?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
}
if (benutzerZugriff("spielorte_aendern")) {
?>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_spielorte'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_LOCATIONS'); ?></a>
<td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_spielorte'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_LOCATIONS'); ?></a>
</td>
<?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
}
if (benutzerZugriff("saisons_aendern")) {
?>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_saisons'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_SEASONS'); ?></a>
<td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_saisons'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_SEASONS'); ?></a>
</td>
<?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
}
if (benutzerZugriff("mannschaftsspielplaene_aendern")) {
?>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_teamspiel_modi'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_TEAM_PLANS'); ?></a>
<td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_teamspiel_modi'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_TEAM_PLANS'); ?></a>
</td>
<?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
}
if (benutzerZugriff("verschieberegeln_aendern")) {
?>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_verschieben_modi'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_POSTPONE_RULES'); ?></a>
<td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_verschieben_modi'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_POSTPONE_RULES'); ?></a>
</td>
<?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
}
if (benutzerZugriff("ranglistenwertungen_aendern")) {
?>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_ranglistensysteme'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_RANKING_RATING'); ?></a>
<td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_ranglistensysteme'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_RANKING_RATING'); ?></a>
</td>
<?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
}
?>
</tr>
</table>
</table><br>
<?php
if (count($saisons) > 0) {
?>
@@ -4898,13 +4932,13 @@ class HTML_sportsmanager_admin
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm">
<div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%">
<table class="" style="width: 100%">
<tr>
<td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%">
<table class="" style="width: 100%">
<?php
for ($typ = 1; $typ <= 6; $typ++) {
for ($typ = 1; $typ <= 7; $typ++) {
?>
<tr>
<td></td>
@@ -4924,6 +4958,8 @@ class HTML_sportsmanager_admin
echo Text::_('COM_SPORTSMANAGER_PLAYER_STATISTICS');
else if ($typ == 6)
echo Text::_('COM_SPORTSMANAGER_INDIVIDUAL_COMPETITIONS');
else if ($typ == 7)
echo Text::_('COM_SPORTSMANAGER_ASSOCIATION_BODIES');
?>
</H2>
</div>
@@ -6922,11 +6958,11 @@ class HTML_sportsmanager_admin
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"
enctype="multipart/form-data">
<div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%">
<table class="" style="width: 100%">
<tr>
<td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%">
<table class="" style="width: 100%">
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
@@ -6961,7 +6997,7 @@ class HTML_sportsmanager_admin
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="kategorie"
<select class="uk-select uk-form-width-medium" style='width: 350px;' name="kategorie"
id="category" size="1">
<?php
for ($i = 1; $i <= 50; $i++) {
@@ -7132,7 +7168,7 @@ class HTML_sportsmanager_admin
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="tabellenwertung"
<select class="uk-select uk-form-width-large" style='width: 600px;' name="tabellenwertung"
id="table_evaluation" size="1">
<?php
$typ = array(
@@ -7249,7 +7285,7 @@ class HTML_sportsmanager_admin
}
?>
</tr>
</table>
</table><br/>
</td>
</tr>
<tr>
@@ -7264,13 +7300,13 @@ class HTML_sportsmanager_admin
?>
<input type="radio" name="bildbeibehalten_logo" id="keep_logo" value="1"
checked><?php echo Text::_('COM_SPORTSMANAGER_NEWS_IMAGE'); ?>
<br/><br/><?php echo $bild; ?>
<br/><br/><label><input type="radio" name="bildbeibehalten_logo"
<br/><?php echo $bild; ?>
<br/><label><input type="radio" name="bildbeibehalten_logo"
value="0"><?php echo Text::_('COM_SPORTSMANAGER_NEW_IMAGE'); ?>
</label>
<br/><br/><input type="file" name="bild_logo" size="30"
<br/><input type="file" name="bild_logo" size="30"
onchange="document.adminForm.bildbeibehalten_logo[1].checked = true;"/>
<br/><br/><label>URL: <input class="inputbox" type="text"
<br/><label>URL: <input class="inputbox" type="text"
name="logo_url" size="50"
maxlength="150"
value="<?php if (!empty($row)) echo htmlentities_utf8($row->logo_url); ?>"/></label>
@@ -7279,13 +7315,13 @@ class HTML_sportsmanager_admin
?>
<label
for="logo_url"><?php echo Text::_('COM_SPORTSMANAGER_NEW_IMAGE'); ?></label>
<br/><br/><input type="file" name="bild_logo" size="30"/>
<br/><br/><label>URL: <input class="inputbox" type="text"
<br/><input type="file" name="bild_logo" size="30"/>
<br/><label>URL: <input class="inputbox" type="text"
name="logo_url" id="logo_url" size="50"
maxlength="150"/></label>
<?php
}
?>
?><br/><br/>
</td>
</tr>
<tr>
@@ -7301,13 +7337,13 @@ class HTML_sportsmanager_admin
<input type="radio" name="bildbeibehalten_ticker_logo"
id="keep_ticker_logo" value="1"
checked><?php echo Text::_('COM_SPORTSMANAGER_NEWS_IMAGE'); ?>
<br/><br/><?php echo $bild; ?>
<br/><br/><label><input type="radio" name="bildbeibehalten_ticker_logo"
<br/><?php echo $bild; ?>
<br/><label><input type="radio" name="bildbeibehalten_ticker_logo"
value="0"><?php echo Text::_('COM_SPORTSMANAGER_NEW_IMAGE'); ?>
</label>
<br/><br/><input type="file" name="bild_ticker_logo" size="30"
<br/><input type="file" name="bild_ticker_logo" size="30"
onchange="document.adminForm.bildbeibehalten_ticker_logo[1].checked = true;"/>
<br/><br/><label>URL: <input class="inputbox" type="text"
<br/><label>URL: <input class="inputbox" type="text"
name="ticker_logo_url"
size="50" maxlength="150"
value="<?php if (!empty($row)) echo htmlentities_utf8($row->ticker_logo_url); ?>"/></label>
@@ -7316,8 +7352,8 @@ class HTML_sportsmanager_admin
?>
<label
for="ticker_logo_url"><?php echo Text::_('COM_SPORTSMANAGER_NEW_IMAGE'); ?></label>
<br/><br/><input type="file" name="bild_ticker_logo" size="30"/>
<br/><br/>URL: <input class="inputbox" type="text"
<br/><input type="file" name="bild_ticker_logo" size="30"/>
<br/>URL: <input class="inputbox" type="text"
name="ticker_logo_url" id="ticker_logo_url"
size="50" maxlength="150"/>
<?php
@@ -7392,6 +7428,8 @@ class HTML_sportsmanager_admin
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_CLUB'); ?></strong></th>
<th nowrap title="<?php echo Text::_('COM_SPORTSMANAGER_PLAYERS_ACTIVE_INACTIVE'); ?>">
<strong><?php echo Text::_('COM_SPORTSMANAGER_PLAYERS'); ?></strong></th>
<th nowrap title="<?php echo Text::_('COM_SPORTSMANAGER_NUM_REQUESTED_SHFITS_TOOLTIP'); ?>">
<strong><?php echo Text::_('COM_SPORTSMANAGER_NUM_REQUESTED_SHIFTS'); ?></strong></th>
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_HOME_VENUE'); ?></strong></th>
</tr>
<?php
@@ -7433,6 +7471,7 @@ class HTML_sportsmanager_admin
<td nowrap style="text-align: center"><a
href="<?php echo SportsManagerURL('&task=admin_mitglieder&teamid=' . $row->team_id); ?>"><?php echo $row->mitglieder_aktiv . " / " . ($row->mitglieder - $row->mitglieder_aktiv); ?></a>
</td>
<td nowrap align="center"><?php echo $row->anzahl_verschiebungen; ?></td>
<td nowrap><?php if (!empty($row->name)) echo htmlentities_utf8($row->name); ?></td>
<?php if ($row->begegnungen == 0) { ?>
<td nowrap><small><a
@@ -8603,6 +8642,7 @@ class HTML_sportsmanager_admin
<strong><?php echo $modus->punktetyp == 0 ? Text::_('COM_SPORTSMANAGER_GOALS') : Text::_('COM_SPORTSMANAGER_SETS'); ?></strong>
</th>
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_GAME_POINTS'); ?></strong></th>
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_GAME_RESULT_DELAYS');?></strong></th>
</tr>
<?php
@@ -8635,7 +8675,7 @@ class HTML_sportsmanager_admin
if ($row->verlegung_eingetragen != null)
echo " **";
else if ($row->verlegt != 0)
echo " *";
echo " (" . formatTimediff($row->termin_original, $row->termin_akzeptiert, true) . ")";
if ($row->nichtraucherschutz == 0 && ((($row->heim_nichtraucherschutz == 1 || $row->heim_nichtraucherschutz == 2 || $row->heim_nichtraucherschutz == 3) && ($row->gast_nichtraucherschutz == 3 || $row->gast_nichtraucherschutz == 7 || $row->gast_nichtraucherschutz == 8)) || (($row->heim_nichtraucherschutz == 5 || $row->heim_nichtraucherschutz == 6 || $row->heim_nichtraucherschutz == 8) && ($row->gast_nichtraucherschutz == 1 || $row->gast_nichtraucherschutz == 4 || $row->gast_nichtraucherschutz == 5))))
echo " !";
?>
@@ -8645,13 +8685,20 @@ class HTML_sportsmanager_admin
echo "<br/><small>" . Text::_('COM_SPORTSMANAGER_MATCH_TABLE') . ": " . htmlentities_utf8($row->tisch) . "</small>";
?>
</td>
<td nowrap><?php echo htmlentities_utf8($row->heim_name); ?></td>
<td nowrap><?php echo htmlentities_utf8($row->gast_name); ?></td>
<td nowrap><?php echo formatTeamName($row->heim_name, $row->heim_team_id, $row->verantwortliches_team); ?></td>
<td nowrap><?php echo formatTeamName($row->gast_name, $row->gast_team_id, $row->verantwortliches_team); ?></td>
<td nowrap style="text-align: center"><a
href="<?php echo SportsManagerURL('&task=admin_begegnung_spielplan_edit&veranstaltungid=' . $veranstaltung->veranstaltung_id . '&id=' . $row->begegnung_id); ?>"><?php if ($ergebnis_vorhanden) echo $row->heim_punkte . " : " . $row->gast_punkte; else echo "_ : _" ?></a><?php if ($row->unbestaetigtes_ergebnis_id != null) echo "<br /><small>" . ($row->zwischenergebnis ? "live" : "unbest&auml;tigt") . "</small>"; ?>
href="<?php echo SportsManagerURL('&task=admin_begegnung_spielplan_edit&veranstaltungid=' . $veranstaltung->veranstaltung_id . '&id=' . $row->begegnung_id); ?>"><?php if ($ergebnis_vorhanden) echo $row->heim_punkte . " : " . $row->gast_punkte; else echo "_ : _" ?></a><?php if ($row->unbestaetigtes_ergebnis_id != null) echo "<br /><small>" . ($row->zwischenergebnis ? "live" : "unbest&auml;tigt") . "</small>"; else if ($row->fehlende_spieler > 0) echo " (*)"; ?>
</td>
<td nowrap
style="text-align: center"><?php if ($ergebnis_vorhanden) echo $row->heim_spielpunkte . " : " . $row->gast_spielpunkte; else echo "_ : _" ?><?php if ($row->unbestaetigtes_ergebnis_id != null) echo "<br /><small>" . ($row->zwischenergebnis ? "live" : "unbest&auml;tigt") . "</small>"; ?></td>
<td nowrap align="center">
<?php echo
formatTimediff($row->termin_spiel, $row->ergebnis_vorgeschlagen, false)
. " / "
. formatTimediff($row->ergebnis_vorgeschlagen, $row->ergebnis_akzeptiert, false);
?>
</td>
<td nowrap><small><a
href="<?php echo SportsManagerURL('&task=admin_begegnung_heimtausch&veranstaltungid=' . $veranstaltung->veranstaltung_id . '&id=' . $row->begegnung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_HOME_EXCHANGE'); ?></a></small>
</td>
@@ -9538,7 +9585,7 @@ class HTML_sportsmanager_admin
$jahr = $veranstaltung->erster_tag != null ? substr($veranstaltung->erster_tag, 0, 4) : 0;
?>
<div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"
style='background-color:#000066;width:760px;font-weight:600;text-align:center;'>
style='background-color:#000066;color: #cccccc;width:760px;font-weight:600;text-align:center;'>
<?php echo Text::_('COM_SPORTSMANAGER_COMPETITION'); ?>
<?php echo htmlentities_utf8($veranstaltung->bezeichnung); ?>
: <?php echo Text::_('COM_SPORTSMANAGER_GENERATE_ENCOUNTERS_NEXT_ROUND'); ?></div>
@@ -9550,7 +9597,7 @@ class HTML_sportsmanager_admin
<td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto">
<table>
<tr><td colspan=2 style="text-align: center; background-color: #660033"><b>Grundeinstellungen</b></td></tr>
<tr><td colspan=2 style="text-align: center; background-color: #660033;color: #cccccc;"><b>Grundeinstellungen</b></td></tr>
<tr>
<td>Runden</td>
<td colspan style="text-align: left">
@@ -9607,14 +9654,14 @@ class HTML_sportsmanager_admin
$bgcolor = "#000099";
}
if ($spieltag == 1){
echo "<tr><td colspan=2 style='text-align: center; background-color: #000099'><b>Hinrunde</b></td></tr>";
echo "<tr><td colspan=2 style='text-align: center; background-color: #000099; color: #cccccc;'><b>Hinrunde</b></td></tr>";
}
if ($spieltag == $spieltage + 1){
echo "<tr><td colspan=2 style='text-align: center; background-color: #000033'><b>R&uuml;ckrunde</b> (Bei <i><u>Nur Hinrunde</u></i> sind hier keine Eingaben erforderlich)</td></tr>";
echo "<tr><td colspan=2 style='text-align: center; background-color: #000033; color: #cccccc;'><b>R&uuml;ckrunde</b> (Bei <i><u>Nur Hinrunde</u></i> sind hier keine Eingaben erforderlich)</td></tr>";
}
?>
<tr>
<td nowrap style="width: 130px; text-align: center; background-color: <?php echo $bgcolor; ?>">
<td nowrap style="width: 130px; text-align: center; background-color: <?php echo $bgcolor; ?>; color: #cccccc;">
<label
for="calendar_week_<?php echo $spieltag; ?>"><?php echo $spieltag; ?>
. <?php echo Text::_('COM_SPORTSMANAGER_GAMEDAY'); ?>:</label>
@@ -9659,7 +9706,7 @@ class HTML_sportsmanager_admin
<?php
}
echo "<tr><td colspan=2 style='text-align: center'>&nbsp;</td></tr>";
echo "<tr><td colspan=2 style='text-align: center; background-color: #660033'
echo "<tr><td colspan=2 style='text-align: center; background-color: #660033; color: #cccccc;'
title='Setzliste bzw. Erste Paarung&#10;Automatisch: Spiele sind die die erste Begegnungen in der Saison&#10;Setzliste: Mannschaften werden in eine Spielmatrix gesetzt&#10;Manschaften aud 1/2 bzw. 3/4 bzw. 5/6 usw. haben nie gleichzeitg Heimrecht!'><b>Setzliste bzw. Erste Paarung</b></td></tr>";
for ($teamnr = 1; $teamnr <= $anzahlteams; $teamnr += 2) {
?>
@@ -10013,19 +10060,18 @@ class HTML_sportsmanager_admin
{
global $params;
?>
<div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_EXPORT'); ?></div>
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm">
<div class="uk-overflow-auto"><table class="" style="width: 100%">
<div class="uk-overflow-auto">
<table class="" style="width: 500px">
<tr>
<td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto"><table class="" style="width: 100%">
<th align=center colspan='2'><?php echo Text::_('COM_SPORTSMANAGER_EXPORT'); ?></th>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<td nowrap style="width: 120px; text-align: right">
<label for="veranstaltungId">Veranstaltung</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="veranstaltungid" size="1">
<select class="uk-select uk-form-width-large" style='width: 320px;' name="veranstaltungid" size="1">
<option value='<?PHP echo $veranstaltung->veranstaltung_id; ?>'><?PHP echo $veranstaltung->bezeichnung; ?></option>
<?PHP foreach ($saison AS $key => $value) { ?>
<option value='<?PHP echo $value->veranstaltung_id; ?>'><?PHP echo $value->bezeichnung; ?></option>
@@ -10034,11 +10080,11 @@ class HTML_sportsmanager_admin
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<td nowrap style="text-align: right">
<label for="export">Exportieren</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="export" id="export" size="1">
<select class="uk-select uk-form-width-large" style='width: 320px;' name="export" id="export" size="1">
<option value='spieler'>Spieler</option>
<option value='spielplan'>Spielplan</option>
<option value='spielberichte'>Spielberichte</option>
@@ -10046,19 +10092,17 @@ class HTML_sportsmanager_admin
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<td nowrap style="text-align: right">
<label for="exportformat">Exportformat</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="exportformat" id="exportformat" size="1">
<select class="uk-select uk-form-width-large" style='width: 320px;' name="exportformat" id="exportformat" size="1">
<option value='csvdatei'>CSV-Datei</option>
</select>
</td>
</tr>
</table></div>
</td>
</tr>
</table></div>
</table>
</div>
<input type="submit" name="save" value="<?php echo Text::_('COM_SPORTSMANAGER_EXPORT'); ?>"
class="button"/>
@@ -1,4 +1,4 @@
; Sports Manager (C) 2006-2020, Sven Nickel (Test)
; Sports Manager (C) 2006-2020, Sven Nickel (Test)
COM_SPORTSMANAGER="Sports Manager"
COM_SPORTSMANAGER_PLAYERS="Spieler"
COM_SPORTSMANAGER_CLUBS="Vereine"
@@ -70,6 +70,7 @@ COM_SPORTSMANAGER_CONFIRM_REMOVE_RANKING="Willst du die Rangliste wirklich entfe
COM_SPORTSMANAGER_ADD_INDIVIDUAL_COMPETITION="Individualwettbewerb hinzuf&uuml;gen"
COM_SPORTSMANAGER_INDIVIDUAL_COMPETITION="Individualwettbewerb"
COM_SPORTSMANAGER_INDIVIDUAL_COMPETITIONS="Individualwettbewerbe"
COM_SPORTSMANAGER_ASSOCIATION_BODIES="Verbandsorgane"
COM_SPORTSMANAGER_GAME="Spiel"
COM_SPORTSMANAGER_GAMES="Spiele"
COM_SPORTSMANAGER_GAMES_SHORTCUT="S"
@@ -989,3 +990,6 @@ COM_SPORTSMANAGER_ARIA_LABEL_RANKING_EVALUATION="Ranking Wertung"
COM_SPORTSMANAGER_ARIA_LABEL_LASTNAME="Nachname"
COM_SPORTSMANAGER_ARIA_LABEL_FIRSTNAME="Vorname"
COM_SPORTSMANAGER_ARIA_LABEL_CLUB="Verein"
COM_SPORTSMANAGER_NUM_REQUESTED_SHIFTS="Verschiebungen"
COM_SPORTSMANAGER_NUM_REQUESTED_SHFITS_TOOLTIP="Spielverschiebungen durch diese Mannschaft"
COM_SPORTSMANAGER_GAME_RESULT_DELAYS="Verzögerung"
@@ -1,4 +1,4 @@
; Sports Manager (C) 2006-2020, Sven Nickel
; Sports Manager (C) 2006-2020, Sven Nickel
COM_SPORTSMANAGER="Sports Manager"
COM_SPORTSMANAGER_PLAYERS="Players"
COM_SPORTSMANAGER_CLUBS="Clubs"
@@ -70,6 +70,7 @@ COM_SPORTSMANAGER_CONFIRM_REMOVE_RANKING="Do you really want to remove the ranki
COM_SPORTSMANAGER_ADD_INDIVIDUAL_COMPETITION="Add individual competition"
COM_SPORTSMANAGER_INDIVIDUAL_COMPETITION="Individual competition"
COM_SPORTSMANAGER_INDIVIDUAL_COMPETITIONS="Individual competitions"
COM_SPORTSMANAGER_ASSOCIATION_BODIES="Association bodies"
COM_SPORTSMANAGER_GAME="Game"
COM_SPORTSMANAGER_GAMES="Games"
COM_SPORTSMANAGER_GAMES_SHORTCUT="G"
@@ -987,3 +988,6 @@ COM_SPORTSMANAGER_ARIA_LABEL_RANKING_EVALUATION="Ranking evaluation"
COM_SPORTSMANAGER_ARIA_LABEL_LASTNAME="Lastname"
COM_SPORTSMANAGER_ARIA_LABEL_FIRSTNAME="Firstname"
COM_SPORTSMANAGER_ARIA_LABEL_CLUB="Club"
COM_SPORTSMANAGER_NUM_REQUESTED_SHIFTS="Shifts"
COM_SPORTSMANAGER_NUM_REQUESTED_SHFITS_TOOLTIP="Game shifts caused by this team"
COM_SPORTSMANAGER_GAME_RESULT_DELAYS="Delay"
+1 -1
View File
@@ -1110,7 +1110,7 @@ return new class () implements InstallerScriptInterface
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '102';";
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '103';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
+1
View File
@@ -37,6 +37,7 @@
<files folder="admin">
<filename>access.xml</filename>
<filename>index.html</filename>
<filename>RELEASE_NOTES.md</filename>
<folder>services</folder>
<folder>src</folder>
<folder>tmpl</folder>