Compare commits

..

2 Commits

Author SHA1 Message Date
Tim e0d0f0f1c1 Removed nowrap comments 2025-06-30 14:55:04 +00:00
google-labs-jules[bot] 7d1fae417d I've made some improvements to the mobile usability of the Sportsmanager views.
I implemented responsive design features using the UIkit CSS framework to enhance your experience on mobile devices.

Here are the key changes in `src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php`:
- I made images responsive by removing fixed dimensions and applying UIkit classes like `uk-responsive-width` or `uk-preserve-width`.
- I improved table responsiveness by removing `nowrap` attributes to allow text wrapping and applying `uk-visible@<breakpoint>` classes to hide less critical columns on smaller screens.
- I utilized `uk-table-responsive` for UIkit's default responsive table behavior on some tables.
- I ensured player card layouts in `mannschaftDetails` and `vereinDetails` use UIkit's grid system.
- I removed various fixed pixel widths from table cells to allow for more fluid layouts.

I identified the `individualwettbewerb` pyramid layout as an area that may require further CSS fine-tuning or PHP refactoring for optimal responsiveness. I've noted specific CSS media query suggestions for future implementation by a developer with visual testing capabilities.
2025-06-03 08:05:16 +00:00
31 changed files with 5857 additions and 5502 deletions
-25
View File
@@ -1,25 +0,0 @@
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
@@ -1,23 +0,0 @@
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
@@ -1,25 +0,0 @@
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']
});
}
-93
View File
@@ -1,93 +0,0 @@
# 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
- 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
@@ -1,39 +0,0 @@
# 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 }}
+7 -50
View File
@@ -1,25 +1,16 @@
# SportsManager # SportsManager
## DEV/STAGE environments ## Deploy status
| LV | HOSTER | DOMAIN | BRANCH | ### 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)
| 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 environments ### 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)
| LV | HOSTER | DOMAIN | BRANCH | [![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)
| ------ | -------- | ------------------------------------------------ | ------------------- |
| 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 ## Test setup
@@ -49,37 +40,3 @@ joomla specific database prefixes like #__
To set it up, insert into the configuration popup which follows after you enable the framework support: To set it up, insert into the configuration popup which follows after you enable the framework support:
Joomla install path: `./data/joomla_data` Joomla install path: `./data/joomla_data`
JConfig: `./data/joomla_data/configuration.php` 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
-2
View File
@@ -1,2 +0,0 @@
This is no official release!
The Release and the release notes will be generated by github actions
-1
View File
@@ -30,7 +30,6 @@ services:
MYSQL_USER: joomla MYSQL_USER: joomla
MYSQL_PASSWORD: examplepass MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1' MYSQL_RANDOM_ROOT_PASSWORD: '1'
TZ: Europe/Berlin
volumes: volumes:
- joomla_database:/var/lib/mysql - joomla_database:/var/lib/mysql
networks: networks:
-9
View File
@@ -1924,12 +1924,3 @@ opcache.file_cache = /tmp/opcache_file
; List of headers files to preload, wildcard patterns allowed. ; List of headers files to preload, wildcard patterns allowed.
;ffi.preload= ;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
+1 -5
View File
@@ -43,7 +43,7 @@ export const config = {
watch: ['src/structure/**/*.{php,html,xml,ini,less,json,js,css}'], watch: ['src/structure/**/*.{php,html,xml,ini,less,json,js,css}'],
}, },
copyrelease: { copyrelease: {
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}'], 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}'],
replacesrc: ['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/' dest: 'releasefiles/'
}, },
@@ -90,10 +90,6 @@ export const config = {
{ {
src: './releasefiles/plugins/system/kickyootheme/**/**', src: './releasefiles/plugins/system/kickyootheme/**/**',
dest: 'sourcefiles/plg_system_kickyootheme' dest: 'sourcefiles/plg_system_kickyootheme'
},
{
src: './releasefiles/RELEASE_NOTES.md',
dest: 'sourcefiles/com_sportsmanager/admin/'
} }
], ],
package: [ package: [
+2 -2
View File
@@ -1,7 +1,7 @@
{ {
"name": "sportsmanager", "name": "sportsmanager",
"description": "", "description": "",
"version": "2.0.0", "version": "0.0.1",
"scripts": { "scripts": {
"boilerplate": "cross-env NODE_ENV=development gulp boilerplate", "boilerplate": "cross-env NODE_ENV=development gulp boilerplate",
"build": "cross-env NODE_ENV=production gulp build", "build": "cross-env NODE_ENV=production gulp build",
@@ -16,7 +16,7 @@
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://github.com/Deutscher-Tischfussballbund/com_sportsmanager.git" "url": "git+https://github.com/nielsnuebel/com_sportsmanager.git"
}, },
"keywords": [], "keywords": [],
"author": { "author": {
@@ -24,15 +24,6 @@ class HtmlView extends BaseHtmlView
?> ?>
<h3><?php echo Text::_('COM_SPORTSMANAGER'); ?> &#8211; Created by Sven Nickel | Maintained by DTFB</h3> <h3><?php echo Text::_('COM_SPORTSMANAGER'); ?> &#8211; Created by Sven Nickel | Maintained by DTFB</h3>
<?php <?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 // Display the template
parent::display($tpl); parent::display($tpl);
} }
File diff suppressed because it is too large Load Diff
@@ -4,8 +4,10 @@
*/ */
use JetBrains\PhpStorm\NoReturn; use JetBrains\PhpStorm\NoReturn;
use Joomla\CMS\Application\AdministratorApplication;
use Joomla\CMS\Application\SiteApplication; use Joomla\CMS\Application\SiteApplication;
use Joomla\CMS\Factory; use Joomla\CMS\Factory;
use Joomla\CMS\User\UserFactory;
use Joomla\CMS\User\UserFactoryInterface; use Joomla\CMS\User\UserFactoryInterface;
use Joomla\Registry\Registry; use Joomla\Registry\Registry;
@@ -41,7 +43,8 @@ function notifyChange($data): void
try { try {
$db = getDatabase(); $db = getDatabase();
$query = "SELECT wert from #__sportsmanager_einstellungen WHERE name='api_push_key'"; $query = "SELECT wert from #__sportsmanager_einstellungen WHERE name='api_push_key'";
$push_key = loadResult($db, $query); $db->setQuery($query);
$push_key = $db->loadResult();
$push_server = !empty($push_key) && isset(_payload($push_key)->aud) ? _payload($push_key)->aud : ''; $push_server = !empty($push_key) && isset(_payload($push_key)->aud) ? _payload($push_key)->aud : '';
if ($push_server != '' && $push_key != '') { if ($push_server != '' && $push_key != '') {
$url = $push_server . (str_ends_with($push_server, '/') ? '' : '/') . 'v1/notifications/send'; $url = $push_server . (str_ends_with($push_server, '/') ? '' : '/') . 'v1/notifications/send';
@@ -134,8 +137,11 @@ function begegnungVerlegenNotify($begegnung, $users, $vorschlagendes_team_id, $h
$expires->modify('+16 hours'); $expires->modify('+16 hours');
$db = getDatabase(); $db = getDatabase();
$query = "SELECT berechtigt_team_id from #__sportsmanager_berechtigt_fuer_team where berechtigt_user_id = $user_id"; $query = "SELECT berechtigt_team_id from #__sportsmanager_berechtigt_fuer_team where berechtigt_user_id = $user_id";
$team_id = loadObjectList($db, $query); $db->setQuery($query);
if (!$db->execute()) {
abortWithError($db->stderr(true));
}
$team_id = $db->loadObjectList();
JSON_sportsmanager::JSON([ JSON_sportsmanager::JSON([
'token' => jwt_token([ 'token' => jwt_token([
'sub' => $user_id, 'sub' => $user_id,
@@ -174,7 +180,8 @@ function begegnungVerlegenNotify($begegnung, $users, $vorschlagendes_team_id, $h
$db = getDatabase(); $db = getDatabase();
$query = $db->getQuery(true); $query = $db->getQuery(true);
$query->select('id')->from('#__users')->where('username = "' . $username . '"')->setLimit(1); $query->select('id')->from('#__users')->where('username = "' . $username . '"')->setLimit(1);
$user_id = loadResult($db, $query); $db->setQuery($query);
$user_id = $db->loadResult();
$user = $container->get(UserFactoryInterface::class)->loadUserById($user_id); $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 //TODO: pw verification modernising: use php native methods, however this also needs new pw hashing. maybe force a pw reset on all accounts
@@ -7,8 +7,6 @@ use Joomla\Database\DatabaseInterface;
use Joomla\Database\Mysql\MysqlDriver; use Joomla\Database\Mysql\MysqlDriver;
use Joomla\Database\Mysqli\MysqliDriver; use Joomla\Database\Mysqli\MysqliDriver;
require_once JPATH_SITE . '/components/com_sportsmanager/database/util.php';
function initDatabase(): void function initDatabase(): void
{ {
global $sportsmanager_database_local; global $sportsmanager_database_local;
@@ -24,7 +22,11 @@ function initDatabase(): void
$sportsmanager_database_local = Factory::getContainer()->get(DatabaseInterface::class); $sportsmanager_database_local = Factory::getContainer()->get(DatabaseInterface::class);
$query = "SELECT * FROM #__sportsmanager_einstellungen"; $query = "SELECT * FROM #__sportsmanager_einstellungen";
$rows = loadObjectList($sportsmanager_database_local, $query); $sportsmanager_database_local->setQuery($query);
if (!$sportsmanager_database_local->execute()) {
die($sportsmanager_database_local->stderr(true));
}
$rows = $sportsmanager_database_local->loadObjectList();
$database_driver = "mysql"; $database_driver = "mysql";
$database_host = ""; $database_host = "";
@@ -73,13 +75,14 @@ function initDatabase(): void
if ($sportsmanager_database_external === NULL) { if ($sportsmanager_database_external === NULL) {
echo "<strong>" . Text::_('COM_SPORTSMANAGER_CONNECTION_EXTERNAL_DB_FAILURE') . "</strong><br><br>"; echo "<strong>" . Text::_('COM_SPORTSMANAGER_CONNECTION_EXTERNAL_DB_FAILURE') . "</strong><br><br>";
} else { } else {
$query = "SELECT wert FROM #__sportsmanager_einstellungen WHERE name = 'datenbank_version'";
$sportsmanager_database_external->setQuery($query);
try { try {
if (!$sportsmanager_database_external->execute()) { if (!$sportsmanager_database_external->execute()) {
echo "<strong>" . Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_NO_SM_TABLES') . "</strong><br><br>"; echo "<strong>" . Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_NO_SM_TABLES') . "</strong><br><br>";
$sportsmanager_database_external = NULL; $sportsmanager_database_external = NULL;
} else { } else {
$query = "SELECT wert FROM #__sportsmanager_einstellungen WHERE name = 'datenbank_version'"; $db_version = $sportsmanager_database_external->loadResult();
$db_version = loadResult($sportsmanager_database_external, $query);
if ($db_version < 38) { if ($db_version < 38) {
echo "<strong>" . Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_NO_SM_VERSION') . "</strong><br><br>"; echo "<strong>" . Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_NO_SM_VERSION') . "</strong><br><br>";
$sportsmanager_database_external = NULL; $sportsmanager_database_external = NULL;
@@ -20,15 +20,27 @@ function updateDatabase(): void
$termin_aktionen_email_setzen = false; $termin_aktionen_email_setzen = false;
$query = "SHOW TABLE STATUS WHERE name = '" . $db->getPrefix() . "tsleague_basis' || name = '" . $db->getPrefix() . "tsleague_einstellungen'"; $query = "SHOW TABLE STATUS WHERE name = '" . $db->getPrefix() . "tsleague_basis' || name = '" . $db->getPrefix() . "tsleague_einstellungen'";
$rows = loadObjectList($db, $query); $db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
if (count($rows) > 0) { if (count($rows) > 0) {
$query = "SHOW TABLE STATUS WHERE name = '" . $db->getPrefix() . "tsleague_basis'"; $query = "SHOW TABLE STATUS WHERE name = '" . $db->getPrefix() . "tsleague_basis'";
$rows = loadObjectList($db, $query); $db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
if (count($rows) > 0) { if (count($rows) > 0) {
$query = "SELECT * FROM #__tsleague_basis"; $query = "SELECT * FROM #__tsleague_basis";
$rows = loadObjectList($db, $query); $db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
if (count($rows) == 0) if (count($rows) == 0)
die(Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_INCONSISTENCY')); die(Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_INCONSISTENCY'));
@@ -325,7 +337,11 @@ function updateDatabase(): void
if ($datenbank_version < 9) { if ($datenbank_version < 9) {
$query = "SELECT spieler_id, geschlecht" $query = "SELECT spieler_id, geschlecht"
. "\n FROM #__tsleague_spieler"; . "\n FROM #__tsleague_spieler";
$spieler = loadObjectList($db, $query); $db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$spieler = $db->loadObjectList();
$query = "ALTER TABLE #__tsleague_spieler CHANGE geschlecht geschlecht char(1)"; $query = "ALTER TABLE #__tsleague_spieler CHANGE geschlecht geschlecht char(1)";
$db->setQuery($query); $db->setQuery($query);
@@ -839,7 +855,11 @@ function updateDatabase(): void
} }
$query = "SELECT * FROM #__tsleague_einstellungen WHERE name = 'datenbank_version'"; $query = "SELECT * FROM #__tsleague_einstellungen WHERE name = 'datenbank_version'";
$rows = loadObjectList($db, $query); $db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
if (count($rows) == 0) if (count($rows) == 0)
die(Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_INCONSISTENCY')); die(Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_INCONSISTENCY'));
@@ -1708,7 +1728,11 @@ function updateDatabase(): void
} }
$query = "SELECT * FROM #__sportsmanager_einstellungen WHERE name = 'datenbank_version'"; $query = "SELECT * FROM #__sportsmanager_einstellungen WHERE name = 'datenbank_version'";
$rows = loadObjectList($db, $query); $db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
if (count($rows) == 0) if (count($rows) == 0)
die(Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_INCONSISTENCY')); die(Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_INCONSISTENCY'));
@@ -2150,7 +2174,11 @@ function updateDatabase(): void
. "\n SELECT YEAR(erster_tag) AS jahr FROM #__sportsmanager_bestenliste WHERE NOT ISNULL(erster_tag)" . "\n SELECT YEAR(erster_tag) AS jahr FROM #__sportsmanager_bestenliste WHERE NOT ISNULL(erster_tag)"
. "\n GROUP BY jahr" . "\n GROUP BY jahr"
. "\n ORDER BY jahr"; . "\n ORDER BY jahr";
$jahre = loadObjectList($db, $query); $db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$jahre = $db->loadObjectList();
if (count($jahre) > 0) { if (count($jahre) > 0) {
foreach ($jahre as $jahr) { foreach ($jahre as $jahr) {
@@ -2171,7 +2199,11 @@ function updateDatabase(): void
} }
$query = "SELECT * FROM #__sportsmanager_saison ORDER BY saisonbezeichnung DESC LIMIT 1"; $query = "SELECT * FROM #__sportsmanager_saison ORDER BY saisonbezeichnung DESC LIMIT 1";
$saisons = loadObjectList($db, $query); $db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$saisons = $db->loadObjectList();
$aktuelle_saison_id = $saisons[0]->saison_id; $aktuelle_saison_id = $saisons[0]->saison_id;
// Saisons den Veranstaltungen zuordnen // Saisons den Veranstaltungen zuordnen
@@ -2612,7 +2644,11 @@ function updateDatabase(): void
. "\n INNER JOIN #__sportsmanager_veranstaltung USING (veranstaltung_id)" . "\n INNER JOIN #__sportsmanager_veranstaltung USING (veranstaltung_id)"
. "\n LEFT JOIN #__sportsmanager_saison USING (saison_id)" . "\n LEFT JOIN #__sportsmanager_saison USING (saison_id)"
. "\n ORDER BY heimspielort_name, heimspielort_anschrift"; . "\n ORDER BY heimspielort_name, heimspielort_anschrift";
$teams = loadObjectList($db, $query); $db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$teams = $db->loadObjectList();
$heimspielort_name = ""; $heimspielort_name = "";
$heimspielort_strasse = ""; $heimspielort_strasse = "";
@@ -2984,7 +3020,11 @@ function updateDatabase(): void
$query = "SELECT * FROM #__sportsmanager_turniervoranmeldung" $query = "SELECT * FROM #__sportsmanager_turniervoranmeldung"
. "\n ORDER BY turnierdisziplin_id"; . "\n ORDER BY turnierdisziplin_id";
$rows = loadObjectList($db, $query); $db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
foreach ($rows as $row) { foreach ($rows as $row) {
$query = "INSERT INTO #__sportsmanager_turniermeldung (turnierdisziplin_id, rundenstufe, platz)" $query = "INSERT INTO #__sportsmanager_turniermeldung (turnierdisziplin_id, rundenstufe, platz)"
@@ -3175,7 +3215,11 @@ function updateDatabase(): void
if ($datenbank_version < 40) { if ($datenbank_version < 40) {
$query = "SELECT * FROM #__sportsmanager_kategorie ORDER BY typ, nummer, kategorie_id DESC"; $query = "SELECT * FROM #__sportsmanager_kategorie ORDER BY typ, nummer, kategorie_id DESC";
$rows = loadObjectList($db, $query); $db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
$typ = -1; $typ = -1;
$nummer = -1; $nummer = -1;
@@ -4009,7 +4053,11 @@ function updateDatabase(): void
} }
$query = "SELECT * FROM #__sportsmanager_moderator"; $query = "SELECT * FROM #__sportsmanager_moderator";
$rows = loadObjectList($db, $query); $db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
foreach ($rows as $row) { foreach ($rows as $row) {
$moderator_id = $row->moderator_id; $moderator_id = $row->moderator_id;
@@ -5166,7 +5214,8 @@ function updateDatabase(): void
->from('INFORMATION_SCHEMA.COLUMNS') ->from('INFORMATION_SCHEMA.COLUMNS')
->where('TABLE_NAME = ' . $db->quote($db->replacePrefix('#__sportsmanager_rangliste'))) ->where('TABLE_NAME = ' . $db->quote($db->replacePrefix('#__sportsmanager_rangliste')))
->where('COLUMN_NAME = ' . $db->quote('lizenzen')); ->where('COLUMN_NAME = ' . $db->quote('lizenzen'));
$exists = (bool)loadResult($db, $query); $db->setQuery($query);
$exists = (bool)$db->loadResult();
if (!$exists) { if (!$exists) {
$query = "ALTER TABLE #__sportsmanager_rangliste ADD lizenzen varchar(30) DEFAULT NULL AFTER streichergebnisse"; $query = "ALTER TABLE #__sportsmanager_rangliste ADD lizenzen varchar(30) DEFAULT NULL AFTER streichergebnisse";
@@ -5181,7 +5230,8 @@ function updateDatabase(): void
->from('INFORMATION_SCHEMA.COLUMNS') ->from('INFORMATION_SCHEMA.COLUMNS')
->where('TABLE_NAME = ' . $db->quote($db->replacePrefix('#__sportsmanager_spieler'))) ->where('TABLE_NAME = ' . $db->quote($db->replacePrefix('#__sportsmanager_spieler')))
->where('COLUMN_NAME = ' . $db->quote('lizenz')); ->where('COLUMN_NAME = ' . $db->quote('lizenz'));
$exists = (bool)loadResult($db, $query); $db->setQuery($query);
$exists = (bool)$db->loadResult();
if (!$exists) { if (!$exists) {
$query = "ALTER TABLE #__sportsmanager_spieler ADD lizenz varchar(30) DEFAULT NULL AFTER lizenznr"; $query = "ALTER TABLE #__sportsmanager_spieler ADD lizenz varchar(30) DEFAULT NULL AFTER lizenznr";
@@ -5216,39 +5266,14 @@ function updateDatabase(): void
} }
} }
if ($datenbank_version < 104) { if ($termin_aktionen_email_setzen) {
$query = "SELECT aktion_user_id, termin_aktion_id"
$query = "ALTER TABLE #__sportsmanager_veranstaltung ADD direktervergleich INT(4) NOT NULL DEFAULT '0' AFTER tabellenwertung;"; . "\n FROM #__sportsmanager_termin_aktion";
$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); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
} }
} $rows = $db->loadObjectList();
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) { foreach ($rows as $row) {
$container = Factory::getContainer(); $container = Factory::getContainer();
@@ -1,47 +0,0 @@
<?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,10 +2323,6 @@ function mp_mult_($p1, $p2): float|int
*/ */
function mp_div_($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; return $p1 / $p2;
} }
File diff suppressed because it is too large Load Diff
@@ -1,4 +1,4 @@
<?php <?php
namespace Dtfb\Component\com_sportsmanager\Site\Controller; namespace Dtfb\Component\com_sportsmanager\Site\Controller;
/* /*
* Sports Manager (C) 2006-2020, Sven Nickel * Sports Manager (C) 2006-2020, Sven Nickel
@@ -10,6 +10,7 @@ use Joomla\CMS\Factory;
use Joomla\CMS\Log\Log; use Joomla\CMS\Log\Log;
use Joomla\CMS\Router\Route; use Joomla\CMS\Router\Route;
use Joomla\CMS\Uri\Uri; use Joomla\CMS\Uri\Uri;
use Joomla\CMS\User\User;
use Joomla\CMS\Version; use Joomla\CMS\Version;
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
@@ -7,8 +7,6 @@ use Joomla\CMS\Uri\Uri;
use Joomla\Filesystem\File; use Joomla\Filesystem\File;
use Joomla\Filesystem\Folder; use Joomla\Filesystem\Folder;
require_once JPATH_SITE . '/components/com_sportsmanager/database/util.php';
const SPORTSMANAGER_JOOMLA_PATH = JPATH_ROOT; const SPORTSMANAGER_JOOMLA_PATH = JPATH_ROOT;
define("SPORTSMANAGER_JOOMLA_URL", Uri::base()); define("SPORTSMANAGER_JOOMLA_URL", Uri::base());
@@ -243,7 +241,11 @@ function playerImage($playerId, $gender, $width = 180, $height = 240): ?string
. "\n FROM #__sportsmanager_spieler" . "\n FROM #__sportsmanager_spieler"
. "\n WHERE NOT ISNULL(aktueller_verein_id) AND NOT bild_ausblenden" . (!empty($spielernr) ? " AND spielernr = '$spielernr'" : " AND lizenznr = '$lizenznr'") . "\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"; . "\n ORDER BY spieler_id DESC";
$rows = loadObjectList($db, $query); $db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
if (count($rows) < 1) { if (count($rows) < 1) {
ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind
header('HTTP/1.1 404 Not Found'); header('HTTP/1.1 404 Not Found');
@@ -380,7 +382,7 @@ function yoothemeBild($typ, $id, $alternativ, $resize = '', $zusatz = ""): ?stri
else else
return null; return null;
$bildpfad = SPORTSMANAGER_JOOMLA_URL . "images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . "." . $ext; $bildpfad = "/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 . $resize . '" ' . $zusatz . ' uk-img />';
} }
@@ -1,6 +0,0 @@
<?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
@@ -12,200 +12,149 @@ 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/views/sportsmanager/view_tools.php';
require_once JPATH_SITE . '/components/com_sportsmanager/util/image.php'; require_once JPATH_SITE . '/components/com_sportsmanager/util/image.php';
function formatTimediff( $timestamp1, $timestamp2, $verbose ): string
{
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 ): string
{
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 class HTML_sportsmanager_admin
{ {
private static $versionData = null;
private static function loadVersionData(): void
{
if (self::$versionData === null) {
self::$versionData = include JPATH_SITE . '/components/com_sportsmanager/util/version.php';
}
}
public static function getVersion(): string
{
self::loadVersionData();
return self::$versionData['version'] ?? 'DEV';
}
static function adminUebersicht($veranstaltungen, $spielerstatistiken, $turniere, $ranglisten, $individualwettbewerbe, $statistik, $saisons, $filter_saison_id, $externe_datenbank): void static function adminUebersicht($veranstaltungen, $spielerstatistiken, $turniere, $ranglisten, $individualwettbewerbe, $statistik, $saisons, $filter_saison_id, $externe_datenbank): void
{ {
function checkZeilenumbruch($Spalte_Nr, $max_Spalten): int
{
$Spalte_Nr++;
if ($Spalte_Nr >= $max_Spalten){
echo "</tr>\n<tr>\n";
$Spalte_Nr = 0;
}
return $Spalte_Nr;
}
global $params; global $params;
?> ?>
<div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>" style='font-weight: bold;'> <div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><a
<a href="https://github.com/Deutscher-Tischfussballbund/" target="_blank"> href="https://github.com/Deutscher-Tischfussballbund/" target="_blank">Sports
Sports Manager <?php echo self::getVersion(); ?> </a> Manager <?php echo SPORTS_MANAGER_VERSION; ?> </a>
</div> </div>
<table> <table style="border-spacing: 10px">
<tr> <?php
<?php if (benutzerZugriff("spieler_aendern")
$max_Spalten = 6; || benutzerVeranstalterModerator()
$Spalte_Nr = 0; || benutzerVereinModerator()
if (benutzerZugriff("spieler_aendern") || benutzerVeranstalterModerator() || benutzerVereinModerator()) { || benutzerZugriff("vereine_aendern")
?> || benutzerZugriff("organisationen_aendern")
<td style="padding-right: 15px" nowrap> || benutzerZugriff("kategorien_aendern")
<a href="<?php echo SportsManagerURL('&task=admin_spieler'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_PLAYERS'); ?></a> || benutzerZugriff("moderatoren_aendern")
</td> || benutzerZugriff("einstufungen_aendern")
<?php || benutzerZugriff("basiseinstellungen_aendern")) {
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); ?>
} <tr>
if (benutzerZugriff("vereine_aendern")) { <?php
?> if (benutzerZugriff("spieler_aendern") || benutzerVeranstalterModerator() || benutzerVereinModerator()) {
<td style="padding-right: 15px" nowrap> ?>
<a href="<?php echo SportsManagerURL('&task=admin_vereine'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CLUBS'); ?></a> <td nowrap><a
</td> href="<?php echo SportsManagerURL('&task=admin_spieler'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_PLAYERS'); ?></a>
<?php </td>
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); <?php
} }
if (benutzerZugriff("organisationen_aendern")) { if (benutzerZugriff("vereine_aendern")) {
?> ?>
<td style="padding-right: 15px" nowrap> <td nowrap><a
<a href="<?php echo SportsManagerURL('&task=admin_veranstalter'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ORGANISATIONS'); ?></a> href="<?php echo SportsManagerURL('&task=admin_vereine'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CLUBS'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); }
} if (benutzerZugriff("organisationen_aendern")) {
if (benutzerZugriff("kategorien_aendern")) { ?>
?> <td nowrap><a
<td style="padding-right: 15px" nowrap> href="<?php echo SportsManagerURL('&task=admin_veranstalter'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ORGANISATIONS'); ?></a>
<a href="<?php echo SportsManagerURL('&task=admin_kategorien'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CATEGORIES'); ?></a> </td>
</td> <?php
<?php }
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); if (benutzerZugriff("kategorien_aendern")) {
} ?>
if (benutzerZugriff("moderatoren_aendern")) { <td nowrap><a
?> href="<?php echo SportsManagerURL('&task=admin_kategorien'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CATEGORIES'); ?></a>
<td style="padding-right: 15px" nowrap> </td>
<a href="<?php echo SportsManagerURL('&task=admin_moderatoren'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_MODERATORS'); ?></a> <?php
</td> }
<?php if (benutzerZugriff("moderatoren_aendern")) {
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); ?>
} <td nowrap><a
if (benutzerZugriff("einstufungen_aendern")) { href="<?php echo SportsManagerURL('&task=admin_moderatoren'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_MODERATORS'); ?></a>
?> </td>
<td style="padding-right: 15px" nowrap> <?php
<a href="<?php echo SportsManagerURL('&task=admin_einstufungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CLASSIFICATIONS'); ?></a> }
</td> if (benutzerZugriff("einstufungen_aendern")) {
<?php ?>
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); <td nowrap><a
} href="<?php echo SportsManagerURL('&task=admin_einstufungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CLASSIFICATIONS'); ?></a>
if (benutzerZugriff("basiseinstellungen_aendern")) { </td>
?> <?php
<td style="padding-right: 15px" nowrap> }
<a href="<?php echo SportsManagerURL('&task=admin_einstellungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_SETTINGS'); ?></a> if (benutzerZugriff("basiseinstellungen_aendern")) {
</td> ?>
<?php <td nowrap><a
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); href="<?php echo SportsManagerURL('&task=admin_einstellungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_SETTINGS'); ?></a>
?> </td>
<td style="padding-right: 15px" nowrap> <td nowrap><a
<a href="<?php echo SportsManagerURL('&task=admin_datenbank'); ?>"><?php echo $externe_datenbank ? Text::_('COM_SPORTSMANAGER_DATABASE_EXTERNAL') : Text::_('COM_SPORTSMANAGER_DATABASE_LOCAL'); ?></a> href="<?php echo SportsManagerURL('&task=admin_datenbank'); ?>"><?php echo $externe_datenbank ? Text::_('COM_SPORTSMANAGER_DATABASE_EXTERNAL') : Text::_('COM_SPORTSMANAGER_DATABASE_LOCAL'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); }
} ?>
</tr>
<?php
}
?>
<tr>
<?php
if (benutzerZugriff("termine_aendern")) { if (benutzerZugriff("termine_aendern")) {
?> ?>
<td style="padding-right: 15px" nowrap> <td nowrap><a
<a href="<?php echo SportsManagerURL('&task=admin_termine'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_APPOINTMENTS'); ?></a> href="<?php echo SportsManagerURL('&task=admin_termine'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_APPOINTMENTS'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("verteiler_aendern") || benutzerZugriff("verteiler_lesen")) { if (benutzerZugriff("verteiler_aendern") || benutzerZugriff("verteiler_lesen")) {
?> ?>
<td style="padding-right: 15px" nowrap> <td nowrap><a
<a href="<?php echo SportsManagerURL('&task=admin_verteiler'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_MAILING_LISTS'); ?></a> href="<?php echo SportsManagerURL('&task=admin_verteiler'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_MAILING_LISTS'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("rechnungen_aendern") && $statistik["saisons"] > 0) { if (benutzerZugriff("rechnungen_aendern") && $statistik["saisons"] > 0) {
?> ?>
<td style="padding-right: 15px" nowrap> <td nowrap><a
<a href="<?php echo SportsManagerURL('&task=admin_rechnungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_INVOICES'); ?></a> href="<?php echo SportsManagerURL('&task=admin_rechnungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_INVOICES'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("spielorte_aendern")) { if (benutzerZugriff("spielorte_aendern")) {
?> ?>
<td style="padding-right: 15px" nowrap> <td nowrap><a
<a href="<?php echo SportsManagerURL('&task=admin_spielorte'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_LOCATIONS'); ?></a> href="<?php echo SportsManagerURL('&task=admin_spielorte'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_LOCATIONS'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("saisons_aendern")) { if (benutzerZugriff("saisons_aendern")) {
?> ?>
<td style="padding-right: 15px" nowrap> <td nowrap><a
<a href="<?php echo SportsManagerURL('&task=admin_saisons'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_SEASONS'); ?></a> href="<?php echo SportsManagerURL('&task=admin_saisons'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_SEASONS'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("mannschaftsspielplaene_aendern")) { if (benutzerZugriff("mannschaftsspielplaene_aendern")) {
?> ?>
<td style="padding-right: 15px" nowrap> <td nowrap><a
<a href="<?php echo SportsManagerURL('&task=admin_teamspiel_modi'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_TEAM_PLANS'); ?></a> href="<?php echo SportsManagerURL('&task=admin_teamspiel_modi'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_TEAM_PLANS'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("verschieberegeln_aendern")) { if (benutzerZugriff("verschieberegeln_aendern")) {
?> ?>
<td style="padding-right: 15px" nowrap> <td nowrap><a
<a href="<?php echo SportsManagerURL('&task=admin_verschieben_modi'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_POSTPONE_RULES'); ?></a> href="<?php echo SportsManagerURL('&task=admin_verschieben_modi'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_POSTPONE_RULES'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("ranglistenwertungen_aendern")) { if (benutzerZugriff("ranglistenwertungen_aendern")) {
?> ?>
<td style="padding-right: 15px" nowrap> <td nowrap><a
<a href="<?php echo SportsManagerURL('&task=admin_ranglistensysteme'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_RANKING_RATING'); ?></a> href="<?php echo SportsManagerURL('&task=admin_ranglistensysteme'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_RANKING_RATING'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
?> ?>
</tr> </tr>
</table><br> </table>
<?php <?php
if (count($saisons) > 0) { if (count($saisons) > 0) {
?> ?>
@@ -2293,21 +2242,23 @@ class HTML_sportsmanager_admin
<?php <?php
} }
static function adminImportSpielerFehler($spieler, $fehler): void static function adminImportSpielerFehler($spieler): void
{ {
global $params; global $params;
$spieler_anzahl = count($spieler); $spieler_anzahl = count($spieler);
?> ?>
<div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"> <div
<?php echo Text::_('COM_SPORTSMANAGER_PLAYERS_IMPORT2'); ?> class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_PLAYERS_IMPORT2'); ?></div>
</div>
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>"> <table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr> <tr>
<td> <td>
<?php <?php
if ($spieler_anzahl > 0) { if ($spieler_anzahl > 0) {
echo Text::_('COM_SPORTSMANAGER_IMPORT_CONFLICTS_MESSAGE'); ?>
<?php echo Text::_('COM_SPORTSMANAGER_IMPORT_CONFLICTS_MESSAGE'); ?>
<?php
} }
?> ?>
</td> </td>
@@ -2320,20 +2271,12 @@ class HTML_sportsmanager_admin
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>"> <table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr> <tr>
<td nowrap class="contentheading<?php echo $params->get('pageclass_sfx'); ?>" <td nowrap class="contentheading<?php echo $params->get('pageclass_sfx'); ?>"
style="width: 100%"> style="width: 100%"><?php echo Text::_('COM_SPORTSMANAGER_IMPORT_DUPLICATE_MESSAGE'); ?></td>
<?php
if ($fehler == "konflikt")
echo Text::_('COM_SPORTSMANAGER_IMPORT_DUPLICATE_MESSAGE');
if ($fehler == "Passnummer")
echo Text::_('COM_SPORTSMANAGER_IMPORT_WRONG_FORMAT_PLAYERNUMBER');
?>
</td>
</tr> </tr>
</table> </table>
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>"> <table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>"> <tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_PLAYER_NUMBER_SHORT'); ?></strong></th>
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_NAME'); ?></strong></th> <th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_NAME'); ?></strong></th>
</tr> </tr>
<?php <?php
@@ -2343,7 +2286,6 @@ class HTML_sportsmanager_admin
?> ?>
<tr class="sectiontableentry<?php echo $k + 1; <tr class="sectiontableentry<?php echo $k + 1;
$k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>"> $k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>">
<td nowrap><?php echo htmlentities_utf8($s->spielernr); ?></td>
<td nowrap><?php echo htmlentities_utf8($s->nachname . ", " . $s->vorname); ?></td> <td nowrap><?php echo htmlentities_utf8($s->nachname . ", " . $s->vorname); ?></td>
</tr> </tr>
<?php <?php
@@ -2366,6 +2308,7 @@ class HTML_sportsmanager_admin
static function adminImportSpielerVorschau($import_verweigern, $spieler, $veranstalter, $session_id, $persoenliche_daten, $lizenznr_beibehalten, $spalten): void static function adminImportSpielerVorschau($import_verweigern, $spieler, $veranstalter, $session_id, $persoenliche_daten, $lizenznr_beibehalten, $spalten): void
{ {
global $params; global $params;
$spieler_anzahl = count($spieler); $spieler_anzahl = count($spieler);
?> ?>
@@ -4955,13 +4898,13 @@ class HTML_sportsmanager_admin
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"> <form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="" style="width: 100%"> <table class="uk-table" style="width: 100%">
<tr> <tr>
<td nowrap style="width: 60%; vertical-align: top"> <td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="" style="width: 100%"> <table class="uk-table" style="width: 100%">
<?php <?php
for ($typ = 1; $typ <= 7; $typ++) { for ($typ = 1; $typ <= 6; $typ++) {
?> ?>
<tr> <tr>
<td></td> <td></td>
@@ -4981,8 +4924,6 @@ class HTML_sportsmanager_admin
echo Text::_('COM_SPORTSMANAGER_PLAYER_STATISTICS'); echo Text::_('COM_SPORTSMANAGER_PLAYER_STATISTICS');
else if ($typ == 6) else if ($typ == 6)
echo Text::_('COM_SPORTSMANAGER_INDIVIDUAL_COMPETITIONS'); echo Text::_('COM_SPORTSMANAGER_INDIVIDUAL_COMPETITIONS');
else if ($typ == 7)
echo Text::_('COM_SPORTSMANAGER_ASSOCIATION_BODIES');
?> ?>
</H2> </H2>
</div> </div>
@@ -6981,11 +6922,11 @@ class HTML_sportsmanager_admin
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm" <form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"
enctype="multipart/form-data"> enctype="multipart/form-data">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="" style="width: 100%"> <table class="uk-table" style="width: 100%">
<tr> <tr>
<td nowrap style="width: 60%; vertical-align: top"> <td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="" style="width: 100%"> <table class="uk-table" style="width: 100%">
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
<label <label
@@ -7020,7 +6961,7 @@ class HTML_sportsmanager_admin
:</label> :</label>
</td> </td>
<td nowrap> <td nowrap>
<select class="uk-select uk-form-width-medium" style='width: 350px;' name="kategorie" <select class="uk-select uk-form-width-medium" name="kategorie"
id="category" size="1"> id="category" size="1">
<?php <?php
for ($i = 1; $i <= 50; $i++) { for ($i = 1; $i <= 50; $i++) {
@@ -7191,7 +7132,7 @@ class HTML_sportsmanager_admin
:</label> :</label>
</td> </td>
<td nowrap> <td nowrap>
<select class="uk-select uk-form-width-large" style='width: 600px;' name="tabellenwertung" <select class="uk-select uk-form-width-medium" name="tabellenwertung"
id="table_evaluation" size="1"> id="table_evaluation" size="1">
<?php <?php
$typ = array( $typ = array(
@@ -7227,22 +7168,6 @@ class HTML_sportsmanager_admin
</select> </select>
</td> </td>
</tr> </tr>
<tr id="tr_hthr">
<td nowrap style="width: 20%; text-align: right">
<label for="dd_hthr"><?php echo Text::_('COM_SPORTSMANAGER_HEAD_TO_HEAD_RECORD'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="direktervergleich" id="dd_hthr" size="1">
<?php
$direktervergleich = array(Text::_('COM_SPORTSMANAGER_NO'), Text::_('COM_SPORTSMANAGER_YES'));
for ($i = 0; $i <= 1; $i++) {
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->direktervergleich == $i ? " selected" : "") : "") . ">" . htmlentities_utf8($direktervergleich[$i]) . "</option>";
}
?>
</select>
</td>
</tr>
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
<label <label
@@ -7324,7 +7249,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</tr> </tr>
</table><br/> </table>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -7339,13 +7264,13 @@ class HTML_sportsmanager_admin
?> ?>
<input type="radio" name="bildbeibehalten_logo" id="keep_logo" value="1" <input type="radio" name="bildbeibehalten_logo" id="keep_logo" value="1"
checked><?php echo Text::_('COM_SPORTSMANAGER_NEWS_IMAGE'); ?> checked><?php echo Text::_('COM_SPORTSMANAGER_NEWS_IMAGE'); ?>
<br/><?php echo $bild; ?> <br/><br/><?php echo $bild; ?>
<br/><label><input type="radio" name="bildbeibehalten_logo" <br/><br/><label><input type="radio" name="bildbeibehalten_logo"
value="0"><?php echo Text::_('COM_SPORTSMANAGER_NEW_IMAGE'); ?> value="0"><?php echo Text::_('COM_SPORTSMANAGER_NEW_IMAGE'); ?>
</label> </label>
<br/><input type="file" name="bild_logo" size="30" <br/><br/><input type="file" name="bild_logo" size="30"
onchange="document.adminForm.bildbeibehalten_logo[1].checked = true;"/> onchange="document.adminForm.bildbeibehalten_logo[1].checked = true;"/>
<br/><label>URL: <input class="inputbox" type="text" <br/><br/><label>URL: <input class="inputbox" type="text"
name="logo_url" size="50" name="logo_url" size="50"
maxlength="150" maxlength="150"
value="<?php if (!empty($row)) echo htmlentities_utf8($row->logo_url); ?>"/></label> value="<?php if (!empty($row)) echo htmlentities_utf8($row->logo_url); ?>"/></label>
@@ -7354,13 +7279,13 @@ class HTML_sportsmanager_admin
?> ?>
<label <label
for="logo_url"><?php echo Text::_('COM_SPORTSMANAGER_NEW_IMAGE'); ?></label> for="logo_url"><?php echo Text::_('COM_SPORTSMANAGER_NEW_IMAGE'); ?></label>
<br/><input type="file" name="bild_logo" size="30"/> <br/><br/><input type="file" name="bild_logo" size="30"/>
<br/><label>URL: <input class="inputbox" type="text" <br/><br/><label>URL: <input class="inputbox" type="text"
name="logo_url" id="logo_url" size="50" name="logo_url" id="logo_url" size="50"
maxlength="150"/></label> maxlength="150"/></label>
<?php <?php
} }
?><br/><br/> ?>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -7376,13 +7301,13 @@ class HTML_sportsmanager_admin
<input type="radio" name="bildbeibehalten_ticker_logo" <input type="radio" name="bildbeibehalten_ticker_logo"
id="keep_ticker_logo" value="1" id="keep_ticker_logo" value="1"
checked><?php echo Text::_('COM_SPORTSMANAGER_NEWS_IMAGE'); ?> checked><?php echo Text::_('COM_SPORTSMANAGER_NEWS_IMAGE'); ?>
<br/><?php echo $bild; ?> <br/><br/><?php echo $bild; ?>
<br/><label><input type="radio" name="bildbeibehalten_ticker_logo" <br/><br/><label><input type="radio" name="bildbeibehalten_ticker_logo"
value="0"><?php echo Text::_('COM_SPORTSMANAGER_NEW_IMAGE'); ?> value="0"><?php echo Text::_('COM_SPORTSMANAGER_NEW_IMAGE'); ?>
</label> </label>
<br/><input type="file" name="bild_ticker_logo" size="30" <br/><br/><input type="file" name="bild_ticker_logo" size="30"
onchange="document.adminForm.bildbeibehalten_ticker_logo[1].checked = true;"/> onchange="document.adminForm.bildbeibehalten_ticker_logo[1].checked = true;"/>
<br/><label>URL: <input class="inputbox" type="text" <br/><br/><label>URL: <input class="inputbox" type="text"
name="ticker_logo_url" name="ticker_logo_url"
size="50" maxlength="150" size="50" maxlength="150"
value="<?php if (!empty($row)) echo htmlentities_utf8($row->ticker_logo_url); ?>"/></label> value="<?php if (!empty($row)) echo htmlentities_utf8($row->ticker_logo_url); ?>"/></label>
@@ -7391,8 +7316,8 @@ class HTML_sportsmanager_admin
?> ?>
<label <label
for="ticker_logo_url"><?php echo Text::_('COM_SPORTSMANAGER_NEW_IMAGE'); ?></label> for="ticker_logo_url"><?php echo Text::_('COM_SPORTSMANAGER_NEW_IMAGE'); ?></label>
<br/><input type="file" name="bild_ticker_logo" size="30"/> <br/><br/><input type="file" name="bild_ticker_logo" size="30"/>
<br/>URL: <input class="inputbox" type="text" <br/><br/>URL: <input class="inputbox" type="text"
name="ticker_logo_url" id="ticker_logo_url" name="ticker_logo_url" id="ticker_logo_url"
size="50" maxlength="150"/> size="50" maxlength="150"/>
<?php <?php
@@ -7417,26 +7342,6 @@ class HTML_sportsmanager_admin
<input type="hidden" name="task" value="admin_veranstaltung_save"/> <input type="hidden" name="task" value="admin_veranstaltung_save"/>
<input type="hidden" name="id" value="<?php echo($row != null ? $row->veranstaltung_id : "0"); ?>"/> <input type="hidden" name="id" value="<?php echo($row != null ? $row->veranstaltung_id : "0"); ?>"/>
</form> </form>
<script>
// Auswahlfeld Direkter Vergleich in Abhaengigkeit von Tabellenwertung anzeigen
const dropdown = document.getElementById("table_evaluation");
const zeile = document.getElementById("tr_hthr");
const unteroption = document.getElementById("dd_hthr");
function pruefeAnzeige() {
const wert = parseInt(dropdown.value);
if (wert >= 1 && wert <= 9) {
zeile.style.display = "";
} else {
zeile.style.display = "none";
unteroption.value = "0";
}
}
dropdown.addEventListener("change", pruefeAnzeige);
window.addEventListener("DOMContentLoaded", pruefeAnzeige);
</script>
<?php <?php
} }
@@ -7487,8 +7392,6 @@ class HTML_sportsmanager_admin
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_CLUB'); ?></strong></th> <th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_CLUB'); ?></strong></th>
<th nowrap title="<?php echo Text::_('COM_SPORTSMANAGER_PLAYERS_ACTIVE_INACTIVE'); ?>"> <th nowrap title="<?php echo Text::_('COM_SPORTSMANAGER_PLAYERS_ACTIVE_INACTIVE'); ?>">
<strong><?php echo Text::_('COM_SPORTSMANAGER_PLAYERS'); ?></strong></th> <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> <th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_HOME_VENUE'); ?></strong></th>
</tr> </tr>
<?php <?php
@@ -7530,7 +7433,6 @@ class HTML_sportsmanager_admin
<td nowrap style="text-align: center"><a <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> href="<?php echo SportsManagerURL('&task=admin_mitglieder&teamid=' . $row->team_id); ?>"><?php echo $row->mitglieder_aktiv . " / " . ($row->mitglieder - $row->mitglieder_aktiv); ?></a>
</td> </td>
<td nowrap align="center"><?php echo $row->anzahl_verschiebungen; ?></td>
<td nowrap><?php if (!empty($row->name)) echo htmlentities_utf8($row->name); ?></td> <td nowrap><?php if (!empty($row->name)) echo htmlentities_utf8($row->name); ?></td>
<?php if ($row->begegnungen == 0) { ?> <?php if ($row->begegnungen == 0) { ?>
<td nowrap><small><a <td nowrap><small><a
@@ -8701,7 +8603,6 @@ class HTML_sportsmanager_admin
<strong><?php echo $modus->punktetyp == 0 ? Text::_('COM_SPORTSMANAGER_GOALS') : Text::_('COM_SPORTSMANAGER_SETS'); ?></strong> <strong><?php echo $modus->punktetyp == 0 ? Text::_('COM_SPORTSMANAGER_GOALS') : Text::_('COM_SPORTSMANAGER_SETS'); ?></strong>
</th> </th>
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_GAME_POINTS'); ?></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> </tr>
<?php <?php
@@ -8734,7 +8635,7 @@ class HTML_sportsmanager_admin
if ($row->verlegung_eingetragen != null) if ($row->verlegung_eingetragen != null)
echo " **"; echo " **";
else if ($row->verlegt != 0) else if ($row->verlegt != 0)
echo " (" . formatTimediff($row->termin_original, $row->termin_akzeptiert, true) . ")"; echo " *";
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)))) 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 " !"; echo " !";
?> ?>
@@ -8744,20 +8645,13 @@ class HTML_sportsmanager_admin
echo "<br/><small>" . Text::_('COM_SPORTSMANAGER_MATCH_TABLE') . ": " . htmlentities_utf8($row->tisch) . "</small>"; echo "<br/><small>" . Text::_('COM_SPORTSMANAGER_MATCH_TABLE') . ": " . htmlentities_utf8($row->tisch) . "</small>";
?> ?>
</td> </td>
<td nowrap><?php echo formatTeamName($row->heim_name, $row->heim_team_id, $row->verantwortliches_team); ?></td> <td nowrap><?php echo htmlentities_utf8($row->heim_name); ?></td>
<td nowrap><?php echo formatTeamName($row->gast_name, $row->gast_team_id, $row->verantwortliches_team); ?></td> <td nowrap><?php echo htmlentities_utf8($row->gast_name); ?></td>
<td nowrap style="text-align: center"><a <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>"; else if ($row->fehlende_spieler > 0) echo " (*)"; ?> 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>"; ?>
</td> </td>
<td nowrap <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> 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 <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> 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> </td>
@@ -9644,7 +9538,7 @@ class HTML_sportsmanager_admin
$jahr = $veranstaltung->erster_tag != null ? substr($veranstaltung->erster_tag, 0, 4) : 0; $jahr = $veranstaltung->erster_tag != null ? substr($veranstaltung->erster_tag, 0, 4) : 0;
?> ?>
<div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>" <div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"
style='background-color:#000066;color: #cccccc;width:760px;font-weight:600;text-align:center;'> style='background-color:#000066;width:760px;font-weight:600;text-align:center;'>
<?php echo Text::_('COM_SPORTSMANAGER_COMPETITION'); ?> <?php echo Text::_('COM_SPORTSMANAGER_COMPETITION'); ?>
<?php echo htmlentities_utf8($veranstaltung->bezeichnung); ?> <?php echo htmlentities_utf8($veranstaltung->bezeichnung); ?>
: <?php echo Text::_('COM_SPORTSMANAGER_GENERATE_ENCOUNTERS_NEXT_ROUND'); ?></div> : <?php echo Text::_('COM_SPORTSMANAGER_GENERATE_ENCOUNTERS_NEXT_ROUND'); ?></div>
@@ -9656,7 +9550,7 @@ class HTML_sportsmanager_admin
<td nowrap style="width: 60%; vertical-align: top"> <td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table> <table>
<tr><td colspan=2 style="text-align: center; background-color: #660033;color: #cccccc;"><b>Grundeinstellungen</b></td></tr> <tr><td colspan=2 style="text-align: center; background-color: #660033"><b>Grundeinstellungen</b></td></tr>
<tr> <tr>
<td>Runden</td> <td>Runden</td>
<td colspan style="text-align: left"> <td colspan style="text-align: left">
@@ -9713,14 +9607,14 @@ class HTML_sportsmanager_admin
$bgcolor = "#000099"; $bgcolor = "#000099";
} }
if ($spieltag == 1){ if ($spieltag == 1){
echo "<tr><td colspan=2 style='text-align: center; background-color: #000099; color: #cccccc;'><b>Hinrunde</b></td></tr>"; echo "<tr><td colspan=2 style='text-align: center; background-color: #000099'><b>Hinrunde</b></td></tr>";
} }
if ($spieltag == $spieltage + 1){ if ($spieltag == $spieltage + 1){
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>"; 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>";
} }
?> ?>
<tr> <tr>
<td nowrap style="width: 130px; text-align: center; background-color: <?php echo $bgcolor; ?>; color: #cccccc;"> <td nowrap style="width: 130px; text-align: center; background-color: <?php echo $bgcolor; ?>">
<label <label
for="calendar_week_<?php echo $spieltag; ?>"><?php echo $spieltag; ?> for="calendar_week_<?php echo $spieltag; ?>"><?php echo $spieltag; ?>
. <?php echo Text::_('COM_SPORTSMANAGER_GAMEDAY'); ?>:</label> . <?php echo Text::_('COM_SPORTSMANAGER_GAMEDAY'); ?>:</label>
@@ -9765,7 +9659,7 @@ class HTML_sportsmanager_admin
<?php <?php
} }
echo "<tr><td colspan=2 style='text-align: center'>&nbsp;</td></tr>"; echo "<tr><td colspan=2 style='text-align: center'>&nbsp;</td></tr>";
echo "<tr><td colspan=2 style='text-align: center; background-color: #660033; color: #cccccc;' echo "<tr><td colspan=2 style='text-align: center; background-color: #660033'
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>"; 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) { for ($teamnr = 1; $teamnr <= $anzahlteams; $teamnr += 2) {
?> ?>
@@ -10119,49 +10013,52 @@ class HTML_sportsmanager_admin
{ {
global $params; 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"> <form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto"><table class="" style="width: 100%">
<table class="" style="width: 500px"> <tr>
<tr> <td nowrap style="width: 60%; vertical-align: top">
<th align=center colspan='2'><?php echo Text::_('COM_SPORTSMANAGER_EXPORT'); ?></th> <div class="uk-overflow-auto"><table class="" style="width: 100%">
</tr> <tr>
<tr> <td nowrap style="width: 20%; text-align: right">
<td nowrap style="width: 120px; text-align: right"> <label for="veranstaltungId">Veranstaltung</label>
<label for="veranstaltungId">Veranstaltung</label> </td>
</td> <td nowrap>
<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>
<option value='<?PHP echo $veranstaltung->veranstaltung_id; ?>'><?PHP echo $veranstaltung->bezeichnung; ?></option> <?PHP foreach ($saison AS $key => $value) { ?>
<?PHP foreach ($saison AS $key => $value) { ?> <option value='<?PHP echo $value->veranstaltung_id; ?>'><?PHP echo $value->bezeichnung; ?></option>
<option value='<?PHP echo $value->veranstaltung_id; ?>'><?PHP echo $value->bezeichnung; ?></option> <?PHP } ?>
<?PHP } ?> </select>
</select> </td>
</td> </tr>
</tr> <tr>
<tr> <td nowrap style="width: 20%; text-align: right">
<td nowrap style="text-align: right"> <label for="export">Exportieren</label>
<label for="export">Exportieren</label> </td>
</td> <td nowrap>
<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='spieler'>Spieler</option> <option value='spielplan'>Spielplan</option>
<option value='spielplan'>Spielplan</option> <option value='spielberichte'>Spielberichte</option>
<option value='spielberichte'>Spielberichte</option> </select>
</select> </td>
</td> </tr>
</tr> <tr>
<tr> <td nowrap style="width: 20%; text-align: right">
<td nowrap style="text-align: right"> <label for="exportformat">Exportformat</label>
<label for="exportformat">Exportformat</label> </td>
</td> <td nowrap>
<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>
<option value='csvdatei'>CSV-Datei</option> </select>
</select> </td>
</td> </tr>
</tr> </table></div>
</table> </td>
</div> </tr>
</table></div>
<input type="submit" name="save" value="<?php echo Text::_('COM_SPORTSMANAGER_EXPORT'); ?>" <input type="submit" name="save" value="<?php echo Text::_('COM_SPORTSMANAGER_EXPORT'); ?>"
class="button"/> class="button"/>
@@ -291,6 +291,8 @@ class HTML_sportsmanager_ticker
type="text/css"/> type="text/css"/>
<script src="<?php echo Route::_(Uri::root(TRUE) . '/components/com_sportsmanager/js/jquery.min.js'); ?>" <script src="<?php echo Route::_(Uri::root(TRUE) . '/components/com_sportsmanager/js/jquery.min.js'); ?>"
type="text/javascript"></script> type="text/javascript"></script>
<script type="text/javascript"
src="<?php echo Route::_(Uri::root(TRUE) . '/components/com_sportsmanager/js/css3.js'); ?>"></script>
<script> <script>
let globalresize = 0; let globalresize = 0;
@@ -40,7 +40,7 @@ function addOnLoad($function): void
<?php <?php
} }
function SportsManagerURL($weitereParameter = "", $ssl = 0): ?string function SportsManagerURL($weitereParameter = null, $ssl = 0): ?string
{ {
$urlPath = handleFilter($weitereParameter); $urlPath = handleFilter($weitereParameter);
$joomlaBaseUrl = Uri::getInstance()->toString([ $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="Sports Manager"
COM_SPORTSMANAGER_PLAYERS="Spieler" COM_SPORTSMANAGER_PLAYERS="Spieler"
COM_SPORTSMANAGER_CLUBS="Vereine" COM_SPORTSMANAGER_CLUBS="Vereine"
@@ -70,7 +70,6 @@ COM_SPORTSMANAGER_CONFIRM_REMOVE_RANKING="Willst du die Rangliste wirklich entfe
COM_SPORTSMANAGER_ADD_INDIVIDUAL_COMPETITION="Individualwettbewerb hinzuf&uuml;gen" COM_SPORTSMANAGER_ADD_INDIVIDUAL_COMPETITION="Individualwettbewerb hinzuf&uuml;gen"
COM_SPORTSMANAGER_INDIVIDUAL_COMPETITION="Individualwettbewerb" COM_SPORTSMANAGER_INDIVIDUAL_COMPETITION="Individualwettbewerb"
COM_SPORTSMANAGER_INDIVIDUAL_COMPETITIONS="Individualwettbewerbe" COM_SPORTSMANAGER_INDIVIDUAL_COMPETITIONS="Individualwettbewerbe"
COM_SPORTSMANAGER_ASSOCIATION_BODIES="Verbandsorgane"
COM_SPORTSMANAGER_GAME="Spiel" COM_SPORTSMANAGER_GAME="Spiel"
COM_SPORTSMANAGER_GAMES="Spiele" COM_SPORTSMANAGER_GAMES="Spiele"
COM_SPORTSMANAGER_GAMES_SHORTCUT="S" COM_SPORTSMANAGER_GAMES_SHORTCUT="S"
@@ -404,9 +403,8 @@ COM_SPORTSMANAGER_COUNTRY_CODE="Landeskennung"
COM_SPORTSMANAGER_IMPORT="Importieren" COM_SPORTSMANAGER_IMPORT="Importieren"
COM_SPORTSMANAGER_IMPORT_MESSAGE="Im Import sind ausschlie&szlig;lich Spielerdaten zum Verein %s enthalten. Soll ausschlie&szlig;lich der Spielerbestand des einen Vereins aktualisiert werden, muss der zugeh&ouml;rige Verein unten ausgew&auml;hlt werden. Beinhaltet der Import den gesamten Spielerbestand einer Organisation, muss die zugeh&ouml;rige Organisation gew&auml;hlt werden." COM_SPORTSMANAGER_IMPORT_MESSAGE="Im Import sind ausschlie&szlig;lich Spielerdaten zum Verein %s enthalten. Soll ausschlie&szlig;lich der Spielerbestand des einen Vereins aktualisiert werden, muss der zugeh&ouml;rige Verein unten ausgew&auml;hlt werden. Beinhaltet der Import den gesamten Spielerbestand einer Organisation, muss die zugeh&ouml;rige Organisation gew&auml;hlt werden."
COM_SPORTSMANAGER_CHECK="Pr&uuml;fen" COM_SPORTSMANAGER_CHECK="Pr&uuml;fen"
COM_SPORTSMANAGER_IMPORT_CONFLICTS_MESSAGE="Im Import sind Fehler oder Konflikte enthalten, die im Vorfeld manuell beseitigt werden müssen." COM_SPORTSMANAGER_IMPORT_CONFLICTS_MESSAGE="Im Import sind 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_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&uuml;ltiges Format"
COM_SPORTSMANAGER_NAME2="Name" 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_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." COM_SPORTSMANAGER_DATA_IMPORT_NO_CONFLICTS="Es bestehen keine Konflikte bei den zu importierenden Spielerdaten."
@@ -537,7 +535,6 @@ COM_SPORTSMANAGER_FULL_RATING="Volle Wertung"
COM_SPORTSMANAGER_NO_RATING="Keine Wertung" COM_SPORTSMANAGER_NO_RATING="Keine Wertung"
COM_SPORTSMANAGER_TEAM_COMPETITIONS="Mannschaftswettbewerbe" COM_SPORTSMANAGER_TEAM_COMPETITIONS="Mannschaftswettbewerbe"
COM_SPORTSMANAGER_TABLE_SUMMARY="Tabellenwertung" 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_POINTS_WON_LOST_DIFFERENCE="Spielpunkte gewonnen, Spielpunkte verloren, Punktedifferenz"
COM_SPORTSMANAGER_PERFORMANCE_INDEX="Leistungsindex (SP+ * SP+ * 100) / (SP+ + SP-), Spielpunkte gewonnen, ..." COM_SPORTSMANAGER_PERFORMANCE_INDEX="Leistungsindex (SP+ * SP+ * 100) / (SP+ + SP-), Spielpunkte gewonnen, ..."
COM_SPORTSMANAGER_PERFORMANCE_INDEX2="Leistungsindex (S * P+ * 10) / (P+ + P-), Spielpunkte gewonnen, ..." COM_SPORTSMANAGER_PERFORMANCE_INDEX2="Leistungsindex (S * P+ * 10) / (P+ + P-), Spielpunkte gewonnen, ..."
@@ -992,6 +989,3 @@ COM_SPORTSMANAGER_ARIA_LABEL_RANKING_EVALUATION="Ranking Wertung"
COM_SPORTSMANAGER_ARIA_LABEL_LASTNAME="Nachname" COM_SPORTSMANAGER_ARIA_LABEL_LASTNAME="Nachname"
COM_SPORTSMANAGER_ARIA_LABEL_FIRSTNAME="Vorname" COM_SPORTSMANAGER_ARIA_LABEL_FIRSTNAME="Vorname"
COM_SPORTSMANAGER_ARIA_LABEL_CLUB="Verein" 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="Sports Manager"
COM_SPORTSMANAGER_PLAYERS="Players" COM_SPORTSMANAGER_PLAYERS="Players"
COM_SPORTSMANAGER_CLUBS="Clubs" COM_SPORTSMANAGER_CLUBS="Clubs"
@@ -70,7 +70,6 @@ COM_SPORTSMANAGER_CONFIRM_REMOVE_RANKING="Do you really want to remove the ranki
COM_SPORTSMANAGER_ADD_INDIVIDUAL_COMPETITION="Add individual competition" COM_SPORTSMANAGER_ADD_INDIVIDUAL_COMPETITION="Add individual competition"
COM_SPORTSMANAGER_INDIVIDUAL_COMPETITION="Individual competition" COM_SPORTSMANAGER_INDIVIDUAL_COMPETITION="Individual competition"
COM_SPORTSMANAGER_INDIVIDUAL_COMPETITIONS="Individual competitions" COM_SPORTSMANAGER_INDIVIDUAL_COMPETITIONS="Individual competitions"
COM_SPORTSMANAGER_ASSOCIATION_BODIES="Association bodies"
COM_SPORTSMANAGER_GAME="Game" COM_SPORTSMANAGER_GAME="Game"
COM_SPORTSMANAGER_GAMES="Games" COM_SPORTSMANAGER_GAMES="Games"
COM_SPORTSMANAGER_GAMES_SHORTCUT="G" COM_SPORTSMANAGER_GAMES_SHORTCUT="G"
@@ -404,9 +403,8 @@ COM_SPORTSMANAGER_COUNTRY_CODE="Country code"
COM_SPORTSMANAGER_IMPORT="Import" 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_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_CHECK="Check"
COM_SPORTSMANAGER_IMPORT_CONFLICTS_MESSAGE="There are faults or conflicts in the import which have to be fixed manually first." COM_SPORTSMANAGER_IMPORT_CONFLICTS_MESSAGE="There are 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_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_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_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." COM_SPORTSMANAGER_DATA_IMPORT_NO_CONFLICTS="There are conflicts in the containing player information."
@@ -537,7 +535,6 @@ COM_SPORTSMANAGER_FULL_RATING="Full rating"
COM_SPORTSMANAGER_NO_RATING="No rating" COM_SPORTSMANAGER_NO_RATING="No rating"
COM_SPORTSMANAGER_TEAM_COMPETITIONS="Team competitions" COM_SPORTSMANAGER_TEAM_COMPETITIONS="Team competitions"
COM_SPORTSMANAGER_TABLE_SUMMARY="Table rating" 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_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_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, ..." COM_SPORTSMANAGER_PERFORMANCE_INDEX2="Performance index (games * P+ * 10) / (P+ + P-), game points won, ..."
@@ -990,6 +987,3 @@ COM_SPORTSMANAGER_ARIA_LABEL_RANKING_EVALUATION="Ranking evaluation"
COM_SPORTSMANAGER_ARIA_LABEL_LASTNAME="Lastname" COM_SPORTSMANAGER_ARIA_LABEL_LASTNAME="Lastname"
COM_SPORTSMANAGER_ARIA_LABEL_FIRSTNAME="Firstname" COM_SPORTSMANAGER_ARIA_LABEL_FIRSTNAME="Firstname"
COM_SPORTSMANAGER_ARIA_LABEL_CLUB="Club" 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 -4
View File
@@ -137,7 +137,6 @@ return new class () implements InstallerScriptInterface
. "\n `tisch` tinytext DEFAULT NULL," . "\n `tisch` tinytext DEFAULT NULL,"
. "\n `zeitpunkt` datetime DEFAULT NULL," . "\n `zeitpunkt` datetime DEFAULT NULL,"
. "\n `spieltag` smallint(6) DEFAULT NULL," . "\n `spieltag` smallint(6) DEFAULT NULL,"
. "\n `spiel_nr` tinyint(4) DEFAULT NULL,"
. "\n `heim_punkte` smallint(6) DEFAULT NULL," . "\n `heim_punkte` smallint(6) DEFAULT NULL,"
. "\n `gast_punkte` smallint(6) DEFAULT NULL," . "\n `gast_punkte` smallint(6) DEFAULT NULL,"
. "\n `heim_spielpunkte` smallint(6) DEFAULT NULL," . "\n `heim_spielpunkte` smallint(6) DEFAULT NULL,"
@@ -681,7 +680,6 @@ return new class () implements InstallerScriptInterface
. "\n `teamgruppe_id` int(11) DEFAULT NULL," . "\n `teamgruppe_id` int(11) DEFAULT NULL,"
. "\n `verein_id` int(11) DEFAULT NULL," . "\n `verein_id` int(11) DEFAULT NULL,"
. "\n `veranstaltung_id` int(11) NOT NULL DEFAULT '0'," . "\n `veranstaltung_id` int(11) NOT NULL DEFAULT '0',"
. "\n `setzliste_nr` tinyint(4) DEFAULT NULL,"
. "\n `teamname` varchar(50) NOT NULL," . "\n `teamname` varchar(50) NOT NULL,"
. "\n `tischtyp` varchar(200) DEFAULT NULL," . "\n `tischtyp` varchar(200) DEFAULT NULL,"
. "\n `tischeigenschaften` varchar(200) DEFAULT NULL," . "\n `tischeigenschaften` varchar(200) DEFAULT NULL,"
@@ -1035,7 +1033,6 @@ return new class () implements InstallerScriptInterface
. "\n `modus_id` int(11) NOT NULL DEFAULT '0'," . "\n `modus_id` int(11) NOT NULL DEFAULT '0',"
. "\n `verschieberegel_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 `tabellenwertung` tinyint(4) NOT NULL DEFAULT '0',"
. "\n `direktervergleich` tinyint(4) NOT NULL DEFAULT '0',"
. "\n `unterteilung` tinyint(4) NOT NULL DEFAULT '0'," . "\n `unterteilung` tinyint(4) NOT NULL DEFAULT '0',"
. "\n `erster_tag` date NOT NULL DEFAULT '0000-00-00'," . "\n `erster_tag` date NOT NULL DEFAULT '0000-00-00',"
. "\n `letzter_tag` date DEFAULT NULL," . "\n `letzter_tag` date DEFAULT NULL,"
@@ -1113,7 +1110,7 @@ return new class () implements InstallerScriptInterface
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '103';"; $query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '102';";
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
-1
View File
@@ -37,7 +37,6 @@
<files folder="admin"> <files folder="admin">
<filename>access.xml</filename> <filename>access.xml</filename>
<filename>index.html</filename> <filename>index.html</filename>
<filename>RELEASE_NOTES.md</filename>
<folder>services</folder> <folder>services</folder>
<folder>src</folder> <folder>src</folder>
<folder>tmpl</folder> <folder>tmpl</folder>