mirror of
https://github.com/Deutscher-Tischfussballbund/com_sportsmanager.git
synced 2026-06-10 06:27:52 +00:00
Compare commits
79 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4f6edb0acb | |||
| 822708356b | |||
| 7c302d4ded | |||
| 1e63f2b542 | |||
| ebfd6ee4e9 | |||
| a503325ca4 | |||
| 218dc138fb | |||
| eed53841cf | |||
| dbc79096d4 | |||
| 3e93e27f72 | |||
| 8c022f831a | |||
| 2ab429f949 | |||
| 6e53017158 | |||
| 8764b0a337 | |||
| 07611a0087 | |||
| bc57da1eff | |||
| 1c380928f0 | |||
| 1ddcfd87db | |||
| cb1493954f | |||
| 9637f2a92a | |||
| a977343544 | |||
| 1f5593d3e8 | |||
| fff5f97971 | |||
| 546b9c3af9 | |||
| 4ad93a8cf6 | |||
| 1b5e070026 | |||
| 114eba3a9c | |||
| 9fb592ccbc | |||
| f76ab18d4b | |||
| 02e27d7747 | |||
| 5375950049 | |||
| 050b246fef | |||
| 55b8cc52c7 | |||
| aad70e5ab2 | |||
| 37a98edbad | |||
| 228f68f90c | |||
| 4f9df2ce89 | |||
| 1a364a4e30 | |||
| f3bf69c9ca | |||
| cc81b97569 | |||
| aaa5aaac1d | |||
| f9f9e58881 | |||
| 671dfb7e8d | |||
| 3ae15e2e70 | |||
| ee0c19efe3 | |||
| 87c9ec82fd | |||
| 71d8460cd6 | |||
| d97713e73d | |||
| b16638ed47 | |||
| b511badad2 | |||
| 42ff1155f3 | |||
| 17a9bfdd2e | |||
| 3aa20036dc | |||
| fc1ce3bdd6 | |||
| cf52c718e8 | |||
| 8b29c8eba6 | |||
| e9460ef8cc | |||
| 3ac38abb92 | |||
| 19ff8ebd08 | |||
| 3ab2ae9206 | |||
| 4820f82253 | |||
| 0a06321a72 | |||
| 60232d95b3 | |||
| f27b87a0d8 | |||
| bc6c44e82a | |||
| 01ac642de5 | |||
| 825a072ace | |||
| 1aa9b924d7 | |||
| 4a96d9f0a9 | |||
| 7a59020e64 | |||
| 3f816235c8 | |||
| 4f264ed72d | |||
| a6f302cb63 | |||
| 22c50e688a | |||
| fbd7e05abb | |||
| a36edeedca | |||
| ea9fd038f3 | |||
| e55d925034 | |||
| 48d0bca1c6 |
@@ -28,6 +28,9 @@ jobs:
|
||||
- name: Get version from git tag
|
||||
run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Set DATE
|
||||
run: echo "DATE=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
|
||||
|
||||
- name: Update version.php
|
||||
run: |
|
||||
echo "<?php" > src/structure/components/com_sportsmanager/util/version.php
|
||||
@@ -36,6 +39,10 @@ jobs:
|
||||
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
|
||||
echo "Updating Date to $DATE in sportsmanager.xml"
|
||||
sed -i "s#<creationDate>.*</creationDate>#<creationDate>$DATE</creationDate>#" src/structure/sportsmanager.xml
|
||||
|
||||
- name: Generate release notes
|
||||
id: release_notes_extension
|
||||
@@ -91,3 +98,24 @@ jobs:
|
||||
else
|
||||
echo "No draft releases found"
|
||||
fi
|
||||
|
||||
- name: Send notification to Teams
|
||||
run: |
|
||||
curl -H 'Content-Type: application/json' \
|
||||
-d "{
|
||||
\"@type\": \"MessageCard\",
|
||||
\"@context\": \"http://schema.org/extensions\",
|
||||
\"summary\": \"New Release\",
|
||||
\"themeColor\": \"0076D7\",
|
||||
\"title\": \"🚀 New Release: ${{ github.ref_name }}\",
|
||||
\"sections\": [{
|
||||
\"activityTitle\": \"Repository: ${{ github.repository }}\",
|
||||
\"text\": \"${{ steps.release_notes_github.outputs.body }}\"
|
||||
}],
|
||||
\"potentialAction\": [{
|
||||
\"@type\": \"OpenUri\",
|
||||
\"name\": \"View Release\",
|
||||
\"targets\": [{ \"os\": \"default\", \"uri\": \"https://github.com/${{ github.repository }}/releases/tag/${{ github.ref_name }}\" }]
|
||||
}]
|
||||
}" \
|
||||
${{ secrets.TEAMS_WEBHOOK_URL }}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -656,6 +656,9 @@ function adminEinstellungen(): void
|
||||
$ansprechpartner_exportieren = $jInput->get('ansprechpartner_exportieren', 0, 'INT');
|
||||
$spielerliste_elo = $jInput->get('spielerliste_elo', 0, 'INT');
|
||||
$lizenz_anzeigen = $jInput->get('lizenz_anzeigen', 0, 'INT');
|
||||
$anzahl_mitglieder_zeigen = $jInput->get('anzahl_mitglieder_zeigen', 0, 'INT');
|
||||
$verband_anzeigen = $jInput->get('verband_anzeigen', 0, 'INT');
|
||||
$turnierbaum_zeigen = $jInput->get('turnierbaum_zeigen', 0, 'INT');
|
||||
$termine_beantragen = $jInput->get('termine_beantragen', 0, 'INT');
|
||||
$spielerimport_persoenliche_daten_vorauswahl = $jInput->get('spielerimport_persoenliche_daten_vorauswahl', 0, 'INT');
|
||||
|
||||
@@ -698,6 +701,30 @@ function adminEinstellungen(): void
|
||||
die($db->stderr(true));
|
||||
}
|
||||
|
||||
$query = "REPLACE #__sportsmanager_einstellungen"
|
||||
. "\n SET name = 'anzahl_mitglieder_zeigen'"
|
||||
. ", wert = '$anzahl_mitglieder_zeigen'";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
|
||||
$query = "REPLACE #__sportsmanager_einstellungen"
|
||||
. "\n SET name = 'verband_anzeigen'"
|
||||
. ", wert = '$verband_anzeigen'";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
|
||||
$query = "REPLACE #__sportsmanager_einstellungen"
|
||||
. "\n SET name = 'turnierbaum_zeigen'"
|
||||
. ", wert = '$turnierbaum_zeigen'";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
|
||||
$query = "REPLACE #__sportsmanager_einstellungen"
|
||||
. "\n SET name = 'ansprechpartner_ausblenden'"
|
||||
. ", wert = '$ansprechpartner_ausblenden'";
|
||||
@@ -3305,6 +3332,7 @@ function adminEditVerein(): void
|
||||
$url = $db->escape(trim($jInput->get('url', '', 'RAW')));
|
||||
$beschreibung = $db->escape(trim($jInput->get('beschreibung', '', 'RAW')));
|
||||
$ausgetreten = $jInput->get('ausgetreten', 0, 'INT');
|
||||
$verstecken = $jInput->get('verstecken', 0, 'INT');
|
||||
$bildbeibehalten = $jInput->get('bildbeibehalten', 0, 'INT');
|
||||
|
||||
$berechtigt_fuer_verein_user_ids = array($jInput->get('berechtigt_fuer_verein_user_1_id', 0, 'INT'),
|
||||
@@ -3319,8 +3347,8 @@ function adminEditVerein(): void
|
||||
}
|
||||
|
||||
if ($id == 0) {
|
||||
$query = "INSERT INTO #__sportsmanager_verein (vereinsname, vereinssitz, vereinssitz_ortsteil, veranstalter_id, url, beschreibung, ausgetreten)"
|
||||
. "\n VALUES ('$vereinsname', '$vereinssitz', '$vereinssitz_ortsteil', " . ($veranstalter_id != 0 ? "'$veranstalter_id'" : "NULL") . ", '$url', '$beschreibung', " . ($ausgetreten ? "TRUE" : "FALSE") . ");";
|
||||
$query = "INSERT INTO #__sportsmanager_verein (vereinsname, vereinssitz, vereinssitz_ortsteil, veranstalter_id, url, beschreibung, ausgetreten, verstecken)"
|
||||
. "\n VALUES ('$vereinsname', '$vereinssitz', '$vereinssitz_ortsteil', " . ($veranstalter_id != 0 ? "'$veranstalter_id'" : "NULL") . ", '$url', '$beschreibung', " . ($ausgetreten ? "TRUE" : "FALSE") . ", $verstecken);";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
@@ -3334,7 +3362,8 @@ function adminEditVerein(): void
|
||||
. "\n veranstalter_id = " . ($veranstalter_id != 0 ? "'$veranstalter_id'" : "NULL") . ","
|
||||
. "\n url = '$url',"
|
||||
. "\n beschreibung = '$beschreibung',"
|
||||
. "\n ausgetreten = " . ($ausgetreten ? "TRUE" : "FALSE")
|
||||
. "\n ausgetreten = " . ($ausgetreten ? "TRUE" : "FALSE") . ","
|
||||
. "\n verstecken = '$verstecken'"
|
||||
. "\n WHERE verein_id = $id";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
@@ -6075,6 +6104,7 @@ function adminEditVeranstaltung(): void
|
||||
$tabellenwertung = $jInput->get('tabellenwertung', 0, 'INT');
|
||||
$direktervergleich = $jInput->get('direktervergleich', 0, 'INT');
|
||||
$unterteilung = $jInput->get('unterteilung', 0, 'INT');
|
||||
$spieltag_titel_zeigen = $jInput->get('spieltag_titel_zeigen', 0, 'INT');
|
||||
$elo_wertung = $jInput->get('elo_wertung', 0, 'INT');
|
||||
$logo_url = $db->escape(trim($jInput->get('logo_url', '', 'RAW')));
|
||||
$ticker_logo_url = $db->escape(trim($jInput->get('ticker_logo_url', '', 'RAW')));
|
||||
@@ -6093,8 +6123,8 @@ function adminEditVeranstaltung(): void
|
||||
$elo_aktualisieren = false;
|
||||
$spielerstatistik_aktualisieren = false;
|
||||
if ($id == 0) {
|
||||
$query = "INSERT INTO #__sportsmanager_veranstaltung (veranstalter_id, saison_id, bezeichnung, erster_tag " . ($letzter_tag != null ? ", letzter_tag" : "") . ", modus_id, verschieberegel_id, tabellenwertung, direktervergleich, unterteilung, elo_wertung, logo_url, ticker_logo_url, status, reihenfolge, kategorie) VALUES
|
||||
('$veranstalterId', '$saison_id', '$bezeichnung', '$erster_tag', " . ($letzter_tag != null ? "'$letzter_tag', " : "") . "'$modus_id', '$verschieberegel_id', '$tabellenwertung', '$direktervergleich', '$unterteilung', '$elo_wertung', '$logo_url', '$ticker_logo_url', '$status', '$reihenfolge', '$kategorie');";
|
||||
$query = "INSERT INTO #__sportsmanager_veranstaltung (veranstalter_id, saison_id, bezeichnung, erster_tag " . ($letzter_tag != null ? ", letzter_tag" : "") . ", modus_id, verschieberegel_id, tabellenwertung, direktervergleich, unterteilung, spieltag_titel_zeigen, elo_wertung, logo_url, ticker_logo_url, status, reihenfolge, kategorie) VALUES
|
||||
('$veranstalterId', '$saison_id', '$bezeichnung', '$erster_tag', " . ($letzter_tag != null ? "'$letzter_tag', " : "") . "'$modus_id', '$verschieberegel_id', '$tabellenwertung', '$direktervergleich', '$unterteilung', '$spieltag_titel_zeigen', '$elo_wertung', '$logo_url', '$ticker_logo_url', '$status', '$reihenfolge', '$kategorie');";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
@@ -6119,6 +6149,7 @@ function adminEditVeranstaltung(): void
|
||||
. "\n tabellenwertung = '$tabellenwertung',"
|
||||
. "\n direktervergleich = '$direktervergleich',"
|
||||
. "\n unterteilung = '$unterteilung',"
|
||||
. "\n spieltag_titel_zeigen = '$spieltag_titel_zeigen',"
|
||||
. "\n elo_wertung = '$elo_wertung',"
|
||||
. "\n logo_url = '$logo_url',"
|
||||
. "\n ticker_logo_url = '$ticker_logo_url',"
|
||||
@@ -6381,6 +6412,7 @@ function adminEditMannschaft(): void
|
||||
$beschraenkter_zugriff_veranstaltungen_ids = $beschraenkter_zugriff_veranstaltungen ? benutzerVeranstaltungIdsModerator() : null;
|
||||
|
||||
$teamname = $db->escape(trim($jInput->get('teamname', '', 'RAW')));
|
||||
$teamname_kurz = $db->escape(trim($jInput->get('teamname_kurz', '', 'RAW')));
|
||||
$platz = $jInput->get('platz', 0, 'INT');
|
||||
$verein_id = $jInput->get('verein_id', 0, 'INT');
|
||||
$tischtyp = $db->escape(trim($jInput->get('tischtyp', '', 'RAW')));
|
||||
@@ -6414,9 +6446,10 @@ function adminEditMannschaft(): void
|
||||
$veranstaltung = $rows[0];
|
||||
|
||||
if ($id == 0) {
|
||||
$query = "INSERT INTO #__sportsmanager_team (verein_id, veranstaltung_id, teamname, tischtyp, tischeigenschaften, heimspiel_wochentag, heimspiel_uhrzeit, heimspielort_id, nichtraucherschutz, zusatzpunkte" . ($veranstaltung->tabellenwertung == -2 ? ", platz" : "") . ", pin)"
|
||||
. "\n VALUES (" . ($verein_id != 0 ? "'$verein_id'" : "NULL") . ", '$veranstaltungId', '$teamname', '$tischtyp', '$tischeigenschaften', '$heimspiel_wochentag', '$heimspiel_uhrzeit', " . ($heimspielort_id != 0 ? "'$heimspielort_id'" : "NULL") . ", '$nichtraucherschutz', '$zusatzpunkte'" . ($veranstaltung->tabellenwertung == -2 ? ($platz != 0 ? ", '$platz'" : ", NULL") : "") . ", '$pin');";
|
||||
$db->setQuery($query);
|
||||
$query = "INSERT INTO #__sportsmanager_team (verein_id, veranstaltung_id, teamname, teamname_kurz, tischtyp, tischeigenschaften, heimspiel_wochentag, heimspiel_uhrzeit, heimspielort_id, nichtraucherschutz, zusatzpunkte" . ($veranstaltung->tabellenwertung == -2 ? ", platz" : "") . ", pin)"
|
||||
. "\n VALUES (" . ($verein_id != 0 ? "'$verein_id'" : "NULL") . ", '$veranstaltungId', '$teamname', '$teamname_kurz', '$tischtyp', '$tischeigenschaften', '$heimspiel_wochentag', '$heimspiel_uhrzeit', " . ($heimspielort_id != 0 ? "'$heimspielort_id'" : "NULL") . ", '$nichtraucherschutz', '$zusatzpunkte'" . ($veranstaltung->tabellenwertung == -2 ? ($platz != 0 ? ", '$platz'" : ", NULL") : "") . ", '$pin');";
|
||||
echo $query;
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
@@ -6437,6 +6470,7 @@ function adminEditMannschaft(): void
|
||||
$query = "UPDATE #__sportsmanager_team"
|
||||
. "\n SET verein_id = " . ($verein_id != 0 ? "'$verein_id'" : "NULL") . ","
|
||||
. "\n teamname = '$teamname',"
|
||||
. "\n teamname_kurz = '$teamname_kurz',"
|
||||
. "\n tischtyp = '$tischtyp',"
|
||||
. "\n tischeigenschaften = '$tischeigenschaften',"
|
||||
. "\n heimspiel_wochentag = '$heimspiel_wochentag',"
|
||||
@@ -6662,6 +6696,7 @@ function mannschaftsgruppe_verknuepfen($quelle_team_id, $ziel_team_id, $mannscha
|
||||
. "\n SET teamgruppe_id = '$teamgruppe_id',"
|
||||
. "\n verein_id = " . ($team->verein_id == null ? "NULL" : "'$team->verein_id'") . ","
|
||||
. "\n teamname = '" . $db->escape($team->teamname) . "',"
|
||||
. "\n teamname_kurz = '" . $db->escape($team->teamname_kurz) . "',"
|
||||
. "\n tischtyp = '" . $db->escape($team->tischtyp) . "',"
|
||||
. "\n tischeigenschaften = '" . $db->escape($team->tischeigenschaften) . "',"
|
||||
. "\n heimspiel_wochentag = '" . $db->escape($team->heimspiel_wochentag) . "',"
|
||||
@@ -7681,7 +7716,7 @@ function adminBegegnungen(): void
|
||||
. "\n LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id"
|
||||
. "\n LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS t4 ON t1.begegnung_id = t4.begegnung_id"
|
||||
. "\n WHERE t2.veranstaltung_id = $veranstaltungId"
|
||||
. "\n ORDER BY " . (($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) ? "t1.spieltag, " : "") . "t1.zeitpunkt, heim_name";
|
||||
. "\n ORDER BY " . (($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) ? "t1.spieltag, t1.spiel_nr, " : "") . "t1.zeitpunkt, heim_name";
|
||||
$rows = loadObjectList($db, $query);
|
||||
HTML_sportsmanager_admin::adminBegegnungen($veranstaltung, $modus, $rows);
|
||||
}
|
||||
@@ -9261,8 +9296,8 @@ function adminBegegnungenGenerierenForm(): void
|
||||
if ($spiele[$spieltag][$spielnr][0] > $anzahlteams || $spiele[$spieltag][$spielnr][1] > $anzahlteams)
|
||||
continue;
|
||||
|
||||
$heim_team_id = $teamIds[$spiele[$spieltag][$spielnr][0]];
|
||||
$gast_team_id = $teamIds[$spiele[$spieltag][$spielnr][1]];
|
||||
$heim_team_id = $teamIds[trim($spiele[$spieltag][$spielnr][0])];
|
||||
$gast_team_id = $teamIds[trim($spiele[$spieltag][$spielnr][1])];
|
||||
|
||||
$heim_team = null;
|
||||
foreach ($teams as $t) {
|
||||
@@ -9303,6 +9338,7 @@ function adminBegegnungenGenerierenForm(): void
|
||||
$Begegnung[$Zeile]['zeitpunkt'] = $zeitpunkt;
|
||||
$Begegnung[$Zeile]['heim_team_id'] = $heim_team_id;
|
||||
$Begegnung[$Zeile]['gast_team_id'] = $gast_team_id;
|
||||
$Begegnung[$Zeile]['spiel_nr'] = $spielnr;
|
||||
$Zeile++;
|
||||
|
||||
|
||||
@@ -9328,8 +9364,9 @@ function adminBegegnungenGenerierenForm(): void
|
||||
|
||||
$Begegnung[$Zeile]['spieltag'] = $spieltag_nr;
|
||||
$Begegnung[$Zeile]['zeitpunkt'] = $zeitpunkt;
|
||||
$Begegnung[$Zeile]['heim_team_id'] = $heim_team_id;
|
||||
$Begegnung[$Zeile]['gast_team_id'] = $gast_team_id;
|
||||
$Begegnung[$Zeile]['heim_team_id'] = $gast_team_id;
|
||||
$Begegnung[$Zeile]['gast_team_id'] = $heim_team_id;
|
||||
$Begegnung[$Zeile]['spiel_nr'] = $spielnr;
|
||||
$Zeile++;
|
||||
|
||||
}
|
||||
@@ -9338,16 +9375,16 @@ function adminBegegnungenGenerierenForm(): void
|
||||
|
||||
if ($datumsangaben and $teams_ok and $spieltage_ok) {
|
||||
$Zeile = 1;
|
||||
$query = "INSERT INTO #__sportsmanager_begegnung (spieltag, zeitpunkt, heim_team_id, gast_team_id) VALUES ";
|
||||
$query = "INSERT INTO #__sportsmanager_begegnung (spieltag, spiel_nr, zeitpunkt, heim_team_id, gast_team_id) VALUES ";
|
||||
foreach ($Begegnung as $value) {
|
||||
if ($Zeile > 1) {
|
||||
$query .= ", ";
|
||||
}
|
||||
$query .= "(" . $value['spieltag'] . "," . ($value['zeitpunkt'] != NULL ? "'" . $value['zeitpunkt'] . "'" : "NULL") . "," . $value['heim_team_id'] . "," . $value['gast_team_id'] . ") ";
|
||||
$query .= "(" . $value['spieltag'] . "," . $value['spiel_nr'] . "," . ($value['zeitpunkt'] != NULL ? "'" . $value['zeitpunkt'] . "'" : "NULL") . "," . $value['heim_team_id'] . "," . $value['gast_team_id'] . ") ";
|
||||
$Zeile++;
|
||||
}
|
||||
$query .= ";";
|
||||
echo $query;
|
||||
|
||||
$db->setQuery($query);
|
||||
|
||||
if (!$db->execute()) {
|
||||
@@ -9391,9 +9428,34 @@ function adminBegegnungenImportierenForm(): void
|
||||
HTML_sportsmanager_admin::adminBegegnungenImportieren($veranstaltung);
|
||||
}
|
||||
|
||||
function vergleich($text1, $text2): bool
|
||||
{
|
||||
$suchen = ["_","-"," "];
|
||||
$ersetzen = ["","",""];
|
||||
$begriffe = explode(",", $text2);
|
||||
foreach($begriffe as $begriff)
|
||||
{
|
||||
$text1 = strtolower(str_replace($suchen,$ersetzen,$text1));
|
||||
$begriff = strtolower(str_replace($suchen,$ersetzen,$begriff));
|
||||
if ($text1 == $begriff) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function erstelleZeitpunkt($datum_jahr, $datum_kw, $heimspiel_wochentag, $heimspiel_uhrzeit): bool|string
|
||||
{
|
||||
if (!empty($datum_jahr) && !empty($datum_kw) && !empty($heimspiel_wochentag) && !empty($heimspiel_uhrzeit))
|
||||
{
|
||||
$ts = getdate(mondaykw($datum_kw, $datum_jahr, $heimspiel_wochentag - 1));
|
||||
return sprintf("%04d-%02d-%02d %02d:%02d:%02d", $ts["year"], $ts["mon"], $ts["mday"],
|
||||
floor($heimspiel_uhrzeit / 100), $heimspiel_uhrzeit % 100, 0);
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
function adminBegegnungenImportieren(): void
|
||||
{
|
||||
//Jürgen Meyer 07.03.2025
|
||||
$db = getDatabase();
|
||||
global $_FILES;
|
||||
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
|
||||
@@ -9411,13 +9473,18 @@ function adminBegegnungenImportieren(): void
|
||||
|
||||
echo Text::_('COM_SPORTSMANAGER_IMPORT_GROUP_GAME2') . " <br><br>";
|
||||
|
||||
$query = "SELECT team_id, teamname FROM #__sportsmanager_team WHERE veranstaltung_id = " . $veranstaltungId . ";";
|
||||
$query = "SELECT team_id, teamname, heimspiel_wochentag, heimspiel_uhrzeit"
|
||||
. "\n FROM #__sportsmanager_team"
|
||||
. "\n WHERE veranstaltung_id = " . $veranstaltungId . ";";
|
||||
|
||||
$rows = loadObjectList($db, $query);
|
||||
if (count($rows) < 1) die("Wrong id!");
|
||||
|
||||
$Mannschaften = null;
|
||||
foreach ($rows as $value) {
|
||||
$Mannschaften[$value->teamname] = $value->team_id;
|
||||
$Mannschaften[$value->teamname]['team_id'] = $value->team_id;
|
||||
$Mannschaften[$value->teamname]['heimspiel_wochentag'] = $value->heimspiel_wochentag;
|
||||
$Mannschaften[$value->teamname]['heimspiel_uhrzeit'] = $value->heimspiel_uhrzeit;
|
||||
}
|
||||
|
||||
if (empty($_FILES["daten"]["tmp_name"]) || !is_uploaded_file($_FILES["daten"]["tmp_name"])) {
|
||||
@@ -9446,26 +9513,53 @@ function adminBegegnungenImportieren(): void
|
||||
$import_zeile = false;
|
||||
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
|
||||
if ($Zeile == 1) {
|
||||
$Titelzeile = array_flip($data);
|
||||
foreach($data as $spalte_nr => $spalte)
|
||||
{
|
||||
if (vergleich($spalte,"spieltagnr,spieltagnummer")) $Titelzeile['Spieltag_Nr'] = $spalte_nr;
|
||||
if (vergleich($spalte,"spielstart,zeitpunkt")) $Titelzeile['Spielstart'] = $spalte_nr;
|
||||
if (vergleich($spalte,"heim,heimteam,heimmannschaft")) $Titelzeile['Heim'] = $spalte_nr;
|
||||
if (vergleich($spalte,"gast,gastteam,gastmannschaft")) $Titelzeile['Gast'] = $spalte_nr;
|
||||
if (vergleich($spalte,"spielnr,spielnummer")) $Titelzeile['Spiel_Nr'] = $spalte_nr;
|
||||
if (vergleich($spalte,"spieltagtitel")) $Titelzeile['Spieltag_Titel'] = $spalte_nr;
|
||||
if (vergleich($spalte,"jahr,spieljahr")) $Titelzeile['Spieljahr'] = $spalte_nr;
|
||||
if (vergleich($spalte,"kalenderwoche,woche,kw")) $Titelzeile['Kalenderwoche'] = $spalte_nr;
|
||||
}
|
||||
} else {
|
||||
$import_zeile = true;
|
||||
$bgcolor = "green";
|
||||
$Begegnung[$Zeile]['spieltag'] = $data[$Titelzeile['Spieltag_Nr']];
|
||||
$Begegnung[$Zeile]['zeitpunkt'] = UhrzeitWandlerDE($data[$Titelzeile['Spielstart']]);
|
||||
$Begegnung[$Zeile]['heim_team_id'] = $Mannschaften[utf8_encode($data[$Titelzeile['Heim']])];
|
||||
$Begegnung[$Zeile]['gast_team_id'] = $Mannschaften[utf8_encode($data[$Titelzeile['Gast']])];
|
||||
$Begegnung[$Zeile]['heim_team_id'] = $Mannschaften[$data[$Titelzeile['Heim']]]['team_id'];
|
||||
$Begegnung[$Zeile]['gast_team_id'] = $Mannschaften[$data[$Titelzeile['Gast']]]['team_id'];
|
||||
if (isset($data[$Titelzeile['Spiel_Nr']])) $Begegnung[$Zeile]['spiel_nr'] = $data[$Titelzeile['Spiel_Nr']];
|
||||
if (isset($data[$Titelzeile['Spieltag_Titel']])) $Begegnung[$Zeile]['spieltag_titel'] = $data[$Titelzeile['Spieltag_Titel']];
|
||||
echo "<tr style='color: white;'>";
|
||||
if ($Begegnung[$Zeile]['spieltag'] > 99 or $Begegnung[$Zeile]['spieltag'] < 1) {
|
||||
$bgcolor = "red";
|
||||
$import = false;
|
||||
}
|
||||
echo "<td style='text-align: center; background-color:" . $bgcolor . "'>" . $data[$Titelzeile['Spieltag_Nr']] . "</td>";
|
||||
|
||||
if (empty($data[$Titelzeile['Spielstart']])
|
||||
AND !empty($data[$Titelzeile['Spieljahr']])
|
||||
AND !empty($data[$Titelzeile['Kalenderwoche']])
|
||||
AND !empty($Mannschaften[$data[$Titelzeile['Heim']]]['heimspiel_wochentag'])
|
||||
AND !empty($Mannschaften[$data[$Titelzeile['Heim']]]['heimspiel_uhrzeit']))
|
||||
{
|
||||
$data[$Titelzeile['Spielstart']] =
|
||||
erstelleZeitpunkt($data[$Titelzeile['Spieljahr']], $data[$Titelzeile['Kalenderwoche']],
|
||||
$Mannschaften[$data[$Titelzeile['Heim']]]['heimspiel_wochentag'],
|
||||
$Mannschaften[$data[$Titelzeile['Heim']]]['heimspiel_uhrzeit']);
|
||||
}
|
||||
|
||||
$Begegnung[$Zeile]['zeitpunkt'] = $data[$Titelzeile['Spielstart']];
|
||||
if (!validateDate($Begegnung[$Zeile]['zeitpunkt'])) {
|
||||
$bgcolor = "red";
|
||||
$import = false;
|
||||
} else {
|
||||
$bgcolor = "green";
|
||||
}
|
||||
|
||||
echo "<td style='text-align: center; background-color:" . $bgcolor . "'>" . $data[$Titelzeile['Spielstart']] . "</td>";
|
||||
if ($Begegnung[$Zeile]['heim_team_id'] == "") {
|
||||
if ($data[$Titelzeile['Heim']] == "spielfrei") {
|
||||
@@ -9478,7 +9572,7 @@ function adminBegegnungenImportieren(): void
|
||||
} else {
|
||||
$bgcolor = "green";
|
||||
}
|
||||
echo "<td style='text-align: center; background-color:" . $bgcolor . "'>" . utf8_encode($data[$Titelzeile['Heim']]) . "</td>";
|
||||
echo "<td style='text-align: center; background-color:" . $bgcolor . "'>" . $data[$Titelzeile['Heim']] . "</td>";
|
||||
if ($Begegnung[$Zeile]['gast_team_id'] == "") {
|
||||
if ($data[$Titelzeile['Gast']] == "spielfrei") {
|
||||
$bgcolor = "orange";
|
||||
@@ -9490,7 +9584,7 @@ function adminBegegnungenImportieren(): void
|
||||
} else {
|
||||
$bgcolor = "green";
|
||||
}
|
||||
echo "<td style='text-align: center; background-color:" . $bgcolor . "'>" . utf8_encode($data[$Titelzeile['Gast']]) . "</td>";
|
||||
echo "<td style='text-align: center; background-color:" . $bgcolor . "'>" . $data[$Titelzeile['Gast']] . "</td>";
|
||||
echo "</tr>";
|
||||
}
|
||||
if (!$import_zeile) {
|
||||
@@ -9503,18 +9597,18 @@ function adminBegegnungenImportieren(): void
|
||||
|
||||
if ($import) {
|
||||
$Zeile = 1;
|
||||
$query = "INSERT INTO #__sportsmanager_begegnung (spieltag, zeitpunkt, heim_team_id, gast_team_id) VALUES ";
|
||||
$query = "INSERT INTO #__sportsmanager_begegnung (spieltag, zeitpunkt, spieltag_titel, spiel_nr, heim_team_id, gast_team_id) VALUES ";
|
||||
foreach ($Begegnung as $value) {
|
||||
if ($Zeile > 1) {
|
||||
$query .= ", ";
|
||||
}
|
||||
$query .= "(" . $value['spieltag'] . ",'" . $value['zeitpunkt'] . "'," . $value['heim_team_id'] . "," . $value['gast_team_id'] . ") ";
|
||||
$query .= "(" . $value['spieltag'] . ",'" . $value['zeitpunkt'] . "','" .
|
||||
($value['spieltag_titel'] ?? "") . "', " . ($value['spiel_nr'] ?? "NULL") . " ," .
|
||||
$value['heim_team_id'] . "," . $value['gast_team_id'] . ") ";
|
||||
$Zeile++;
|
||||
}
|
||||
$query .= ";";
|
||||
|
||||
$db->setQuery($query);
|
||||
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
} else {
|
||||
@@ -9665,6 +9759,448 @@ function adminBegegnungenRundeErzeugenForm(): void
|
||||
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId);
|
||||
}
|
||||
|
||||
function getAuswahlSpieltagtitel()
|
||||
{
|
||||
$db = getDatabase();
|
||||
$query = "SELECT spieltag_titel FROM #__sportsmanager_begegnung"
|
||||
. "\n WHERE spieltag_titel <> ''"
|
||||
. "\n GROUP BY spieltag_titel ORDER BY spieltag_titel;";
|
||||
return loadObjectList($db, $query);
|
||||
}
|
||||
|
||||
function adminBegegnungenPokalrundeAuslosenForm(): void
|
||||
{
|
||||
$db = getDatabase();
|
||||
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
|
||||
$veranstaltungId = $jInput->get('veranstaltungid', 0, 'INT');
|
||||
|
||||
if ($veranstaltungId == 0) die("Missing id!");
|
||||
|
||||
if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungId))
|
||||
keinZugriff(true);
|
||||
|
||||
$query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $veranstaltungId";
|
||||
$rows = loadObjectList($db, $query);
|
||||
if (count($rows) < 1) die("Wrong id!");
|
||||
$veranstaltung = $rows[0];
|
||||
|
||||
$query = "SELECT COUNT(teamname)"
|
||||
. "\n FROM #__sportsmanager_team"
|
||||
. "\n WHERE veranstaltung_id = $veranstaltungId"
|
||||
. "\n ORDER BY teamname";
|
||||
$anzahlteams = loadResult($db, $query);
|
||||
$veranstaltung->letzteRunde = getAnzahlRunden($anzahlteams);
|
||||
|
||||
$query = "SELECT t1.spieltag AS Runden_Nr
|
||||
FROM #__sportsmanager_begegnung AS t1
|
||||
LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id
|
||||
LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id
|
||||
LEFT JOIN #__sportsmanager_veranstaltung AS t4 ON t2.veranstaltung_id = t4.veranstaltung_id
|
||||
WHERE t4.veranstaltung_id = ".$veranstaltungId."
|
||||
GROUP BY t1.spieltag
|
||||
ORDER BY t1.spieltag DESC LIMIT 1;";
|
||||
$Runde = loadObjectList($db, $query);
|
||||
if (!isset($Runde[0]))
|
||||
$veranstaltung->naechsteRunde = 1;
|
||||
else
|
||||
$veranstaltung->naechsteRunde = $Runde[0]->Runden_Nr + 1;
|
||||
|
||||
$veranstaltung->titelVorschlag = getRundenTitel(pow(2, $veranstaltung->letzteRunde - $veranstaltung->naechsteRunde) * 2);
|
||||
|
||||
// Spieltage ermitteln, die noch nicht abgeschlossen sind
|
||||
$query = "SELECT COUNT(DISTINCT spieltag) AS Anzahl"
|
||||
. "\n FROM #__sportsmanager_begegnung"
|
||||
. "\n LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis USING (begegnung_id)"
|
||||
. "\n INNER JOIN #__sportsmanager_team ON heim_team_id = team_id"
|
||||
. "\n WHERE veranstaltung_id = $veranstaltung->veranstaltung_id"
|
||||
. "\n AND (heim_spielpunkte IS NULL OR gast_spielpunkte IS NULL"
|
||||
. "\n OR #__sportsmanager_unbestaetigtes_ergebnis.begegnung_id IS NOT NULL)"
|
||||
. "\n ORDER BY spieltag DESC";
|
||||
$veranstaltung->nicht_abgeschlossene_spiele = loadResult($db, $query);
|
||||
|
||||
HTML_sportsmanager_admin::adminBegegnungenPokalrundeAuslosenForm($veranstaltung,getAuswahlSpieltagtitel());
|
||||
}
|
||||
|
||||
#[NoReturn] function adminBegegnungenPokalrundeAuslosen(): void
|
||||
{
|
||||
$db = getDatabase();
|
||||
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
|
||||
|
||||
$sperren = false;
|
||||
$veranstaltungId = $jInput->get('veranstaltungid', 0, 'INT');
|
||||
$rundenNr = $jInput->get('runde', 0, 'INT');
|
||||
$rundenTitel = $jInput->get('rundentitel', 0, 'STRING');
|
||||
$spielumplatz3 = $jInput->get('spielumplatz3', 0, 'INT');
|
||||
|
||||
$teams = [];
|
||||
|
||||
if ($veranstaltungId == 0) die("Missing id!");
|
||||
|
||||
if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungId))
|
||||
keinZugriff();
|
||||
|
||||
if ($jInput->get('cancel', false, 'BOOL')) {
|
||||
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId);
|
||||
}
|
||||
|
||||
$query = "SELECT COUNT(teamname)"
|
||||
. "\n FROM #__sportsmanager_team"
|
||||
. "\n WHERE veranstaltung_id = $veranstaltungId"
|
||||
. "\n ORDER BY teamname";
|
||||
$anzahlteams = loadResult($db, $query);
|
||||
$anzahlrunden = getAnzahlRunden($anzahlteams);
|
||||
$Verlierer = "";
|
||||
|
||||
//Alle Teams einlesen
|
||||
$query = "SELECT *"
|
||||
. "\n FROM #__sportsmanager_team"
|
||||
. "\n WHERE veranstaltung_id = $veranstaltungId ";
|
||||
$teams_komplett = json_decode(json_encode(loadObjectList($db, $query)), true);
|
||||
foreach($teams_komplett AS $team)
|
||||
{
|
||||
$teams[$team['team_id']] = $team;
|
||||
}
|
||||
|
||||
if ($rundenNr == 1){
|
||||
$anzahlmatches = $anzahlteams - pow(2, $anzahlrunden - 1 );
|
||||
}
|
||||
else{
|
||||
$anzahlmatches = pow(2, $anzahlrunden - $rundenNr);
|
||||
//Verlierer rausfiltern
|
||||
$query = "SELECT IF(t1.heim_punkte > t1.gast_punkte, t3.team_id, t2.team_id) AS Verlierer"
|
||||
. "\n FROM #__sportsmanager_begegnung AS t1"
|
||||
. "\n LEFT JOIN #__sportsmanager_team AS t2"
|
||||
. "\n ON t1.heim_team_id = t2.team_id LEFT JOIN #__sportsmanager_team AS t3"
|
||||
. "\n ON t1.gast_team_id = t3.team_id LEFT JOIN #__sportsmanager_veranstaltung AS t4"
|
||||
. "\n ON t2.veranstaltung_id = t4.veranstaltung_id"
|
||||
. "\n WHERE t4.veranstaltung_id = $veranstaltungId;";
|
||||
$loosers = loadObjectList($db, $query);
|
||||
|
||||
$Zeile = 0;
|
||||
foreach($loosers AS $looser)
|
||||
{
|
||||
if ($Zeile > 0) $Verlierer .= ",";
|
||||
$Verlierer .= $looser->Verlierer;
|
||||
$Zeile++;
|
||||
}
|
||||
}
|
||||
|
||||
$query = "SELECT team_id"
|
||||
. "\n FROM #__sportsmanager_team"
|
||||
. "\n WHERE veranstaltung_id = $veranstaltungId ";
|
||||
if ($Verlierer != "")
|
||||
$query .= "\n AND team_id NOT IN (".$Verlierer.");";
|
||||
|
||||
$teams_auslosung = json_decode(json_encode(loadObjectList($db, $query)), true);
|
||||
|
||||
// Teams durchmischen
|
||||
shuffle($teams_auslosung);
|
||||
|
||||
if ($anzahlteams < 2)
|
||||
{
|
||||
$Fehlertext = "Zu wenige Teams vorhanden!!!";
|
||||
$sperren = true;
|
||||
}
|
||||
|
||||
if ($anzahlteams > 128)
|
||||
{
|
||||
$Fehlertext = "Zu viele Teams vorhanden!!!";
|
||||
$sperren = true;
|
||||
}
|
||||
|
||||
$datum_jahr = null;
|
||||
$zeitpunkt = "";
|
||||
|
||||
if ($jInput->get('datum_tag', 0, 'STRING') > 0 && $jInput->get('datum_jahr', 0, 'STRING') >= 0 && $jInput->get('datum_monat', 0, 'STRING') >= 0
|
||||
&& $jInput->get('uhrzeit_stunden', 0, 'STRING') >= 0 && $jInput->get('uhrzeit_minuten', 0, 'STRING') >= 0) {
|
||||
$datum = normalisiertesDatum($jInput->get('datum_jahr', 0, 'INT') == 0 ? null : sprintf("%04d-%02d-%02d", $jInput->get('datum_jahr', 0, 'INT'), $jInput->get('datum_monat', 0, 'INT'), $jInput->get('datum_tag', 0, 'INT')));
|
||||
$uhrzeit = normalisierteUhrzeit(sprintf(" %02d-%02d-00", $jInput->get('uhrzeit_stunden', 0, 'INT'), $jInput->get('uhrzeit_minuten', 0, 'INT')));
|
||||
$zeitpunkt = $datum == null || $uhrzeit == null ? null : ($datum . " " . $uhrzeit);
|
||||
$datum_kw = 0;
|
||||
} else {
|
||||
$datum_jahr = $jInput->get('datum_jahr', 0, 'INT');
|
||||
$datum_kw = abs($jInput->get('datum_tag', 0, 'INT'));
|
||||
}
|
||||
|
||||
if (!((($jInput->get('datum_tag', 0, 'STRING') <= 0 && $jInput->get('datum_jahr', 0, 'STRING') >= 2000)) || $zeitpunkt != ""))
|
||||
{
|
||||
$Fehlertext = "Bitte ein gültiges Datum eingeben!!!";
|
||||
$sperren = true;
|
||||
}
|
||||
|
||||
for ($matchNr = 0; $matchNr < $anzahlmatches; $matchNr++) {
|
||||
$team_heim = $matchNr * 2 ;
|
||||
$team_gast = $team_heim + 1;
|
||||
$matches[$matchNr]['heim'] = $teams_auslosung[$team_heim]['team_id'];
|
||||
$matches[$matchNr]['gast'] = $teams_auslosung[$team_gast]['team_id'];
|
||||
}
|
||||
|
||||
if ($spielumplatz3)
|
||||
{
|
||||
//Verlierer Halbfinale ermitteln
|
||||
$query = "SELECT IF(t1.heim_punkte > t1.gast_punkte, t3.team_id, t2.team_id) AS Verlierer"
|
||||
. "\n FROM #__sportsmanager_begegnung AS t1"
|
||||
. "\n LEFT JOIN #__sportsmanager_team AS t2"
|
||||
. "\n ON t1.heim_team_id = t2.team_id LEFT JOIN #__sportsmanager_team AS t3"
|
||||
. "\n ON t1.gast_team_id = t3.team_id LEFT JOIN #__sportsmanager_veranstaltung AS t4"
|
||||
. "\n ON t2.veranstaltung_id = t4.veranstaltung_id"
|
||||
. "\n WHERE t4.veranstaltung_id = $veranstaltungId"
|
||||
. "\n AND t1.spieltag = " . ($rundenNr - 1) . " ORDER BY RAND();";
|
||||
$loosers = loadObjectList($db, $query);
|
||||
$matches[2]['heim'] = $loosers[0]->Verlierer;
|
||||
$matches[2]['gast'] = $loosers[1]->Verlierer;
|
||||
$matches[2]['rundentitel'] = "Spiel um Platz 3";
|
||||
}
|
||||
|
||||
$Fehlertext = "";
|
||||
foreach($matches AS $spiel_nr => $match)
|
||||
{
|
||||
$matches[$spiel_nr]['rundentitel'] = $matches[$spiel_nr]['rundentitel'] ?? $rundenTitel;
|
||||
$matches[$spiel_nr]['zeitpunkt'] = $zeitpunkt;
|
||||
$matches[$spiel_nr]['heimspielort_id'] = $teams[$teams_setzliste[$setzung[0]]]['heimspielort_id'];
|
||||
$team_heim = $match['heim'];
|
||||
if ($datum_kw != null && $teams[$team_heim]['heimspiel_wochentag'] !== 0) {
|
||||
$ts = getdate(mondaykw($datum_kw, $datum_jahr, $teams[$team_heim]['heimspiel_wochentag'] - 1));
|
||||
$matches[$spiel_nr]['zeitpunkt'] = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $ts["year"], $ts["mon"], $ts["mday"],
|
||||
floor($teams[$team_heim]['heimspiel_uhrzeit'] / 100), $teams[$team_heim]['heimspiel_uhrzeit'] % 100, 0);
|
||||
}
|
||||
if (!validateDate($matches[$spiel_nr]['zeitpunkt'])){
|
||||
$sperren = true;
|
||||
$Fehlertext .= "Bitte die Heimspiel Uhrzeit des " . $teams[$matches[$spiel_nr]['heim']]['teamname'] . " überprüfen!!!<br>";
|
||||
}
|
||||
}
|
||||
|
||||
if (!$sperren){
|
||||
$Zeile = 0;
|
||||
$query = "INSERT INTO #__sportsmanager_begegnung (zeitpunkt, spieltag, spieltag_titel, spiel_nr, heim_team_id, gast_team_id, spielort_id) values ";
|
||||
foreach ($matches AS $key => $match) {
|
||||
if (++$Zeile > 1) $query .= ", ";
|
||||
$query .= "('" . $match['zeitpunkt'] . "', " . $rundenNr .
|
||||
", '" . $match['rundentitel'] . "', " . $key .
|
||||
", '" . $match['heim'] . "', '" . $match['gast'] . "'" .
|
||||
", " . ($match['heimspielort_id'] != 0 ? "'" . $match['heimspielort_id'] . "'" : "NULL") . ")";
|
||||
}
|
||||
$query .= "; ";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
|
||||
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId);
|
||||
}
|
||||
else{
|
||||
echo "<span style='display: inline-block; background: red; color: white;vertical-align: middle;'>
|
||||
$Fehlertext</span>\n";
|
||||
}
|
||||
}
|
||||
|
||||
#[NoReturn] function adminBegegnungenPokalrundeSetzliste(): void
|
||||
{
|
||||
|
||||
$db = getDatabase();
|
||||
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
|
||||
|
||||
$teams = [];
|
||||
$setzliste = [];
|
||||
$setzung = [];
|
||||
$matches = [];
|
||||
|
||||
$sperren = false;
|
||||
$veranstaltungId = $jInput->get('veranstaltungid', 0, 'INT');
|
||||
$rundenNr = $jInput->get('runde', 0, 'INT');
|
||||
$rundenTitel = $jInput->get('rundentitel', 0, 'STRING');
|
||||
$spielumplatz3 = $jInput->get('spielumplatz3', 0, 'INT');
|
||||
|
||||
if ($veranstaltungId == 0) die("Missing id!");
|
||||
|
||||
if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungId))
|
||||
keinZugriff();
|
||||
|
||||
if ($jInput->get('cancel', false, 'BOOL')) {
|
||||
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId);
|
||||
}
|
||||
|
||||
$query = "SELECT COUNT(teamname)"
|
||||
. "\n FROM #__sportsmanager_team"
|
||||
. "\n WHERE veranstaltung_id = $veranstaltungId"
|
||||
. "\n ORDER BY teamname";
|
||||
$anzahlteams = loadResult($db, $query);
|
||||
$anzahlrunden = getAnzahlRunden($anzahlteams);
|
||||
|
||||
//Vergabe der Setzliste
|
||||
if ($rundenNr == 1){
|
||||
$query = "UPDATE #__sportsmanager_team AS t
|
||||
JOIN (
|
||||
SELECT team_id, (@r := @r + 1) AS rnd_num
|
||||
FROM (
|
||||
SELECT team_id
|
||||
FROM #__sportsmanager_team
|
||||
WHERE veranstaltung_id = $veranstaltungId
|
||||
ORDER BY RAND()
|
||||
) AS shuffled
|
||||
JOIN (SELECT @r := 0) AS init
|
||||
) AS x ON t.team_id = x.team_id
|
||||
SET t.setzliste_nr = x.rnd_num;";
|
||||
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
}
|
||||
|
||||
$query = "SELECT *"
|
||||
. "\n FROM #__sportsmanager_team"
|
||||
. "\n WHERE veranstaltung_id = $veranstaltungId"
|
||||
. "\n ORDER BY setzliste_nr;";
|
||||
|
||||
$teams_array = json_decode(json_encode(loadObjectList($db, $query)), true);
|
||||
|
||||
foreach($teams_array AS $team)
|
||||
{
|
||||
$teams_setzliste[$team['setzliste_nr']] = $team['team_id'];
|
||||
$teams[$team['team_id']] = $team;
|
||||
}
|
||||
|
||||
if ($anzahlteams < 2)
|
||||
{
|
||||
$Fehlertext = "Zu wenige Teams vorhanden!!!";
|
||||
$sperren = true;
|
||||
}
|
||||
|
||||
$datum_jahr = null;
|
||||
$zeitpunkt = "";
|
||||
|
||||
if ($jInput->get('datum_tag', 0, 'STRING') > 0 && $jInput->get('datum_jahr', 0, 'STRING') >= 0 && $jInput->get('datum_monat', 0, 'STRING') >= 0
|
||||
&& $jInput->get('uhrzeit_stunden', 0, 'STRING') >= 0 && $jInput->get('uhrzeit_minuten', 0, 'STRING') >= 0) {
|
||||
$datum = normalisiertesDatum($jInput->get('datum_jahr', 0, 'INT') == 0 ? null : sprintf("%04d-%02d-%02d", $jInput->get('datum_jahr', 0, 'INT'), $jInput->get('datum_monat', 0, 'INT'), $jInput->get('datum_tag', 0, 'INT')));
|
||||
$uhrzeit = normalisierteUhrzeit(sprintf(" %02d-%02d-00", $jInput->get('uhrzeit_stunden', 0, 'INT'), $jInput->get('uhrzeit_minuten', 0, 'INT')));
|
||||
$zeitpunkt = $datum == null || $uhrzeit == null ? null : ($datum . " " . $uhrzeit);
|
||||
$datum_kw = 0;
|
||||
} else {
|
||||
$datum_jahr = $jInput->get('datum_jahr', 0, 'INT');
|
||||
$datum_kw = abs($jInput->get('datum_tag', 0, 'INT'));
|
||||
}
|
||||
|
||||
if (!((($jInput->get('datum_tag', 0, 'STRING') <= 0 && $jInput->get('datum_jahr', 0, 'STRING') >= 2000)) || $zeitpunkt != ""))
|
||||
{
|
||||
$Fehlertext = "Bitte ein gültiges Datum eingeben!!!";
|
||||
$sperren = true;
|
||||
}
|
||||
|
||||
$matches = [];
|
||||
|
||||
if ($rundenNr == 1){
|
||||
$setzliste = getSetzliste($anzahlrunden);
|
||||
$spiel_nr = 0;
|
||||
foreach($setzliste AS $setzung){
|
||||
$spiel_nr++;
|
||||
if ($setzung[0] <= $anzahlteams && $setzung[1] <= $anzahlteams){
|
||||
$matches[$spiel_nr]['heim'] = $teams_setzliste[$setzung[0]];
|
||||
$matches[$spiel_nr]['gast'] = $teams_setzliste[$setzung[1]];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Freilose Runde 1 ermitteln
|
||||
if ($rundenNr == 2){
|
||||
$setzliste = getSetzliste($anzahlrunden);
|
||||
$spiel_nr = 0;
|
||||
foreach($setzliste AS $setzung){
|
||||
$spiel_nr++;
|
||||
if ($setzung[0] > $anzahlteams || $setzung[1] > $anzahlteams){
|
||||
if ($spiel_nr % 2)
|
||||
$matches[round($spiel_nr/2)]['heim'] = $teams_setzliste[min($setzung[0],$setzung[1])];
|
||||
else
|
||||
$matches[round($spiel_nr/2)]['gast'] = $teams_setzliste[min($setzung[0],$setzung[1])];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Sieger der vorherigen Runde ermitteln
|
||||
if ($rundenNr >= 2){
|
||||
$query = "SELECT t4.bezeichnung AS Liga, t1.zeitpunkt AS Spielstart, t2.teamname AS Heim, t3.teamname AS Gast,
|
||||
t1.heim_team_id, t1.gast_team_id,
|
||||
t1.spieltag_titel AS Runde, t1.spieltag AS Spieltag_Nr, t1.spiel_nr AS Spiel_Nr, t1.heim_punkte AS Heim_Tore, t1.gast_punkte AS Gast_Tore, t1.heim_spielpunkte AS Heim_Satzpunkte, t1.gast_spielpunkte AS Gast_Satzpunkte
|
||||
FROM #__sportsmanager_begegnung AS t1
|
||||
LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id
|
||||
LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id
|
||||
LEFT JOIN #__sportsmanager_veranstaltung AS t4 ON t2.veranstaltung_id = t4.veranstaltung_id
|
||||
WHERE t4.veranstaltung_id = " . $veranstaltungId . " AND t1.spieltag = " . ($rundenNr - 1) . "
|
||||
ORDER BY t4.veranstaltung_id, t1.spieltag, t1.spiel_nr;";
|
||||
$begegnungen = json_decode(json_encode(loadObjectList($db, $query)), true);
|
||||
foreach($begegnungen AS $begegnung)
|
||||
{
|
||||
if ($begegnung['Heim_Satzpunkte'] > $begegnung['Gast_Satzpunkte'])
|
||||
$sieger = $begegnung['heim_team_id'];
|
||||
else
|
||||
$sieger = $begegnung['gast_team_id'];
|
||||
|
||||
if ($begegnung['Spiel_Nr'] % 2)
|
||||
$matches[round($begegnung['Spiel_Nr']/2)]['heim'] = $sieger;
|
||||
else
|
||||
$matches[round($begegnung['Spiel_Nr']/2)]['gast'] = $sieger;
|
||||
}
|
||||
}
|
||||
|
||||
if ($spielumplatz3)
|
||||
{
|
||||
//Verlierer Halbfinale ermitteln
|
||||
$query = "SELECT IF(t1.heim_punkte > t1.gast_punkte, t3.team_id, t2.team_id) AS Verlierer"
|
||||
. "\n FROM #__sportsmanager_begegnung AS t1"
|
||||
. "\n LEFT JOIN #__sportsmanager_team AS t2"
|
||||
. "\n ON t1.heim_team_id = t2.team_id LEFT JOIN #__sportsmanager_team AS t3"
|
||||
. "\n ON t1.gast_team_id = t3.team_id LEFT JOIN #__sportsmanager_veranstaltung AS t4"
|
||||
. "\n ON t2.veranstaltung_id = t4.veranstaltung_id"
|
||||
. "\n WHERE t4.veranstaltung_id = $veranstaltungId"
|
||||
. "\n AND t1.spieltag = " . ($rundenNr - 1) . ";";
|
||||
$loosers = loadObjectList($db, $query);
|
||||
$matches[2]['heim'] = $loosers[0]->Verlierer;
|
||||
$matches[2]['gast'] = $loosers[1]->Verlierer;
|
||||
$matches[2]['rundentitel'] = "Spiel um Platz 3";
|
||||
}
|
||||
|
||||
$Fehlertext = "";
|
||||
foreach($matches AS $spiel_nr => $match)
|
||||
{
|
||||
$matches[$spiel_nr]['rundentitel'] = $matches[$spiel_nr]['rundentitel'] ?? $rundenTitel;
|
||||
$matches[$spiel_nr]['zeitpunkt'] = $zeitpunkt;
|
||||
$matches[$spiel_nr]['heimspielort_id'] = $teams[$teams_setzliste[$setzung[0]]]['heimspielort_id'];
|
||||
$team_heim = $match['heim'];
|
||||
if ($datum_kw != null && $teams[$team_heim]['heimspiel_wochentag'] !== 0) {
|
||||
$ts = getdate(mondaykw($datum_kw, $datum_jahr, $teams[$team_heim]['heimspiel_wochentag'] - 1));
|
||||
$matches[$spiel_nr]['zeitpunkt'] = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $ts["year"], $ts["mon"], $ts["mday"],
|
||||
floor($teams[$team_heim]['heimspiel_uhrzeit'] / 100), $teams[$team_heim]['heimspiel_uhrzeit'] % 100, 0);
|
||||
}
|
||||
if (!validateDate($matches[$spiel_nr]['zeitpunkt'])){
|
||||
$sperren = true;
|
||||
$Fehlertext .= "Bitte die Heimspiel Uhrzeit des " . $teams[$matches[$spiel_nr]['heim']]['teamname'] . " überprüfen!!!<br>";
|
||||
}
|
||||
}
|
||||
|
||||
if (!$sperren){
|
||||
$Zeile = 0;
|
||||
$query = "INSERT INTO #__sportsmanager_begegnung (zeitpunkt, spieltag, spieltag_titel, spiel_nr, heim_team_id, gast_team_id, spielort_id) values ";
|
||||
foreach ($matches AS $key => $match) {
|
||||
if (++$Zeile > 1) $query .= ", ";
|
||||
$query .= "('" . $match['zeitpunkt'] . "', " . $rundenNr .
|
||||
", '" . $match['rundentitel'] . "', " . $key .
|
||||
", '" . $match['heim'] . "', '" . $match['gast'] . "'" .
|
||||
", " . ($match['heimspielort_id'] != 0 ? "'" . $match['heimspielort_id'] . "'" : "NULL") . ")";
|
||||
}
|
||||
$query .= "; ";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
|
||||
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId);
|
||||
}
|
||||
else{
|
||||
echo "<span style='display: inline-block; background: red; color: white;vertical-align: middle;'>
|
||||
$Fehlertext</span>\n";
|
||||
}
|
||||
}
|
||||
|
||||
#[NoReturn] function adminBegegnungenAlleEntfernen(): void
|
||||
{
|
||||
$db = getDatabase();
|
||||
@@ -9719,6 +10255,12 @@ function adminBegegnungenRundeErzeugenForm(): void
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
|
||||
$query = "UPDATE #__sportsmanager_team SET setzliste_nr = NULL WHERE veranstaltung_id = $veranstaltungId;";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
}
|
||||
|
||||
if ($veranstaltung->status != 0 && $veranstaltung->elo_wertung != 0) {
|
||||
@@ -9764,7 +10306,7 @@ function adminBegegnungenExportForm(): void
|
||||
$db = getDatabase();
|
||||
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
|
||||
|
||||
$veranstaltungId = $jInput->get('veranstaltungid', 0, 'INT');
|
||||
$veranstaltungId = $jInput->get('veranstaltungId', 0, 'INT');
|
||||
$export = $jInput->get('export', '', 'RAW');
|
||||
|
||||
if ($veranstaltungId == 0) die("Missing id!");
|
||||
@@ -9808,8 +10350,9 @@ function adminBegegnungenExportForm(): void
|
||||
$query = "
|
||||
SELECT t1.begegnung_id AS ID, t5.saisonbezeichnung AS Saison,
|
||||
t4.bezeichnung AS Liga, t1.zeitpunkt AS Spielstart, t2.teamname AS Heim, t3.teamname AS Gast,
|
||||
t1.spieltag AS Spieltag_Nr, t1.heim_punkte AS Heim_Tore, t1.gast_punkte AS Gast_Tore,
|
||||
t1.heim_spielpunkte AS Heim_Satzpunkte, t1.gast_spielpunkte AS Gast_Satzpunkte
|
||||
t1.spieltag AS Spieltag_Nr, t1.spiel_nr AS Spiel_Nr, t1.heim_punkte AS Heim_Tore,
|
||||
t1.gast_punkte AS Gast_Tore, t1.heim_spielpunkte AS Heim_Satzpunkte,
|
||||
t1.gast_spielpunkte AS Gast_Satzpunkte
|
||||
FROM #__sportsmanager_begegnung AS t1
|
||||
LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id
|
||||
LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id
|
||||
@@ -13541,6 +14084,7 @@ function adminTermine($admin_uebersicht): void
|
||||
$filter_veranstaltung = $jInput->get('filter_veranstaltung', '', 'RAW');
|
||||
$filter_zusatz = $jInput->get('filter_zusatz', '', 'RAW');
|
||||
$filter_land = $jInput->get('filter_land', '', 'RAW');
|
||||
$filter_ort = $jInput->get('filter_ort', '', 'RAW');
|
||||
|
||||
$query = "SELECT DISTINCT YEAR(erster_tag) AS jahr"
|
||||
. "\n FROM #__sportsmanager_termin"
|
||||
@@ -13567,6 +14111,8 @@ function adminTermine($admin_uebersicht): void
|
||||
$query .= " AND EXISTS(SELECT * FROM #__sportsmanager_termin_zusatz WHERE termin_id = #__sportsmanager_termin.termin_id AND zusatz = '" . $db->escape($filter_zusatz) . "')";
|
||||
if (!empty($filter_land))
|
||||
$query .= " AND land = '" . $db->escape($filter_land) . "'";
|
||||
if (!empty($filter_ort))
|
||||
$query .= " AND ort = '" . $db->escape($filter_ort) . "'";
|
||||
$query .= "\n GROUP BY termin_id"
|
||||
. "\n ORDER BY erster_tag, bezeichnung";
|
||||
$termine = loadObjectList($db, $query);
|
||||
@@ -13611,11 +14157,17 @@ function adminTermine($admin_uebersicht): void
|
||||
$query = "SELECT land"
|
||||
. "\n FROM #__sportsmanager_termin"
|
||||
. "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)"
|
||||
. "\n INNER JOIN (SELECT land FROM #__sportsmanager_termin_land UNION SELECT bundesland AS land FROM #__sportsmanager_termin_bundesland) AS land_bundesland USING (land)"
|
||||
. "\n WHERE YEAR(erster_tag) = '$filter_jahr' AND status = 0 AND (typ = 0 OR typ = 1)"
|
||||
. "\n WHERE YEAR(erster_tag) = '$filter_jahr' AND status = 0 AND (typ = 0 OR typ = 1) AND land <> ''"
|
||||
. "\n GROUP BY land"
|
||||
. "\n ORDER BY land";
|
||||
$laender = loadObjectList($db, $query);
|
||||
$query = "SELECT ort"
|
||||
. "\n FROM #__sportsmanager_termin"
|
||||
. "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)"
|
||||
. "\n WHERE YEAR(erster_tag) = '$filter_jahr' AND status = 0 AND (typ = 0 OR typ = 1) AND ort <> ''"
|
||||
. "\n GROUP BY ort"
|
||||
. "\n ORDER BY ort";
|
||||
$orte = loadObjectList($db, $query);
|
||||
if (isJson()) {
|
||||
$jsonexport = array_map(
|
||||
function ($termin) {
|
||||
@@ -13634,7 +14186,7 @@ function adminTermine($admin_uebersicht): void
|
||||
}, $termine);
|
||||
JSON_sportsmanager::JSON($jsonexport);
|
||||
} else {
|
||||
HTML_sportsmanager_admin::adminTermine($termine, $termineSymbole, $jahre, $filter_jahr, $filter_veranstaltung, $filter_zusatz, $filter_land, $veranstaltungen, $zusaetze, $laender, $anzahl_beantragte_termine, $zugriffsebene, $admin_uebersicht, isExternalDatabase());
|
||||
HTML_sportsmanager_admin::adminTermine($termine, $termineSymbole, $jahre, $filter_jahr, $filter_veranstaltung, $filter_zusatz, $filter_land, $filter_ort, $veranstaltungen, $zusaetze, $laender, $orte, $anzahl_beantragte_termine, $zugriffsebene, $admin_uebersicht, isExternalDatabase());
|
||||
|
||||
if (!$admin_uebersicht) {
|
||||
administrationFooter();
|
||||
@@ -13742,7 +14294,9 @@ function adminEditTermin($admin_uebersicht): void
|
||||
$bundeslaender = loadObjectList($db, $query);
|
||||
$query = "SELECT * FROM #__sportsmanager_termin_land ORDER BY land";
|
||||
$laender = loadObjectList($db, $query);
|
||||
HTML_sportsmanager_admin::adminEditTermin($termin, $terminsymbolanzeige, $terminsymbole, $benachrichtigung_email, $bezeichnungen, $zusaetze, $bezeichnungszusaetze, $bundeslaender, $laender, $zugriffsebene, $admin_uebersicht, $bezeichnung_vorauswahl, $uebersicht, $ueberarbeiten, $nur_beantragte);
|
||||
$query = "SELECT ort FROM #__sportsmanager_termin WHERE ort <> '' GROUP BY ort ORDER BY ort";
|
||||
$orte = loadObjectList($db, $query);
|
||||
HTML_sportsmanager_admin::adminEditTermin($termin, $terminsymbolanzeige, $terminsymbole, $benachrichtigung_email, $bezeichnungen, $zusaetze, $bezeichnungszusaetze, $bundeslaender, $laender, $orte, $zugriffsebene, $admin_uebersicht, $bezeichnung_vorauswahl, $uebersicht, $ueberarbeiten, $nur_beantragte);
|
||||
}
|
||||
|
||||
function adminSaveTermin($admin_uebersicht): void
|
||||
|
||||
@@ -5245,6 +5245,52 @@ function updateDatabase(): void
|
||||
}
|
||||
}
|
||||
|
||||
if ($datenbank_version < 105) {
|
||||
|
||||
$query = "ALTER TABLE `#__sportsmanager_begegnung` ADD `spieltag_titel` VARCHAR(32) NOT NULL DEFAULT '' AFTER `spieltag`;";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
|
||||
$query = "ALTER TABLE `#__sportsmanager_veranstaltung` ADD `spieltag_titel_zeigen` INT(4) NOT NULL DEFAULT '0' AFTER `unterteilung`;";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
|
||||
$query = "ALTER TABLE `#__sportsmanager_team` ADD `teamname_kurz` VARCHAR(24) NOT NULL DEFAULT '' AFTER `teamname`;";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
|
||||
$query = "UPDATE #__sportsmanager_einstellungen"
|
||||
. "\n SET wert = '105'"
|
||||
. "\n WHERE name = 'datenbank_version'";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
}
|
||||
|
||||
if ($datenbank_version < 106) {
|
||||
|
||||
$query = "ALTER TABLE `#__sportsmanager_verein` ADD `verstecken` INT(4) NOT NULL DEFAULT '0' AFTER `ausgetreten`;";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
|
||||
$query = "UPDATE #__sportsmanager_einstellungen"
|
||||
. "\n SET wert = '106'"
|
||||
. "\n WHERE name = 'datenbank_version'";
|
||||
$db->setQuery($query);
|
||||
if (!$db->execute()) {
|
||||
die($db->stderr(true));
|
||||
}
|
||||
}
|
||||
|
||||
if ($termin_aktionen_email_setzen) {
|
||||
$query = "SELECT aktion_user_id, termin_aktion_id"
|
||||
. "\n FROM #__sportsmanager_termin_aktion";
|
||||
|
||||
@@ -388,10 +388,10 @@ if ($task == "spielerbild") {
|
||||
break;
|
||||
case 'admin_team_save':
|
||||
adminSaveMannschaft();
|
||||
break;
|
||||
break;
|
||||
case 'admin_team_remove':
|
||||
adminRemoveMannschaft();
|
||||
break;
|
||||
break;
|
||||
case 'admin_team_kopieren_form':
|
||||
adminKopierenMannschaftForm();
|
||||
break;
|
||||
@@ -458,9 +458,18 @@ if ($task == "spielerbild") {
|
||||
case 'admin_begegnungen_runde_erzeugen_form':
|
||||
adminBegegnungenRundeErzeugenForm();
|
||||
break;
|
||||
case 'admin_begegnungen_pokalrunde_auslosen_form':
|
||||
adminBegegnungenPokalrundeAuslosenForm();
|
||||
break;
|
||||
case 'admin_begegnungen_runde_erzeugen':
|
||||
adminBegegnungenRundeErzeugen();
|
||||
break;
|
||||
break;
|
||||
case 'admin_begegnungen_pokalrunde_auslosen':
|
||||
adminBegegnungenPokalrundeAuslosen();
|
||||
break;
|
||||
case 'admin_begegnungen_pokalrunde_setzliste':
|
||||
adminBegegnungenPokalrundeSetzliste();
|
||||
break;
|
||||
case 'admin_begegnungen_alle_entfernen':
|
||||
adminBegegnungenAlleEntfernen();
|
||||
break;
|
||||
@@ -724,8 +733,12 @@ if ($task == "spielerbild") {
|
||||
break;
|
||||
case 'verein_begegnungen_ical':
|
||||
vereinBegegnungeniCal();
|
||||
break;
|
||||
case 'sort_by_vereinsname':
|
||||
vereine("vereinsname");
|
||||
break;
|
||||
default:
|
||||
vereine();
|
||||
vereine("mitglieder");
|
||||
break;
|
||||
}
|
||||
} else if ($content == "turniervoranmeldungen") {
|
||||
@@ -1372,6 +1385,7 @@ function aktuelleBegegnungen($pineingabe = FALSE): void
|
||||
HTML_sportsmanager::aktuelleBegegnungenHeader($params->get('titel'), $params->get('beschreibung'), $ticker_anzeigen, $pineingabe_anzeigen);
|
||||
|
||||
if ($praesentation == 0) {
|
||||
begegnungenAnzeigen(NULL, NULL, NULL, 7, true, true, false, Text::_('COM_SPORTSMANAGER_RUNNING_MATCHES'), true, true);
|
||||
begegnungenAnzeigen(NULL, NULL, NULL, 7, false, true, true, Text::_('COM_SPORTSMANAGER_MATCHES_THE_LAST_7_DAYS'), true, true);
|
||||
begegnungenAnzeigen(NULL, NULL, NULL, 14, true, false, true, Text::_('COM_SPORTSMANAGER_MATCHES_THE_NEXT_14_DAYS'), false, true);
|
||||
administrationFooter();
|
||||
@@ -1457,7 +1471,7 @@ function veranstaltungen(): void
|
||||
'begegnungen' => begegnungenAnzeigen($veranstaltung, NULL, NULL, 0),
|
||||
'tabelle' => NULL
|
||||
];
|
||||
if ($veranstaltung->tabellenwertung != 0) {
|
||||
if (!in_array($veranstaltung->tabellenwertung, [0, -1, -3, -4]) || !$veranstaltung->platzierung_offen) {
|
||||
$spieltag = null; // TODO: spieltag was not defined before, not sure what it should be
|
||||
$competition['tabelle'] = tabelle($veranstaltung, $spieltag, true);
|
||||
}
|
||||
@@ -1471,7 +1485,7 @@ function veranstaltungen(): void
|
||||
foreach ($veranstaltungen as $veranstaltung) {
|
||||
if ($praesentation == 1 || $praesentation == 2)
|
||||
echo "<td>\r\n";
|
||||
if ($veranstaltung->tabellenwertung != 0 && ($veranstaltung->tabellenwertung != -1 || !$veranstaltung->platzierung_offen)) {
|
||||
if (!in_array($veranstaltung->tabellenwertung, [0, -1, -3, -4]) || !$veranstaltung->platzierung_offen) {
|
||||
HTML_sportsmanager::tabelleHeader($veranstaltung);
|
||||
tabelle($veranstaltung, 0, false, $praesentation);
|
||||
} else {
|
||||
@@ -1516,7 +1530,8 @@ function veranstaltung(): void
|
||||
$query = "SELECT saison_id, saisonbezeichnung"
|
||||
. "\n FROM #__sportsmanager_veranstaltung"
|
||||
. "\n INNER JOIN #__sportsmanager_saison USING (saison_id)"
|
||||
. "\n WHERE status > 0 AND EXISTS(SELECT * FROM #__sportsmanager_team INNER JOIN #__sportsmanager_begegnung ON heim_team_id = team_id WHERE #__sportsmanager_team.veranstaltung_id = #__sportsmanager_veranstaltung.veranstaltung_id)" . kategorieFilter("AND #__sportsmanager_veranstaltung.kategorie IN")
|
||||
. "\n WHERE status > 0 AND EXISTS(SELECT * FROM #__sportsmanager_team INNER JOIN #__sportsmanager_begegnung ON heim_team_id = team_id"
|
||||
. "\n WHERE #__sportsmanager_team.veranstaltung_id = #__sportsmanager_veranstaltung.veranstaltung_id)" . kategorieFilter("AND #__sportsmanager_veranstaltung.kategorie IN")
|
||||
. "\n GROUP BY saison_id"
|
||||
. "\n ORDER BY saisonbezeichnung DESC";
|
||||
$saisons = loadObjectList($db, $query);
|
||||
@@ -1540,7 +1555,10 @@ function veranstaltung(): void
|
||||
$spieltag = $jInput->get('spieltag', 0, 'INT');
|
||||
|
||||
// Veranstaltung ermitteln
|
||||
$query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $id AND status > 0 AND EXISTS(SELECT * FROM #__sportsmanager_team INNER JOIN #__sportsmanager_begegnung ON heim_team_id = team_id WHERE #__sportsmanager_team.veranstaltung_id = #__sportsmanager_veranstaltung.veranstaltung_id)";
|
||||
$query = "SELECT * FROM #__sportsmanager_veranstaltung"
|
||||
. "\n WHERE veranstaltung_id = $id AND status > 0"
|
||||
. "\n AND EXISTS(SELECT * FROM #__sportsmanager_team INNER JOIN #__sportsmanager_begegnung ON heim_team_id = team_id"
|
||||
. "\n WHERE #__sportsmanager_team.veranstaltung_id = #__sportsmanager_veranstaltung.veranstaltung_id)";
|
||||
$rows = loadObjectList($db, $query);
|
||||
if (count($rows) < 1)
|
||||
die("Wrong id!");
|
||||
@@ -1551,7 +1569,7 @@ function veranstaltung(): void
|
||||
'veranstaltung' => $veranstaltung,
|
||||
'begegnungen' => begegnungenAnzeigen($veranstaltung, NULL, NULL, 0)
|
||||
];
|
||||
if ($veranstaltung->tabellenwertung != 0) {
|
||||
if (!in_array($veranstaltung->tabellenwertung, [0, -1, -3, -4])) {
|
||||
$table = tabelle($veranstaltung, $spieltag, true);
|
||||
$json['tabelle'] = $table['tabelle'];
|
||||
$json['modus'] = $table['modus'];
|
||||
@@ -1586,10 +1604,14 @@ function veranstaltung(): void
|
||||
// Anzeigen
|
||||
HTML_sportsmanager::veranstaltungHeaderAlone($veranstaltung, $vorherige_veranstaltung_id, $naechste_veranstaltung_id, $showSeasons, $saisons, $filter_saison_id);
|
||||
|
||||
if ($veranstaltung->tabellenwertung != 0)
|
||||
|
||||
if (!in_array($veranstaltung->tabellenwertung, [0, -1, -3, -4]))
|
||||
tabelle($veranstaltung, $spieltag, true);
|
||||
|
||||
begegnungenAnzeigen($veranstaltung, NULL, NULL, 0);
|
||||
if (einstellungswert("turnierbaum_zeigen") && $veranstaltung->tabellenwertung == -4)
|
||||
turnierbaumAnzeigen($veranstaltung);
|
||||
|
||||
begegnungenAnzeigen($veranstaltung, NULL, NULL, 0);
|
||||
HTML_sportsmanager::iCalBegegnungen(SportsManagerURL('&task=veranstaltung_begegnungen_ical&id=' . $veranstaltung->veranstaltung_id));
|
||||
}
|
||||
}
|
||||
@@ -1631,7 +1653,7 @@ function tabelle($veranstaltung, $spieltag, $alleine_angezeigt, $praesentation =
|
||||
$teams = getTabelleAktuellerSpieltag($veranstaltung);
|
||||
} else {
|
||||
$teams = getTabelleSpieltag($veranstaltung,$spieltag);
|
||||
if ($veranstaltung->direktervergleich AND $spieltag >= $anzahl_spieltage_komplett/2){
|
||||
if ($veranstaltung->direktervergleich && $spieltag >= $anzahl_spieltage_komplett/2 && $anzahl_spieltage_komplett >= 3){
|
||||
$teams = getTabelleDirekterVergleich($teams,$veranstaltung,$spieltag);
|
||||
}
|
||||
}
|
||||
@@ -2079,6 +2101,300 @@ function getTabelleSpieltag($veranstaltung,$spieltag,$mannschaften = "",$offset_
|
||||
jexit();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function erstelleSetzliste($teams): array
|
||||
{
|
||||
$seedingPairs[4] = [[1, 4], [2, 3]];
|
||||
|
||||
$seedingPairs[8] = [[1, 8], [4, 5], [3, 6], [2, 7]];
|
||||
|
||||
$seedingPairs[16] = [[1, 16], [8, 9], [5, 12], [4, 13],
|
||||
[3, 14], [6, 11], [7, 10], [2, 15]];
|
||||
|
||||
|
||||
$seedingPairs[32] = [[1, 32], [16, 17], [9, 24], [8, 25],
|
||||
[5, 28], [12, 21], [13, 20], [4, 29],
|
||||
[3, 30], [14, 19], [11, 22], [6, 27],
|
||||
[7, 26], [10, 23], [15, 18], [2, 31]];
|
||||
|
||||
$seedingPairs[64] = [[1, 64], [32, 33], [17, 48], [16, 49],
|
||||
[9, 56], [24, 41], [25, 40], [8, 57],
|
||||
[5, 60], [28, 37], [21, 44], [12, 53],
|
||||
[13, 52], [20, 45], [29, 36], [4, 61],
|
||||
[3, 62], [30, 35], [19, 46], [14, 51],
|
||||
[11, 54], [22, 43], [27, 38], [6, 59],
|
||||
[7, 58], [26, 39], [23, 42], [10, 55],
|
||||
[15, 50], [18, 47], [31, 34], [2, 63]];
|
||||
|
||||
$seedingPairs[128]= [[1,128], [64,65], [33,96], [32,97], [17,112], [48,81], [49,80], [16,113],
|
||||
[9,120], [56,73], [41,88], [24,105], [25,104], [40,89], [57,72], [8,121],
|
||||
[5,124], [60,69], [37,92], [28,101], [21,108], [44,85], [53,76], [12,117],
|
||||
[13,116], [52,77], [45,84], [20,109], [29,100], [36,93], [61,68], [4,125],
|
||||
[3,126], [62,67], [35,94], [30,99], [19,110], [46,83], [51,78], [14,115],
|
||||
[11,118], [54,75], [43,86], [22,107], [27,102], [38,91], [59,70], [6,123],
|
||||
[7,122], [58,71], [39,90], [26,103], [23,106], [42,87], [55,74], [10,119],
|
||||
[15,114], [50,79], [47,82], [18,111], [31,98], [34,95], [63,66], [2,127]];
|
||||
|
||||
|
||||
|
||||
$matches = [];
|
||||
|
||||
// Teams durchschütteln
|
||||
$keys = array_keys($teams);
|
||||
shuffle($keys);
|
||||
|
||||
$mannschaften = [];
|
||||
$nr = 0;
|
||||
foreach ($keys as $key) {
|
||||
$mannschaften[++$nr] = $teams[$key];
|
||||
}
|
||||
|
||||
$anzahlTeams = count($mannschaften);
|
||||
|
||||
if ($anzahlTeams >= 1 && $anzahlTeams <= 4) {
|
||||
$setzliste = $seedingPairs[4];
|
||||
$runden = 2;
|
||||
} else if ($anzahlTeams >= 5 && $anzahlTeams <= 8){
|
||||
$setzliste = $seedingPairs[8];
|
||||
$runden = 3;
|
||||
} else if ($anzahlTeams >= 9 && $anzahlTeams <= 16){
|
||||
$setzliste = $seedingPairs[16];
|
||||
$runden = 4;
|
||||
} else if ($anzahlTeams >= 17 && $anzahlTeams <= 32){
|
||||
$setzliste = $seedingPairs[32];
|
||||
$runden = 5;
|
||||
} else if ($anzahlTeams >= 33 && $anzahlTeams <= 64){
|
||||
$setzliste = $seedingPairs[64];
|
||||
$runden = 6;
|
||||
} else if ($anzahlTeams >= 65 && $anzahlTeams <= 128){
|
||||
$setzliste = $seedingPairs[128];
|
||||
$runden = 7;
|
||||
} else {
|
||||
$setzliste = [];
|
||||
$runden = 0;
|
||||
}
|
||||
|
||||
$turnier = [];
|
||||
if ($runden > 1)
|
||||
{
|
||||
$nr = 0;
|
||||
foreach($setzliste as $paarung){
|
||||
$matches[1][++$nr]['heim'] = $mannschaften[$paarung[0]] ?? 'freilos';
|
||||
$matches[1][$nr]['gast'] = $mannschaften[$paarung[1]] ?? 'freilos';
|
||||
}
|
||||
$turnier['runden'] = $runden;
|
||||
$turnier['matches'] = $matches;
|
||||
}
|
||||
return $turnier;
|
||||
}
|
||||
|
||||
function getSetzliste($anzahlRunden)
|
||||
{
|
||||
|
||||
$maxTeams = pow(2, $anzahlRunden);
|
||||
|
||||
$seedingPairs[4] = [[1, 4], [2, 3]];
|
||||
|
||||
$seedingPairs[8] = [[1, 8], [4, 5], [3, 6], [2, 7]];
|
||||
|
||||
$seedingPairs[16] = [[1, 16], [8, 9], [5, 12], [4, 13],
|
||||
[3, 14], [6, 11], [7, 10], [2, 15]];
|
||||
|
||||
|
||||
$seedingPairs[32] = [[1, 32], [16, 17], [9, 24], [8, 25],
|
||||
[5, 28], [12, 21], [13, 20], [4, 29],
|
||||
[3, 30], [14, 19], [11, 22], [6, 27],
|
||||
[7, 26], [10, 23], [15, 18], [2, 31]];
|
||||
|
||||
$seedingPairs[64] = [[1, 64], [32, 33], [17, 48], [16, 49],
|
||||
[9, 56], [24, 41], [25, 40], [8, 57],
|
||||
[5, 60], [28, 37], [21, 44], [12, 53],
|
||||
[13, 52], [20, 45], [29, 36], [4, 61],
|
||||
[3, 62], [30, 35], [19, 46], [14, 51],
|
||||
[11, 54], [22, 43], [27, 38], [6, 59],
|
||||
[7, 58], [26, 39], [23, 42], [10, 55],
|
||||
[15, 50], [18, 47], [31, 34], [2, 63]];
|
||||
|
||||
$seedingPairs[128]= [[1,128], [64,65], [33,96], [32,97], [17,112], [48,81], [49,80], [16,113],
|
||||
[9,120], [56,73], [41,88], [24,105], [25,104], [40,89], [57,72], [8,121],
|
||||
[5,124], [60,69], [37,92], [28,101], [21,108], [44,85], [53,76], [12,117],
|
||||
[13,116], [52,77], [45,84], [20,109], [29,100], [36,93], [61,68], [4,125],
|
||||
[3,126], [62,67], [35,94], [30,99], [19,110], [46,83], [51,78], [14,115],
|
||||
[11,118], [54,75], [43,86], [22,107], [27,102], [38,91], [59,70], [6,123],
|
||||
[7,122], [58,71], [39,90], [26,103], [23,106], [42,87], [55,74], [10,119],
|
||||
[15,114], [50,79], [47,82], [18,111], [31,98], [34,95], [63,66], [2,127]];
|
||||
|
||||
return $seedingPairs[$maxTeams];
|
||||
|
||||
}
|
||||
|
||||
function getAnzahlRunden($anzahlTeams)
|
||||
{
|
||||
if ($anzahlTeams >= 1 && $anzahlTeams <= 4) {
|
||||
return 2;
|
||||
} else if ($anzahlTeams >= 5 && $anzahlTeams <= 8){
|
||||
return 3;
|
||||
} else if ($anzahlTeams >= 9 && $anzahlTeams <= 16){
|
||||
return 4;
|
||||
} else if ($anzahlTeams >= 17 && $anzahlTeams <= 32){
|
||||
return 5;
|
||||
} else if ($anzahlTeams >= 33 && $anzahlTeams <= 64){
|
||||
return 6;
|
||||
} else if ($anzahlTeams >= 65 && $anzahlTeams <= 128){
|
||||
return 7;
|
||||
}
|
||||
}
|
||||
|
||||
function getRundenTitel($anzahlTeams): string
|
||||
{
|
||||
if ($anzahlTeams >= 1 && $anzahlTeams <= 2)
|
||||
return Text::_('COM_SPORTSMANAGER_FINAL');
|
||||
if ($anzahlTeams >= 3 && $anzahlTeams <= 4)
|
||||
return Text::_('COM_SPORTSMANAGER_HALF_FINAL');
|
||||
if ($anzahlTeams >= 5 && $anzahlTeams <= 8)
|
||||
return Text::_('COM_SPORTSMANAGER_QUARTER_FINAL');
|
||||
if ($anzahlTeams >= 9 && $anzahlTeams <= 16)
|
||||
return Text::_('COM_SPORTSMANAGER_ROUND_OF_16');
|
||||
if ($anzahlTeams >= 17 && $anzahlTeams <= 32)
|
||||
return Text::_('COM_SPORTSMANAGER_ROUND_OF_32_ALT');
|
||||
if ($anzahlTeams >= 33 && $anzahlTeams <= 64)
|
||||
return Text::_('COM_SPORTSMANAGER_ROUND_OF_64_ALT');;
|
||||
if ($anzahlTeams >= 65 && $anzahlTeams <= 128)
|
||||
return Text::_('COM_SPORTSMANAGER_ROUND_OF_128_ALT');
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
function turnierbaumAnzeigen($veranstaltung): void
|
||||
{
|
||||
$db = getDatabase();
|
||||
$veranstaltungId = $veranstaltung->veranstaltung_id;
|
||||
|
||||
if ($veranstaltungId == 0) die("Missing id!");
|
||||
|
||||
//Infos Veranstaltung
|
||||
$query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $veranstaltungId";
|
||||
$rows = loadObjectList($db, $query);
|
||||
if (count($rows) < 1) die("Wrong id!");
|
||||
$veranstaltung = $rows[0];
|
||||
|
||||
//Alle Teams
|
||||
$query = "SELECT *"
|
||||
. "\n FROM #__sportsmanager_team"
|
||||
. "\n WHERE veranstaltung_id = $veranstaltungId"
|
||||
. "\n ORDER BY setzliste_nr;";
|
||||
$teams_unformatiert = json_decode(json_encode(loadObjectList($db, $query)), true);
|
||||
|
||||
foreach($teams_unformatiert AS $team){
|
||||
$teams[$team['setzliste_nr']] = $team;
|
||||
}
|
||||
|
||||
$anzahlTeams = count($teams);
|
||||
$anzahlRunden = getAnzahlRunden($anzahlTeams);
|
||||
|
||||
//Alle Begegnungen vorbelegen
|
||||
$anzahlSpiele = pow(2, $anzahlRunden - 1);
|
||||
for($runde_nr = 1; $runde_nr <= $anzahlRunden; $runde_nr++)
|
||||
{
|
||||
for($spiel_nr = 1; $spiel_nr <= $anzahlSpiele; $spiel_nr++)
|
||||
{
|
||||
$begegnungen[$runde_nr][$spiel_nr]['heim'] = "";
|
||||
$begegnungen[$runde_nr][$spiel_nr]['gast'] = "";
|
||||
$begegnungen[$runde_nr][$spiel_nr]['sieger'] = 0;
|
||||
$begegnungen[$runde_nr][$spiel_nr]['link'] = "";
|
||||
$begegnungen[$runde_nr][$spiel_nr]['id'] = "";
|
||||
$begegnungen[$runde_nr][$spiel_nr]['erg_heim'] = "";
|
||||
$begegnungen[$runde_nr][$spiel_nr]['erg_gast'] = "";
|
||||
$begegnungen[$runde_nr][$spiel_nr]['tooltiptext'] = "";
|
||||
}
|
||||
$anzahlSpiele = $anzahlSpiele / 2;
|
||||
}
|
||||
|
||||
//Alle Begegnungen aus der Setzliste
|
||||
$setzliste = getSetzliste($anzahlRunden);
|
||||
$spiel_nr = 0;
|
||||
foreach($setzliste AS $setzung){
|
||||
$spiel_nr++;
|
||||
$begegnungen[1][$spiel_nr]['sieger'] = 0;
|
||||
if ($setzung[0] <= $anzahlTeams) {
|
||||
$begegnungen[1][$spiel_nr]['heim'] = htmlentities($teams[$setzung[0]]['teamname_kurz']) ?: htmlentities($teams[$setzung[0]]['teamname']);
|
||||
} else {
|
||||
$begegnungen[1][$spiel_nr]['heim'] = "freilos";
|
||||
$begegnungen[1][$spiel_nr]['sieger'] = 2;
|
||||
if ($spiel_nr %2)
|
||||
$begegnungen[2][round($spiel_nr/2)]['heim'] = htmlentities($teams[$setzung[1]]['teamname_kurz']) ?: htmlentities($teams[$setzung[1]]['teamname']);
|
||||
else
|
||||
$begegnungen[2][round($spiel_nr/2)]['gast'] = htmlentities($teams[$setzung[1]]['teamname_kurz']) ?: htmlentities($teams[$setzung[1]]['teamname']);
|
||||
}
|
||||
if ($setzung[1] <= $anzahlTeams) {
|
||||
$begegnungen[1][$spiel_nr]['gast'] = htmlentities($teams[$setzung[1]]['teamname_kurz']) ?: htmlentities($teams[$setzung[1]]['teamname']);
|
||||
} else {
|
||||
$begegnungen[1][$spiel_nr]['gast'] = "freilos";
|
||||
$begegnungen[1][$spiel_nr]['sieger'] = 1;
|
||||
if ($spiel_nr %2)
|
||||
$begegnungen[2][round($spiel_nr/2)]['heim'] = htmlentities($teams[$setzung[0]]['teamname_kurz']) ?: htmlentities($teams[$setzung[0]]['teamname']);
|
||||
else
|
||||
$begegnungen[2][round($spiel_nr/2)]['gast'] = htmlentities($teams[$setzung[0]]['teamname_kurz']) ?: htmlentities($teams[$setzung[0]]['teamname']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Alle Begegnungen aus Datenbank
|
||||
$query = "SELECT t4.bezeichnung AS Liga, t1.zeitpunkt AS Spielstart,"
|
||||
. "\n if(t2.teamname_kurz <> '',t2.teamname_kurz, t2.teamname) AS Heim,"
|
||||
. "\n if(t3.teamname_kurz <> '',t3.teamname_kurz, t3.teamname) AS Gast,"
|
||||
. "\n t1.heim_team_id, t1.gast_team_id, t1.spieltag_titel AS Runde, t1.spieltag AS Spieltag_Nr,"
|
||||
. "\n t1.spiel_nr AS Spiel_Nr, t1.heim_punkte AS Heim_Tore, t1.gast_punkte AS Gast_Tore,"
|
||||
. "\n t1.heim_spielpunkte AS Heim_Satzpunkte, t1.gast_spielpunkte AS Gast_Satzpunkte, t1.begegnung_id"
|
||||
. "\n FROM #__sportsmanager_begegnung AS t1"
|
||||
. "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id"
|
||||
. "\n LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id"
|
||||
. "\n LEFT JOIN #__sportsmanager_veranstaltung AS t4 ON t2.veranstaltung_id = t4.veranstaltung_id"
|
||||
. "\n WHERE t4.veranstaltung_id = $veranstaltungId"
|
||||
. "\n ORDER BY t4.veranstaltung_id, t1.spieltag, t1.spiel_nr;";
|
||||
$begegnungen_unformatiert = json_decode(json_encode(loadObjectList($db, $query)), true);
|
||||
foreach($begegnungen_unformatiert as $begegnung)
|
||||
{
|
||||
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['Id'] = $begegnung['begegnung_id'];
|
||||
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['heim'] = htmlentities($begegnung['Heim']);
|
||||
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['gast'] = htmlentities($begegnung['Gast']);
|
||||
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['erg_heim'] = $begegnung['Heim_Satzpunkte'];
|
||||
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['erg_gast'] = $begegnung['Gast_Satzpunkte'];
|
||||
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['link'] = SportsManagerURL('&task=begegnung_spielplan&veranstaltungid=' . $veranstaltungId . '&id=' . $begegnung['begegnung_id']);
|
||||
$tooltiptext = $begegnung['Runde'] . ": " . htmlentities($begegnung['Heim']) . " vs. " . htmlentities($begegnung['Gast']);
|
||||
if ($begegnung['Heim_Satzpunkte'] > 0 || $begegnung['Gast_Satzpunkte'] > 0)
|
||||
$tooltiptext .= " - " . $begegnung['Heim_Satzpunkte'] . " : " . $begegnung['Gast_Satzpunkte'];
|
||||
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['tooltiptext'] = $tooltiptext;
|
||||
|
||||
if ($begegnung['Heim_Satzpunkte'] > $begegnung['Gast_Satzpunkte']) {
|
||||
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['sieger'] = 1;
|
||||
if ($begegnung['Spieltag_Nr'] < $anzahlRunden){
|
||||
if (round($begegnung['Spiel_Nr'] % 2))
|
||||
$begegnungen[$begegnung['Spieltag_Nr'] + 1][round($begegnung['Spiel_Nr'] / 2)]['heim'] = htmlentities($begegnung['Heim']);
|
||||
else
|
||||
$begegnungen[$begegnung['Spieltag_Nr'] + 1][round($begegnung['Spiel_Nr'] / 2)]['gast'] = htmlentities($begegnung['Heim']);
|
||||
}
|
||||
} else
|
||||
if ($begegnung['Heim_Satzpunkte'] < $begegnung['Gast_Satzpunkte']) {
|
||||
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['sieger'] = 2;
|
||||
if ($begegnung['Spieltag_Nr'] < $anzahlRunden){
|
||||
if (round($begegnung['Spiel_Nr'] % 2))
|
||||
$begegnungen[$begegnung['Spieltag_Nr'] + 1][round($begegnung['Spiel_Nr'] / 2)]['heim'] = htmlentities($begegnung['Gast']);
|
||||
else
|
||||
$begegnungen[$begegnung['Spieltag_Nr'] + 1][round($begegnung['Spiel_Nr'] / 2)]['gast'] = htmlentities($begegnung['Gast']);
|
||||
}
|
||||
} else {
|
||||
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['sieger'] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
$veranstaltung->anzahlRunden = $anzahlRunden;
|
||||
|
||||
HTML_sportsmanager::turnierbaumAnzeigen($veranstaltung,$begegnungen);
|
||||
}
|
||||
|
||||
function begegnungenAnzeigen($veranstaltung, $verein_id, $spielort_id, $zeitfenster, $ausgetragene_filtern = false, $auszutragende_filtern = false, $zwischenergebnisse_filtern = false, $titel = "", $umgekehrte_reihenfolge = false, $aus_uebersicht = false, $praesentation = 0, $year = NULL, $month = NULL)
|
||||
{
|
||||
$db = getDatabase();
|
||||
@@ -2168,8 +2484,9 @@ function begegnungenAnzeigen($veranstaltung, $verein_id, $spielort_id, $zeitfens
|
||||
. "\n LEFT JOIN #__sportsmanager_veranstaltung AS t5 ON t2.veranstaltung_id = t5.veranstaltung_id"
|
||||
. "\n LEFT JOIN #__sportsmanager_verschieberegel AS t6 ON t5.verschieberegel_id = t6.verschieberegel_id"
|
||||
. "\n WHERE t5.status > 0" . kategorieFilter("AND t5.kategorie IN") . " AND t2.veranstaltung_id = $veranstaltung->veranstaltung_id" . ($zeitfenster > 0 ? " AND (ABS(DATEDIFF(zeitpunkt, CURDATE())) <= $zeitfenster OR (heim_punkte = 0 AND gast_punkte = 0 AND (SELECT IF(aktion NOT IN (0, 3, 4), 0, 1) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) = 1))" : "") . ($ausgetragene_filtern ? " AND ISNULL(heim_punkte) AND ISNULL(gast_punkte)" : "") . ($auszutragende_filtern ? " AND (heim_punkte != 0 OR gast_punkte != 0)" : "")
|
||||
. "\n ORDER BY " . ((($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) && $zeitfenster == 0) ? ("t1.spieltag" . ($umgekehrte_reihenfolge ? " DESC" : "") . ", s1.name, ") : "") . "t1.zeitpunkt" . ($umgekehrte_reihenfolge ? " DESC" : "") . ", heim_name";
|
||||
$begegnungen = loadObjectList($db, $query);
|
||||
. "\n ORDER BY " . ((($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) && $zeitfenster == 0) ? ("t1.spieltag" . ($umgekehrte_reihenfolge ? " DESC" : "") . ", t1.spiel_nr, s1.name, ") : "") . "t1.zeitpunkt" . ($umgekehrte_reihenfolge ? " DESC" : "") . ", heim_name";
|
||||
|
||||
$begegnungen = loadObjectList($db, $query);
|
||||
|
||||
$modus_id = $veranstaltung->modus_id;
|
||||
$query = "SELECT * FROM #__sportsmanager_teamspiel_modus WHERE teamspiel_modus_id = $modus_id";
|
||||
@@ -3466,23 +3783,29 @@ function mannschaftDetails($ansicht_vereinigt, $unabhaengige_ansicht = false): v
|
||||
die();
|
||||
}
|
||||
|
||||
function vereine(): void
|
||||
function vereine($sort): void
|
||||
{
|
||||
$db = getDatabase();
|
||||
global $params;
|
||||
$organisationAnzeigen = einstellungswert('verband_anzeigen');
|
||||
|
||||
$query = "SELECT COUNT(DISTINCT veranstalter_id) FROM #__sportsmanager_verein WHERE NOT ausgetreten";
|
||||
$organisationAnzeigen = loadResult($db, $query) > 1;
|
||||
$query = "SELECT t1.verein_id, t1.vereinsname, t1.vereinssitz,"
|
||||
. "\n t2.veranstalterbezeichnung, COUNT(*) As mitglieder"
|
||||
. "\n FROM #__sportsmanager_verein AS t1"
|
||||
. "\n LEFT JOIN #__sportsmanager_veranstalter AS t2 USING (veranstalter_id)"
|
||||
. "\n LEFT JOIN #__sportsmanager_mitglied_von_verein AS t3 USING (verein_id)"
|
||||
. "\n WHERE t1.ausgetreten = 0 AND verstecken = 0"
|
||||
. "\n GROUP BY t1.verein_id";
|
||||
if ($sort == "mitglieder"){
|
||||
$query .= "\n HAVING mitglieder >= " . einstellungswert('anzahl_mitglieder_zeigen');
|
||||
$query .= "\n ORDER BY mitglieder DESC;";
|
||||
}
|
||||
if ($sort == "vereinsname"){
|
||||
$query .= "\n ORDER BY t1.vereinsname;";
|
||||
}
|
||||
|
||||
$query = "SELECT *, veranstalterbezeichnung"
|
||||
. "\n FROM #__sportsmanager_verein"
|
||||
. "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
|
||||
. "\n WHERE NOT ausgetreten" . kategorieFilter("AND #__sportsmanager_veranstalter.kategorie IN")
|
||||
. "\n ORDER BY IF(ISNULL(#__sportsmanager_veranstalter.veranstalter_id), 1, 0), veranstalterbezeichnung, vereinsname";
|
||||
$vereine = loadObjectList($db, $query);
|
||||
|
||||
HTML_sportsmanager::vereine($params->get('titel'), $params->get('beschreibung'), $vereine, $organisationAnzeigen);
|
||||
|
||||
administrationFooter();
|
||||
}
|
||||
|
||||
@@ -3510,7 +3833,12 @@ function vereinDetails(): void
|
||||
$verein = $rows[0];
|
||||
|
||||
// Mitglieder ermitteln
|
||||
$query = "SELECT * FROM #__sportsmanager_mitglied_von_verein LEFT JOIN #__sportsmanager_spieler ON #__sportsmanager_mitglied_von_verein.spieler_id = #__sportsmanager_spieler.spieler_id WHERE #__sportsmanager_mitglied_von_verein.verein_id = $verein->verein_id AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten ORDER BY nachname, vorname";
|
||||
$query = "SELECT * FROM #__sportsmanager_mitglied_von_verein"
|
||||
. "\n LEFT JOIN #__sportsmanager_spieler ON #__sportsmanager_mitglied_von_verein.spieler_id = #__sportsmanager_spieler.spieler_id"
|
||||
. "\n WHERE #__sportsmanager_mitglied_von_verein.verein_id = $verein->verein_id"
|
||||
. "\n AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten"
|
||||
. "\n AND #__sportsmanager_mitglied_von_verein.mitgliedsstatus IN (1,2)"
|
||||
. "\n ORDER BY nachname, vorname;";
|
||||
$mitglieder = loadObjectList($db, $query);
|
||||
|
||||
$query = "SELECT vorname, nachname, email"
|
||||
@@ -3520,6 +3848,7 @@ function vereinDetails(): void
|
||||
. "\n ORDER BY vorname, nachname, email";
|
||||
$rows = loadObjectList($db, $query);
|
||||
|
||||
// Mailverteiler ermitteln
|
||||
$mailverteiler = array();
|
||||
$mailverteiler["u"] = "";
|
||||
$mailverteiler["p"] = "";
|
||||
@@ -4349,8 +4678,15 @@ function teamstatistikAktualisieren($geaenderte_veranstaltung_id = 0, $geaendert
|
||||
$anzahl_spieltage_gespielt = loadResult($db, $query);
|
||||
$aktueller_spieltag = count($spieltage) > 0 ? $spieltage[0]->spieltag : 0;
|
||||
|
||||
//Platzierung ueberschreiben. Jetzige Platzierung kommt aus Tabelle und koennte falsch sein.
|
||||
$platz = 0;
|
||||
foreach($teams AS $team)
|
||||
{
|
||||
$team->platz = ++$platz;
|
||||
}
|
||||
|
||||
// Direkter Vergleich, wenn mindestens die Hälfte der Spieltage gespielt sind.
|
||||
if ($veranstaltung->direktervergleich AND $anzahl_spieltage_gespielt >= $anzahl_spieltage_komplett/2){
|
||||
if ($veranstaltung->direktervergleich && $anzahl_spieltage_gespielt >= $anzahl_spieltage_komplett/2 && $anzahl_spieltage_komplett >= 3){
|
||||
$teams = getTabelleDirekterVergleich($teams,$veranstaltung,$aktueller_spieltag);
|
||||
}
|
||||
|
||||
|
||||
@@ -356,7 +356,7 @@ function bildURL($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0,
|
||||
#crop=250,250,left
|
||||
#crop=250,250,right
|
||||
*/
|
||||
function yoothemeBild($typ, $id, $alternativ, $resize = '', $zusatz = ""): ?string
|
||||
function yoothemeBild($typ, $id, $alternativ, $zusatz = ""): ?string
|
||||
{
|
||||
$typ_exploded = explode("/", $typ);
|
||||
$typ = $typ_exploded[0];
|
||||
@@ -382,7 +382,7 @@ function yoothemeBild($typ, $id, $alternativ, $resize = '', $zusatz = ""): ?stri
|
||||
|
||||
$bildpfad = SPORTSMANAGER_JOOMLA_URL . "images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . "." . $ext;
|
||||
|
||||
return '<img class="el-image" data-src="' . $bildpfad . $resize . '" ' . $zusatz . ' uk-img />';
|
||||
return '<img class="el-image" data-src="' . $bildpfad . '" ' . $zusatz . ' uk-img />';
|
||||
}
|
||||
|
||||
function bildHTML($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0, $max_height = 0, $zusatz = "", $alternativ = ""): ?string
|
||||
|
||||
@@ -1017,7 +1017,9 @@ static function turnierdisziplin($turnier, $disziplin, $meldungen, $meldungenSpi
|
||||
static function begegnungenAnzeigen($veranstaltung, $modus, $rows, $zeitfenster, $titel, $aus_uebersicht, $praesentation = 0): void
|
||||
{
|
||||
global $params;
|
||||
|
||||
?>
|
||||
<style>td{padding: 6px;}</style>
|
||||
<?php
|
||||
if (count($rows) > 0) {
|
||||
$zeitpunkt_anzeigen = false;
|
||||
foreach ($rows as $begegnung) {
|
||||
@@ -1094,7 +1096,9 @@ static function begegnungenAnzeigen($veranstaltung, $modus, $rows, $zeitfenster,
|
||||
<th nowrap style='text-align: left; font-size: 70%; font-style: italic;'>
|
||||
<?php
|
||||
echo htmlentities_utf8(Rundenbezeichnung($spieltag, $veranstaltung->unterteilung == 0));
|
||||
if (!empty($spielort_name))
|
||||
if (!empty($row->spieltag_titel) && !empty($veranstaltung->spieltag_titel_zeigen))
|
||||
echo " - " . $row->spieltag_titel;
|
||||
if (!empty($spielort_name))
|
||||
echo "<br />" . htmlentities_utf8($spielort_name);
|
||||
?>
|
||||
</th>
|
||||
@@ -1226,6 +1230,143 @@ static function begegnungenAnzeigen($veranstaltung, $modus, $rows, $zeitfenster,
|
||||
}
|
||||
}
|
||||
|
||||
static function turnierbaumAnzeigen($veranstaltung,$begegnungen): void
|
||||
{
|
||||
$hoehe = 50;
|
||||
$breite = 200;
|
||||
$abstand = 20;
|
||||
$anzahlRunden = $veranstaltung->anzahlRunden;
|
||||
$matches = count($begegnungen[1]);
|
||||
$mannschaften = pow(2, $anzahlRunden - 1) * 2;
|
||||
$fontsize = 11;
|
||||
?>
|
||||
<style>
|
||||
.container {
|
||||
position: relative;
|
||||
text-align: left;
|
||||
height: <?php echo $matches * $hoehe + 50; ?>px;
|
||||
width: <?php echo $anzahlRunden * ($breite + $abstand); ?>px;
|
||||
overflow: auto;
|
||||
z-index: 1;
|
||||
}
|
||||
.linien{
|
||||
position: absolute;
|
||||
height: <?php echo $matches * $hoehe; ?>px;
|
||||
width: <?php echo $anzahlRunden * ($breite + $abstand); ?>px;
|
||||
top: 0;
|
||||
left: 0;
|
||||
stroke: lightgray;
|
||||
stroke-width: 2;
|
||||
}
|
||||
.matchbox {
|
||||
position: absolute;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
height: 48px;
|
||||
background: white;
|
||||
color: black;
|
||||
border: 1.5px solid #000000;
|
||||
padding: 5px;
|
||||
width: <?php echo $breite - 12; ?>px;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
||||
text-align: center;
|
||||
font-size: <?php echo $fontsize; ?>px;
|
||||
vertical-align: middle;
|
||||
z-index: 10;
|
||||
}
|
||||
.winner {
|
||||
font-weight: bold;
|
||||
}
|
||||
.looser {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
</style>
|
||||
<div style='position: relative; text-align: left;'>
|
||||
<div class="container" style="top: 0px; left: 20px;">
|
||||
<?php
|
||||
$anzahlSpiele = pow(2, $anzahlRunden - 1);
|
||||
for ($runde = 0; $runde < $anzahlRunden; $runde++)
|
||||
{
|
||||
$offset = pow(2, $runde) * 25 - 25;
|
||||
for ($spiel = 0; $spiel < $anzahlSpiele; $spiel++)
|
||||
{
|
||||
$class['heim'] = "";
|
||||
$class['gast'] = "";
|
||||
if ($begegnungen[$runde + 1][$spiel + 1]['sieger'] == 1) {
|
||||
$class['heim'] = "winner";
|
||||
$class['gast'] = "looser";
|
||||
}
|
||||
if ($begegnungen[$runde + 1][$spiel + 1]['sieger'] == 2) {
|
||||
$class['heim'] = "looser";
|
||||
$class['gast'] = "winner";
|
||||
}
|
||||
$oben = $hoehe * pow(2, $runde) * $spiel + $offset;
|
||||
$links = ($breite + $abstand) * $runde;
|
||||
echo "\n<div ";
|
||||
if ($begegnungen[$runde + 1][$spiel + 1]['link'])
|
||||
echo "onclick=\"window.location.href='" . $begegnungen[$runde + 1][$spiel + 1]['link'] . "';\" ";
|
||||
echo "class='matchbox' style='top: " . $oben . "px; left: " . $links . "px;'
|
||||
title='" . $begegnungen[$runde + 1][$spiel + 1]['tooltiptext'] . "'>";
|
||||
echo "<span class='" . $class['heim'] . "'>";
|
||||
echo $begegnungen[$runde + 1][$spiel + 1]['heim'] ?? '';
|
||||
echo "</span>";
|
||||
echo "<br>";
|
||||
echo "<span class='" . $class['gast'] . "'>";
|
||||
echo $begegnungen[$runde + 1][$spiel + 1]['gast'] ?? '';
|
||||
echo "</span>";
|
||||
echo "</div>\n";
|
||||
}
|
||||
$anzahlSpiele = $anzahlSpiele/2;
|
||||
}
|
||||
?>
|
||||
|
||||
<?php
|
||||
$anzahlSpiele = pow(2, $anzahlRunden - 1);
|
||||
echo "\n<svg class='linien'>";
|
||||
for ($runde = 0; $runde < $anzahlRunden; $runde++)
|
||||
{
|
||||
$offset_oben = pow(2, $runde) * 25 - 1;
|
||||
$offset_links = 12;
|
||||
|
||||
for ($spiel = 0; $spiel < $anzahlSpiele; $spiel++)
|
||||
{
|
||||
|
||||
$oben = $hoehe * pow(2, $runde) * $spiel + $offset_oben;
|
||||
$links = $breite * ($runde + 1) + $runde * $abstand - $offset_links;
|
||||
$rechts = $links - $breite - $abstand/2 + $offset_links;
|
||||
$mitte = $links + $abstand/2 + $offset_links/2;
|
||||
|
||||
if ($spiel % 2)
|
||||
$startvertikal = $oben;
|
||||
else
|
||||
$endevertikal = $oben;
|
||||
|
||||
//Linie rechts von Box
|
||||
if ($runde < $anzahlRunden - 1){
|
||||
echo "\n<line x1='".$links."' y1='".$oben."' x2='".$mitte."' y2='".$oben."' />";
|
||||
}
|
||||
|
||||
//Linie links von Box
|
||||
if ($runde > 0){
|
||||
echo "\n<line x1='".($rechts - $offset_links/2)."' y1='".$oben."' x2='".($rechts + $abstand/2)."' y2='".$oben."' />";
|
||||
}
|
||||
|
||||
//Vertkal Linie
|
||||
if ($spiel % 2)
|
||||
echo "\n<line x1='".$mitte."' y1='".$startvertikal."' x2='".$mitte."' y2='".$endevertikal."' />";
|
||||
}
|
||||
|
||||
$anzahlSpiele = $anzahlSpiele/2;
|
||||
}
|
||||
?>
|
||||
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
static function begegnungSpielplan($veranstaltung, $modus, $begegnung, $heim_team, $gast_team, $spiele, $vorherige_begegnung_id, $naechste_begegnung_id, $teamansicht_team, $details_anzeigen):void
|
||||
{
|
||||
global $params;
|
||||
@@ -2338,7 +2479,6 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
|
||||
style="border-spacing: 0;width: 100%">
|
||||
<tr>
|
||||
<?php
|
||||
$n = 0;
|
||||
foreach ($mitglieder as $row) {
|
||||
if (($mitglieder_modus == 0 && !$mitglieder_ist_dauerhaft[$row->spieler_id])
|
||||
|| ($mitglieder_modus == 1 && $mitglieder_ist_dauerhaft[$row->spieler_id]))
|
||||
@@ -2945,7 +3085,6 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
|
||||
static function vereine($titel, $beschreibung, $rows, $organisationAnzeigen): void
|
||||
{
|
||||
global $params;
|
||||
|
||||
if (!empty($titel)) { ?>
|
||||
<div
|
||||
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo htmlentities_utf8($titel); ?></div><?php }
|
||||
@@ -2961,110 +3100,79 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
|
||||
<?php
|
||||
}
|
||||
|
||||
if (count($rows) > 0) {
|
||||
$bilder_anzeigen = false;
|
||||
foreach ($rows as $verein) {
|
||||
if (bildHTML("vereine", $verein->verein_id, 28, 28) != null) {
|
||||
$bilder_anzeigen = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (count($rows) > 0) {
|
||||
$bilder_anzeigen = false;
|
||||
foreach ($rows as $verein) {
|
||||
if (bildHTML("vereine", $verein->verein_id, 40, 40) != null) {
|
||||
$bilder_anzeigen = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
?>
|
||||
<style>td{padding: 2px;}</style>
|
||||
<div style="text-align: center;">
|
||||
<div style="overflow-x: auto;display: inline-block;">
|
||||
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
|
||||
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
|
||||
<?php if ($bilder_anzeigen) { ?>
|
||||
<th style='text-align: center; width: 120px;' nowrap>Vereinslogo</th>
|
||||
<?php } ?>
|
||||
<th style='text-align: left;' nowrap><strong>
|
||||
<a href="verband/vereine?view=sportsmanager&task=sort_by_vereinsname">
|
||||
<?php echo Text::_('COM_SPORTSMANAGER_TEAM_NAME2'); ?>
|
||||
</a>
|
||||
</strong></th>
|
||||
<th style='text-align: center;width: 120px;' nowrap><strong>
|
||||
<a href="verband/vereine?view=sportsmanager&task=sort_by_mitglieder">
|
||||
<?php echo Text::_('COM_SPORTSMANAGER_MEMBERS'); ?></a></strong></th>
|
||||
<th style='text-align: left;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_TEAM_SEAT'); ?></strong></th>
|
||||
<?php if ($organisationAnzeigen) { ?>
|
||||
<th style='text-align: left;' nowrap>Organisation</th>
|
||||
<?php } ?>
|
||||
</tr>
|
||||
<?php
|
||||
|
||||
if ($organisationAnzeigen) {
|
||||
$organisation = $rows[0]->veranstalterbezeichnung;
|
||||
?>
|
||||
<div class="uk-overflow-auto">
|
||||
<table class="uk-table contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
|
||||
<tr>
|
||||
<td nowrap class="contentheading<?php echo $params->get('pageclass_sfx'); ?>"
|
||||
style="width: 100%">
|
||||
<?php echo $organisation != null ? htmlentities_utf8($organisation) : Text::_('COM_SPORTSMANAGER_NONE2'); ?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<div class="uk-overflow-auto">
|
||||
<table class="uk-table 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_NAME2'); ?></strong></th>
|
||||
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_TEAM_SEAT'); ?></strong></th>
|
||||
</tr>
|
||||
<?php
|
||||
foreach ($rows as $row) {
|
||||
?>
|
||||
<tr>
|
||||
<?php
|
||||
if ($bilder_anzeigen) {
|
||||
?>
|
||||
<td style="text-align: center;width: 60px;">
|
||||
<?php
|
||||
$bild = bildHTML("vereine", $row->verein_id, 40, 40, 0, 0, 'border="0"');
|
||||
if ($bild != null)
|
||||
echo $bild;
|
||||
?>
|
||||
</td>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<td style='text-align: left;'>
|
||||
<a id="id<?php echo $row->verein_id; ?>"></a>
|
||||
<a href="<?php echo SportsManagerURL('&task=verein_details&id=' . $row->verein_id); ?>">
|
||||
<?php echo htmlentities_utf8(NichtLeererString($row->vereinsname)); ?></a>
|
||||
</td>
|
||||
<td nowrap style="text-align: center">
|
||||
<?php echo $row->mitglieder; ?>
|
||||
</td>
|
||||
<td style='text-align: left;' nowrap><?php if (!empty($row->vereinssitz)) echo htmlentities_utf8($row->vereinssitz . (!empty($row->vereinssitz_ortsteil) ? ("-" . $row->vereinssitz_ortsteil) : "")); ?></td>
|
||||
<?php if ($organisationAnzeigen) {
|
||||
echo "<td nowrap style='text-align: left;'>" . $row->veranstalterbezeichnung . "</td>";
|
||||
} ?>
|
||||
|
||||
$k = 0;
|
||||
foreach ($rows as $row) {
|
||||
if ($organisationAnzeigen) {
|
||||
if ($row->veranstalterbezeichnung != $organisation) {
|
||||
$organisation = $row->veranstalterbezeichnung;
|
||||
?>
|
||||
</table></div>
|
||||
<span
|
||||
class="article_seperator<?php echo $params->get('pageclass_sfx'); ?>"> </span>
|
||||
|
||||
<div class="uk-overflow-auto">
|
||||
<table class="uk-table contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
|
||||
<tr>
|
||||
<td nowrap
|
||||
class="contentheading<?php echo $params->get('pageclass_sfx'); ?>"
|
||||
style="width: 100%">
|
||||
<?php echo $organisation != null ? htmlentities_utf8($organisation) : "Keine"; ?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="uk-overflow-auto"><table class="uk-table 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_NAME2'); ?></strong>
|
||||
</th>
|
||||
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_TEAM_SEAT'); ?></strong>
|
||||
</th>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
?>
|
||||
<tr class="sectiontableentry<?php echo $k + 1;
|
||||
$k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>">
|
||||
<td nowrap>
|
||||
|
||||
<table style="width: 100%; border: none; border-spacing: 0; padding: 0">
|
||||
<tr>
|
||||
<td>
|
||||
<a id="id<?php echo $row->verein_id; ?>"></a><a
|
||||
href="<?php echo SportsManagerURL('&task=verein_details&id=' . $row->verein_id); ?>"><?php echo htmlentities_utf8(NichtLeererString($row->vereinsname)); ?></a>
|
||||
</td>
|
||||
<?php
|
||||
if ($bilder_anzeigen) {
|
||||
?>
|
||||
<td style="width: 29px">
|
||||
<?php
|
||||
$bild = bildHTML("vereine", $row->verein_id, 28, 28, 0, 0, 'border="0"');
|
||||
if ($bild != null)
|
||||
echo $bild;
|
||||
?>
|
||||
</td>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</td>
|
||||
<td nowrap><?php if (!empty($row->vereinssitz)) echo htmlentities_utf8($row->vereinssitz . (!empty($row->vereinssitz_ortsteil) ? ("-" . $row->vereinssitz_ortsteil) : "")); ?></td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</table></div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<span class="article_seperator<?php echo $params->get('pageclass_sfx'); ?>"> </span>
|
||||
<?php
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<span class="article_seperator<?php echo $params->get('pageclass_sfx'); ?>"> </span>
|
||||
<?php
|
||||
}
|
||||
|
||||
static function vereinDetails($verein, $mitglieder, $vereinsansprechpartner, $aktuelle_teams, $vorheriger_verein_id, $naechster_verein_id, $vereins_moderator, $details_anzeigen, $ansprechpartner_anzeigen): void
|
||||
@@ -3121,7 +3229,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>
|
||||
@@ -3137,7 +3245,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>
|
||||
@@ -3149,7 +3257,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>
|
||||
<?php
|
||||
@@ -3250,7 +3358,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%"><?php echo Text::_('COM_SPORTSMANAGER_CURRENT_TEAMS'); ?></td>
|
||||
@@ -3259,7 +3367,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_TEAM'); ?></strong></th>
|
||||
<th><strong><?php echo Text::_('COM_SPORTSMANAGER_COMPETITIONS'); ?></strong></th>
|
||||
@@ -3312,7 +3420,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
|
||||
if (count($mitglieder) > 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 Text::_('COM_SPORTSMANAGER_MEMBERS'); ?></td>
|
||||
@@ -3321,67 +3429,48 @@ 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;
|
||||
foreach ($mitglieder as $row) {
|
||||
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'>";
|
||||
?><a
|
||||
href="<?php echo SportsManagerURL('&task=spieler_details&id=' . $row->spieler_id); ?>"><?php echo htmlentities_utf8($row->nachname . ", " . $row->vorname); ?></a><?php
|
||||
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') . "\">";
|
||||
?>
|
||||
<a href="<?php echo SportsManagerURL('&task=spieler_details&id=' . $row->spieler_id); ?>">
|
||||
<?php echo htmlentities_utf8($row->nachname . ", " . $row->vorname); ?></a><?php
|
||||
if (!empty($row->spielernr))
|
||||
echo "<br /><small>" . htmlentities_utf8($row->spielernr) . "</small>";
|
||||
echo "</td></tr>";
|
||||
if ($vereins_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 />";
|
||||
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'>";
|
||||
if (!empty($row->telefon))
|
||||
echo "<small>" . htmlentities_utf8($row->telefon) . "</small><br />";
|
||||
if (!empty($row->mobil))
|
||||
echo "<small>" . htmlentities_utf8($row->mobil) . "</small><br />";
|
||||
if (!empty($row->email)) {
|
||||
$replacement = HTMLHelper::_('email.cloak', $row->email, 1, $row->email, 0);
|
||||
echo "<small>" . $replacement . "</small>";
|
||||
}
|
||||
echo "</td></tr>";
|
||||
if (!empty($row->strasse))
|
||||
echo "<br /><small>" . htmlentities_utf8($row->strasse) . "</small><br />";
|
||||
if (!empty($row->plz) || !empty($row->ort))
|
||||
echo "<br /><small>" . (!empty($row->plz) ? (htmlentities_utf8($row->plz) . " ") : "") . htmlentities_utf8($row->ort) . "</small>";
|
||||
if (!empty($row->telefon))
|
||||
echo "<br /><small>" . htmlentities_utf8($row->telefon) . "</small><br />";
|
||||
if (!empty($row->mobil))
|
||||
echo "<br /><small>" . htmlentities_utf8($row->mobil) . "</small><br />";
|
||||
if (!empty($row->email)) {
|
||||
$replacement = HTMLHelper::_('email.cloak', $row->email, 1, $row->email, 0);
|
||||
echo "<br /><small>" . $replacement . "</small>";
|
||||
}
|
||||
}
|
||||
echo "</table></td>";
|
||||
echo "<td style='text-align: center' class=\"sectiontableentry" . (($n % 2) + 1) . $params->get('pageclass_sfx') . "\">";
|
||||
$bild = bildHTML("spieler", !$details_anzeigen && $row->bild_ausblenden ? '' : $row->spieler_id, 90, 120, 0, 0, 'border="1"', $row->geschlecht == 'M' ? 'm' : 'w');
|
||||
echo "</td>";
|
||||
|
||||
echo "<td style='text-align: left; width: 120px;' class=\"sectiontableentry" . (($n % 2) + 1) . $params->get('pageclass_sfx') . "\">";
|
||||
$bild = bildHTML("spieler", !$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>
|
||||
@@ -4322,7 +4411,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
|
||||
:</strong></td>
|
||||
<td nowrap style="text-align: right">
|
||||
<?php
|
||||
echo($spieler->elo_einzel_spiele == 1 ? Text::sprintf('COM_SPORTSMANAGER_GAME_ELO_IN_ONE_GAME', $spieler->elo_einzel) : Text::sprintf('COM_SPORTSMANAGER_GAME_ELO_IN_NUMBER_GAMES', $spieler->elo_einzel));
|
||||
echo($spieler->elo_einzel_spiele == 1 ? Text::sprintf('COM_SPORTSMANAGER_GAME_ELO_IN_ONE_GAME', $spieler->elo_einzel) : Text::sprintf('COM_SPORTSMANAGER_GAME_ELO_IN_NUMBER_GAMES', $spieler->elo_einzel, $spieler->elo_einzel_spiele));
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -4336,7 +4425,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
|
||||
:</strong></td>
|
||||
<td nowrap style="text-align: right">
|
||||
<?php
|
||||
echo($spieler->elo_doppel_spiele == 1 ? Text::sprintf('COM_SPORTSMANAGER_GAME_ELO_IN_ONE_GAME', $spieler->elo_doppel) : Text::sprintf('COM_SPORTSMANAGER_GAME_ELO_IN_NUMBER_GAMES', $spieler->elo_doppel));
|
||||
echo($spieler->elo_doppel_spiele == 1 ? Text::sprintf('COM_SPORTSMANAGER_GAME_ELO_IN_ONE_GAME', $spieler->elo_doppel) : Text::sprintf('COM_SPORTSMANAGER_GAME_ELO_IN_NUMBER_GAMES', $spieler->elo_doppel, $spieler->elo_doppel_spiele));
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -6717,6 +6806,9 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
|
||||
|
||||
static function rangliste($rangliste, $rangliste_punkte, $allein_angezeigt, $details_anzeigen): void
|
||||
{
|
||||
?>
|
||||
<style>td{padding: 3px;}</style>
|
||||
<?php
|
||||
global $params;
|
||||
if ($allein_angezeigt) {
|
||||
?>
|
||||
@@ -6795,15 +6887,15 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
|
||||
?>
|
||||
<!-- Tabelle Rangliste -->
|
||||
<div class="uk-overflow-auto">
|
||||
<table style='width: 100%; padding:1px 1px 1px 1px; border-collapse: collapse;'
|
||||
<table style='width: 100%; border-collapse: collapse;'
|
||||
class="uk-table-divider 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_RANK'); ?></strong></th>
|
||||
<th></th>
|
||||
<th style="text-align: left">
|
||||
<th style="text-align: left;">
|
||||
<strong><?php echo Text::_('COM_SPORTSMANAGER_PLAYER'); ?></strong>
|
||||
</th>
|
||||
<th style="text-align: center"><strong><?php echo Text::_('COM_SPORTSMANAGER_POINTS'); ?></strong></th>
|
||||
<th style="text-align: center; width 70px;"><strong><?php echo Text::_('COM_SPORTSMANAGER_POINTS'); ?></strong></th>
|
||||
</tr>
|
||||
<?php
|
||||
|
||||
@@ -6820,10 +6912,10 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
|
||||
?>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<td style="width 70px;">
|
||||
<?php
|
||||
if (($bild = yoothemeBild("spieler", !$details_anzeigen && $row->bild_ausblenden ? '' : $row->spieler_id, $row->geschlecht == 'M' ? 'm' : 'w', '#resize=75', 'border="1" style="text-align: left" hspace="8" vspace="2"')) != null)
|
||||
echo $bild; ?>
|
||||
if (($bild = yoothemeBild("spieler", !$details_anzeigen && $row->bild_ausblenden ? '' : $row->spieler_id, $row->geschlecht == 'M' ? 'm' : 'w', 'border="1" style="text-align: left; width: 60px;" hspace="8" vspace="2"')) != null)
|
||||
echo "\n".$bild; ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -21,6 +21,7 @@ COM_SPORTSMANAGER_LOCATIONS="Spielorte"
|
||||
COM_SPORTSMANAGER_SEASONS="Saisons"
|
||||
COM_SPORTSMANAGER_TEAM_PLANS="Mannschaftsspielpläne"
|
||||
COM_SPORTSMANAGER_TEAM_NAME="Mannschaftsname"
|
||||
COM_SPORTSMANAGER_TEAM_NAME_SHORT="Mannschaftsname kurz (max 24)"
|
||||
COM_SPORTSMANAGER_TEAM_NAME2="Vereinsname"
|
||||
COM_SPORTSMANAGER_TEAM_SEAT="Vereinssitz"
|
||||
COM_SPORTSMANAGER_POSTPONE_RULES="Verschieberegeln"
|
||||
@@ -130,10 +131,13 @@ COM_SPORTSMANAGER_QUARTER_FINAL_SHORTCUT="1/4"
|
||||
COM_SPORTSMANAGER_ROUND_OF_16="Achtelfinale"
|
||||
COM_SPORTSMANAGER_ROUND_OF_16_SHORTCUT="1/8"
|
||||
COM_SPORTSMANAGER_ROUND_OF_32="Sechzehntelfinale"
|
||||
COM_SPORTSMANAGER_ROUND_OF_32_ALT="16-tel-Finale"
|
||||
COM_SPORTSMANAGER_ROUND_OF_32_SHORTCUT="1/16"
|
||||
COM_SPORTSMANAGER_ROUND_OF_64="Zweiunddreißigstelfinale"
|
||||
COM_SPORTSMANAGER_ROUND_OF_64_ALT="32-tel-Finale"
|
||||
COM_SPORTSMANAGER_ROUND_OF_64_SHORTCUT="1/32"
|
||||
COM_SPORTSMANAGER_ROUND_OF_128="Vierundsechzigstelfinale"
|
||||
COM_SPORTSMANAGER_ROUND_OF_128_ALT="64-tel-Finale"
|
||||
COM_SPORTSMANAGER_ROUND_OF_128_SHORTCUT="1/64"
|
||||
COM_SPORTSMANAGER_DAY_0_SHORTCUT="So."
|
||||
COM_SPORTSMANAGER_DAY_1_SHORTCUT="Mo."
|
||||
@@ -311,6 +315,9 @@ COM_SPORTSMANAGER_FOR_OTHER_CONTACT="Für andere Ansprechpartner"
|
||||
COM_SPORTSMANAGER_DATES_REGISTERED_USERS="Termine beantragten durch angemeldete Benutzer"
|
||||
COM_SPORTSMANAGER_VIEW_ELO_RATING="Elo-Wertung anzeigen"
|
||||
COM_SPORTSMANAGER_VIEW_SPORTSMANAGER_LIZENZ="Lizenz anzeigen"
|
||||
COM_SPORTSMANAGER_VIEW_LEAST_MEMBER_COUNT="Mindest Mitgliederzahl zeigen"
|
||||
COM_SPORTSMANAGER_SHOW_ORGANISATION="Verband zeigen"
|
||||
COM_SPORTSMANAGER_SHOW_TOURNAMENT_BRACKET="Turnierbaum anzeigen"
|
||||
COM_SPORTSMANAGER_PLAYER_DETAILS="Spielerdetails"
|
||||
COM_SPORTSMANAGER_PLAYER_LIST_DETAILS="Spielerliste/-details"
|
||||
COM_SPORTSMANAGER_PLAYER_EDIT="Spielerdaten durch Organisations-/Vereinsansprechpartner bearbeiten"
|
||||
@@ -380,6 +387,7 @@ COM_SPORTSMANAGER_MEMBER_STATUS="Mitgliedsstatus"
|
||||
COM_SPORTSMANAGER_ACTIVE="Aktiv"
|
||||
COM_SPORTSMANAGER_RESTRICTED="Eingeschränkt"
|
||||
COM_SPORTSMANAGER_BEATEN="Ausgetreten"
|
||||
COM_SPORTSMANAGER_HIDE="Verstecken"
|
||||
COM_SPORTSMANAGER_PASSIVE="Passiv"
|
||||
COM_SPORTSMANAGER_BEATEN_CLUB="Verein ausgetreten"
|
||||
COM_SPORTSMANAGER_SINGLE_SEED="Elo-Startwert Einzel"
|
||||
@@ -606,7 +614,10 @@ COM_SPORTSMANAGER_ONLY_DETAILED_RATING_POINT_DIFFERENCE="Nur Detailwertung nach
|
||||
COM_SPORTSMANAGER_ONLY_DETAILED_POINTS_AFTER_POINTSRATE="Nur Detailwertung nach Punktequote"
|
||||
COM_SPORTSMANAGER_KO_SIMPLE_FULL="K.O. (einfach oder vollstaendige Ausspielung aller Plaetze)"
|
||||
COM_SPORTSMANAGER_MANUAL_PRO_TEAMS="Manuell (pro Mannschaft)"
|
||||
COM_SPORTSMANAGER_CUP_DRAW_EVERY_ROUND="Pokal: Jede Runde wird neu gelost"
|
||||
COM_SPORTSMANAGER_CUP_USING_SEEDING_LIST="Pokal: Losen einer Setzliste"
|
||||
COM_SPORTSMANAGER_SUBDIVISION="Unterteilung"
|
||||
COM_SPORTSMANAGER_SHOW_MATCHDAY_TITLE="Titel von Spieltag zeigen"
|
||||
COM_SPORTSMANAGER_ELO_RATING="ELO-Wertung"
|
||||
COM_SPORTSMANAGER_ELIGIBLE_FOR_EVENT="Berechtigte für Veranstaltung"
|
||||
COM_SPORTSMANAGER_TITLE_LOGO="Titel-Logo"
|
||||
@@ -634,6 +645,8 @@ COM_SPORTSMANAGER_GAMEDAY="Spieltag"
|
||||
COM_SPORTSMANAGER_GAMEDAYS="Spieltage"
|
||||
COM_SPORTSMANAGER_ROUND="Runde"
|
||||
COM_SPORTSMANAGER_ROUNDS="Runden"
|
||||
COM_SPORTSMANAGER_ROUND_TITLE="Runde Bezeichnung"
|
||||
COM_SPORTSMANAGER_MATCH_PLACE3="Spiel um Platz 3"
|
||||
COM_SPORTSMANAGER_MONTH="Monat"
|
||||
COM_SPORTSMANAGER_MONTHS="Monate"
|
||||
COM_SPORTSMANAGER_PLAYER_FROM_TEAM="Spieler von Mannschaft"
|
||||
@@ -649,7 +662,9 @@ COM_SPORTSMANAGER_SO_FAR="bisher"
|
||||
COM_SPORTSMANAGER_PLACEMENT_AREA="Platzierungsbereich"
|
||||
COM_SPORTSMANAGER_IMAGE_WITHIN_TEAM="Bild innerhalb Mannschaft"
|
||||
COM_SPORTSMANAGER_ADD_MEETING="Begegnung hinzufügen"
|
||||
COM_SPORTSMANAGER_GAMEDAY_GENERATION="Spieltag erzeugen"
|
||||
COM_SPORTSMANAGER_ROUND_GENERATION="Runde erzeugen"
|
||||
COM_SPORTSMANAGER_CUP_ROUND_GENERATION="Pokalrunde auslosen"
|
||||
COM_SPORTSMANAGER_GENERATE_GROUP_GAME="Gruppenspiele erzeugen"
|
||||
COM_SPORTSMANAGER_IMPORT_GROUP_GAME="Gruppenspiele importieren"
|
||||
COM_SPORTSMANAGER_IMPORT_GROUP_GAME2="Gruppenspiele: Importieren"
|
||||
@@ -777,6 +792,7 @@ COM_SPORTSMANAGER_FEDERAL_STATES="Bundesländer"
|
||||
COM_SPORTSMANAGER_STATES="Länder"
|
||||
COM_SPORTSMANAGER_YEAR="Jahr"
|
||||
COM_SPORTSMANAGER_ADDITION="Zusatz"
|
||||
COM_SPORTSMANAGER_LOCATION="Ort"
|
||||
COM_SPORTSMANAGER_STATE="Land"
|
||||
COM_SPORTSMANAGER_FEDERAL_="Bundes-"
|
||||
COM_SPORTSMANAGER_INFO="Info"
|
||||
|
||||
@@ -21,6 +21,7 @@ COM_SPORTSMANAGER_LOCATIONS="Locations"
|
||||
COM_SPORTSMANAGER_SEASONS="Seasons"
|
||||
COM_SPORTSMANAGER_TEAM_PLANS="Team plans"
|
||||
COM_SPORTSMANAGER_TEAM_NAME="Team name"
|
||||
COM_SPORTSMANAGER_TEAM_NAME_SHORT="Team name short (max 24)"
|
||||
COM_SPORTSMANAGER_TEAM_NAME2="Club name"
|
||||
COM_SPORTSMANAGER_TEAM_SEAT="Club location"
|
||||
COM_SPORTSMANAGER_POSTPONE_RULES="Postpone rules"
|
||||
@@ -129,11 +130,14 @@ COM_SPORTSMANAGER_QUARTER_FINAL="Quarter final"
|
||||
COM_SPORTSMANAGER_QUARTER_FINAL_SHORTCUT="1/4"
|
||||
COM_SPORTSMANAGER_ROUND_OF_16="Round of sixteen"
|
||||
COM_SPORTSMANAGER_ROUND_OF_16_SHORTCUT="1/8"
|
||||
COM_SPORTSMANAGER_ROUND_OF_32="Round of thiry-two"
|
||||
COM_SPORTSMANAGER_ROUND_OF_32="Round of thirty-two"
|
||||
COM_SPORTSMANAGER_ROUND_OF_32_ALT="Round of thirty-two"
|
||||
COM_SPORTSMANAGER_ROUND_OF_32_SHORTCUT="1/16"
|
||||
COM_SPORTSMANAGER_ROUND_OF_64="Round of sixty-four"
|
||||
COM_SPORTSMANAGER_ROUND_OF_64_ALT="Round of sixty-four"
|
||||
COM_SPORTSMANAGER_ROUND_OF_64_SHORTCUT="1/32"
|
||||
COM_SPORTSMANAGER_ROUND_OF_128="Round of 128"
|
||||
COM_SPORTSMANAGER_ROUND_OF_128_ALT="Round of 128"
|
||||
COM_SPORTSMANAGER_ROUND_OF_128_SHORTCUT="1/64"
|
||||
COM_SPORTSMANAGER_DAY_0_SHORTCUT="Su."
|
||||
COM_SPORTSMANAGER_DAY_1_SHORTCUT="Mo."
|
||||
@@ -311,6 +315,9 @@ COM_SPORTSMANAGER_FOR_OTHER_CONTACT="For other contact"
|
||||
COM_SPORTSMANAGER_DATES_REGISTERED_USERS="Apply dates by registered users"
|
||||
COM_SPORTSMANAGER_VIEW_ELO_RATING="View Elo rating"
|
||||
COM_SPORTSMANAGER_VIEW_SPORTSMANAGER_LIZENZ="Show License"
|
||||
COM_SPORTSMANAGER_VIEW_LEAST_MEMBER_COUNT="Show least member count"
|
||||
COM_SPORTSMANAGER_SHOW_ORGANISATION="Show organisation"
|
||||
COM_SPORTSMANAGER_SHOW_TOURNAMENT_BRACKET="Show Tournament Bracket"
|
||||
COM_SPORTSMANAGER_PLAYER_DETAILS="Player details"
|
||||
COM_SPORTSMANAGER_PLAYER_LIST_DETAILS="Player list details"
|
||||
COM_SPORTSMANAGER_PLAYER_EDIT="Edit player data by organisation/club contacts"
|
||||
@@ -380,6 +387,7 @@ COM_SPORTSMANAGER_MEMBER_STATUS="Member status"
|
||||
COM_SPORTSMANAGER_ACTIVE="Active"
|
||||
COM_SPORTSMANAGER_RESTRICTED="Restricted"
|
||||
COM_SPORTSMANAGER_BEATEN="Excreted"
|
||||
COM_SPORTSMANAGER_HIDE="Hide"
|
||||
COM_SPORTSMANAGER_PASSIVE="Passive"
|
||||
COM_SPORTSMANAGER_BEATEN_CLUB="Club excreted"
|
||||
COM_SPORTSMANAGER_SINGLE_SEED="Elo starting value singles"
|
||||
@@ -606,7 +614,10 @@ COM_SPORTSMANAGER_ONLY_DETAILED_RATING_POINT_DIFFERENCE="Only detailed ranking b
|
||||
COM_SPORTSMANAGER_ONLY_DETAILED_POINTS_AFTER_POINTSRATE="Only detailed ranking by points rate"
|
||||
COM_SPORTSMANAGER_KO_SIMPLE_FULL="K.O. (singles or full playout of all places)"
|
||||
COM_SPORTSMANAGER_MANUAL_PRO_TEAMS="Manual (per team)"
|
||||
COM_SPORTSMANAGER_CUP_DRAW_EVERY_ROUND="Cup: draw every round"
|
||||
COM_SPORTSMANAGER_CUP_USING_SEEDING_LIST="Cup: draw seeding list"
|
||||
COM_SPORTSMANAGER_SUBDIVISION="Subdivision"
|
||||
COM_SPORTSMANAGER_SHOW_MATCHDAY_TITLE="Show title matchday"
|
||||
COM_SPORTSMANAGER_ELO_RATING="Elo rating"
|
||||
COM_SPORTSMANAGER_ELIGIBLE_FOR_EVENT="Eligibles for competition"
|
||||
COM_SPORTSMANAGER_TITLE_LOGO="Title logo"
|
||||
@@ -634,6 +645,8 @@ COM_SPORTSMANAGER_GAMEDAY="Gameday"
|
||||
COM_SPORTSMANAGER_GAMEDAYS="Gamedays"
|
||||
COM_SPORTSMANAGER_ROUND="Round"
|
||||
COM_SPORTSMANAGER_ROUNDS="Rounds"
|
||||
COM_SPORTSMANAGER_ROUND_TITLE="Round Title"
|
||||
COM_SPORTSMANAGER_MATCH_PLACE3="Match for place 3"
|
||||
COM_SPORTSMANAGER_MONTH="Month"
|
||||
COM_SPORTSMANAGER_MONTHS="Months"
|
||||
COM_SPORTSMANAGER_PLAYER_FROM_TEAM="Player of team"
|
||||
@@ -649,7 +662,9 @@ COM_SPORTSMANAGER_SO_FAR="so far"
|
||||
COM_SPORTSMANAGER_PLACEMENT_AREA="Placement area"
|
||||
COM_SPORTSMANAGER_IMAGE_WITHIN_TEAM="Image within team"
|
||||
COM_SPORTSMANAGER_ADD_MEETING="Add match"
|
||||
COM_SPORTSMANAGER_GAMEDAY_GENERATION="Generate gameday"
|
||||
COM_SPORTSMANAGER_ROUND_GENERATION="Generate round"
|
||||
COM_SPORTSMANAGER_CUP_ROUND_GENERATION="Generate cup round"
|
||||
COM_SPORTSMANAGER_GENERATE_GROUP_GAME="Generate group games"
|
||||
COM_SPORTSMANAGER_Import_GROUP_GAME="Import group games"
|
||||
COM_SPORTSMANAGER_Import_GROUP_GAME2="Group games: Import"
|
||||
@@ -777,6 +792,7 @@ COM_SPORTSMANAGER_FEDERAL_STATES="State"
|
||||
COM_SPORTSMANAGER_STATES="Countries"
|
||||
COM_SPORTSMANAGER_YEAR="Year"
|
||||
COM_SPORTSMANAGER_ADDITION="Addition"
|
||||
COM_SPORTSMANAGER_LOCATION="Location"
|
||||
COM_SPORTSMANAGER_STATE="Germany"
|
||||
COM_SPORTSMANAGER_FEDERAL_="Federal "
|
||||
COM_SPORTSMANAGER_INFO="Info"
|
||||
|
||||
@@ -137,6 +137,7 @@ return new class () implements InstallerScriptInterface
|
||||
. "\n `tisch` tinytext DEFAULT NULL,"
|
||||
. "\n `zeitpunkt` datetime DEFAULT NULL,"
|
||||
. "\n `spieltag` smallint(6) DEFAULT NULL,"
|
||||
. "\n `spieltag_titel` VARCHAR(32) NOT NULL DEFAULT '',"
|
||||
. "\n `spiel_nr` tinyint(4) DEFAULT NULL,"
|
||||
. "\n `heim_punkte` smallint(6) DEFAULT NULL,"
|
||||
. "\n `gast_punkte` smallint(6) DEFAULT NULL,"
|
||||
@@ -682,7 +683,8 @@ return new class () implements InstallerScriptInterface
|
||||
. "\n `verein_id` int(11) DEFAULT NULL,"
|
||||
. "\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 DEFAULT '',"
|
||||
. "\n `teamname_kurz` VARCHAR(24) NOT NULL DEFAULT '',"
|
||||
. "\n `tischtyp` varchar(200) DEFAULT NULL,"
|
||||
. "\n `tischeigenschaften` varchar(200) DEFAULT NULL,"
|
||||
. "\n `zusatzpunkte` float(6,2) DEFAULT NULL,"
|
||||
@@ -1037,11 +1039,12 @@ return new class () implements InstallerScriptInterface
|
||||
. "\n `tabellenwertung` tinyint(4) NOT NULL DEFAULT '0',"
|
||||
. "\n `direktervergleich` tinyint(4) NOT NULL DEFAULT '0',"
|
||||
. "\n `unterteilung` tinyint(4) NOT NULL DEFAULT '0',"
|
||||
. "\n `spieltag_titel_zeigen` INT(4) NOT NULL DEFAULT '0',"
|
||||
. "\n `erster_tag` date NOT NULL DEFAULT '0000-00-00',"
|
||||
. "\n `letzter_tag` date DEFAULT NULL,"
|
||||
. "\n `elo_wertung` tinyint(4) DEFAULT NULL,"
|
||||
. "\n `logo_url` TINYTEXT NOT NULL,"
|
||||
. "\n `ticker_logo_url` TINYTEXT NOT NULL,"
|
||||
. "\n `logo_url` TINYTEXT NOT NULL,"
|
||||
. "\n `ticker_logo_url` TINYTEXT NOT NULL,"
|
||||
. "\n `status` tinyint(4) NOT NULL DEFAULT '0',"
|
||||
. "\n `reihenfolge` tinyint(4) DEFAULT '1',"
|
||||
. "\n `kategorie` tinyint(4) DEFAULT '1',"
|
||||
@@ -1063,6 +1066,7 @@ return new class () implements InstallerScriptInterface
|
||||
. "\n `url` varchar(150) DEFAULT NULL,"
|
||||
. "\n `beschreibung` varchar(500) DEFAULT NULL,"
|
||||
. "\n `ausgetreten` tinyint(1) DEFAULT '0',"
|
||||
. "\n `verstecken` INT(4) NOT NULL DEFAULT '0',"
|
||||
. "\n PRIMARY KEY (`verein_id`),"
|
||||
. "\n KEY `veranstalter_id` (`veranstalter_id`)"
|
||||
. "\n) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
|
||||
@@ -1113,7 +1117,7 @@ return new class () implements InstallerScriptInterface
|
||||
$db->setQuery( $query );
|
||||
if (!$db->execute()) { die($db->stderr(true)); }
|
||||
|
||||
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '103';";
|
||||
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '106';";
|
||||
$db->setQuery( $query );
|
||||
if (!$db->execute()) { die($db->stderr(true)); }
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<authorEmail>it@dtfb.de</authorEmail>
|
||||
<copyright>All rights reserved</copyright>
|
||||
<license>GNU/GPL</license>
|
||||
<version>2.0.0</version>
|
||||
<version>DEV</version>
|
||||
<description>Verwaltung von Spielern und Vereinen in Mannschafts- und Individualwettbewerben</description>
|
||||
<namespace path="src">Dtfb\Component\com_sportsmanager</namespace>
|
||||
<files folder="site">
|
||||
|
||||
Reference in New Issue
Block a user