Merge branch 'sportsmanager2-dev' into sportsmanager2-issue052

# Conflicts:
#	src/structure/components/com_sportsmanager/admin.php
#	src/structure/components/com_sportsmanager/sportsmanager.php
#	src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php
This commit is contained in:
Marvin Flock
2025-08-28 21:58:43 +02:00
16 changed files with 1276 additions and 4564 deletions
+14
View File
@@ -25,6 +25,20 @@ jobs:
- 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
+22
View File
@@ -83,3 +83,25 @@ JConfig: `./data/joomla_data/configuration.php`
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
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";
@@ -5327,11 +5277,7 @@ function updateDatabase(): void
if ($termin_aktionen_email_setzen) {
$query = "SELECT aktion_user_id, termin_aktion_id"
. "\n FROM #__sportsmanager_termin_aktion";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
$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;
}
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');
@@ -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',
];
@@ -1764,7 +1764,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
if ($alleine_angezeigt && $praesentation == 0) {
?>
<th nowrap>
<strong><?php echo $modus->punktetyp == 0 ? Text::_('COM_SPORTSMANAGER_GOALS') : Text::_('COM_SPORTSMANAGER_SETS'); ?></strong><br/>
<strong><?php echo $modus->punktetyp != 2 ? Text::_('COM_SPORTSMANAGER_GOALS') : Text::_('COM_SPORTSMANAGER_SETS'); ?></strong><br/>
<small><?php echo Text::_('COM_SPORTSMANAGER_STAT_TOTAL'); ?></small>
</th>
<?php
@@ -1772,7 +1772,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
?>
<th nowrap
title="<?php echo $veranstaltung->tabellenwertung == 1 || $veranstaltung->tabellenwertung == 4 || $veranstaltung->tabellenwertung == 7 || $veranstaltung->tabellenwertung == 10 || $veranstaltung->tabellenwertung == 21 || $veranstaltung->tabellenwertung == 24 || $veranstaltung->tabellenwertung == 27 ? Text::_('COM_SPORTSMANAGER_DIFFERENCE') : Text::_('COM_SPORTSMANAGER_RATIO'); ?>">
<strong><?php echo $modus->punktetyp == 0 ? Text::_('COM_SPORTSMANAGER_GOALS') : Text::_('COM_SPORTSMANAGER_SETS'); ?></strong>
<strong><?php echo $modus->punktetyp != 2 ? Text::_('COM_SPORTSMANAGER_GOALS') : Text::_('COM_SPORTSMANAGER_SETS'); ?></strong>
</th>
<?php
}
@@ -2352,7 +2352,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
global $params;
?>
<table style="width: 100%; border: none; border-spacing: 0; padding: 3px">
<table style="width: 100%; border: none; border-spacing: 0;">
<tr>
<th style="width: 30px" class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>"></th>
<th class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>" style="text-align: left">
@@ -2399,7 +2399,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
</table>
<div class="uk-overflow-auto">
<table class="uk-table contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td colspan="3">
<div>
@@ -2415,7 +2415,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
if ($bild != null) {
?>
<div class="uk-overflow-auto">
<table class="uk-table contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td nowrap><?php echo $bild; ?></td>
</tr>
@@ -2428,7 +2428,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
if ($bild != null) {
?>
<div class="uk-overflow-auto">
<table class="uk-table contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td nowrap><?php echo $bild; ?></td>
</tr>
@@ -2464,7 +2464,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
|| ($mitglieder_modus == 1 && $mitglieder_voruebergehend > 0)) {
?>
<div class="uk-overflow-auto">
<table class="uk-table contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td nowrap class="contentheading<?php echo $params->get('pageclass_sfx'); ?>"
style="width: 100%"><?php echo $mitglieder_modus == 0 ? Text::_('COM_SPORTSMANAGER_PLAYER') : "Vor&uuml;bergehende Spieler"; ?></td>
@@ -2473,8 +2473,8 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
</div>
<div class="uk-overflow-auto">
<table class="uk-table contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>"
style="border-spacing: 0">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>"
style="border-spacing: 0;width: 100%">
<tr>
<?php
$n = 0;
@@ -2482,12 +2482,8 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
if (($mitglieder_modus == 0 && !$mitglieder_ist_dauerhaft[$row->spieler_id])
|| ($mitglieder_modus == 1 && $mitglieder_ist_dauerhaft[$row->spieler_id]))
continue;
if ($n % 3 == 0 && $n != 0)
echo "</tr><tr>";
echo "<td style='text-align: center;vertical-align: center' class=\"sectiontableentry" . (($n % 2) + 1) . $params->get('pageclass_sfx') . "\">";
echo "<table>";
echo "<tr><td style='text-align: center'>";
echo "<table style='display: inline-table;'><tr>";
echo "<td style='text-align: center;vertical-align: center; width: 220px;' class=\"sectiontableentry" . (($n % 2) + 1) . $params->get('pageclass_sfx') . "\">";
if (empty($row->aktueller_verein_id))
echo htmlentities_utf8($row->nachname . ", " . $row->vorname);
else {
@@ -2496,74 +2492,55 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
}
if (!empty($row->spielernr))
echo "<br /><small>" . htmlentities_utf8($row->spielernr) . "</small>";
echo "</td></tr>";
if ($team_moderator) {
if (!empty($row->geburtsjahr)) {
echo "<tr><td style='text-align: center'>";
echo "<small>" . htmlentities_utf8($row->geburtsjahr) . "</small>";
echo "</td></tr>";
echo "<br /><small>" . htmlentities_utf8($row->geburtsjahr) . "</small>";
}
if (!empty($row->strasse) ||
!empty($row->plz) || !empty($row->ort)) {
echo "<tr><td style='text-align: center'>";
if (!empty($row->strasse))
echo "<small>" . htmlentities_utf8($row->strasse) . "</small><br />";
echo "<br /><small>" . htmlentities_utf8($row->strasse) . "</small>";
if (!empty($row->plz) || !empty($row->ort))
echo "<small>" . (!empty($row->plz) ? (htmlentities_utf8($row->plz) . " ") : "") . htmlentities_utf8($row->ort) . "</small>";
echo "</td></tr>";
}
if (!empty($row->telefon) ||
!empty($row->mobil) ||
!empty($row->email)) {
echo "<tr><td style='text-align: center'>";
echo "<br /><small>" . (!empty($row->plz) ? (htmlentities_utf8($row->plz) . " ") : "") . htmlentities_utf8($row->ort) . "</small>";
if (!empty($row->telefon))
echo "<small>" . htmlentities_utf8($row->telefon) . "</small><br />";
echo "<br /><small>" . htmlentities_utf8($row->telefon) . "</small>";
if (!empty($row->mobil))
echo "<small>" . htmlentities_utf8($row->mobil) . "</small><br />";
echo "<br /><small>" . htmlentities_utf8($row->mobil) . "</small>";
if (!empty($row->email)) {
$replacement = HTMLHelper::_('email.cloak', $row->email, 1, $row->email, 0);
echo "<small>" . $replacement . "</small>";
}
echo "</td></tr>";
echo "<br /><small>" . $replacement . "</small>";
}
}
if (isset($spielberechtigungen[$row->spieler_id])) {
echo "<tr><td style='text-align: center'>";
foreach ($spielberechtigungen[$row->spieler_id] as $spielberechtigung) {
echo "<small>";
echo "<br><small>";
if (isset($veranstaltungsbezeichnungen[$spielberechtigung[0]])) {
echo htmlentities_utf8($veranstaltungsbezeichnungen[$spielberechtigung[0]]) . ": ";
}
if ($spielberechtigung[2] == -1) // Ohne Spielberechtigung
echo "Nicht spielberechtigt";
echo "<br />Nicht spielberechtigt";
else if (empty($spielberechtigung[3])) // Letzter Spieltag ohne Einschränkung
echo "Ab " . htmlentities_utf8(Rundenbezeichnung($spielberechtigung[2], $spielberechtigung[1] == 0));
echo "<br />Ab " . htmlentities_utf8(Rundenbezeichnung($spielberechtigung[2], $spielberechtigung[1] == 0));
else if ($spielberechtigung[2] < 2) // Erster Spieltag ohne Einschränkung
echo "Bis " . htmlentities_utf8(Rundenbezeichnung($spielberechtigung[3], $spielberechtigung[1] == 0));
echo "<br />Bis " . htmlentities_utf8(Rundenbezeichnung($spielberechtigung[3], $spielberechtigung[1] == 0));
else if ($spielberechtigung[2] == $spielberechtigung[3]) // Erster Spieltag und letzter Spieltag gleich
echo "W&auml;hrend " . htmlentities_utf8(Rundenbezeichnung($spielberechtigung[2], $spielberechtigung[1] == 0));
echo "<br />W&auml;hrend " . htmlentities_utf8(Rundenbezeichnung($spielberechtigung[2], $spielberechtigung[1] == 0));
else
echo htmlentities_utf8(Rundenbezeichnung($spielberechtigung[2], $spielberechtigung[1] == 0)) . " bis " . htmlentities_utf8(Rundenbezeichnung($spielberechtigung[3], $spielberechtigung[1] == 0));
echo "</small><br />";
echo "</small>";
}
echo "</td></tr>";
}
echo "</table></td>";
echo "<td style='text-align: center' class=\"sectiontableentry" . (($n % 2) + 1) . $params->get('pageclass_sfx') . "\">";
echo "</td>";
echo "<td style='text-align: left; width: 120px;' class=\"sectiontableentry" . (($n % 2) + 1) . $params->get('pageclass_sfx') . "\">";
$bild = bildHTML("mannschaftsmitglieder", !$details_anzeigen && $row->bild_ausblenden ? '' : $row->mitglied_von_team_id, 90, 120, 0, 0, 'border="1"');
if ($bild == null)
$bild = bildHTML("spieler", !$details_anzeigen && $row->bild_ausblenden ? '' : $row->spieler_id, 90, 120, 0, 0, 'border="1"', $row->geschlecht == 'M' ? 'm' : 'w');
if ($bild != null) {
?>
<table style="padding: 4px">
<tr>
<td><?php echo $bild; ?></td>
</tr>
</table>
<?php
echo $bild;
}
echo "</td>";
$n++;
echo "</tr>";
echo "</table>";
}
?>
</tr>
@@ -2576,7 +2553,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
?>
<div class="uk-overflow-auto">
<table class="uk-table contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td nowrap class="contentheading<?php echo $params->get('pageclass_sfx'); ?>"
style="width: 100%">
@@ -2587,7 +2564,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
</div>
<div class="uk-overflow-auto">
<table class="uk-table contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td>
<?php
@@ -2764,10 +2741,10 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
}
$bilder_anzeigen = false;
foreach ($begegnungen as $begegnung) {
if (bildHTML("mannschaften", $begegnung->gegner_id, 28, 28)) {
if (bildHTML("mannschaften", $begegnung->gegner_id, 40, 40)) {
$bilder_anzeigen = true;
break;
} else if ($begegnung->gegner_verein_id != null && bildHTML("vereine", $begegnung->gegner_verein_id, 28, 28)) {
} else if ($begegnung->gegner_verein_id != null && bildHTML("vereine", $begegnung->gegner_verein_id, 40, 40)) {
$bilder_anzeigen = true;
break;
}
@@ -2785,9 +2762,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
$veranstaltung_id = -1;
$k = 0;
foreach ($begegnungen
as $row) {
foreach ($begegnungen as $row) {
if ($veranstaltung_id != $row->veranstaltung_id) {
if ($veranstaltung_id != -1) {
?>
@@ -2798,7 +2773,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
$veranstaltung_id = $row->veranstaltung_id;
?>
<div class="uk-overflow-auto">
<table class="uk-table contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td nowrap class="contentheading<?php echo $params->get('pageclass_sfx'); ?>"
style="width: 100%"><?php echo Text::_('COM_SPORTSMANAGER_MATCHES'); ?><?php if (isset($veranstaltungsbezeichnungen[$veranstaltung_id])) echo " " . htmlentities_utf8($veranstaltungsbezeichnungen[$veranstaltung_id]); ?></td>
@@ -2807,7 +2782,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
</div>
<div class="uk-overflow-auto">
<table class="uk-table contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<table style="width: 720px; border-collapse: separate;" class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<?php
if ($row->unterteilung == 0 || $row->unterteilung == 1) {
@@ -2817,9 +2792,9 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
}
?>
<?php if ($zeitpunkt_anzeigen) { ?>
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_SCHEDULE_DATE'); ?></strong>
<th style="text-align: left;" nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_SCHEDULE_DATE'); ?></strong>
</th><?php } ?>
<th nowrap><strong>Kontrahent</strong></th>
<th style="text-align: left;" nowrap><strong>Kontrahent</strong></th>
<?php if ($heimspielort_anzeigen) { ?>
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_LOCATION'); ?></strong></th><?php } ?>
<?php
@@ -2852,7 +2827,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
<?php
if ($zeitpunkt_anzeigen) {
?>
<td nowrap>
<td style="padding: 5px;" nowrap>
<?php
if ($ergebnis_vorhanden) // Veranstaltung muss die ursprüngliche für die Anzeige der Mannschaft sein, damit der Sprung zurück aus der Begegnung funktioniert
echo "<a href=\"" . SportsManagerURL('&task=begegnung_spielplan&veranstaltungid=' . $veranstaltung->veranstaltung_id . '&teamid=' . $team->team_id . '&id=' . $row->begegnung_id) . "\">" . FormatiertesDatum($row->zeitpunkt) . "</a>";
@@ -2867,7 +2842,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
}
?>
<td nowrap>
<td style="padding: 5px;" nowrap>
<a id="id<?php echo $row->begegnung_id; ?>"></a>
<table style="width: 100%; border: none; border-spacing: 0; padding: 0">
@@ -2879,13 +2854,13 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
<?php
if ($bilder_anzeigen) {
?>
<td style="width: 29px">
<td style="width: 50px">
<?php
$bild = bildHTML("mannschaften", $row->gegner_id, 28, 28, 0, 0, 'border="0"');
$bild = bildHTML("mannschaften", $row->gegner_id, 40, 40, 0, 0, 'border="0"');
if ($bild != null)
echo $bild;
else if ($row->gegner_verein_id != null) {
$bild = bildHTML("vereine", $row->gegner_verein_id, 28, 28, 0, 0, 'border="0"');
$bild = bildHTML("vereine", $row->gegner_verein_id, 40, 40, 0, 0, 'border="0"');
if ($bild != null)
echo $bild;
}
@@ -2902,7 +2877,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
<?php
if ($heimspielort_anzeigen) {
?>
<td nowrap>
<td style="padding: 5px;" nowrap>
<?php
if (!$ist_vergangen) {
$heimspielort_url = $row->heimspielort_url;
@@ -2930,7 +2905,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
}
if ($row->spielpunkte_wertung_einzel != 2 || $row->spielpunkte_wertung_doppel != 2) {
?>
<td nowrap style="text-align: center">
<td style="padding: 5px;" nowrap style="text-align: center">
<?php
if ($ergebnis_vorhanden) {
echo "<a href=\"" . SportsManagerURL('&task=begegnung_spielplan&veranstaltungid=' . $veranstaltung->veranstaltung_id . '&teamid=' . $team->team_id . '&id=' . $row->begegnung_id) . "\">" . ($row->auswaerts ? ($row->gast_punkte . ":" . $row->heim_punkte) : ($row->heim_punkte . ":" . $row->gast_punkte)) . "</a>";
@@ -2941,7 +2916,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
<?php
}
?>
<td nowrap style="text-align: center">
<td style="padding: 5px;" nowrap style="text-align: center">
<?php
if ($ergebnis_vorhanden) {
echo "<a href=\"" . SportsManagerURL('&task=begegnung_spielplan&veranstaltungid=' . $veranstaltung->veranstaltung_id . '&teamid=' . $team->team_id . '&id=' . $row->begegnung_id) . "\">" . ($row->auswaerts ? ($row->gast_spielpunkte . ":" . $row->heim_spielpunkte) : ($row->heim_spielpunkte . ":" . $row->gast_spielpunkte)) . "</a>";
@@ -2972,7 +2947,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
}
?>
<div class="uk-overflow-auto">
<table class="uk-table contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td nowrap class="contentheading<?php echo $params->get('pageclass_sfx'); ?>"
style="width: 100%">
@@ -2983,7 +2958,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
</div>
<div class="uk-overflow-auto">
<table class="uk-table 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'); ?>">
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_PLAYER'); ?></strong></th>
<th nowrap title="<?php echo Text::_('COM_SPORTSMANAGER_GAME_SINGLES'); ?>">
@@ -3068,7 +3043,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
$k = 0;
?>
<div class="uk-overflow-auto">
<table class="uk-table contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td nowrap class="contentheading<?php echo $params->get('pageclass_sfx'); ?>"
style="width: 100%">
@@ -3079,7 +3054,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
</div>
<div class="uk-overflow-auto">
<table class="uk-table 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'); ?>">
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_MAILING_LISTS'); ?></strong></th>
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_EMAIL'); ?></strong></th>
@@ -4356,7 +4331,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
global $params;
?>
<table class="uk-table" style="width: 100%; border: none; border-spacing: 0; padding: 3px">
<table style="width: 100%; border: none; border-spacing: 0; padding: 3px">
<tr>
<?php
if ($vorheriger_spieler_id != 0 || $naechster_spieler_id != 0) {
@@ -4394,7 +4369,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
</table>
<div class="uk-overflow-auto">
<table class="uk-table contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td colspan="3">
<div>
@@ -4410,7 +4385,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
if ($bild != null) {
?>
<div class="uk-overflow-auto">
<table class="uk-table contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td nowrap><?php echo $bild ?></td>
</tr>
@@ -4422,7 +4397,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
?>
<div class="uk-overflow-auto">
<table class="uk-table contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td nowrap class="contentheading<?php echo $params->get('pageclass_sfx'); ?>"
style="width: 100%"><h2><?php echo Text::_('COM_SPORTSMANAGER_INFORMATION'); ?></h2></td>
@@ -4431,7 +4406,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
</div>
<div class="uk-overflow-auto">
<table
class="uk-table uk-table-shrink uk-table-hover uk-table-middle contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
class="uk-table-shrink uk-table-hover uk-table-middle contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<?php
$kategorie_bezeichnung = array('H' => Text::_('COM_SPORTSMANAGER_CATEGORY_MEN'), 'D' => Text::_('COM_SPORTSMANAGER_CATEGORY_WOMEN'), 'J' => Text::_('COM_SPORTSMANAGER_CATEGORY_JUNIORS'), 'S' => Text::_('COM_SPORTSMANAGER_CATEGORY_SENIORS'));
if (isset($kategorie_bezeichnung[$spieler->kategorie])) {
@@ -4594,7 +4569,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
if (count($ranglistenplatzierungen) > 0) {
?>
<div class="uk-overflow-auto">
<table class="uk-table uk-table-middle contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<table class="uk-table-middle contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td class="contentheading<?php echo $params->get('pageclass_sfx'); ?>"
style="width: 100%"><h2><?php echo Text::_('COM_SPORTSMANAGER_RANKING_PLACEMENT'); ?></h2>
@@ -4606,11 +4581,11 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
<div class="uk-overflow-auto">
<div class="uk-overflow-auto">
<table
class="uk-table uk-table-hover uk-table-middle rangliste-width contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
class="uk-table-hover uk-table-middle rangliste-width contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<th><strong><?php echo Text::_('COM_SPORTSMANAGER_RANKING'); ?></strong></th>
<th><strong><?php echo Text::_('COM_SPORTSMANAGER_PLACE'); ?></strong></th>
<th><strong><?php echo Text::_('COM_SPORTSMANAGER_MESSAGES'); ?></strong></th>
<th style="width: 200px; text-align: left;"><strong><?php echo Text::_('COM_SPORTSMANAGER_RANKING'); ?></strong></th>
<th style="width: 80px; text-align: center;"><strong><?php echo Text::_('COM_SPORTSMANAGER_PLACE'); ?></strong></th>
<th style="width: 120px; text-align: center;"><strong><?php echo Text::_('COM_SPORTSMANAGER_MESSAGES'); ?></strong></th>
</tr>
<?php
@@ -4624,7 +4599,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
<td nowrap height="4"></td>
</tr>
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>"
style="text-align: center">
style="text-align: left;">
<th nowrap><span style="font-size: 70%; "><i>
<?php
echo htmlentities_utf8($saisonbezeichnung);
@@ -4653,10 +4628,10 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
if (count($turnierplatzierungen) > 0) {
?>
<div class="uk-overflow-auto">
<table class="uk-table contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td class="contentheading<?php echo $params->get('pageclass_sfx'); ?>"
style="width: 100%"><h2><?php echo Text::_('COM_SPORTSMANAGER_MESSAGES'); ?></h2>
style="width: 100%;"><h2><?php echo Text::_('COM_SPORTSMANAGER_MESSAGES'); ?></h2>
</td>
</tr>
</table>
@@ -4664,15 +4639,15 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
<div class="uk-overflow-auto">
<div class="uk-overflow-auto">
<table
class="uk-table uk-table-hover uk-table-middle contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<table style="width: 100%;"
class="uk-table-hover uk-table-middle contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<th><strong><?php echo Text::_('COM_SPORTSMANAGER_TOURNAMENT'); ?></strong></th>
<th><strong><?php echo Text::_('COM_SPORTSMANAGER_DATE'); ?></strong></th>
<th><strong><?php echo Text::_('COM_SPORTSMANAGER_LOCATION'); ?></strong></th>
<th><strong><?php echo Text::_('COM_SPORTSMANAGER_DISCIPLINE'); ?></strong></th>
<th><strong><?php echo Text::_('COM_SPORTSMANAGER_PLACE'); ?></strong></th>
<th><strong><?php echo Text::_('COM_SPORTSMANAGER_MESSAGES'); ?></strong></th>
<th style="width: 400px; text-align: left;"><strong><?php echo Text::_('COM_SPORTSMANAGER_TOURNAMENT'); ?></strong></th>
<th style="width: 160px; text-align: left;"><strong><?php echo Text::_('COM_SPORTSMANAGER_DATE'); ?></strong></th>
<th style="width: 200px; text-align: left;"><strong><?php echo Text::_('COM_SPORTSMANAGER_LOCATION'); ?></strong></th>
<th style="width: 160px; text-align: left;"><strong><?php echo Text::_('COM_SPORTSMANAGER_DISCIPLINE'); ?></strong></th>
<th style="width: 80px; text-align: center;"><strong><?php echo Text::_('COM_SPORTSMANAGER_PLACE'); ?></strong></th>
<th style="width: 120px; text-align: center;"><strong><?php echo Text::_('COM_SPORTSMANAGER_MESSAGES'); ?></strong></th>
</tr>
<?php
@@ -4686,7 +4661,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
<td nowrap height="4"></td>
</tr>
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>"
style="text-align: center">
style="text-align: left">
<th nowrap><span style="font-size: 70%; "><i>
<?php
echo htmlentities_utf8($saisonbezeichnung);
@@ -4698,9 +4673,9 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
?>
<tr class="sectiontableentry<?php echo $k + 1;
$k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>">
<td><?php echo $platzierung->turnierbezeichnung != null ? htmlentities_utf8($platzierung->turnierbezeichnung) : ""; ?></td>
<td><?php echo $platzierung->beginn == null ? "" : htmlentities_utf8(FormatiertesDatum($platzierung->beginn, false)); ?></td>
<td><?php echo $platzierung->turnierort != null ? htmlentities_utf8($platzierung->turnierort) : ""; ?></td>
<td style="padding-right: 6px;"><?php echo $platzierung->turnierbezeichnung != null ? htmlentities_utf8($platzierung->turnierbezeichnung) : ""; ?></td>
<td style="padding-right: 6px;"><?php echo $platzierung->beginn == null ? "" : htmlentities_utf8(FormatiertesDatum($platzierung->beginn, false)); ?></td>
<td style="padding-right: 6px;"><?php echo $platzierung->turnierort != null ? htmlentities_utf8($platzierung->turnierort) : ""; ?></td>
<td style="text-align: left"><?php echo $platzierung->disziplin != null ? htmlentities_utf8($platzierung->disziplin) : ""; ?></td>
<td style="text-align: center"><?php echo $platzierung->platz != null ? htmlentities_utf8($platzierung->platz) : ""; ?></td>
<td style="text-align: center"><?php echo $platzierung->teilnehmer != null ? htmlentities_utf8($platzierung->teilnehmer) : ""; ?></td>
@@ -4718,10 +4693,10 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
if (count($teams) > 0) {
?>
<div class="uk-overflow-auto">
<table class="uk-table contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td nowrap class="contentheading<?php echo $params->get('pageclass_sfx'); ?>"
style="width: 100%"><h2><?php echo Text::_('COM_SPORTSMANAGER_DISCIPLINE'); ?></h2>
style="width: 100%;"><h2><?php echo Text::_('COM_SPORTSMANAGER_DISCIPLINE'); ?></h2>
</td>
</tr>
</table>
@@ -4729,10 +4704,10 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
<div class="uk-overflow-auto">
<table
class="uk-table uk-table-hover uk-table-middle contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
class="uk-table-hover uk-table-middle contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_TEAM'); ?></strong></th>
<th><strong><?php echo Text::_('COM_SPORTSMANAGER_COMPETITIONS'); ?></strong></th>
<th style="width: 300px; text-align: left;" nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_TEAM'); ?></strong></th>
<th style="text-align: left;"><strong><?php echo Text::_('COM_SPORTSMANAGER_COMPETITIONS'); ?></strong></th>
</tr>
<?php
@@ -4746,7 +4721,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
<td nowrap height="4"></td>
</tr>
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>"
style="text-align: center">
style="text-align: left">
<th nowrap><span style="font-size: 70%; "><i>
<?php
echo htmlentities_utf8($saisonbezeichnung);
@@ -4758,7 +4733,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
?>
<tr class="sectiontableentry<?php echo $k + 1;
$k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>">
<td nowrap><?php echo htmlentities_utf8($team->teamname); ?></td>
<td style="padding-right: 6px;"><?php echo htmlentities_utf8($team->teamname); ?></td>
<td><?php echo htmlentities_utf8($team->wettbewerbe); ?></td>
</tr>
<?php
@@ -14,6 +14,21 @@ require_once JPATH_SITE . '/components/com_sportsmanager/util/image.php';
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 formatTimediff( $timestamp1, $timestamp2, $verbose ): string
{
if (empty($timestamp1) || empty($timestamp2)) {
@@ -56,7 +71,7 @@ class HTML_sportsmanager_admin
?>
<div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>" style='font-weight: bold;'>
<a href="https://github.com/Deutscher-Tischfussballbund/" target="_blank">
Sports Manager <?php echo SPORTS_MANAGER_VERSION; ?> </a>
Sports Manager <?php echo self::getVersion(); ?> </a>
</div>
<table>
<tr>
@@ -2298,23 +2313,21 @@ class HTML_sportsmanager_admin
<?php
}
static function adminImportSpielerFehler($spieler): void
static function adminImportSpielerFehler($spieler, $fehler): void
{
global $params;
$spieler_anzahl = count($spieler);
?>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_PLAYERS_IMPORT2'); ?></div>
<div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>">
<?php echo Text::_('COM_SPORTSMANAGER_PLAYERS_IMPORT2'); ?>
</div>
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td>
<?php
if ($spieler_anzahl > 0) {
?>
<?php echo Text::_('COM_SPORTSMANAGER_IMPORT_CONFLICTS_MESSAGE'); ?>
<?php
echo Text::_('COM_SPORTSMANAGER_IMPORT_CONFLICTS_MESSAGE');
}
?>
</td>
@@ -2327,12 +2340,20 @@ class HTML_sportsmanager_admin
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td nowrap class="contentheading<?php echo $params->get('pageclass_sfx'); ?>"
style="width: 100%"><?php echo Text::_('COM_SPORTSMANAGER_IMPORT_DUPLICATE_MESSAGE'); ?></td>
style="width: 100%">
<?php
if ($fehler == "konflikt")
echo Text::_('COM_SPORTSMANAGER_IMPORT_DUPLICATE_MESSAGE');
if ($fehler == "Passnummer")
echo Text::_('COM_SPORTSMANAGER_IMPORT_WRONG_FORMAT_PLAYERNUMBER');
?>
</td>
</tr>
</table>
<table class="contentpaneopen<?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>
</tr>
<?php
@@ -2342,6 +2363,7 @@ class HTML_sportsmanager_admin
?>
<tr class="sectiontableentry<?php echo $k + 1;
$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>
</tr>
<?php
@@ -2364,7 +2386,6 @@ class HTML_sportsmanager_admin
static function adminImportSpielerVorschau($import_verweigern, $spieler, $veranstalter, $session_id, $persoenliche_daten, $lizenznr_beibehalten, $spalten): void
{
global $params;
$spieler_anzahl = count($spieler);
?>
@@ -409,8 +409,9 @@ COM_SPORTSMANAGER_COUNTRY_CODE="Landeskennung"
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_CHECK="Pr&uuml;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&uuml;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."
@@ -409,8 +409,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."
+1 -1
View File
@@ -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">