mirror of
https://github.com/Deutscher-Tischfussballbund/com_sportsmanager.git
synced 2026-06-10 06:27:52 +00:00
Compare commits
195 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4ad93a8cf6 | |||
| 1b5e070026 | |||
| 114eba3a9c | |||
| 9fb592ccbc | |||
| f76ab18d4b | |||
| 02e27d7747 | |||
| 5375950049 | |||
| 050b246fef | |||
| 55b8cc52c7 | |||
| aad70e5ab2 | |||
| 37a98edbad | |||
| 228f68f90c | |||
| 4f9df2ce89 | |||
| 1a364a4e30 | |||
| f3bf69c9ca | |||
| cc81b97569 | |||
| aaa5aaac1d | |||
| f9f9e58881 | |||
| 671dfb7e8d | |||
| 3ae15e2e70 | |||
| ee0c19efe3 | |||
| 87c9ec82fd | |||
| 71d8460cd6 | |||
| d97713e73d | |||
| b16638ed47 | |||
| b511badad2 | |||
| 42ff1155f3 | |||
| 17a9bfdd2e | |||
| 3aa20036dc | |||
| fc1ce3bdd6 | |||
| cf52c718e8 | |||
| 8b29c8eba6 | |||
| e9460ef8cc | |||
| 3ac38abb92 | |||
| 19ff8ebd08 | |||
| 3ab2ae9206 | |||
| 4820f82253 | |||
| 0a06321a72 | |||
| 60232d95b3 | |||
| f27b87a0d8 | |||
| bc6c44e82a | |||
| 01ac642de5 | |||
| 825a072ace | |||
| 1aa9b924d7 | |||
| 4a96d9f0a9 | |||
| 7a59020e64 | |||
| 3f816235c8 | |||
| 4f264ed72d | |||
| a6f302cb63 | |||
| 22c50e688a | |||
| fbd7e05abb | |||
| a36edeedca | |||
| ea9fd038f3 | |||
| e55d925034 | |||
| 48d0bca1c6 | |||
| ba9c84dfe7 | |||
| f424dfe024 | |||
| f382c3a208 | |||
| 2d7fb27ee1 | |||
| 93769df3ac | |||
| ee6d559a7f | |||
| 6e9b2c4f5e | |||
| f713362c3e | |||
| 71dd59c3d8 | |||
| 9594ec84e2 | |||
| 79adb9efd2 | |||
| 7d7f162dde | |||
| 1538738722 | |||
| eb4bcf38d9 | |||
| 0d8e61b3ca | |||
| 3f26a340dc | |||
| 87d9449417 | |||
| e0575dc125 | |||
| b1f67d1d13 | |||
| f119cae584 | |||
| 18d346a4e9 | |||
| e81600dd86 | |||
| ff7314cf3f | |||
| 1fe9d4bc5f | |||
| 5e3996dd5e | |||
| 9861f59662 | |||
| 9f6c026b2b | |||
| 850fd2c079 | |||
| 762bf50f62 | |||
| 19fc2c8800 | |||
| be1b66eb8e | |||
| cf14997acb | |||
| 0d3e54a544 | |||
| 7b1cc50943 | |||
| 133a983685 | |||
| 20b956b239 | |||
| fedb300d8f | |||
| 07121c2233 | |||
| 8dab7fa74f | |||
| 3e577f6be1 | |||
| 2b6563dae0 | |||
| 1bd53893a8 | |||
| acfcbb1010 | |||
| a6aee26211 | |||
| b24203ccb9 | |||
| 2ff39cf086 | |||
| 8479691824 | |||
| ca4ce6060e | |||
| 0729291afc | |||
| b57c7c148d | |||
| b17fcffdd5 | |||
| 97c6d9ee03 | |||
| f3c2040632 | |||
| 1235edde82 | |||
| 763fd7d386 | |||
| 77e2c6e910 | |||
| a2aee3b135 | |||
| 9a7f8acc3b | |||
| 9091b22859 | |||
| 839b27756a | |||
| 0d0ee08199 | |||
| 6609a4ca78 | |||
| 4ecf48d02e | |||
| 40633f864a | |||
| 8e6aa127c6 | |||
| 9289843cb1 | |||
| 7a70500175 | |||
| 31b8e5251e | |||
| 455f845ab0 | |||
| f55d89827a | |||
| 874e06e061 | |||
| 83b8e1c25f | |||
| 3c9fac7e1a | |||
| 4ec02e5f02 | |||
| 4d1573729d | |||
| 6da371569a | |||
| fdede4a4a7 | |||
| 7ced30cf5b | |||
| 934b5b4971 | |||
| 085e5a8aeb | |||
| 53ada7c6b0 | |||
| 29dbfaeea4 | |||
| 95e02435fd | |||
| 32eacde07d | |||
| 2b19aee00f | |||
| 8b6ad5103c | |||
| 743f2b4013 | |||
| 2d2a124239 | |||
| d1e0dec74a | |||
| c4c3ea88fc | |||
| 761e04b6f2 | |||
| 089796d201 | |||
| e2b6f48498 | |||
| 3422813152 | |||
| 67b46f121a | |||
| 6c3c9badfd | |||
| e05d107af3 | |||
| 2f94c29c7e | |||
| b656cb5df3 | |||
| af97c59960 | |||
| ebb3580fad | |||
| 4a313d5914 | |||
| 771856b842 | |||
| 0c4d0820d1 | |||
| 8a0ad8d8e9 | |||
| 03a448f4cc | |||
| 9d75619c2c | |||
| a1890c51c0 | |||
| 51ee656f66 | |||
| 6d9df0e769 | |||
| a74bcb0ee8 | |||
| 6399eab0af | |||
| 9cde84a1d0 | |||
| 76738ec307 | |||
| 59e1a4571b | |||
| 7952c95217 | |||
| 56d8be9a55 | |||
| 29f0e6842b | |||
| 22e96bf49d | |||
| 1e4e34ef71 | |||
| d98f7da7b9 | |||
| 94e768ef51 | |||
| 36dbfdb7c4 | |||
| 5cfd8f3c1a | |||
| 1d7369e456 | |||
| de467c0d4a | |||
| 0225e49beb | |||
| e1ecec502b | |||
| 000731a289 | |||
| 385bef0752 | |||
| 902ae55a9a | |||
| feb08ff903 | |||
| a922b11b6d | |||
| 254d556899 | |||
| 984156ca95 | |||
| 6ae7388a44 | |||
| 4f78e31277 | |||
| 2dddfa473a | |||
| 82c0f3a58b | |||
| a6fe497cad |
@@ -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
|
||||
@@ -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
|
||||
@@ -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']
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
# 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: Get version from git tag
|
||||
run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Update version.php
|
||||
run: |
|
||||
echo "<?php" > 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
|
||||
echo "Updating version to $VERSION in sportsmanager.xml"
|
||||
sed -i "s#<version>.*</version>#<version>$VERSION</version>#" src/structure/sportsmanager.xml
|
||||
|
||||
- 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
|
||||
@@ -6,7 +6,7 @@ name: Snapshot Release
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*-snapshot' # run only on version tags like v1.0.0-snapshot
|
||||
- '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:
|
||||
@@ -33,7 +33,7 @@ jobs:
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
prerelease: true
|
||||
name: SNAPSHOT
|
||||
name: "Snapshot ${{ github.ref_name }}"
|
||||
files: package/packages/com_sportsmanager.zip
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
@@ -1,16 +1,25 @@
|
||||
# SportsManager
|
||||
|
||||
## Deploy status
|
||||
## DEV/STAGE environments
|
||||
|
||||
### DEV environment
|
||||
[](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) | ? |
|
||||
|
||||
[](https://buddy.kicktemp.com/kicktemp/com-sportsmanager/pipelines/pipeline/204) [Preview: stage.kickern-hamburg.de](https://stage.kickern-hamburg.de)
|
||||
|
||||
### PROD environment
|
||||
[](https://buddy.kicktemp.com/kicktemp/com-sportsmanager/pipelines/pipeline/218) [Preview: dtfb.de](https://dtfb.de)
|
||||
## PROD environments
|
||||
|
||||
[](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,5 +49,59 @@ 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
|
||||
|
||||
|
||||
### How to release
|
||||
Hint: for technical details regarding the release process have a look into .github/...
|
||||
To create a release these steps need to be followed
|
||||
1. make sure all needed code changes are merged from dev -> stage -> prod, since releases may only be build on prod branch
|
||||
2. give pull requests meaningful names and label them enhancement/bug/chore since labels and names are used for release note generation
|
||||
Hint: if a specific pull request should be ignored, add the label changelog-ignore
|
||||
3. tag a commit (recommended is the latest merge on prod). The pipeline is listening for any tag fitting `v[0-9]+.[0-9]+.[0-9]+`
|
||||
```shell
|
||||
git tag -a v1.2.3 1a2b3c4 -m "Release version 1.2.3"
|
||||
```
|
||||
4. push the tag
|
||||
```shell
|
||||
git push origin --tags
|
||||
```
|
||||
5. the tag push will trigger the pipeline, and it will create the release and store in GitHub
|
||||
|
||||
A release can be created again anytime by deleting the release from GitHub, deleting the tag (from GitHub and additionally from git)
|
||||
and repeating step 3 and 4
|
||||
|
||||
Further: merges from dev to stage and from stage to prod can only be done by creating pull requests. These pull requests will be automatically labeled as changelog-ignore
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
This is no official release!
|
||||
The Release and the release notes will be generated by github actions
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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": {
|
||||
|
||||
+9
@@ -24,6 +24,15 @@ class HtmlView extends BaseHtmlView
|
||||
?>
|
||||
<h3><?php echo Text::_('COM_SPORTSMANAGER'); ?> – 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);
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,10 +4,8 @@
|
||||
*/
|
||||
|
||||
use JetBrains\PhpStorm\NoReturn;
|
||||
use Joomla\CMS\Application\AdministratorApplication;
|
||||
use Joomla\CMS\Application\SiteApplication;
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\User\UserFactory;
|
||||
use Joomla\CMS\User\UserFactoryInterface;
|
||||
use Joomla\Registry\Registry;
|
||||
|
||||
@@ -43,8 +41,7 @@ function notifyChange($data): void
|
||||
try {
|
||||
$db = getDatabase();
|
||||
$query = "SELECT wert from #__sportsmanager_einstellungen WHERE name='api_push_key'";
|
||||
$db->setQuery($query);
|
||||
$push_key = $db->loadResult();
|
||||
$push_key = loadResult($db, $query);
|
||||
$push_server = !empty($push_key) && isset(_payload($push_key)->aud) ? _payload($push_key)->aud : '';
|
||||
if ($push_server != '' && $push_key != '') {
|
||||
$url = $push_server . (str_ends_with($push_server, '/') ? '' : '/') . 'v1/notifications/send';
|
||||
@@ -137,11 +134,8 @@ function begegnungVerlegenNotify($begegnung, $users, $vorschlagendes_team_id, $h
|
||||
$expires->modify('+16 hours');
|
||||
$db = getDatabase();
|
||||
$query = "SELECT berechtigt_team_id from #__sportsmanager_berechtigt_fuer_team where berechtigt_user_id = $user_id";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
abortWithError($db->stderr(true));
|
||||
}
|
||||
$team_id = $db->loadObjectList();
|
||||
$team_id = loadObjectList($db, $query);
|
||||
|
||||
JSON_sportsmanager::JSON([
|
||||
'token' => jwt_token([
|
||||
'sub' => $user_id,
|
||||
@@ -180,8 +174,7 @@ function begegnungVerlegenNotify($begegnung, $users, $vorschlagendes_team_id, $h
|
||||
$db = getDatabase();
|
||||
$query = $db->getQuery(true);
|
||||
$query->select('id')->from('#__users')->where('username = "' . $username . '"')->setLimit(1);
|
||||
$db->setQuery($query);
|
||||
$user_id = $db->loadResult();
|
||||
$user_id = loadResult($db, $query);
|
||||
$user = $container->get(UserFactoryInterface::class)->loadUserById($user_id);
|
||||
|
||||
//TODO: pw verification modernising: use php native methods, however this also needs new pw hashing. maybe force a pw reset on all accounts
|
||||
|
||||
@@ -7,6 +7,8 @@ use Joomla\Database\DatabaseInterface;
|
||||
use Joomla\Database\Mysql\MysqlDriver;
|
||||
use Joomla\Database\Mysqli\MysqliDriver;
|
||||
|
||||
require_once JPATH_SITE . '/components/com_sportsmanager/database/util.php';
|
||||
|
||||
function initDatabase(): void
|
||||
{
|
||||
global $sportsmanager_database_local;
|
||||
@@ -22,11 +24,7 @@ function initDatabase(): void
|
||||
$sportsmanager_database_local = Factory::getContainer()->get(DatabaseInterface::class);
|
||||
|
||||
$query = "SELECT * FROM #__sportsmanager_einstellungen";
|
||||
$sportsmanager_database_local->setQuery($query);
|
||||
if (!$sportsmanager_database_local->execute()) {
|
||||
die($sportsmanager_database_local->stderr(true));
|
||||
}
|
||||
$rows = $sportsmanager_database_local->loadObjectList();
|
||||
$rows = loadObjectList($sportsmanager_database_local, $query);
|
||||
|
||||
$database_driver = "mysql";
|
||||
$database_host = "";
|
||||
@@ -75,14 +73,13 @@ function initDatabase(): void
|
||||
if ($sportsmanager_database_external === NULL) {
|
||||
echo "<strong>" . Text::_('COM_SPORTSMANAGER_CONNECTION_EXTERNAL_DB_FAILURE') . "</strong><br><br>";
|
||||
} else {
|
||||
$query = "SELECT wert FROM #__sportsmanager_einstellungen WHERE name = 'datenbank_version'";
|
||||
$sportsmanager_database_external->setQuery($query);
|
||||
try {
|
||||
if (!$sportsmanager_database_external->execute()) {
|
||||
echo "<strong>" . Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_NO_SM_TABLES') . "</strong><br><br>";
|
||||
$sportsmanager_database_external = NULL;
|
||||
} else {
|
||||
$db_version = $sportsmanager_database_external->loadResult();
|
||||
$query = "SELECT wert FROM #__sportsmanager_einstellungen WHERE name = 'datenbank_version'";
|
||||
$db_version = loadResult($sportsmanager_database_external, $query);
|
||||
if ($db_version < 38) {
|
||||
echo "<strong>" . Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_NO_SM_VERSION') . "</strong><br><br>";
|
||||
$sportsmanager_database_external = NULL;
|
||||
|
||||
@@ -20,27 +20,15 @@ function updateDatabase(): void
|
||||
$termin_aktionen_email_setzen = false;
|
||||
|
||||
$query = "SHOW TABLE STATUS WHERE name = '" . $db->getPrefix() . "tsleague_basis' || name = '" . $db->getPrefix() . "tsleague_einstellungen'";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
$rows = $db->loadObjectList();
|
||||
$rows = loadObjectList($db, $query);
|
||||
|
||||
if (count($rows) > 0) {
|
||||
$query = "SHOW TABLE STATUS WHERE name = '" . $db->getPrefix() . "tsleague_basis'";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
$rows = $db->loadObjectList();
|
||||
$rows = loadObjectList($db, $query);
|
||||
|
||||
if (count($rows) > 0) {
|
||||
$query = "SELECT * FROM #__tsleague_basis";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
$rows = $db->loadObjectList();
|
||||
$rows = loadObjectList($db, $query);
|
||||
if (count($rows) == 0)
|
||||
die(Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_INCONSISTENCY'));
|
||||
|
||||
@@ -337,11 +325,7 @@ function updateDatabase(): void
|
||||
if ($datenbank_version < 9) {
|
||||
$query = "SELECT spieler_id, geschlecht"
|
||||
. "\n FROM #__tsleague_spieler";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
$spieler = $db->loadObjectList();
|
||||
$spieler = loadObjectList($db, $query);
|
||||
|
||||
$query = "ALTER TABLE #__tsleague_spieler CHANGE geschlecht geschlecht char(1)";
|
||||
$db->setQuery($query);
|
||||
@@ -855,11 +839,7 @@ function updateDatabase(): void
|
||||
}
|
||||
|
||||
$query = "SELECT * FROM #__tsleague_einstellungen WHERE name = 'datenbank_version'";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
$rows = $db->loadObjectList();
|
||||
$rows = loadObjectList($db, $query);
|
||||
if (count($rows) == 0)
|
||||
die(Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_INCONSISTENCY'));
|
||||
|
||||
@@ -1728,11 +1708,7 @@ function updateDatabase(): void
|
||||
}
|
||||
|
||||
$query = "SELECT * FROM #__sportsmanager_einstellungen WHERE name = 'datenbank_version'";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
$rows = $db->loadObjectList();
|
||||
$rows = loadObjectList($db, $query);
|
||||
if (count($rows) == 0)
|
||||
die(Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_INCONSISTENCY'));
|
||||
|
||||
@@ -2174,11 +2150,7 @@ function updateDatabase(): void
|
||||
. "\n SELECT YEAR(erster_tag) AS jahr FROM #__sportsmanager_bestenliste WHERE NOT ISNULL(erster_tag)"
|
||||
. "\n GROUP BY jahr"
|
||||
. "\n ORDER BY jahr";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
$jahre = $db->loadObjectList();
|
||||
$jahre = loadObjectList($db, $query);
|
||||
|
||||
if (count($jahre) > 0) {
|
||||
foreach ($jahre as $jahr) {
|
||||
@@ -2199,11 +2171,7 @@ function updateDatabase(): void
|
||||
}
|
||||
|
||||
$query = "SELECT * FROM #__sportsmanager_saison ORDER BY saisonbezeichnung DESC LIMIT 1";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
$saisons = $db->loadObjectList();
|
||||
$saisons = loadObjectList($db, $query);
|
||||
|
||||
$aktuelle_saison_id = $saisons[0]->saison_id;
|
||||
// Saisons den Veranstaltungen zuordnen
|
||||
@@ -2644,11 +2612,7 @@ function updateDatabase(): void
|
||||
. "\n INNER JOIN #__sportsmanager_veranstaltung USING (veranstaltung_id)"
|
||||
. "\n LEFT JOIN #__sportsmanager_saison USING (saison_id)"
|
||||
. "\n ORDER BY heimspielort_name, heimspielort_anschrift";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
$teams = $db->loadObjectList();
|
||||
$teams = loadObjectList($db, $query);
|
||||
|
||||
$heimspielort_name = "";
|
||||
$heimspielort_strasse = "";
|
||||
@@ -3020,11 +2984,7 @@ function updateDatabase(): void
|
||||
|
||||
$query = "SELECT * FROM #__sportsmanager_turniervoranmeldung"
|
||||
. "\n ORDER BY turnierdisziplin_id";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
$rows = $db->loadObjectList();
|
||||
$rows = loadObjectList($db, $query);
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$query = "INSERT INTO #__sportsmanager_turniermeldung (turnierdisziplin_id, rundenstufe, platz)"
|
||||
@@ -3215,11 +3175,7 @@ function updateDatabase(): void
|
||||
|
||||
if ($datenbank_version < 40) {
|
||||
$query = "SELECT * FROM #__sportsmanager_kategorie ORDER BY typ, nummer, kategorie_id DESC";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
$rows = $db->loadObjectList();
|
||||
$rows = loadObjectList($db, $query);
|
||||
|
||||
$typ = -1;
|
||||
$nummer = -1;
|
||||
@@ -4053,11 +4009,7 @@ function updateDatabase(): void
|
||||
}
|
||||
|
||||
$query = "SELECT * FROM #__sportsmanager_moderator";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
$rows = $db->loadObjectList();
|
||||
$rows = loadObjectList($db, $query);
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$moderator_id = $row->moderator_id;
|
||||
@@ -5214,8 +5166,7 @@ function updateDatabase(): void
|
||||
->from('INFORMATION_SCHEMA.COLUMNS')
|
||||
->where('TABLE_NAME = ' . $db->quote($db->replacePrefix('#__sportsmanager_rangliste')))
|
||||
->where('COLUMN_NAME = ' . $db->quote('lizenzen'));
|
||||
$db->setQuery($query);
|
||||
$exists = (bool)$db->loadResult();
|
||||
$exists = (bool)loadResult($db, $query);
|
||||
|
||||
if (!$exists) {
|
||||
$query = "ALTER TABLE #__sportsmanager_rangliste ADD lizenzen varchar(30) DEFAULT NULL AFTER streichergebnisse";
|
||||
@@ -5230,8 +5181,7 @@ function updateDatabase(): void
|
||||
->from('INFORMATION_SCHEMA.COLUMNS')
|
||||
->where('TABLE_NAME = ' . $db->quote($db->replacePrefix('#__sportsmanager_spieler')))
|
||||
->where('COLUMN_NAME = ' . $db->quote('lizenz'));
|
||||
$db->setQuery($query);
|
||||
$exists = (bool)$db->loadResult();
|
||||
$exists = (bool)loadResult($db, $query);
|
||||
|
||||
if (!$exists) {
|
||||
$query = "ALTER TABLE #__sportsmanager_spieler ADD lizenz varchar(30) DEFAULT NULL AFTER lizenznr";
|
||||
@@ -5266,14 +5216,85 @@ function updateDatabase(): void
|
||||
}
|
||||
}
|
||||
|
||||
if ($termin_aktionen_email_setzen) {
|
||||
$query = "SELECT aktion_user_id, termin_aktion_id"
|
||||
. "\n FROM #__sportsmanager_termin_aktion";
|
||||
if ($datenbank_version < 104) {
|
||||
|
||||
$query = "ALTER TABLE #__sportsmanager_veranstaltung ADD direktervergleich INT(4) NOT NULL DEFAULT '0' AFTER tabellenwertung;";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
|
||||
$query = "ALTER TABLE #__sportsmanager_team ADD setzliste_nr INT(4) NULL DEFAULT NULL AFTER veranstaltung_id;";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
|
||||
$query = "ALTER TABLE #__sportsmanager_begegnung ADD spiel_nr INT(4) NULL DEFAULT NULL AFTER spieltag;";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
|
||||
$query = "UPDATE #__sportsmanager_einstellungen"
|
||||
. "\n SET wert = '104'"
|
||||
. "\n WHERE name = 'datenbank_version'";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
$rows = $db->loadObjectList();
|
||||
}
|
||||
|
||||
if ($datenbank_version < 105) {
|
||||
|
||||
$query = "ALTER TABLE `#__sportsmanager_begegnung` ADD `spieltag_titel` VARCHAR(32) NOT NULL DEFAULT '' AFTER `spieltag`;";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
|
||||
$query = "ALTER TABLE `#__sportsmanager_veranstaltung` ADD `spieltag_titel_zeigen` INT(4) NOT NULL DEFAULT '0' AFTER `unterteilung`;";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
|
||||
$query = "ALTER TABLE `#__sportsmanager_team` ADD `teamname_kurz` VARCHAR(24) NOT NULL DEFAULT '' AFTER `teamname`;";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
|
||||
$query = "UPDATE #__sportsmanager_einstellungen"
|
||||
. "\n SET wert = '105'"
|
||||
. "\n WHERE name = 'datenbank_version'";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
}
|
||||
|
||||
if ($datenbank_version < 106) {
|
||||
|
||||
$query = "ALTER TABLE `#__sportsmanager_verein` ADD `verstecken` INT(4) NOT NULL DEFAULT '0' AFTER `ausgetreten`;";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
|
||||
$query = "UPDATE #__sportsmanager_einstellungen"
|
||||
. "\n SET wert = '106'"
|
||||
. "\n WHERE name = 'datenbank_version'";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
}
|
||||
|
||||
if ($termin_aktionen_email_setzen) {
|
||||
$query = "SELECT aktion_user_id, termin_aktion_id"
|
||||
. "\n FROM #__sportsmanager_termin_aktion";
|
||||
$rows = loadObjectList($db, $query);
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$container = Factory::getContainer();
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
use Joomla\CMS\Log\Log;
|
||||
|
||||
/**
|
||||
* @param $db
|
||||
* @param $query
|
||||
* @return mixed
|
||||
* @since 2.0.5
|
||||
*/
|
||||
function loadObjectList($db, $query): mixed
|
||||
{
|
||||
try {
|
||||
$db->setQuery($query);
|
||||
$objList = $db->loadObjectList();
|
||||
} catch (RuntimeException $e) {
|
||||
Log::add("Database error: " . $e->getMessage(), Log::ERROR, "com_sportsmanager");
|
||||
if(isJson()) {
|
||||
abortWithError($e->getMessage());
|
||||
} else {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
return $objList;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $db
|
||||
* @param $query
|
||||
* @return mixed
|
||||
* @since 2.0.5
|
||||
*/
|
||||
function loadResult($db, $query): mixed
|
||||
{
|
||||
try {
|
||||
$db->setQuery($query);
|
||||
$result = $db->loadResult();
|
||||
} catch (RuntimeException $e) {
|
||||
Log::add("Database error: " . $e->getMessage(), Log::ERROR, "com_sportsmanager");
|
||||
if(isJson()) {
|
||||
abortWithError($e->getMessage());
|
||||
} else {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
@@ -2323,6 +2323,10 @@ function mp_mult_($p1, $p2): float|int
|
||||
*/
|
||||
function mp_div_($p1, $p2): float|int
|
||||
{
|
||||
if ($p2 == 0) {
|
||||
Log::add("Division by zero detected in mp_div_: divisor was 0. Returning 0 as fallback.", Log::WARNING, "com_sportsmanager");
|
||||
return 0;
|
||||
}
|
||||
return $p1 / $p2;
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,6 @@ use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Log\Log;
|
||||
use Joomla\CMS\Router\Route;
|
||||
use Joomla\CMS\Uri\Uri;
|
||||
use Joomla\CMS\User\User;
|
||||
use Joomla\CMS\Version;
|
||||
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
@@ -7,6 +7,8 @@ use Joomla\CMS\Uri\Uri;
|
||||
use Joomla\Filesystem\File;
|
||||
use Joomla\Filesystem\Folder;
|
||||
|
||||
require_once JPATH_SITE . '/components/com_sportsmanager/database/util.php';
|
||||
|
||||
const SPORTSMANAGER_JOOMLA_PATH = JPATH_ROOT;
|
||||
define("SPORTSMANAGER_JOOMLA_URL", Uri::base());
|
||||
|
||||
@@ -241,11 +243,7 @@ function playerImage($playerId, $gender, $width = 180, $height = 240): ?string
|
||||
. "\n FROM #__sportsmanager_spieler"
|
||||
. "\n WHERE NOT ISNULL(aktueller_verein_id) AND NOT bild_ausblenden" . (!empty($spielernr) ? " AND spielernr = '$spielernr'" : " AND lizenznr = '$lizenznr'")
|
||||
. "\n ORDER BY spieler_id DESC";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
$rows = $db->loadObjectList();
|
||||
$rows = loadObjectList($db, $query);
|
||||
if (count($rows) < 1) {
|
||||
ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind
|
||||
header('HTTP/1.1 404 Not Found');
|
||||
@@ -358,7 +356,7 @@ function bildURL($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0,
|
||||
#crop=250,250,left
|
||||
#crop=250,250,right
|
||||
*/
|
||||
function yoothemeBild($typ, $id, $alternativ, $resize = '', $zusatz = ""): ?string
|
||||
function yoothemeBild($typ, $id, $alternativ, $zusatz = ""): ?string
|
||||
{
|
||||
$typ_exploded = explode("/", $typ);
|
||||
$typ = $typ_exploded[0];
|
||||
@@ -382,9 +380,9 @@ function yoothemeBild($typ, $id, $alternativ, $resize = '', $zusatz = ""): ?stri
|
||||
else
|
||||
return null;
|
||||
|
||||
$bildpfad = "/images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . "." . $ext;
|
||||
$bildpfad = SPORTSMANAGER_JOOMLA_URL . "images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . "." . $ext;
|
||||
|
||||
return '<img class="el-image" data-src="' . $bildpfad . $resize . '" ' . $zusatz . ' uk-img />';
|
||||
return '<img class="el-image" data-src="' . $bildpfad . '" ' . $zusatz . ' uk-img />';
|
||||
}
|
||||
|
||||
function bildHTML($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0, $max_height = 0, $zusatz = "", $alternativ = ""): ?string
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<?php // do not change this file, this is automatically updated while building releases, see .github/workflows/build_release.yml
|
||||
defined('_JEXEC') or die;
|
||||
return [
|
||||
'version' => 'DEV',
|
||||
'date' => '2025-08-05',
|
||||
];
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -291,8 +291,6 @@ class HTML_sportsmanager_ticker
|
||||
type="text/css"/>
|
||||
<script src="<?php echo Route::_(Uri::root(TRUE) . '/components/com_sportsmanager/js/jquery.min.js'); ?>"
|
||||
type="text/javascript"></script>
|
||||
<script type="text/javascript"
|
||||
src="<?php echo Route::_(Uri::root(TRUE) . '/components/com_sportsmanager/js/css3.js'); ?>"></script>
|
||||
<script>
|
||||
let globalresize = 0;
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ function addOnLoad($function): void
|
||||
<?php
|
||||
}
|
||||
|
||||
function SportsManagerURL($weitereParameter = null, $ssl = 0): ?string
|
||||
function SportsManagerURL($weitereParameter = "", $ssl = 0): ?string
|
||||
{
|
||||
$urlPath = handleFilter($weitereParameter);
|
||||
$joomlaBaseUrl = Uri::getInstance()->toString([
|
||||
|
||||
@@ -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"
|
||||
@@ -21,6 +21,7 @@ COM_SPORTSMANAGER_LOCATIONS="Spielorte"
|
||||
COM_SPORTSMANAGER_SEASONS="Saisons"
|
||||
COM_SPORTSMANAGER_TEAM_PLANS="Mannschaftsspielpläne"
|
||||
COM_SPORTSMANAGER_TEAM_NAME="Mannschaftsname"
|
||||
COM_SPORTSMANAGER_TEAM_NAME_SHORT="Mannschaftsname kurz (max 24)"
|
||||
COM_SPORTSMANAGER_TEAM_NAME2="Vereinsname"
|
||||
COM_SPORTSMANAGER_TEAM_SEAT="Vereinssitz"
|
||||
COM_SPORTSMANAGER_POSTPONE_RULES="Verschieberegeln"
|
||||
@@ -70,6 +71,7 @@ COM_SPORTSMANAGER_CONFIRM_REMOVE_RANKING="Willst du die Rangliste wirklich entfe
|
||||
COM_SPORTSMANAGER_ADD_INDIVIDUAL_COMPETITION="Individualwettbewerb hinzufü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"
|
||||
@@ -129,10 +131,13 @@ COM_SPORTSMANAGER_QUARTER_FINAL_SHORTCUT="1/4"
|
||||
COM_SPORTSMANAGER_ROUND_OF_16="Achtelfinale"
|
||||
COM_SPORTSMANAGER_ROUND_OF_16_SHORTCUT="1/8"
|
||||
COM_SPORTSMANAGER_ROUND_OF_32="Sechzehntelfinale"
|
||||
COM_SPORTSMANAGER_ROUND_OF_32_ALT="16-tel-Finale"
|
||||
COM_SPORTSMANAGER_ROUND_OF_32_SHORTCUT="1/16"
|
||||
COM_SPORTSMANAGER_ROUND_OF_64="Zweiunddreißigstelfinale"
|
||||
COM_SPORTSMANAGER_ROUND_OF_64_ALT="32-tel-Finale"
|
||||
COM_SPORTSMANAGER_ROUND_OF_64_SHORTCUT="1/32"
|
||||
COM_SPORTSMANAGER_ROUND_OF_128="Vierundsechzigstelfinale"
|
||||
COM_SPORTSMANAGER_ROUND_OF_128_ALT="64-tel-Finale"
|
||||
COM_SPORTSMANAGER_ROUND_OF_128_SHORTCUT="1/64"
|
||||
COM_SPORTSMANAGER_DAY_0_SHORTCUT="So."
|
||||
COM_SPORTSMANAGER_DAY_1_SHORTCUT="Mo."
|
||||
@@ -310,6 +315,9 @@ COM_SPORTSMANAGER_FOR_OTHER_CONTACT="Für andere Ansprechpartner"
|
||||
COM_SPORTSMANAGER_DATES_REGISTERED_USERS="Termine beantragten durch angemeldete Benutzer"
|
||||
COM_SPORTSMANAGER_VIEW_ELO_RATING="Elo-Wertung anzeigen"
|
||||
COM_SPORTSMANAGER_VIEW_SPORTSMANAGER_LIZENZ="Lizenz anzeigen"
|
||||
COM_SPORTSMANAGER_VIEW_LEAST_MEMBER_COUNT="Mindest Mitgliederzahl zeigen"
|
||||
COM_SPORTSMANAGER_SHOW_ORGANISATION="Verband zeigen"
|
||||
COM_SPORTSMANAGER_SHOW_TOURNAMENT_BRACKET="Turnierbaum anzeigen"
|
||||
COM_SPORTSMANAGER_PLAYER_DETAILS="Spielerdetails"
|
||||
COM_SPORTSMANAGER_PLAYER_LIST_DETAILS="Spielerliste/-details"
|
||||
COM_SPORTSMANAGER_PLAYER_EDIT="Spielerdaten durch Organisations-/Vereinsansprechpartner bearbeiten"
|
||||
@@ -379,6 +387,7 @@ COM_SPORTSMANAGER_MEMBER_STATUS="Mitgliedsstatus"
|
||||
COM_SPORTSMANAGER_ACTIVE="Aktiv"
|
||||
COM_SPORTSMANAGER_RESTRICTED="Eingeschränkt"
|
||||
COM_SPORTSMANAGER_BEATEN="Ausgetreten"
|
||||
COM_SPORTSMANAGER_HIDE="Verstecken"
|
||||
COM_SPORTSMANAGER_PASSIVE="Passiv"
|
||||
COM_SPORTSMANAGER_BEATEN_CLUB="Verein ausgetreten"
|
||||
COM_SPORTSMANAGER_SINGLE_SEED="Elo-Startwert Einzel"
|
||||
@@ -403,8 +412,9 @@ COM_SPORTSMANAGER_COUNTRY_CODE="Landeskennung"
|
||||
COM_SPORTSMANAGER_IMPORT="Importieren"
|
||||
COM_SPORTSMANAGER_IMPORT_MESSAGE="Im Import sind ausschließlich Spielerdaten zum Verein %s enthalten. Soll ausschließlich der Spielerbestand des einen Vereins aktualisiert werden, muss der zugehörige Verein unten ausgewählt werden. Beinhaltet der Import den gesamten Spielerbestand einer Organisation, muss die zugehörige Organisation gewählt werden."
|
||||
COM_SPORTSMANAGER_CHECK="Prüfen"
|
||||
COM_SPORTSMANAGER_IMPORT_CONFLICTS_MESSAGE="Im Import sind Konflikte enthalten, die im Vorfeld manuell beseitigt werden müssen."
|
||||
COM_SPORTSMANAGER_IMPORT_CONFLICTS_MESSAGE="Im Import sind Fehler oder Konflikte enthalten, die im Vorfeld manuell beseitigt werden müssen."
|
||||
COM_SPORTSMANAGER_IMPORT_DUPLICATE_MESSAGE="Versuch, Spielernr. auf eine bereits für einen anderen Spieler vergebene Spielernr. zu ändern"
|
||||
COM_SPORTSMANAGER_IMPORT_WRONG_FORMAT_PLAYERNUMBER="Eine oder mehrere Spielernummer enthalten ein ungültiges Format"
|
||||
COM_SPORTSMANAGER_NAME2="Name"
|
||||
COM_SPORTSMANAGER_DATA_IMPORT_ABORT_MESSAGE="Der Import wird abgebrochen, da Konflikte bei den zu importierenden Spielerdaten bestehen. Bitte kontaktiere einen Moderator und sende dabei die Importdatei mit!"
|
||||
COM_SPORTSMANAGER_DATA_IMPORT_NO_CONFLICTS="Es bestehen keine Konflikte bei den zu importierenden Spielerdaten."
|
||||
@@ -535,6 +545,7 @@ COM_SPORTSMANAGER_FULL_RATING="Volle Wertung"
|
||||
COM_SPORTSMANAGER_NO_RATING="Keine Wertung"
|
||||
COM_SPORTSMANAGER_TEAM_COMPETITIONS="Mannschaftswettbewerbe"
|
||||
COM_SPORTSMANAGER_TABLE_SUMMARY="Tabellenwertung"
|
||||
COM_SPORTSMANAGER_HEAD_TO_HEAD_RECORD="Direkter Vergleich"
|
||||
COM_SPORTSMANAGER_POINTS_WON_LOST_DIFFERENCE="Spielpunkte gewonnen, Spielpunkte verloren, Punktedifferenz"
|
||||
COM_SPORTSMANAGER_PERFORMANCE_INDEX="Leistungsindex (SP+ * SP+ * 100) / (SP+ + SP-), Spielpunkte gewonnen, ..."
|
||||
COM_SPORTSMANAGER_PERFORMANCE_INDEX2="Leistungsindex (S * P+ * 10) / (P+ + P-), Spielpunkte gewonnen, ..."
|
||||
@@ -603,7 +614,10 @@ COM_SPORTSMANAGER_ONLY_DETAILED_RATING_POINT_DIFFERENCE="Nur Detailwertung nach
|
||||
COM_SPORTSMANAGER_ONLY_DETAILED_POINTS_AFTER_POINTSRATE="Nur Detailwertung nach Punktequote"
|
||||
COM_SPORTSMANAGER_KO_SIMPLE_FULL="K.O. (einfach oder vollstaendige Ausspielung aller Plaetze)"
|
||||
COM_SPORTSMANAGER_MANUAL_PRO_TEAMS="Manuell (pro Mannschaft)"
|
||||
COM_SPORTSMANAGER_CUP_DRAW_EVERY_ROUND="Pokal: Jede Runde wird neu gelost"
|
||||
COM_SPORTSMANAGER_CUP_USING_SEEDING_LIST="Pokal: Losen einer Setzliste"
|
||||
COM_SPORTSMANAGER_SUBDIVISION="Unterteilung"
|
||||
COM_SPORTSMANAGER_SHOW_MATCHDAY_TITLE="Titel von Spieltag zeigen"
|
||||
COM_SPORTSMANAGER_ELO_RATING="ELO-Wertung"
|
||||
COM_SPORTSMANAGER_ELIGIBLE_FOR_EVENT="Berechtigte für Veranstaltung"
|
||||
COM_SPORTSMANAGER_TITLE_LOGO="Titel-Logo"
|
||||
@@ -631,6 +645,8 @@ COM_SPORTSMANAGER_GAMEDAY="Spieltag"
|
||||
COM_SPORTSMANAGER_GAMEDAYS="Spieltage"
|
||||
COM_SPORTSMANAGER_ROUND="Runde"
|
||||
COM_SPORTSMANAGER_ROUNDS="Runden"
|
||||
COM_SPORTSMANAGER_ROUND_TITLE="Runde Bezeichnung"
|
||||
COM_SPORTSMANAGER_MATCH_PLACE3="Spiel um Platz 3"
|
||||
COM_SPORTSMANAGER_MONTH="Monat"
|
||||
COM_SPORTSMANAGER_MONTHS="Monate"
|
||||
COM_SPORTSMANAGER_PLAYER_FROM_TEAM="Spieler von Mannschaft"
|
||||
@@ -646,7 +662,9 @@ COM_SPORTSMANAGER_SO_FAR="bisher"
|
||||
COM_SPORTSMANAGER_PLACEMENT_AREA="Platzierungsbereich"
|
||||
COM_SPORTSMANAGER_IMAGE_WITHIN_TEAM="Bild innerhalb Mannschaft"
|
||||
COM_SPORTSMANAGER_ADD_MEETING="Begegnung hinzufügen"
|
||||
COM_SPORTSMANAGER_GAMEDAY_GENERATION="Spieltag erzeugen"
|
||||
COM_SPORTSMANAGER_ROUND_GENERATION="Runde erzeugen"
|
||||
COM_SPORTSMANAGER_CUP_ROUND_GENERATION="Pokalrunde auslosen"
|
||||
COM_SPORTSMANAGER_GENERATE_GROUP_GAME="Gruppenspiele erzeugen"
|
||||
COM_SPORTSMANAGER_IMPORT_GROUP_GAME="Gruppenspiele importieren"
|
||||
COM_SPORTSMANAGER_IMPORT_GROUP_GAME2="Gruppenspiele: Importieren"
|
||||
@@ -774,6 +792,7 @@ COM_SPORTSMANAGER_FEDERAL_STATES="Bundesländer"
|
||||
COM_SPORTSMANAGER_STATES="Länder"
|
||||
COM_SPORTSMANAGER_YEAR="Jahr"
|
||||
COM_SPORTSMANAGER_ADDITION="Zusatz"
|
||||
COM_SPORTSMANAGER_LOCATION="Ort"
|
||||
COM_SPORTSMANAGER_STATE="Land"
|
||||
COM_SPORTSMANAGER_FEDERAL_="Bundes-"
|
||||
COM_SPORTSMANAGER_INFO="Info"
|
||||
@@ -989,3 +1008,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"
|
||||
@@ -21,6 +21,7 @@ COM_SPORTSMANAGER_LOCATIONS="Locations"
|
||||
COM_SPORTSMANAGER_SEASONS="Seasons"
|
||||
COM_SPORTSMANAGER_TEAM_PLANS="Team plans"
|
||||
COM_SPORTSMANAGER_TEAM_NAME="Team name"
|
||||
COM_SPORTSMANAGER_TEAM_NAME_SHORT="Team name short (max 24)"
|
||||
COM_SPORTSMANAGER_TEAM_NAME2="Club name"
|
||||
COM_SPORTSMANAGER_TEAM_SEAT="Club location"
|
||||
COM_SPORTSMANAGER_POSTPONE_RULES="Postpone rules"
|
||||
@@ -70,6 +71,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"
|
||||
@@ -128,11 +130,14 @@ COM_SPORTSMANAGER_QUARTER_FINAL="Quarter final"
|
||||
COM_SPORTSMANAGER_QUARTER_FINAL_SHORTCUT="1/4"
|
||||
COM_SPORTSMANAGER_ROUND_OF_16="Round of sixteen"
|
||||
COM_SPORTSMANAGER_ROUND_OF_16_SHORTCUT="1/8"
|
||||
COM_SPORTSMANAGER_ROUND_OF_32="Round of thiry-two"
|
||||
COM_SPORTSMANAGER_ROUND_OF_32="Round of thirty-two"
|
||||
COM_SPORTSMANAGER_ROUND_OF_32_ALT="Round of thirty-two"
|
||||
COM_SPORTSMANAGER_ROUND_OF_32_SHORTCUT="1/16"
|
||||
COM_SPORTSMANAGER_ROUND_OF_64="Round of sixty-four"
|
||||
COM_SPORTSMANAGER_ROUND_OF_64_ALT="Round of sixty-four"
|
||||
COM_SPORTSMANAGER_ROUND_OF_64_SHORTCUT="1/32"
|
||||
COM_SPORTSMANAGER_ROUND_OF_128="Round of 128"
|
||||
COM_SPORTSMANAGER_ROUND_OF_128_ALT="Round of 128"
|
||||
COM_SPORTSMANAGER_ROUND_OF_128_SHORTCUT="1/64"
|
||||
COM_SPORTSMANAGER_DAY_0_SHORTCUT="Su."
|
||||
COM_SPORTSMANAGER_DAY_1_SHORTCUT="Mo."
|
||||
@@ -310,6 +315,9 @@ COM_SPORTSMANAGER_FOR_OTHER_CONTACT="For other contact"
|
||||
COM_SPORTSMANAGER_DATES_REGISTERED_USERS="Apply dates by registered users"
|
||||
COM_SPORTSMANAGER_VIEW_ELO_RATING="View Elo rating"
|
||||
COM_SPORTSMANAGER_VIEW_SPORTSMANAGER_LIZENZ="Show License"
|
||||
COM_SPORTSMANAGER_VIEW_LEAST_MEMBER_COUNT="Show least member count"
|
||||
COM_SPORTSMANAGER_SHOW_ORGANISATION="Show organisation"
|
||||
COM_SPORTSMANAGER_SHOW_TOURNAMENT_BRACKET="Show Tournament Bracket"
|
||||
COM_SPORTSMANAGER_PLAYER_DETAILS="Player details"
|
||||
COM_SPORTSMANAGER_PLAYER_LIST_DETAILS="Player list details"
|
||||
COM_SPORTSMANAGER_PLAYER_EDIT="Edit player data by organisation/club contacts"
|
||||
@@ -379,6 +387,7 @@ COM_SPORTSMANAGER_MEMBER_STATUS="Member status"
|
||||
COM_SPORTSMANAGER_ACTIVE="Active"
|
||||
COM_SPORTSMANAGER_RESTRICTED="Restricted"
|
||||
COM_SPORTSMANAGER_BEATEN="Excreted"
|
||||
COM_SPORTSMANAGER_HIDE="Hide"
|
||||
COM_SPORTSMANAGER_PASSIVE="Passive"
|
||||
COM_SPORTSMANAGER_BEATEN_CLUB="Club excreted"
|
||||
COM_SPORTSMANAGER_SINGLE_SEED="Elo starting value singles"
|
||||
@@ -403,8 +412,9 @@ COM_SPORTSMANAGER_COUNTRY_CODE="Country code"
|
||||
COM_SPORTSMANAGER_IMPORT="Import"
|
||||
COM_SPORTSMANAGER_IMPORT_MESSAGE="In the import there are only player information about club %s present. Shall only the members of that one club be updated, the associated club has to be selected down here. If the import contains all members of the organisation then the organisation must be selected."
|
||||
COM_SPORTSMANAGER_CHECK="Check"
|
||||
COM_SPORTSMANAGER_IMPORT_CONFLICTS_MESSAGE="There are conflicts in the import which have to be fixed manually first."
|
||||
COM_SPORTSMANAGER_IMPORT_CONFLICTS_MESSAGE="There are faults or conflicts in the import which have to be fixed manually first."
|
||||
COM_SPORTSMANAGER_IMPORT_DUPLICATE_MESSAGE="Attempt to change player number into one that is already assigned to another player."
|
||||
COM_SPORTSMANAGER_IMPORT_WRONG_FORMAT_PLAYERNUMBER="One or more player numbers contain an invalid format"
|
||||
COM_SPORTSMANAGER_NAME2="Name"
|
||||
COM_SPORTSMANAGER_DATA_IMPORT_ABORT_MESSAGE="The import has been aborted because there are conflicts in the containing player information. Please contact a moderator and attach the import!"
|
||||
COM_SPORTSMANAGER_DATA_IMPORT_NO_CONFLICTS="There are conflicts in the containing player information."
|
||||
@@ -535,6 +545,7 @@ COM_SPORTSMANAGER_FULL_RATING="Full rating"
|
||||
COM_SPORTSMANAGER_NO_RATING="No rating"
|
||||
COM_SPORTSMANAGER_TEAM_COMPETITIONS="Team competitions"
|
||||
COM_SPORTSMANAGER_TABLE_SUMMARY="Table rating"
|
||||
COM_SPORTSMANAGER_HEAD_TO_HEAD_RECORD="Head-to-head record"
|
||||
COM_SPORTSMANAGER_POINTS_WON_LOST_DIFFERENCE="Game points won, game points lost, point difference"
|
||||
COM_SPORTSMANAGER_PERFORMANCE_INDEX="Performance index (GP+ * GP+ * 100) / (GP+ + GP-), game points won, ..."
|
||||
COM_SPORTSMANAGER_PERFORMANCE_INDEX2="Performance index (games * P+ * 10) / (P+ + P-), game points won, ..."
|
||||
@@ -603,7 +614,10 @@ COM_SPORTSMANAGER_ONLY_DETAILED_RATING_POINT_DIFFERENCE="Only detailed ranking b
|
||||
COM_SPORTSMANAGER_ONLY_DETAILED_POINTS_AFTER_POINTSRATE="Only detailed ranking by points rate"
|
||||
COM_SPORTSMANAGER_KO_SIMPLE_FULL="K.O. (singles or full playout of all places)"
|
||||
COM_SPORTSMANAGER_MANUAL_PRO_TEAMS="Manual (per team)"
|
||||
COM_SPORTSMANAGER_CUP_DRAW_EVERY_ROUND="Cup: draw every round"
|
||||
COM_SPORTSMANAGER_CUP_USING_SEEDING_LIST="Cup: draw seeding list"
|
||||
COM_SPORTSMANAGER_SUBDIVISION="Subdivision"
|
||||
COM_SPORTSMANAGER_SHOW_MATCHDAY_TITLE="Show title matchday"
|
||||
COM_SPORTSMANAGER_ELO_RATING="Elo rating"
|
||||
COM_SPORTSMANAGER_ELIGIBLE_FOR_EVENT="Eligibles for competition"
|
||||
COM_SPORTSMANAGER_TITLE_LOGO="Title logo"
|
||||
@@ -631,6 +645,8 @@ COM_SPORTSMANAGER_GAMEDAY="Gameday"
|
||||
COM_SPORTSMANAGER_GAMEDAYS="Gamedays"
|
||||
COM_SPORTSMANAGER_ROUND="Round"
|
||||
COM_SPORTSMANAGER_ROUNDS="Rounds"
|
||||
COM_SPORTSMANAGER_ROUND_TITLE="Round Title"
|
||||
COM_SPORTSMANAGER_MATCH_PLACE3="Match for place 3"
|
||||
COM_SPORTSMANAGER_MONTH="Month"
|
||||
COM_SPORTSMANAGER_MONTHS="Months"
|
||||
COM_SPORTSMANAGER_PLAYER_FROM_TEAM="Player of team"
|
||||
@@ -646,7 +662,9 @@ COM_SPORTSMANAGER_SO_FAR="so far"
|
||||
COM_SPORTSMANAGER_PLACEMENT_AREA="Placement area"
|
||||
COM_SPORTSMANAGER_IMAGE_WITHIN_TEAM="Image within team"
|
||||
COM_SPORTSMANAGER_ADD_MEETING="Add match"
|
||||
COM_SPORTSMANAGER_GAMEDAY_GENERATION="Generate gameday"
|
||||
COM_SPORTSMANAGER_ROUND_GENERATION="Generate round"
|
||||
COM_SPORTSMANAGER_CUP_ROUND_GENERATION="Generate cup round"
|
||||
COM_SPORTSMANAGER_GENERATE_GROUP_GAME="Generate group games"
|
||||
COM_SPORTSMANAGER_Import_GROUP_GAME="Import group games"
|
||||
COM_SPORTSMANAGER_Import_GROUP_GAME2="Group games: Import"
|
||||
@@ -774,6 +792,7 @@ COM_SPORTSMANAGER_FEDERAL_STATES="State"
|
||||
COM_SPORTSMANAGER_STATES="Countries"
|
||||
COM_SPORTSMANAGER_YEAR="Year"
|
||||
COM_SPORTSMANAGER_ADDITION="Addition"
|
||||
COM_SPORTSMANAGER_LOCATION="Location"
|
||||
COM_SPORTSMANAGER_STATE="Germany"
|
||||
COM_SPORTSMANAGER_FEDERAL_="Federal "
|
||||
COM_SPORTSMANAGER_INFO="Info"
|
||||
@@ -987,3 +1006,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"
|
||||
|
||||
@@ -137,6 +137,8 @@ return new class () implements InstallerScriptInterface
|
||||
. "\n `tisch` tinytext DEFAULT NULL,"
|
||||
. "\n `zeitpunkt` datetime DEFAULT NULL,"
|
||||
. "\n `spieltag` smallint(6) DEFAULT NULL,"
|
||||
. "\n `spieltag_titel` VARCHAR(32) NOT NULL DEFAULT '',"
|
||||
. "\n `spiel_nr` tinyint(4) DEFAULT NULL,"
|
||||
. "\n `heim_punkte` smallint(6) DEFAULT NULL,"
|
||||
. "\n `gast_punkte` smallint(6) DEFAULT NULL,"
|
||||
. "\n `heim_spielpunkte` smallint(6) DEFAULT NULL,"
|
||||
@@ -680,7 +682,9 @@ return new class () implements InstallerScriptInterface
|
||||
. "\n `teamgruppe_id` int(11) DEFAULT NULL,"
|
||||
. "\n `verein_id` int(11) DEFAULT NULL,"
|
||||
. "\n `veranstaltung_id` int(11) NOT NULL DEFAULT '0',"
|
||||
. "\n `teamname` varchar(50) NOT NULL,"
|
||||
. "\n `setzliste_nr` tinyint(4) DEFAULT NULL,"
|
||||
. "\n `teamname` varchar(50) NOT NULL DEFAULT '',"
|
||||
. "\n `teamname_kurz` VARCHAR(24) NOT NULL DEFAULT '',"
|
||||
. "\n `tischtyp` varchar(200) DEFAULT NULL,"
|
||||
. "\n `tischeigenschaften` varchar(200) DEFAULT NULL,"
|
||||
. "\n `zusatzpunkte` float(6,2) DEFAULT NULL,"
|
||||
@@ -1033,12 +1037,14 @@ return new class () implements InstallerScriptInterface
|
||||
. "\n `modus_id` int(11) NOT NULL DEFAULT '0',"
|
||||
. "\n `verschieberegel_id` int(11) NOT NULL DEFAULT '0',"
|
||||
. "\n `tabellenwertung` tinyint(4) NOT NULL DEFAULT '0',"
|
||||
. "\n `direktervergleich` tinyint(4) NOT NULL DEFAULT '0',"
|
||||
. "\n `unterteilung` tinyint(4) NOT NULL DEFAULT '0',"
|
||||
. "\n `spieltag_titel_zeigen` INT(4) NOT NULL DEFAULT '0',"
|
||||
. "\n `erster_tag` date NOT NULL DEFAULT '0000-00-00',"
|
||||
. "\n `letzter_tag` date DEFAULT NULL,"
|
||||
. "\n `elo_wertung` tinyint(4) DEFAULT NULL,"
|
||||
. "\n `logo_url` TINYTEXT NOT NULL,"
|
||||
. "\n `ticker_logo_url` TINYTEXT NOT NULL,"
|
||||
. "\n `logo_url` TINYTEXT NOT NULL,"
|
||||
. "\n `ticker_logo_url` TINYTEXT NOT NULL,"
|
||||
. "\n `status` tinyint(4) NOT NULL DEFAULT '0',"
|
||||
. "\n `reihenfolge` tinyint(4) DEFAULT '1',"
|
||||
. "\n `kategorie` tinyint(4) DEFAULT '1',"
|
||||
@@ -1060,6 +1066,7 @@ return new class () implements InstallerScriptInterface
|
||||
. "\n `url` varchar(150) DEFAULT NULL,"
|
||||
. "\n `beschreibung` varchar(500) DEFAULT NULL,"
|
||||
. "\n `ausgetreten` tinyint(1) DEFAULT '0',"
|
||||
. "\n `verstecken` INT(4) NOT NULL DEFAULT '0',"
|
||||
. "\n PRIMARY KEY (`verein_id`),"
|
||||
. "\n KEY `veranstalter_id` (`veranstalter_id`)"
|
||||
. "\n) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
|
||||
@@ -1110,7 +1117,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 = '106';";
|
||||
$db->setQuery( $query );
|
||||
if (!$db->execute()) { die($db->stderr(true)); }
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<authorEmail>it@dtfb.de</authorEmail>
|
||||
<copyright>All rights reserved</copyright>
|
||||
<license>GNU/GPL</license>
|
||||
<version>2.0.0</version>
|
||||
<version>DEV</version>
|
||||
<description>Verwaltung von Spielern und Vereinen in Mannschafts- und Individualwettbewerben</description>
|
||||
<namespace path="src">Dtfb\Component\com_sportsmanager</namespace>
|
||||
<files folder="site">
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user