diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php
index 6314653..49d6ab5 100644
--- a/src/structure/components/com_sportsmanager/admin.php
+++ b/src/structure/components/com_sportsmanager/admin.php
@@ -1,19425 +1,19440 @@
-input;
-
- if (!benutzerModerator() && !benutzerVeranstaltungModerator() && !benutzerTurnierModerator() && !benutzerIndividualwettbewerbModerator())
- keinZugriff(true);
-
- $unabhaengige_ansicht = empty($content) || $content == "administration";
-
- $filter_saison_id = $jinput->get('filter_saison_id', 0, 'INT');
- if ($filter_saison_id == 0)
- $filter_saison_id = $jinput->cookie->get('sportsmanager_filter_saison_id', 0, 'INT');
-
- $query = "SELECT saison_id, saisonbezeichnung"
- . "\n FROM #__sportsmanager_saison"
- . "\n ORDER BY saisonbezeichnung DESC";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $saisons = $db->loadObjectList();
-
- if (count($saisons) != 0) {
- $gefunden = false;
- foreach ($saisons as $saison) {
- if ($saison->saison_id == $filter_saison_id) {
- $gefunden = true;
- break;
- }
- }
- if (!$gefunden)
- $filter_saison_id = $saisons[0]->saison_id;
- }
-
- $beschraenkter_zugriff_veranstaltungen = benutzerZugriff("mannschaftswettbewerb_aendern") ? 0 : 1;
- if ($beschraenkter_zugriff_veranstaltungen) {
- $query = "SELECT t1.*, t2.veranstalterbezeichnung, t2.veranstalterkuerzel,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_team AS tt1 WHERE tt1.veranstaltung_id = t1.veranstaltung_id) AS teams,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_team AS tt2 ON tt1.heim_team_id = tt2.team_id WHERE tt2.veranstaltung_id = t1.veranstaltung_id) AS begegnungen"
- . "\n FROM #__sportsmanager_veranstaltung AS t1"
- . "\n LEFT JOIN #__sportsmanager_veranstalter AS t2 ON t1.veranstalter_id = t2.veranstalter_id"
- . "\n WHERE " . veranstaltungFilter("t1.veranstaltung_id IN")
- . ($filter_saison_id != 0 ? " AND saison_id = $filter_saison_id" : "")
- . "\n ORDER BY t1.reihenfolge, t1.letzter_tag DESC, t1.bezeichnung, t1.kategorie";
- }
- else {
- $query = "SELECT t1.*, t2.veranstalterbezeichnung, t2.veranstalterkuerzel,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_team AS tt1 WHERE tt1.veranstaltung_id = t1.veranstaltung_id) AS teams,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_team AS tt2 ON tt1.heim_team_id = tt2.team_id WHERE tt2.veranstaltung_id = t1.veranstaltung_id) AS begegnungen"
- . "\n FROM #__sportsmanager_veranstaltung AS t1"
- . "\n LEFT JOIN #__sportsmanager_veranstalter AS t2 ON t1.veranstalter_id = t2.veranstalter_id"
- . ($filter_saison_id != 0 ? "\n WHERE saison_id = $filter_saison_id" : "")
- . "\n ORDER BY t1.reihenfolge, t1.letzter_tag DESC, t1.bezeichnung, t1.kategorie";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstaltungen = $db->loadObjectList();
-
- $query = "SELECT *,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_bestenliste_veranstaltung AS t2 WHERE t1.bestenliste_id = t2.bestenliste_id) + (SELECT COUNT(*) FROM #__sportsmanager_bestenliste_individualwettbewerb AS t2 WHERE t1.bestenliste_id = t2.bestenliste_id) AS veranstaltungen"
- . "\n FROM #__sportsmanager_bestenliste AS t1"
- . ($filter_saison_id != 0 ? "\n WHERE saison_id = $filter_saison_id" : "")
- . "\n ORDER BY t1.reihenfolge, t1.letzter_tag DESC, t1.bezeichnung, t1.kategorie";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spielerstatistiken = $db->loadObjectList();
-
- $beschraenkter_zugriff_turniere = benutzerZugriff("turniere_aendern") ? 0 : 1;
- if ($beschraenkter_zugriff_turniere) {
- $query = "SELECT #__sportsmanager_turnier.*, veranstalterbezeichnung, veranstalterkuerzel, GROUP_CONCAT(disziplintitel ORDER BY disziplintitel SEPARATOR ', ') AS disziplinen, COUNT(turnierdisziplin_id) AS disziplinen_anzahl, COALESCE(SUM(meldung_vorhanden), 0) AS disziplinen_mit_meldung_anzahl"
- . "\n FROM #__sportsmanager_turnier"
- . "\n LEFT JOIN ((SELECT turnier_id, turnierdisziplin_id, status, IF(COALESCE(kuerzel, '') <> '', kuerzel, disziplin) AS disziplintitel, IF(EXISTS(SELECT * FROM #__sportsmanager_turniermeldung WHERE #__sportsmanager_turniermeldung.turnierdisziplin_id = #__sportsmanager_turnierdisziplin.turnierdisziplin_id), 1, 0) AS meldung_vorhanden FROM #__sportsmanager_turnierdisziplin) AS turnierdisziplin) USING (turnier_id)"
- . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
- . "\n WHERE " . turnierFilter("#__sportsmanager_turnier.turnier_id IN")
- . ($filter_saison_id != 0 ? " AND saison_id = $filter_saison_id" : "")
- . "\n GROUP BY turnier_id"
- . "\n ORDER BY erster_tag DESC, turnierbezeichnung";
- }
- else {
- $query = "SELECT #__sportsmanager_turnier.*, veranstalterbezeichnung, veranstalterkuerzel, GROUP_CONCAT(disziplintitel ORDER BY disziplintitel SEPARATOR ', ') AS disziplinen, COUNT(turnierdisziplin_id) AS disziplinen_anzahl, COALESCE(SUM(meldung_vorhanden), 0) AS disziplinen_mit_meldung_anzahl"
- . "\n FROM #__sportsmanager_turnier"
- . "\n LEFT JOIN ((SELECT turnier_id, turnierdisziplin_id, status, IF(COALESCE(kuerzel, '') <> '', kuerzel, disziplin) AS disziplintitel, IF(EXISTS(SELECT * FROM #__sportsmanager_turniermeldung WHERE #__sportsmanager_turniermeldung.turnierdisziplin_id = #__sportsmanager_turnierdisziplin.turnierdisziplin_id), 1, 0) AS meldung_vorhanden FROM #__sportsmanager_turnierdisziplin) AS turnierdisziplin) USING (turnier_id)"
- . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
- . ($filter_saison_id != 0 ? "\n WHERE saison_id = $filter_saison_id" : "")
- . "\n GROUP BY turnier_id"
- . "\n ORDER BY erster_tag DESC, turnierbezeichnung";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $turniere = $db->loadObjectList();
-
- $beschraenkter_zugriff_individualwettbewerbe = benutzerZugriff("individualwettbewerbe_aendern") ? 0 : 1;
- if ($beschraenkter_zugriff_individualwettbewerbe) {
- $query = "SELECT #__sportsmanager_individualwettbewerb.*, veranstalterbezeichnung, veranstalterkuerzel,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_individualwettbewerb_spiel WHERE individualwettbewerb_id = #__sportsmanager_individualwettbewerb.individualwettbewerb_id) AS spiele"
- . "\n FROM #__sportsmanager_individualwettbewerb"
- . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
- . "\n WHERE " . individualwettbewerbFilter("individualwettbewerb_id IN")
- . ($filter_saison_id != 0 ? " AND saison_id = $filter_saison_id" : "")
- . "\n ORDER BY reihenfolge, bezeichnung, kategorie";
- }
- else {
- $query = "SELECT #__sportsmanager_individualwettbewerb.*, veranstalterbezeichnung, veranstalterkuerzel,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_individualwettbewerb_spiel WHERE individualwettbewerb_id = #__sportsmanager_individualwettbewerb.individualwettbewerb_id) AS spiele"
- . "\n FROM #__sportsmanager_individualwettbewerb"
- . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
- . ($filter_saison_id != 0 ? "\n WHERE saison_id = $filter_saison_id" : "")
- . "\n ORDER BY reihenfolge, bezeichnung, kategorie";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $individualwettbewerbe = $db->loadObjectList();
-
- $query = "SELECT *,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_rangliste_turnierdisziplin AS t2 WHERE t1.rangliste_id = t2.rangliste_id) AS turnierdisziplinen"
- . "\n FROM #__sportsmanager_rangliste AS t1"
- . ($filter_saison_id != 0 ? "\n WHERE saison_id = $filter_saison_id" : "")
- . "\n ORDER BY t1.reihenfolge, t1.letzter_tag DESC, t1.bezeichnung, t1.kategorie";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $ranglisten = $db->loadObjectList();
-
- $statistik = array();
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_saison), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $statistik["saisons"] = $db->loadResult();
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_teamspiel_modus), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $statistik["teamspielmodi"] = $db->loadResult();
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_veranstalter), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $statistik["veranstalter"] = $db->loadResult();
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_rangliste_system), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $statistik["ranglistensysteme"] = $db->loadResult();
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_turnierdisziplin), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $statistik["turnierdisziplinen"] = $db->loadResult();
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $statistik["individualwettbewerbe"] = $db->loadResult();
-
- HTML_sportsmanager_admin::adminUebersicht($veranstaltungen, $spielerstatistiken, $turniere, $ranglisten, $individualwettbewerbe, $statistik, $saisons, $filter_saison_id, $unabhaengige_ansicht, isExternalDatabase());
-}
-
-function adminVerteiler() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("verteiler_aendern") && !benutzerZugriff("verteiler_lesen"))
- keinZugriff(true);
-
- $filter_saison_id = $jinput->get('filter_saison_id', 0, 'INT');
- if ($filter_saison_id == 0)
- $filter_saison_id = $jinput->cookie->get('sportsmanager_filter_saison_id', 0, 'INT');
-
- $query = "SELECT saison_id, saisonbezeichnung"
- . "\n FROM #__sportsmanager_saison"
- . "\n ORDER BY saisonbezeichnung DESC";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $saisons = $db->loadObjectList();
-
- if (count($saisons) != 0) {
- $gefunden = false;
- foreach ($saisons as $saison) {
- if ($saison->saison_id == $filter_saison_id) {
- $gefunden = true;
- break;
- }
- }
- if (!$gefunden)
- $filter_saison_id = $saisons[0]->saison_id;
- }
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_verteiler"
- . "\n ORDER BY bezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $verteiler = $db->loadObjectList();
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_veranstalter"
- . "\n ORDER BY veranstalterbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $organisationen = $db->loadObjectList();
-
- $organisationen_mailverteiler = array();
- foreach ($organisationen as $organisation) {
- $query = "SELECT vorname, nachname, email"
- . "\n FROM #__sportsmanager_vereinsansprechpartner"
- . "\n LEFT JOIN #__sportsmanager_verein USING (verein_id)"
- . "\n WHERE " . ($organisation->veranstalter_id != null ? "veranstalter_id = $organisation->veranstalter_id" : "ISNULL(veranstalter_id)")
- . " AND NOT ausgetreten AND email != ''"
- . "\n ORDER BY vorname, nachname, email";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $organisationen_mailverteiler[$organisation->veranstalter_id] = "";
- $organisationen_mailverteiler[$organisation->veranstalter_id . "p"] = "";
- foreach ($rows as $row) {
- $organisationen_mailverteiler[$organisation->veranstalter_id] .= (!empty($organisationen_mailverteiler[$organisation->veranstalter_id]) ? "; " : "") . $row->email;
- $organisationen_mailverteiler[$organisation->veranstalter_id . "p"] .= (!empty($organisationen_mailverteiler[$organisation->veranstalter_id . "p"]) ? "; " : "") . "\"" . $row->vorname . " " . $row->nachname . "\" <" . $row->email . ">";
- }
- }
-
- $query = "SELECT t1.*, veranstalterbezeichnung"
- . "\n FROM #__sportsmanager_veranstaltung AS t1"
- . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
- . ($filter_saison_id != 0 ? "\n WHERE saison_id = $filter_saison_id" : "")
- . "\n ORDER BY t1.reihenfolge, t1.letzter_tag DESC, bezeichnung, t1.kategorie";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstaltungen = $db->loadObjectList();
-
- $veranstaltungen_mailverteiler = array();
- foreach ($veranstaltungen as $veranstaltung) {
- $query = "SELECT vorname, nachname, email"
- . "\n FROM #__sportsmanager_teamansprechpartner, #__sportsmanager_team"
- . "\n WHERE veranstaltung_id = $veranstaltung->veranstaltung_id AND #__sportsmanager_teamansprechpartner.team_id = #__sportsmanager_team.team_id AND email != ''"
- . "\n ORDER BY vorname, nachname, email";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $veranstaltungen_mailverteiler[$veranstaltung->veranstaltung_id] = "";
- $veranstaltungen_mailverteiler[$veranstaltung->veranstaltung_id . "p"] = "";
- foreach ($rows as $row) {
- $veranstaltungen_mailverteiler[$veranstaltung->veranstaltung_id] .= (!empty($veranstaltungen_mailverteiler[$veranstaltung->veranstaltung_id]) ? "; " : "") . $row->email;
- $veranstaltungen_mailverteiler[$veranstaltung->veranstaltung_id . "p"] .= (!empty($veranstaltungen_mailverteiler[$veranstaltung->veranstaltung_id . "p"]) ? "; " : "") . "\"" . $row->vorname . " " . $row->nachname . "\" <" . $row->email . ">";
- }
- }
-
- HTML_sportsmanager_admin::adminVerteiler($verteiler, $organisationen, $organisationen_mailverteiler, $veranstaltungen, $veranstaltungen_mailverteiler, $saisons, $filter_saison_id, benutzerZugriff("verteiler_aendern"));
-}
-
-function adminEditVerteiler() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("verteiler_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- if ($id == null)
- $row = null;
- else {
- $query = "SELECT * FROM #__sportsmanager_verteiler WHERE verteiler_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $row = $rows[0];
- }
-
- HTML_sportsmanager_admin::adminEditVerteiler($row);
-}
-
-function adminSaveVerteiler() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("verteiler_aendern"))
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_verteiler');
-
- return;
- }
-
- $id = $jinput->get('id', 0, 'INT');
- $bezeichnung = $db->escape(trim($jinput->get('bezeichnung', '', 'RAW')));
- $verteiler = $db->escape(trim($jinput->get('verteiler', '', 'RAW')));
- if ($id == 0)
- $query = "INSERT INTO #__sportsmanager_verteiler (bezeichnung, verteiler) VALUES ('$bezeichnung', '$verteiler');";
- else {
- $query = "UPDATE #__sportsmanager_verteiler"
- . "\n SET bezeichnung = '$bezeichnung',"
- . "\n verteiler = '$verteiler'"
- . "\n WHERE verteiler_id = $id";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_verteiler');
-}
-
-function adminRemoveVerteiler() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("verteiler_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- $query = "DELETE FROM #__sportsmanager_verteiler WHERE verteiler_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_verteiler');
-}
-
-function adminRechnungen() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("rechnungen_aendern"))
- keinZugriff(true);
-
- $filter_saison_id = $jinput->get('filter_saison_id', 0, 'INT');
- if ($filter_saison_id == 0)
- $filter_saison_id = $jinput->cookie->get('sportsmanager_filter_saison_id', 0, 'INT');
-
- $query = "SELECT saison_id, saisonbezeichnung"
- . "\n FROM #__sportsmanager_saison"
- . "\n ORDER BY saisonbezeichnung DESC";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $saisons = $db->loadObjectList();
-
- if (count($saisons) == 0)
- die("Wrong id!");
-
- $gefunden = false;
- foreach ($saisons as $saison) {
- if ($saison->saison_id == $filter_saison_id) {
- $filter_saison = $saison;
- $gefunden = true;
- break;
- }
- }
- if (!$gefunden) {
- $filter_saison_id = $saisons[0]->saison_id;
- $saison = $saisons[0];
- }
-
- $query = "SELECT #__sportsmanager_rechnung.*, IF(ISNULL(#__sportsmanager_verein.verein_id), #__sportsmanager_veranstalter.veranstalterbezeichnung, #__sportsmanager_verein.vereinsname) AS zuordnungbezeichnung,"
- . " (SELECT COUNT(*) FROM #__sportsmanager_rechnung_spieler WHERE #__sportsmanager_rechnung_spieler.rechnung_id = #__sportsmanager_rechnung.rechnung_id) AS mitglieder"
- . "\n FROM #__sportsmanager_rechnung"
- . "\n LEFT JOIN #__sportsmanager_verein USING (verein_id)"
- . "\n LEFT JOIN #__sportsmanager_veranstalter ON #__sportsmanager_rechnung.veranstalter_id = #__sportsmanager_veranstalter.veranstalter_id"
- . "\n WHERE saison_id = $filter_saison_id"
- . "\n ORDER BY bezeichnung, zuordnungbezeichnung, notiz";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rechnungen = $db->loadObjectList();
-
- $query = "SELECT DISTINCT IF(ISNULL(#__sportsmanager_verein.verein_id), #__sportsmanager_veranstalter.veranstalter_id, #__sportsmanager_verein.verein_id) AS zuordnung_id, IF(ISNULL(#__sportsmanager_verein.verein_id), #__sportsmanager_veranstalter.veranstalterbezeichnung, #__sportsmanager_verein.vereinsname) AS zuordnungbezeichnung,"
- . " IF(ISNULL(#__sportsmanager_verein.verein_id), IF(ISNULL(#__sportsmanager_veranstalter.veranstalter_id), 0,"
- . "\n (SELECT COUNT(DISTINCT spieler_id)"
- . "\n FROM #__sportsmanager_veranstalter AS va1"
- . "\n LEFT JOIN #__sportsmanager_verein AS ve1 USING (veranstalter_id)"
- . "\n LEFT JOIN #__sportsmanager_mitglied_von_verein AS mve1 USING (verein_id)"
- . "\n WHERE va1.veranstalter_id = #__sportsmanager_veranstalter.veranstalter_id AND NOT ve1.ausgetreten AND NOT mve1.ausgetreten AND mve1.spieler_id NOT IN (SELECT DISTINCT spieler_id FROM #__sportsmanager_rechnung AS re1 INNER JOIN #__sportsmanager_rechnung_spieler AS res1 ON re1.rechnung_id = res1.rechnung_id WHERE saison_id = $filter_saison_id))"
- . "),"
- . "\n (SELECT COUNT(DISTINCT spieler_id)"
- . "\n FROM #__sportsmanager_verein AS ve1"
- . "\n LEFT JOIN #__sportsmanager_mitglied_von_verein AS mve1 USING (verein_id)"
- . "\n WHERE ve1.verein_id = #__sportsmanager_verein.verein_id AND NOT ve1.ausgetreten AND NOT mve1.ausgetreten AND mve1.spieler_id NOT IN (SELECT DISTINCT spieler_id FROM #__sportsmanager_rechnung AS re1 INNER JOIN #__sportsmanager_rechnung_spieler AS res1 ON re1.rechnung_id = res1.rechnung_id WHERE saison_id = $filter_saison_id))"
- . ") AS neuzugaenge"
-// . " (SELECT COUNT(*) FROM #__sportsmanager_rechnung_spieler WHERE #__sportsmanager_rechnung_spieler.rechnung_id = #__sportsmanager_rechnung.rechnung_id) AS mitglieder"
- . "\n FROM #__sportsmanager_rechnung"
- . "\n LEFT JOIN #__sportsmanager_verein USING (verein_id)"
- . "\n LEFT JOIN #__sportsmanager_veranstalter ON #__sportsmanager_rechnung.veranstalter_id = #__sportsmanager_veranstalter.veranstalter_id"
- . "\n WHERE saison_id = $filter_saison_id"
- . "\n HAVING neuzugaenge > 0"
- . "\n ORDER BY zuordnungbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $neuzugaenge = $db->loadObjectList();
-
- $query = "SELECT DISTINCT IF(ISNULL(#__sportsmanager_verein.verein_id), #__sportsmanager_veranstalter.veranstalter_id, #__sportsmanager_verein.verein_id) AS zuordnung_id, IF(ISNULL(#__sportsmanager_verein.verein_id), #__sportsmanager_veranstalter.veranstalterbezeichnung, #__sportsmanager_verein.vereinsname) AS zuordnungbezeichnung,"
- . " IF(ISNULL(#__sportsmanager_verein.verein_id), IF(ISNULL(#__sportsmanager_veranstalter.veranstalter_id), 0,"
- . "\n (SELECT COUNT(DISTINCT spieler_id)"
- . "\n FROM #__sportsmanager_veranstalter AS va1"
- . "\n INNER JOIN #__sportsmanager_verein AS ve1 USING (veranstalter_id)"
- . "\n INNER JOIN #__sportsmanager_mitglied_von_verein AS mve1 USING (verein_id)"
- . "\n INNER JOIN #__sportsmanager_rechnung_spieler USING (spieler_id)"
- . "\n INNER JOIN #__sportsmanager_rechnung USING (rechnung_id)"
- . "\n WHERE #__sportsmanager_rechnung.saison_id = $filter_saison_id AND #__sportsmanager_rechnung.veranstalter_id = #__sportsmanager_veranstalter.veranstalter_id)"
- . "),"
- . "\n (SELECT COUNT(DISTINCT spieler_id)"
- . "\n FROM #__sportsmanager_verein AS ve1"
- . "\n INNER JOIN #__sportsmanager_mitglied_von_verein AS mve1 USING (verein_id)"
- . "\n INNER JOIN #__sportsmanager_rechnung_spieler USING (spieler_id)"
- . "\n INNER JOIN #__sportsmanager_rechnung USING (rechnung_id)"
- . "\n WHERE #__sportsmanager_rechnung.saison_id = $filter_saison_id AND #__sportsmanager_rechnung.verein_id = #__sportsmanager_verein.verein_id)"
- . ") AS mitglieder"
-// . " (SELECT COUNT(*) FROM #__sportsmanager_rechnung_spieler WHERE #__sportsmanager_rechnung_spieler.rechnung_id = #__sportsmanager_rechnung.rechnung_id) AS mitglieder"
- . "\n FROM #__sportsmanager_rechnung"
- . "\n LEFT JOIN #__sportsmanager_verein USING (verein_id)"
- . "\n LEFT JOIN #__sportsmanager_veranstalter ON #__sportsmanager_rechnung.veranstalter_id = #__sportsmanager_veranstalter.veranstalter_id"
- . "\n WHERE saison_id = $filter_saison_id"
- . "\n ORDER BY zuordnungbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $aufsummierung = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminRechnungen($rechnungen, $neuzugaenge, $aufsummierung, $saisons, $filter_saison_id, $saison);
-}
-
-function adminEditRechnung() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("rechnungen_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- if ($id == null)
- $row = null;
- else {
- $query = "SELECT #__sportsmanager_rechnung.*, IF(ISNULL(#__sportsmanager_verein.verein_id), #__sportsmanager_veranstalter.veranstalterbezeichnung, #__sportsmanager_verein.vereinsname) AS zuordnungbezeichnung"
- . "\n FROM #__sportsmanager_rechnung"
- . "\n LEFT JOIN #__sportsmanager_verein USING (verein_id)"
- . "\n LEFT JOIN #__sportsmanager_veranstalter ON #__sportsmanager_rechnung.veranstalter_id = #__sportsmanager_veranstalter.veranstalter_id"
- . "\n WHERE rechnung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $row = $rows[0];
- }
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_veranstalter"
- . "\n ORDER BY veranstalterbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstalter = $db->loadObjectList();
-
- $query = "SELECT #__sportsmanager_verein.verein_id, #__sportsmanager_verein.veranstalter_id, vereinsname, veranstalterbezeichnung"
- . "\n FROM #__sportsmanager_verein"
- . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
- . "\n WHERE NOT ausgetreten"
- . "\n ORDER BY veranstalterbezeichnung, vereinsname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $vereine = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminEditRechnung($row, $veranstalter, $vereine);
-}
-
-function adminSaveRechnung() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("rechnungen_aendern"))
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_rechnungen');
-
- return;
- }
-
- $filter_saison_id = $jinput->get('filter_saison_id', 0, 'INT');
- if ($filter_saison_id == 0)
- $filter_saison_id = $jinput->cookie->get('sportsmanager_filter_saison_id', 0, 'INT');
-
- $query = "SELECT saison_id, saisonbezeichnung"
- . "\n FROM #__sportsmanager_saison"
- . "\n ORDER BY saisonbezeichnung DESC";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $saisons = $db->loadObjectList();
-
- if (count($saisons) != 0) {
- $gefunden = false;
- foreach ($saisons as $saison) {
- if ($saison->saison_id == $filter_saison_id) {
- $gefunden = true;
- break;
- }
- }
- if (!$gefunden)
- $filter_saison_id = $saisons[0]->saison_id;
- }
-
- if ($filter_saison_id == 0)
- die ("Wrong id");
-
- $id = $jinput->get('id', 0, 'INT');
- $bezeichnung = $db->escape(trim($jinput->get('bezeichnung', '', 'RAW')));
- $notiz = $db->escape(trim($jinput->get('notiz', '', 'RAW')));
- $veranstalterid = $db->escape($jinput->get('veranstalterid', 0, 'RAW'));
- $mitgliedsstatus = $jinput->get('mitgliedsstatus', 0, 'INT');
- $wertungskategorie = $jinput->get('wertungskategorie', 0, 'INT');
- if ($id == 0) {
- $filter_mitgliedsstatus = "";
- for ($i = 1; $i <= 3; $i++) {
- if (pow(2, $i) & $mitgliedsstatus) {
- if (!empty($filter_mitgliedsstatus))
- $filter_mitgliedsstatus .= " OR ";
- $filter_mitgliedsstatus .= "mitgliedsstatus = " . $i;
- }
- }
- if (!empty($filter_mitgliedsstatus))
- $filter_mitgliedsstatus = " AND (" . $filter_mitgliedsstatus . ")";
- $filter_kategorie = "";
- if ($wertungskategorie != 15) {
- $kategorien = array();
- foreach (array(1 => "H", 2 => "D", 4 => "J", 8 => "S") as $b => $wert) {
- if ($b & $wertungskategorie)
- array_push($kategorien, "\"" . $wert . "\"");
- }
- $jahr = date("Y");
- if (!empty($kategorien))
- $filter_kategorie = " AND IF(ISNULL(geburtsjahr), IF(geschlecht = 'M', 'H', 'D'), IF(" . ($jahr - 18) . " <= geburtsjahr, 'J', IF(" . ($jahr - 50) . " > geburtsjahr, 'S', IF(geschlecht = 'M', 'H', 'D')))) IN (" . implode(", ", $kategorien) . ")";
- else
- $filter_kategorie = " AND FALSE";
- }
- if (strlen($veranstalterid) > 1 && $veranstalterid[0] == "v") {
- $verein_id = substr($veranstalterid, 1);
- $query = "INSERT INTO #__sportsmanager_rechnung (saison_id, bezeichnung, notiz, verein_id, mitgliedsstatus, wertungskategorie) VALUES ('$filter_saison_id', '$bezeichnung', '$notiz', '$verein_id', '$mitgliedsstatus', '$wertungskategorie');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
-
- $query = "INSERT INTO #__sportsmanager_rechnung_spieler (spieler_id, rechnung_id)"
- . "\n SELECT DISTINCT #__sportsmanager_mitglied_von_verein.spieler_id, '$id'"
- . "\n FROM #__sportsmanager_mitglied_von_verein"
- . "\n LEFT JOIN #__sportsmanager_spieler USING (spieler_id)"
- . "\n WHERE #__sportsmanager_mitglied_von_verein.verein_id = $verein_id" . $filter_mitgliedsstatus . $filter_kategorie . " AND spieler_id NOT IN (SELECT DISTINCT #__sportsmanager_rechnung_spieler.spieler_id FROM #__sportsmanager_rechnung INNER JOIN #__sportsmanager_rechnung_spieler ON #__sportsmanager_rechnung.rechnung_id = #__sportsmanager_rechnung_spieler.rechnung_id WHERE saison_id = $filter_saison_id)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else if (strlen($veranstalterid) > 1 && $veranstalterid[0] == "a") {
- $veranstalter_id = substr($veranstalterid, 1);
- $query = "SELECT verein_id, (SELECT COUNT(*) FROM #__sportsmanager_mitglied_von_verein WHERE #__sportsmanager_mitglied_von_verein.verein_id = #__sportsmanager_verein.verein_id AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten) AS mitglieder"
- . "\n FROM #__sportsmanager_verein"
- . "\n WHERE veranstalter_id = $veranstalter_id AND not ausgetreten"
- . "\n ORDER BY mitglieder, vereinsname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstalter = $db->loadObjectList();
-
- foreach ($veranstalter as $row) {
- $verein_id = $row->verein_id;
- $query = "INSERT INTO #__sportsmanager_rechnung (saison_id, bezeichnung, notiz, verein_id, mitgliedsstatus) VALUES ('$filter_saison_id', '$bezeichnung', '$notiz', '$verein_id', '$mitgliedsstatus');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
-
- $query = "INSERT INTO #__sportsmanager_rechnung_spieler (spieler_id, rechnung_id)"
- . "\n SELECT DISTINCT #__sportsmanager_mitglied_von_verein.spieler_id, '$id'"
- . "\n FROM #__sportsmanager_mitglied_von_verein"
- . "\n LEFT JOIN #__sportsmanager_spieler USING (spieler_id)"
- . "\n WHERE #__sportsmanager_mitglied_von_verein.verein_id = $verein_id" . $filter_mitgliedsstatus . $filter_kategorie . " AND spieler_id NOT IN (SELECT DISTINCT #__sportsmanager_rechnung_spieler.spieler_id FROM #__sportsmanager_rechnung INNER JOIN #__sportsmanager_rechnung_spieler ON #__sportsmanager_rechnung.rechnung_id = #__sportsmanager_rechnung_spieler.rechnung_id WHERE saison_id = $filter_saison_id)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- else if ($veranstalterid == "0") {
- $query = "SELECT veranstalter_id, (SELECT COUNT(*) FROM #__sportsmanager_verein LEFT JOIN #__sportsmanager_mitglied_von_verein USING (verein_id) WHERE #__sportsmanager_verein.veranstalter_id = #__sportsmanager_veranstalter.veranstalter_id AND NOT #__sportsmanager_verein.ausgetreten AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten) AS mitglieder"
- . "\n FROM #__sportsmanager_veranstalter"
- . "\n ORDER BY mitglieder, veranstalterbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstalter = $db->loadObjectList();
-
- foreach ($veranstalter as $row) {
- $veranstalterid = $row->veranstalter_id;
- $query = "INSERT INTO #__sportsmanager_rechnung (saison_id, bezeichnung, notiz, veranstalter_id, mitgliedsstatus) VALUES ('$filter_saison_id', '$bezeichnung', '$notiz', '$veranstalterid', '$mitgliedsstatus');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
-
- $query = "INSERT INTO #__sportsmanager_rechnung_spieler (spieler_id, rechnung_id)"
- . "\n SELECT DISTINCT #__sportsmanager_mitglied_von_verein.spieler_id, '$id'"
- . "\n FROM #__sportsmanager_veranstalter"
- . "\n LEFT JOIN #__sportsmanager_verein USING (veranstalter_id)"
- . "\n LEFT JOIN #__sportsmanager_mitglied_von_verein USING (verein_id)"
- . "\n LEFT JOIN #__sportsmanager_spieler USING (spieler_id)"
- . "\n WHERE #__sportsmanager_veranstalter.veranstalter_id = $veranstalterid AND NOT #__sportsmanager_verein.ausgetreten" . $filter_mitgliedsstatus . $filter_kategorie . " AND spieler_id NOT IN (SELECT DISTINCT #__sportsmanager_rechnung_spieler.spieler_id FROM #__sportsmanager_rechnung INNER JOIN #__sportsmanager_rechnung_spieler ON #__sportsmanager_rechnung.rechnung_id = #__sportsmanager_rechnung_spieler.rechnung_id WHERE saison_id = $filter_saison_id)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- else {
- $query = "INSERT INTO #__sportsmanager_rechnung (saison_id, bezeichnung, notiz, veranstalter_id, mitgliedsstatus) VALUES ('$filter_saison_id', '$bezeichnung', '$notiz', '$veranstalterid', '$mitgliedsstatus');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
- $query = "INSERT INTO #__sportsmanager_rechnung_spieler (spieler_id, rechnung_id)"
- . "\n SELECT DISTINCT #__sportsmanager_mitglied_von_verein.spieler_id, '$id'"
- . "\n FROM #__sportsmanager_veranstalter"
- . "\n LEFT JOIN #__sportsmanager_verein USING (veranstalter_id)"
- . "\n LEFT JOIN #__sportsmanager_mitglied_von_verein USING (verein_id)"
- . "\n LEFT JOIN #__sportsmanager_spieler USING (spieler_id)"
- . "\n WHERE #__sportsmanager_veranstalter.veranstalter_id = $veranstalterid AND NOT #__sportsmanager_verein.ausgetreten" . $filter_mitgliedsstatus . $filter_kategorie . " AND spieler_id NOT IN (SELECT DISTINCT #__sportsmanager_rechnung_spieler.spieler_id FROM #__sportsmanager_rechnung INNER JOIN #__sportsmanager_rechnung_spieler ON #__sportsmanager_rechnung.rechnung_id = #__sportsmanager_rechnung_spieler.rechnung_id WHERE saison_id = $filter_saison_id)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- else {
- $query = "UPDATE #__sportsmanager_rechnung"
- . "\n SET bezeichnung = '$bezeichnung',"
- . "\n notiz = '$notiz'"
- . "\n WHERE rechnung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- redirectSportsManagerURL('&task=admin_rechnungen');
-}
-
-function adminRemoveRechnung() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("rechnungen_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_rechnung WRITE, #__sportsmanager_rechnung_spieler WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_rechnung_spieler WHERE rechnung_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_rechnung WHERE rechnung_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_rechnungen');
-}
-
-function adminEinstellungen() {
- $db =& getDatabase();
-
- if (!benutzerZugriff("basiseinstellungen_aendern"))
- keinZugriff(true);
-
- $query = "SELECT * FROM #__sportsmanager_einstellungen";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $einstellungen = array();
- foreach ($rows as $row)
- $einstellungen[$row->name] = $row->wert;
-
- HTML_sportsmanager_admin::adminEinstellungen($einstellungen);
-}
-
-function adminSaveEinstellungen() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("basiseinstellungen_aendern"))
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_uebersicht');
-
- return;
- }
-
- $basis_spielernr = $db->escape(trim($jinput->get('basis_spielernr', '', 'RAW')));
- $ansprechpartner_ausblenden = $jinput->get('ansprechpartner_ausblenden', 0, 'INT');
- $ansprechpartner_spielerdaten = $jinput->get('ansprechpartner_spielerdaten', 0, 'INT');
- $ansprechpartner_importieren = $jinput->get('ansprechpartner_importieren', 0, 'INT');
- $ansprechpartner_exportieren = $jinput->get('ansprechpartner_exportieren', 0, 'INT');
- $spielerliste_elo = $jinput->get('spielerliste_elo', 0, 'INT');
- $termine_beantragen = $jinput->get('termine_beantragen', 0, 'INT');
- $spielerimport_persoenliche_daten_vorauswahl = $jinput->get('spielerimport_persoenliche_daten_vorauswahl', 0, 'INT');
-
- $api_push_key = $jinput->get('api_push_key', '', 'RAW');
-
- /*
- $twitter_benutzername = $db->escape(trim( $jinput->get('twitter_benutzername', '', 'RAW') ));
- $twitter_kennwort = !empty($twitter_benutzername) ? $db->escape(trim( $jinput->get('twitter_kennwort', '', 'RAW') )) : "";
- */
-
- $query = "REPLACE #__sportsmanager_einstellungen"
- . "\n SET name = 'basis_spielernr'"
- . ", wert = '$basis_spielernr'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "REPLACE #__sportsmanager_einstellungen"
- . "\n SET name = 'termine_beantragen'"
- . ", wert = '$termine_beantragen'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "REPLACE #__sportsmanager_einstellungen"
- . "\n SET name = 'spielerliste_elo'"
- . ", wert = '$spielerliste_elo'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "REPLACE #__sportsmanager_einstellungen"
- . "\n SET name = 'ansprechpartner_ausblenden'"
- . ", wert = '$ansprechpartner_ausblenden'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "REPLACE #__sportsmanager_einstellungen"
- . "\n SET name = 'ansprechpartner_spielerdaten'"
- . ", wert = '$ansprechpartner_spielerdaten'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "REPLACE #__sportsmanager_einstellungen"
- . "\n SET name = 'ansprechpartner_importieren'"
- . ", wert = '$ansprechpartner_importieren'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "REPLACE #__sportsmanager_einstellungen"
- . "\n SET name = 'ansprechpartner_exportieren'"
- . ", wert = '$ansprechpartner_exportieren'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "REPLACE #__sportsmanager_einstellungen"
- . "\n SET name = 'spielerimport_persoenliche_daten_vorauswahl'"
- . ", wert = '$spielerimport_persoenliche_daten_vorauswahl'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "REPLACE #__sportsmanager_einstellungen SET name = 'api_push_key', wert = '$api_push_key'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- /*
- $query = "REPLACE #__sportsmanager_einstellungen"
- . "\n SET name = 'twitter_benutzername'"
- . ", wert = '$twitter_benutzername'";
- $db->setQuery($query);
- if (!$result = $db->execute()) { die($db->stderr(true)); }
-
- if (empty($twitter_benutzername) || !empty($twitter_kennwort)) {
- $query = "REPLACE #__sportsmanager_einstellungen"
- . "\n SET name = 'twitter_kennwort'"
- . ", wert = '$twitter_kennwort'";
- $db->setQuery($query);
- if (!$result = $db->execute()) { die($db->stderr(true)); }
- }
- */
-
- redirectSportsManagerURL('&task=admin_uebersicht');
-}
-
-function adminDatenbank() {
- $db =& getDatabase(true);
-
- if (!benutzerZugriff("basiseinstellungen_aendern"))
- keinZugriff(true);
-
- $query = "SELECT * FROM #__sportsmanager_einstellungen";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $einstellungen = array();
- foreach ($rows as $row)
- $einstellungen[$row->name] = $row->wert;
-
- HTML_sportsmanager_admin::adminDatenbank($einstellungen);
-}
-
-function adminSaveDatenbank() {
- $db =& getDatabase(true);
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("basiseinstellungen_aendern"))
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_uebersicht');
-
- return;
- }
-
- $database_driver = $db->escape(trim($jinput->get('database_driver', '', 'RAW')));
- $database_host = $db->escape(trim($jinput->get('database_host', '', 'RAW')));
- $database_user = $db->escape(trim($jinput->get('database_user', '', 'RAW')));
- $database_password = $db->escape(trim($jinput->get('database_password', '', 'RAW')));
- $database_database = $db->escape(trim($jinput->get('database_database', '', 'RAW')));
- $database_prefix = $db->escape(trim($jinput->get('database_prefix', '', 'RAW')));
- $joomla_path = $db->escape(trim($jinput->get('joomla_path', '', 'RAW')));
- $joomla_path = $joomla_path == "/" && $joomla_path != "\\" ? $joomla_path : rtrim(rtrim($joomla_path, "\\"), "/");
- $joomla_url = $db->escape(trim($jinput->get('joomla_url', '', 'RAW')));
- if (strlen($joomla_url) > 0 && substr($joomla_url, strlen($joomla_url) - 1, 1) != "/")
- $joomla_url .= "/";
-
- $query = "REPLACE #__sportsmanager_einstellungen"
- . "\n SET name = 'database_driver'"
- . ", wert = '$database_driver'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "REPLACE #__sportsmanager_einstellungen"
- . "\n SET name = 'database_host'"
- . ", wert = '$database_host'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "REPLACE #__sportsmanager_einstellungen"
- . "\n SET name = 'database_user'"
- . ", wert = '$database_user'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "REPLACE #__sportsmanager_einstellungen"
- . "\n SET name = 'database_password'"
- . ", wert = '$database_password'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "REPLACE #__sportsmanager_einstellungen"
- . "\n SET name = 'database_database'"
- . ", wert = '$database_database'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "REPLACE #__sportsmanager_einstellungen"
- . "\n SET name = 'database_prefix'"
- . ", wert = '$database_prefix'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "REPLACE #__sportsmanager_einstellungen"
- . "\n SET name = 'joomla_path'"
- . ", wert = '$joomla_path'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "REPLACE #__sportsmanager_einstellungen"
- . "\n SET name = 'joomla_url'"
- . ", wert = '$joomla_url'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_uebersicht');
-}
-
-function adminSpieler($admin_uebersicht) {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- $ansprechpartner_importieren = einstellungswert("ansprechpartner_importieren");
- $ansprechpartner_exportieren = einstellungswert("ansprechpartner_exportieren");
- $ansprechpartner_spielerdaten = einstellungswert("ansprechpartner_spielerdaten");
- $ansprechpartner_spielerdaten_bearbeiten = $ansprechpartner_spielerdaten == "1" || $ansprechpartner_spielerdaten == "2" || $ansprechpartner_spielerdaten == "3";
- $ansprechpartner_bilder_bearbeiten = $ansprechpartner_spielerdaten == "1" || $ansprechpartner_spielerdaten == "3";
-
- if (benutzerZugriff("spieler_aendern"))
- $beschraenkter_zugriff = 0;
- else if (benutzerVeranstalterModerator())
- $beschraenkter_zugriff = 1;
- else if (benutzerVereinModerator())
- $beschraenkter_zugriff = 2;
- else
- keinZugriff(true);
-
- $filter = $jinput->get('filter', '', 'RAW');
- if (empty($filter))
- $filter = $jinput->get('spezialfilter', '', 'RAW');
-
- $anzahlSpieler = array();
- $query = "SELECT COUNT(DISTINCT spieler_id)"
- . "\n FROM #__sportsmanager_spieler";
- if ($beschraenkter_zugriff == 0)
- $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 1 GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- if ($beschraenkter_zugriff == 1)
- $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 1 AND" . veranstalterFilter("#__sportsmanager_verein.veranstalter_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- else if ($beschraenkter_zugriff == 2)
- $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 1 AND" . vereinFilter("#__sportsmanager_verein.verein_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $anzahlSpieler["aktiv"] = $db->loadResult();
- $jahr = date("Y");
- $db->setQuery($query . "\n WHERE " . ($jahr - 18) . " <= geburtsjahr");
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $anzahlSpieler["J aktiv"] = $db->loadResult();
- $db->setQuery($query . "\n WHERE " . ($jahr - 50) . " > geburtsjahr");
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $anzahlSpieler["S aktiv"] = $db->loadResult();
- $db->setQuery($query . "\n WHERE geschlecht = 'M' AND (ISNULL(geburtsjahr) OR (" . ($jahr - 18) . " > geburtsjahr AND " . ($jahr - 50) . " <= geburtsjahr))");
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $anzahlSpieler["H aktiv"] = $db->loadResult();
- $db->setQuery($query . "\n WHERE geschlecht <> 'M' AND (ISNULL(geburtsjahr) OR (" . ($jahr - 18) . " > geburtsjahr AND " . ($jahr - 50) . " <= geburtsjahr))");
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $anzahlSpieler["D aktiv"] = $db->loadResult();
-
- $query = "SELECT COUNT(DISTINCT spieler_id)"
- . "\n FROM #__sportsmanager_spieler";
- if ($beschraenkter_zugriff == 0)
- $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 2 GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- if ($beschraenkter_zugriff == 1)
- $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 2 AND" . veranstalterFilter("#__sportsmanager_verein.veranstalter_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- else if ($beschraenkter_zugriff == 2)
- $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 2 AND" . vereinFilter("#__sportsmanager_verein.verein_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $anzahlSpieler["eingeschraenkt"] = $db->loadResult();
-
- $query = "SELECT COUNT(DISTINCT spieler_id)"
- . "\n FROM #__sportsmanager_spieler";
- if ($beschraenkter_zugriff == 0)
- $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 3 GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- if ($beschraenkter_zugriff == 1)
- $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 3 AND" . veranstalterFilter("#__sportsmanager_verein.veranstalter_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- else if ($beschraenkter_zugriff == 2)
- $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 3 AND" . vereinFilter("#__sportsmanager_verein.verein_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $anzahlSpieler["passiv"] = $db->loadResult();
-
- $search = stripslashes($filter);
- if ($beschraenkter_zugriff == 0 && $search == "_____DOPPELT") {
- $jahr = date("Y");
- $query = "SELECT #__sportsmanager_spieler.spieler_id, vorname, nachname, geschlecht, pseudonym, aktueller_verein_id, spielernr, lizenznr, geburtsjahr,"
- . "\n IF(ISNULL(geburtsjahr), IF(geschlecht = 'M', 'H', 'D'), IF(" . ($jahr - 18) . " <= geburtsjahr, 'J', IF(" . ($jahr - 50) . " > geburtsjahr, 'S', IF(geschlecht = 'M', 'H', 'D')))) AS kategorie,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_teamspiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teamspiele,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_turniermeldung_spieler WHERE #__sportsmanager_turniermeldung_spieler.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS turniermeldungen,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_mitglied_von_team WHERE #__sportsmanager_mitglied_von_team.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teammitgliedschaften,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_spiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbspiele,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE #__sportsmanager_individualwettbewerb_ausgangsplatzierung.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbausgangsplatzierungen,"
- . "\n vereinsname"
- . "\n FROM (SELECT COUNT(*) AS identische_namen, nachname, vorname"
- . "\n FROM #__sportsmanager_spieler"
- . "\n GROUP BY nachname, vorname"
- . "\n HAVING identische_namen > 1) AS identische_namen"
- . "\n INNER JOIN #__sportsmanager_spieler USING (nachname, vorname)"
- . "\n LEFT JOIN #__sportsmanager_verein ON aktueller_verein_id = verein_id"
- . "\n ORDER BY nachname, vorname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- }
- else if ($beschraenkter_zugriff == 0 && $search == "_____DOPPELT_JAHR") {
- $jahr = date("Y");
- $query = "SELECT #__sportsmanager_spieler.spieler_id, vorname, nachname, geschlecht, pseudonym, aktueller_verein_id, spielernr, lizenznr, geburtsjahr,"
- . "\n IF(ISNULL(geburtsjahr), IF(geschlecht = 'M', 'H', 'D'), IF(" . ($jahr - 18) . " <= geburtsjahr, 'J', IF(" . ($jahr - 50) . " > geburtsjahr, 'S', IF(geschlecht = 'M', 'H', 'D')))) AS kategorie,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_teamspiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teamspiele,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_turniermeldung_spieler WHERE #__sportsmanager_turniermeldung_spieler.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS turniermeldungen,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_mitglied_von_team WHERE #__sportsmanager_mitglied_von_team.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teammitgliedschaften,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_spiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbspiele,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE #__sportsmanager_individualwettbewerb_ausgangsplatzierung.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbausgangsplatzierungen,"
- . "\n vereinsname"
- . "\n FROM (SELECT COUNT(*) AS identische_namen, nachname, vorname, geburtsjahr"
- . "\n FROM #__sportsmanager_spieler"
- . "\n GROUP BY nachname, vorname, geburtsjahr"
- . "\n HAVING identische_namen > 1) AS identische_namen"
- . "\n INNER JOIN #__sportsmanager_spieler USING (nachname, vorname, geburtsjahr)"
- . "\n LEFT JOIN #__sportsmanager_verein ON aktueller_verein_id = verein_id"
- . "\n ORDER BY nachname, vorname, geburtsjahr";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- }
- else if ($beschraenkter_zugriff == 0 && $search == "_____KEINE_SPIELERNR") {
- $jahr = date("Y");
- $query = "SELECT #__sportsmanager_spieler.spieler_id, vorname, nachname, geschlecht, pseudonym, aktueller_verein_id, spielernr, lizenznr, geburtsjahr,"
- . "\n IF (ISNULL(geburtsjahr), IF(geschlecht = 'M', 'H', 'D'), IF(" . ($jahr - 18) . " <= geburtsjahr, 'J', IF(" . ($jahr - 50) . " > geburtsjahr, 'S', IF(geschlecht = 'M', 'H', 'D')))) AS kategorie,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_teamspiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teamspiele,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_turniermeldung_spieler WHERE #__sportsmanager_turniermeldung_spieler.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS turniermeldungen,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_mitglied_von_team WHERE #__sportsmanager_mitglied_von_team.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teammitgliedschaften,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_spiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbspiele,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE #__sportsmanager_individualwettbewerb_ausgangsplatzierung.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbausgangsplatzierungen,"
- . "\n vereinsname"
- . "\n FROM #__sportsmanager_spieler"
- . "\n LEFT JOIN #__sportsmanager_verein ON aktueller_verein_id = verein_id"
- . "\n WHERE #__sportsmanager_spieler.spielernr = ''"
- . "\n ORDER BY nachname, vorname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- }
- else if (isset($search) && $search != "" && ($beschraenkter_zugriff == 0 || $ansprechpartner_spielerdaten_bearbeiten)) {
- $searchEscapedWildcards = strpos($search, "*") !== false ? ($db->escape(trim(mb_strtolower(str_replace("*", "%", $search), 'UTF-8')))) : ("%" . $db->escape(trim(mb_strtolower($search, 'UTF-8'))) . "%");
- $searchEscaped = $db->escape(trim($search));
-
- $jahr = date("Y");
- $query = "SELECT #__sportsmanager_spieler.spieler_id, vorname, nachname, geschlecht, pseudonym, aktueller_verein_id, spielernr, lizenznr, geburtsjahr,"
- . "\n IF(ISNULL(geburtsjahr), IF(geschlecht = 'M', 'H', 'D'), IF(" . ($jahr - 18) . " <= geburtsjahr, 'J', IF(" . ($jahr - 50) . " > geburtsjahr, 'S', IF(geschlecht = 'M', 'H', 'D')))) AS kategorie,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_teamspiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teamspiele,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_turniermeldung_spieler WHERE #__sportsmanager_turniermeldung_spieler.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS turniermeldungen,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_mitglied_von_team WHERE #__sportsmanager_mitglied_von_team.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teammitgliedschaften,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_spiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbspiele,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE #__sportsmanager_individualwettbewerb_ausgangsplatzierung.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbausgangsplatzierungen,"
- . "\n vereinsname"
- . "\n FROM #__sportsmanager_spieler";
- if ($beschraenkter_zugriff == 1)
- $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND" . veranstalterFilter("#__sportsmanager_verein.veranstalter_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- else if ($beschraenkter_zugriff == 2)
- $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND" . vereinFilter("#__sportsmanager_verein.verein_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- else
- $query .= "\n LEFT JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- $query .= "\n LEFT JOIN #__sportsmanager_verein ON aktueller_verein_id = verein_id";
- $query .= "\n WHERE (CONCAT_WS(', ', nachname, vorname) LIKE '$searchEscapedWildcards' OR CONCAT_WS(' ', vorname, nachname) LIKE '$searchEscapedWildcards' OR spielernr = '$searchEscaped' OR lizenznr = '$searchEscaped')";
- $query .= "\n ORDER BY nachname, vorname LIMIT 101";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- if (count($rows) > 100) {
- redirectSportsManagerURL('&task=admin_spieler', "Mehr als 100 Spieler gefunden, bitte genaueren Filter verwenden.");
-
- return;
- }
- }
- else if ($anzahlSpieler["aktiv"] <= 100 && ($beschraenkter_zugriff == 0 || $ansprechpartner_spielerdaten_bearbeiten)) {
- $jahr = date("Y");
- $query = "SELECT #__sportsmanager_spieler.spieler_id, vorname, nachname, geschlecht, pseudonym, aktueller_verein_id, spielernr, lizenznr, geburtsjahr,"
- . "\n IF(ISNULL(geburtsjahr), IF(geschlecht = 'M', 'H', 'D'), IF(" . ($jahr - 18) . " <= geburtsjahr, 'J', IF(" . ($jahr - 50) . " > geburtsjahr, 'S', IF(geschlecht = 'M', 'H', 'D')))) AS kategorie,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_teamspiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teamspiele,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_turniermeldung_spieler WHERE #__sportsmanager_turniermeldung_spieler.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS turniermeldungen,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_mitglied_von_team WHERE #__sportsmanager_mitglied_von_team.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teammitgliedschaften,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_spiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbspiele,"
- . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE #__sportsmanager_individualwettbewerb_ausgangsplatzierung.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbausgangsplatzierungen,"
- . "\n vereinsname"
- . "\n FROM #__sportsmanager_spieler";
- if ($beschraenkter_zugriff == 1)
- $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND" . veranstalterFilter("#__sportsmanager_verein.veranstalter_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- else if ($beschraenkter_zugriff == 2)
- $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND" . vereinFilter("#__sportsmanager_verein.verein_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- else
- $query .= "\n LEFT JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- $query .= "\n LEFT JOIN #__sportsmanager_verein ON aktueller_verein_id = verein_id";
- $query .= "\n ORDER BY nachname, vorname LIMIT 101";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- if (count($rows) > 100)
- $rows = null;
- }
- else
- $rows = null;
-
- $statistik = array();
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_spieler WHERE NOT ISNULL(spielernr) AND spielernr <> ''), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $statistik["spielernr_national"] = $db->loadResult();
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_spieler WHERE NOT ISNULL(lizenznr) AND lizenznr <> ''), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $statistik["spielernr_international"] = $db->loadResult();
-
- HTML_sportsmanager_admin::adminSpieler($filter, $rows, $anzahlSpieler, $admin_uebersicht, $beschraenkter_zugriff, $ansprechpartner_importieren, $ansprechpartner_exportieren, $ansprechpartner_spielerdaten_bearbeiten, $ansprechpartner_bilder_bearbeiten, $statistik);
-}
-
-function adminEditSpieler() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- $ansprechpartner_spielerdaten = einstellungswert("ansprechpartner_spielerdaten");
- $ansprechpartner_spielerdaten_bearbeiten = $ansprechpartner_spielerdaten == "1" || $ansprechpartner_spielerdaten == "2" || $ansprechpartner_spielerdaten == "3";
-
- if (benutzerZugriff("spieler_aendern"))
- $beschraenkter_zugriff = 0;
- else if (benutzerVeranstalterModerator() && $ansprechpartner_spielerdaten_bearbeiten)
- $beschraenkter_zugriff = 1;
- else if (benutzerVereinModerator() && $ansprechpartner_spielerdaten_bearbeiten)
- $beschraenkter_zugriff = 2;
- else
- keinZugriff(true);
-
- $filter = $jinput->get('filter', '', 'RAW');
- $id = $jinput->get('id', 0, 'INT');
- if ($id == 0)
- $spieler = null;
- else {
- $query = "SELECT * FROM #__sportsmanager_spieler WHERE spieler_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) == 1)
- $spieler = $rows[0];
- else
- $spieler = null;
- }
-
- if ($beschraenkter_zugriff != 0) {
- if ($id == 0)
- keinZugriff(true);
- if ($beschraenkter_zugriff == 1)
- $query = "SELECT IF(EXISTS(SELECT * FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id AND " . veranstalterFilter("#__sportsmanager_verein.veranstalter_id IN") . "AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_verein.ausgetreten), 1, 0)";
- else // $beschraenkter_zugriff == 2
- $query = "SELECT IF(EXISTS(SELECT * FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id AND " . vereinFilter("#__sportsmanager_verein.verein_id IN") . "AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_verein.ausgetreten), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n == 0)
- keinZugriff(true);
- }
-
- // Vereine ermitteln
- $query = "SELECT #__sportsmanager_verein.verein_id, vereinsname, ausgetreten AS verein_ausgetreten, veranstalterbezeichnung"
- . "\n FROM #__sportsmanager_verein"
- . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
- . "\n ORDER BY veranstalterbezeichnung, vereinsname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $vereine = $db->loadObjectList();
-
- $vereinsmitgliedschaften = null;
- if (!empty($id)) {
- $query = "SELECT DISTINCT verein_id, mitgliedsstatus"
- . "\n FROM #__sportsmanager_verein"
- . "\n INNER JOIN (SELECT verein_id, mitgliedsstatus FROM #__sportsmanager_mitglied_von_verein WHERE spieler_id = $id) AS mitgliedschaft USING (verein_id)"
- . "\n ORDER BY IF(mitgliedsstatus <> 0, 0, 1), mitgliedsstatus, vereinsname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $vereinsmitgliedschaften = $db->loadObjectList();
- }
-
- // Nächste Spieler-Nr. ermitteln
- $query = "SELECT * FROM #__sportsmanager_einstellungen WHERE name = 'basis_spielernr'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) == 0)
- die("Fehler: Inkonsistenz in den MySQL-Tabellen!");
- $naechste_spielernr = $rows[0]->wert;
- if (empty($naechste_spielernr))
- $naechste_spielernr = "1";
-
- for ($i = strlen($naechste_spielernr) - 1; $i >= 0; $i--) {
- if ($naechste_spielernr[$i] < '0' || $naechste_spielernr[$i] > '9')
- break;
- }
- $spielernr_praefix = substr($naechste_spielernr, 0, $i + 1);
-
- $query = "SELECT spielernr"
- . "\n FROM #__sportsmanager_spieler"
- . "\n WHERE Left(spielernr, " . strlen($spielernr_praefix) . ") = '" . $db->escape($spielernr_praefix) . "'"
- . "\n ORDER BY LENGTH(spielernr) DESC, spielernr DESC";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) > 0) {
- $naechste_spielernr = $rows[0]->spielernr;
- for ($i = strlen($naechste_spielernr) - 1; $i >= 0; $i--) {
- if ($naechste_spielernr[$i] < '0' || $naechste_spielernr[$i] > '9') {
- $naechste_spielernr = substr($naechste_spielernr, 0, $i + 1) . "1" . substr($naechste_spielernr, $i + 1);
- break;
- }
- if ($naechste_spielernr[$i] <= '8') {
- $naechste_spielernr[$i] = $naechste_spielernr[$i] + 1;
- break;
- }
- // $naechste_spielernr[$i] == '9'
- $naechste_spielernr[$i] = '0';
- }
- if ($i < 0)
- $naechste_spielernr = "1" . $naechste_spielernr;
- }
-
- HTML_sportsmanager_admin::adminEditSpieler($spieler, $naechste_spielernr, $filter, $vereine, $vereinsmitgliedschaften, $beschraenkter_zugriff, $ansprechpartner_spielerdaten);
-}
-
-function adminSaveSpieler() {
- $db =& getDatabase();
- global $_FILES;
- global $sportsmanager_joomla_path;
- $jinput = JFactory::getApplication()->input;
-
- $ansprechpartner_spielerdaten = einstellungswert("ansprechpartner_spielerdaten");
- $ansprechpartner_spielerdaten_bearbeiten = $ansprechpartner_spielerdaten == "1" || $ansprechpartner_spielerdaten == "2" || $ansprechpartner_spielerdaten == "3";
-
- if (benutzerZugriff("spieler_aendern"))
- $beschraenkter_zugriff = 0;
- else if (benutzerVeranstalterModerator() && $ansprechpartner_spielerdaten_bearbeiten)
- $beschraenkter_zugriff = 1;
- else if (benutzerVereinModerator() && $ansprechpartner_spielerdaten_bearbeiten)
- $beschraenkter_zugriff = 2;
- else
- keinZugriff();
-
- $filter = $jinput->get('filter', '', 'RAW');
- $id = $jinput->get('id', 0, 'INT');
- $vorname = $db->escape(trim($jinput->get('vorname', '', 'RAW')));
- $nachname = $db->escape(trim($jinput->get('nachname', '', 'RAW')));
- $lizenz = $db->escape(trim($jinput->get('lizenz', '', 'RAW')));
- $pseudonym = $db->escape(trim($jinput->get('pseudonym', '', 'RAW')));
- $geschlecht = $db->escape(trim($jinput->get('geschlecht', 'M', 'RAW')));
- $geburtsdatum = 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')));
- $geburtsjahr = $jinput->get('datum_jahr', 0, 'INT') == 0 ? null : sprintf("%d", $jinput->get('datum_jahr', 0, 'INT'));
- $strasse = $db->escape(trim($jinput->get('strasse', '', 'RAW')));
- $plz = $db->escape(trim($jinput->get('plz', '', 'RAW')));
- $ort = $db->escape(trim($jinput->get('ort', '', 'RAW')));
- $landeskennung = $db->escape(trim($jinput->get('landeskennung', '', 'RAW')));
- $telefon = $db->escape(trim($jinput->get('telefon', '', 'RAW')));
- $mobil = $db->escape(trim($jinput->get('mobil', '', 'RAW')));
- $email = $db->escape(trim($jinput->get('email', '', 'RAW')));
- $spielernr = $db->escape(trim($jinput->get('spielernr', '', 'RAW')));
- $lizenznr = $db->escape(trim($jinput->get('lizenznr', '', 'RAW')));
- $bild_ausblenden = $jinput->get('bild_ausblenden', 0, 'INT');
- $bildbeibehalten = $jinput->get('bildbeibehalten', 0, 'INT');
- $elo_startwert_einzel = max(min($jinput->get('elo_startwert_einzel', 0, 'INT'), 9999), 0);
- $elo_startwert_doppel = max(min($jinput->get('elo_startwert_doppel', 0, 'INT'), 9999), 0);
- $vereinsauswahl_anzahl = $jinput->get('vereinsauswahl_anzahl', 0, 'INT');
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter) . '#id' . $id);
-
- return;
- }
-
- $vereinsmitgliedschaften = array();
- $verein_mitgliedsstatus = array();
- for ($i = 0; $i < $vereinsauswahl_anzahl; $i++) {
- $verein_id = $jinput->get('verein_id_' . $i, 0, 'INT');
- if (empty($verein_id))
- continue;
- array_push($vereinsmitgliedschaften, $verein_id);
- array_push($verein_mitgliedsstatus, $jinput->get('verein_mitgliedsstatus_' . $i, 0, 'INT'));
- }
-
- if ($beschraenkter_zugriff != 0) {
- if ($id == 0)
- keinZugriff(true);
- if ($beschraenkter_zugriff == 1)
- $query = "SELECT IF(EXISTS(SELECT * FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id AND " . veranstalterFilter("#__sportsmanager_verein.veranstalter_id IN") . "AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_verein.ausgetreten), 1, 0)";
- else // $beschraenkter_zugriff == 2
- $query = "SELECT IF(EXISTS(SELECT * FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id AND " . vereinFilter("#__sportsmanager_verein.verein_id IN") . "AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_verein.ausgetreten), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n == 0)
- keinZugriff();
- }
-
- $query = "LOCK TABLES #__sportsmanager_spieler WRITE, #__sportsmanager_mitglied_von_verein WRITE, #__sportsmanager_verein READ, #__sportsmanager_berechtigt_fuer_verein READ, #__sportsmanager_berechtigt_fuer_veranstalter READ;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if (strlen($spielernr) > 0) {
- $query = "SELECT COUNT(*) FROM #__sportsmanager_spieler WHERE spielernr = '$spielernr' AND spieler_id != $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n > 0) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_spieler', JText::_('COM_SPORTSMANAGER_PLAYER_NO_USED'));
-
- return;
- }
- }
-
- $rangliste_aktualisieren = false;
- $elo_aktualisieren = false;
- // Vereinsmitgliedschaften prüfen und ggf. aktualisieren
- if ($id != 0 && !$beschraenkter_zugriff) {
- $query = "SELECT verein_id, #__sportsmanager_mitglied_von_verein.ausgetreten, mitgliedsstatus"
- . "\n FROM #__sportsmanager_mitglied_von_verein"
- . "\n INNER JOIN #__sportsmanager_verein USING (verein_id)"
- . "\n WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $bestehende_vereinsmitgliedschaften = $db->loadObjectList();
-
- foreach ($bestehende_vereinsmitgliedschaften as $bestehende_vereinsmitgliedschaft) {
- $ist_mitglied = false;
- foreach ($vereinsmitgliedschaften as $verein_id) {
- if ($bestehende_vereinsmitgliedschaft->verein_id == $verein_id) {
- $ist_mitglied = true;
- break;
- }
- }
- if (!$ist_mitglied) {
- $query = "DELETE FROM #__sportsmanager_mitglied_von_verein WHERE verein_id = $bestehende_vereinsmitgliedschaft->verein_id AND spieler_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- //if ($id != 0)
- // $rangliste_und_elo_aktualisieren = TRUE;
- }
- }
-
- foreach ($vereinsmitgliedschaften as $index => $verein_id) {
- $ist_mitglied = false;
- foreach ($bestehende_vereinsmitgliedschaften as $bestehende_vereinsmitgliedschaft) {
- if ($bestehende_vereinsmitgliedschaft->verein_id == $verein_id) {
- $ist_mitglied = true;
- $mitgliedsstatus = $bestehende_vereinsmitgliedschaft->mitgliedsstatus;
- break;
- }
- }
- if (!$ist_mitglied) {
- $query = "SELECT COUNT(*)"
- . "\n FROM #__sportsmanager_verein"
- . "\n WHERE verein_id = $verein_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
-
- if ($n > 0) {
- $query = "INSERT INTO #__sportsmanager_mitglied_von_verein (spieler_id, verein_id, mitgliedsstatus, ausgetreten) VALUES ('$id', '$verein_id', '" . ($verein_mitgliedsstatus[$index]) . "', " . ($verein_mitgliedsstatus[$index] == 0 ? "TRUE" : "FALSE") . ");";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- // if ($id != 0)
- // $rangliste_und_elo_aktualisieren = TRUE;
- }
- }
- else if ($mitgliedsstatus != $verein_mitgliedsstatus[$index]) {
- $query = "UPDATE #__sportsmanager_mitglied_von_verein"
- . "\n SET mitgliedsstatus = '" . ($verein_mitgliedsstatus[$index]) . "',"
- . "\n ausgetreten = " . ($verein_mitgliedsstatus[$index] == 0 ? "TRUE" : "FALSE")
- . "\n WHERE verein_id = $verein_id AND spieler_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- // if ($id != 0)
- // $rangliste_und_elo_aktualisieren = TRUE;
- }
- }
- }
-
- if ($id == 0 && !$beschraenkter_zugriff) {
- $query = "INSERT INTO #__sportsmanager_spieler "
- . "(vorname, nachname, lizenz, pseudonym, geschlecht, geburtsdatum, geburtsjahr, strasse, plz, ort, landeskennung, telefon, mobil, email, spielernr, lizenznr, elo_einzel_startwert, elo_doppel_startwert, bild_ausblenden) "
- . "VALUES ('$vorname', "
- . "'$nachname', "
- . "'$lizenz', "
- . "'$pseudonym', "
- . "'$geschlecht', "
- . ($geburtsdatum == null ? "NULL" : "'$geburtsdatum'") . ", "
- . ($geburtsjahr == null ? "NULL" : "'$geburtsjahr'") . ", "
- . "'$strasse', "
- . "'$plz', "
- . "'$ort', "
- . "'$landeskennung', "
- . "'$telefon', "
- . "'$mobil', "
- . "'$email', "
- . "'$spielernr', "
- . "'$lizenznr', "
- . "'$elo_startwert_einzel', "
- . "'$elo_startwert_doppel', "
- . ($bild_ausblenden ? "TRUE" : "FALSE") . ");";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
-
- // Vereinsmitgliedschaften erzeugen
- foreach ($vereinsmitgliedschaften as $index => $verein_id) {
- $query = "SELECT COUNT(*)"
- . "\n FROM #__sportsmanager_verein"
- . "\n WHERE verein_id = $verein_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
-
- if ($n > 0) {
- $query = "INSERT INTO #__sportsmanager_mitglied_von_verein (spieler_id, verein_id, mitgliedsstatus, ausgetreten) VALUES ('$id', '$verein_id', '" . ($verein_mitgliedsstatus[$index]) . "', " . ($verein_mitgliedsstatus[$index] == 0 ? "TRUE" : "FALSE") . ");";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
- if ($id != 0 && (!$beschraenkter_zugriff || $ansprechpartner_spielerdaten == "1" || $ansprechpartner_spielerdaten == "2")) {
-
- $query = "SELECT * FROM #__sportsmanager_spieler WHERE spieler_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) {
- redirectSportsManagerURL('&task=admin_spieler', "Der Spieler existiert nicht mehr!");
-
- return;
- }
- $spieler = $rows[0];
-
- if ($spieler->elo_einzel_startwert != $elo_startwert_einzel || $spieler->elo_doppel_startwert != $elo_startwert_doppel)
- $elo_aktualisieren = true;
-
- $query = "UPDATE #__sportsmanager_spieler"
- . "\n SET pseudonym = '$pseudonym',"
- . "\n strasse = '$strasse',"
- . "\n plz = '$plz',"
- . "\n ort = '$ort',"
- . "\n landeskennung = '$landeskennung',"
- . "\n telefon = '$telefon',"
- . "\n mobil = '$mobil',"
- . "\n bild_ausblenden = " . ($bild_ausblenden ? "TRUE" : "FALSE") . ",";
- if (!$beschraenkter_zugriff) {
- $query .= "\n vorname = '$vorname',"
- . "\n nachname = '$nachname',"
- . "\n lizenz = '$lizenz',"
- . "\n geschlecht = '$geschlecht',"
- . "\n geburtsdatum = " . ($geburtsdatum == null ? "NULL" : "'$geburtsdatum'") . ","
- . "\n geburtsjahr = " . ($geburtsjahr == null ? "NULL" : "'$geburtsjahr'") . ","
- . "\n spielernr = '$spielernr',"
- . "\n lizenznr = '$lizenznr',"
- . "\n elo_einzel_startwert = " . ($elo_startwert_einzel == null ? "NULL" : "'$elo_startwert_einzel'") . ","
- . "\n elo_doppel_startwert = " . ($elo_startwert_doppel == null ? "NULL" : "'$elo_startwert_doppel'") . ",";
- }
- $query .= "\n email = '$email'"
- . "\n WHERE spieler_id = $id";
-
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($geburtsjahr != $spieler->geburtsjahr || $geschlecht != $spieler->geschlecht)
- $rangliste_aktualisieren = true;
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($elo_aktualisieren)
- eloAktualisieren($spieler->erstmals_gespielt);
-
- if ($bildbeibehalten == 0 && (!$beschraenkter_zugriff || $ansprechpartner_spielerdaten == "1" || $ansprechpartner_spielerdaten == "3")) {
- bildLoeschen('spieler', $id);
-
- if (!empty($_FILES["bild"]["tmp_name"])) {
- if (is_uploaded_file($_FILES["bild"]["tmp_name"])) {
- $size = getimagesize($_FILES["bild"]["tmp_name"]);
- if ($size == false
- || ($size[2] != IMAGETYPE_JPEG && $size[2] != IMAGETYPE_PNG)
- || ($size[0] < 60 || $size[1] < 60 || $size[0] > 8192 || $size[1] > 8192)) {
- redirectSportsManagerURL('&task=admin_spieler', JText::_('COM_SPORTSMANAGER_PLAYER_WRONG_IMAGE_FORMAT'));
-
- return;
- }
- $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'spieler';
- if (!bildKopierenAngepasst($_FILES["bild"]["tmp_name"], $bilder_pfad . DIRECTORY_SEPARATOR . $id . ($size[2] == IMAGETYPE_PNG ? '.png' : '.jpg'), 180, 240, 1)) {
- redirectSportsManagerURL('&task=admin_spieler', JText::_('COM_SPORTSMANAGER_IMAGE_COULD_NOT_COPIED'));
-
- return;
- }
- }
- }
- }
-
- aktuellerVereinAktualisieren($id);
- if ($rangliste_aktualisieren) {
- ranglisteAktualisieren(0, 0, $id);
- einstufungAktualisieren();
- }
-
- redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter) . '#id' . $id);
-}
-
-function adminRemoveSpieler() {
- $db =& getDatabase();
- global $sportsmanager_joomla_path;
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spieler_aendern"))
- keinZugriff(true);
-
- $filter = $jinput->get('filter', '', 'RAW');
- $id = $jinput->get('id', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_teamspiel READ, #__sportsmanager_turniermeldung_spieler READ, #__sportsmanager_mitglied_von_team WRITE, #__sportsmanager_mitglied_von_verein WRITE, #__sportsmanager_individualwettbewerb_spiel WRITE, #__sportsmanager_individualwettbewerb_ausgangsplatzierung WRITE, #__sportsmanager_spieler WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_teamspiel WHERE heim_spieler_1_id = $id OR heim_spieler_2_id = $id OR gast_spieler_1_id = $id OR gast_spieler_2_id = $id), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS'));
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_turniermeldung_spieler WHERE spieler_id = $id), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS'));
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_mitglied_von_team WHERE spieler_id = $id), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS'));
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_spiel WHERE heim_spieler_1_id = $id OR heim_spieler_2_id = $id OR gast_spieler_1_id = $id OR gast_spieler_2_id = $id), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS'));
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE spieler_id = $id), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS'));
-
- $query = "DELETE FROM #__sportsmanager_mitglied_von_verein WHERE spieler_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_spieler WHERE spieler_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- bildLoeschen("spieler", $id);
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- spielerstatistikAktualisieren();
-
- redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter));
-}
-
-function adminGroomingMehrfacheMitgliedschaften() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spieler_aendern"))
- keinZugriff(true);
-
- $query = "SELECT spieler_id, COUNT(*) AS mehrfach"
- . "\n FROM #__sportsmanager_mitglied_von_verein"
- . "\n GROUP BY spieler_id, verein_id"
- . "\n HAVING mehrfach > 1"
- . "\n ORDER BY spieler_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $mitglieder = $db->loadObjectList();
-
- foreach ($mitglieder as $mitglied) {
- $query = "SELECT mitglied_von_verein_id, verein_id"
- . "\n FROM #__sportsmanager_mitglied_von_verein"
- . "\n WHERE spieler_id = $mitglied->spieler_id"
- . "\n ORDER BY verein_id, ausgetreten, mitgliedsstatus";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $mitglied_verein_id = -1;
- foreach ($rows as $row) {
- if ($mitglied_verein_id != $row->verein_id) {
- $mitglied_verein_id = $row->verein_id;
- continue;
- }
- $query = "DELETE FROM #__sportsmanager_mitglied_von_verein WHERE mitglied_von_verein_id = '$row->mitglied_von_verein_id';";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
-
- redirectSportsManagerURL('&task=admin_uebersicht');
-}
-
-function adminSpielerZusammenlegenForm() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spieler_aendern"))
- keinZugriff(true);
-
- $filter = $jinput->get('filter', '', 'RAW');
-
- $query = "SELECT spieler_id, vorname, nachname, spielernr, aktueller_verein_id"
- . "\n FROM #__sportsmanager_spieler"
- . "\n ORDER BY nachname, vorname, spielernr, aktueller_verein_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spieler = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminSpielerZusammenlegen($spieler, $filter);
-}
-
-function adminSpielerZusammenlegen() {
- $db =& getDatabase();
- global $_FILES;
- global $sportsmanager_joomla_path;
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spieler_aendern"))
- keinZugriff();
-
- $spieler_beizubehalten_id = $jinput->get('spieler_beizubehalten_id', 0, 'INT');
- $spieler_zu_entfernen_id = $jinput->get('spieler_zu_entfernen_id', 0, 'INT');
- $filter = $jinput->get('filter', '', 'RAW');
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter));
-
- return;
- }
-
- if ($spieler_beizubehalten_id == $spieler_zu_entfernen_id) {
- redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter) . '#id' . $spieler_beizubehalten_id, "Zum Zusammanlegen müssen zwei unterschiedliche Spieler gewählt werden");
-
- return;
- }
-
- if (!ini_get('safe_mode'))
- set_time_limit(300);
-
- $query = "LOCK TABLES #__sportsmanager_spieler WRITE, #__sportsmanager_mitglied_von_verein WRITE, #__sportsmanager_mitglied_von_team WRITE, #__sportsmanager_teamspiel WRITE, #__sportsmanager_turniermeldung_spieler WRITE, #__sportsmanager_rangliste_punkte WRITE, #__sportsmanager_rangliste_turnierdisziplin_punkte WRITE, #__sportsmanager_individualwettbewerb_spiel WRITE, #__sportsmanager_individualwettbewerb_ausgangsplatzierung WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT * FROM #__sportsmanager_spieler WHERE spieler_id = $spieler_beizubehalten_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter), "Beizubehaltender Spieler existiert nicht.");
- }
- $spieler_beizubehalten = $rows[0];
-
- $query = "SELECT * FROM #__sportsmanager_spieler WHERE spieler_id = $spieler_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter) . '#id' . $spieler_beizubehalten_id, "Zu entfernender Spieler existiert nicht.");
- }
- $spieler_zu_entfernen = $rows[0];
-
- $query = "DELETE FROM #__sportsmanager_rangliste_turnierdisziplin_punkte"
- . "\n WHERE spieler_id = $spieler_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_rangliste_punkte"
- . "\n WHERE spieler_id = $spieler_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_turniermeldung_spieler"
- . "\n SET spieler_id = $spieler_beizubehalten_id"
- . "\n WHERE spieler_id = $spieler_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_teamspiel"
- . "\n SET heim_spieler_1_id = $spieler_beizubehalten_id"
- . "\n WHERE heim_spieler_1_id = $spieler_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_teamspiel"
- . "\n SET heim_spieler_2_id = $spieler_beizubehalten_id"
- . "\n WHERE heim_spieler_2_id = $spieler_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_teamspiel"
- . "\n SET gast_spieler_1_id = $spieler_beizubehalten_id"
- . "\n WHERE gast_spieler_1_id = $spieler_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_teamspiel"
- . "\n SET gast_spieler_2_id = $spieler_beizubehalten_id"
- . "\n WHERE gast_spieler_2_id = $spieler_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_individualwettbewerb_spiel"
- . "\n SET heim_spieler_1_id = $spieler_beizubehalten_id"
- . "\n WHERE heim_spieler_1_id = $spieler_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_individualwettbewerb_spiel"
- . "\n SET heim_spieler_2_id = $spieler_beizubehalten_id"
- . "\n WHERE heim_spieler_2_id = $spieler_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_individualwettbewerb_spiel"
- . "\n SET gast_spieler_1_id = $spieler_beizubehalten_id"
- . "\n WHERE gast_spieler_1_id = $spieler_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_individualwettbewerb_spiel"
- . "\n SET gast_spieler_2_id = $spieler_beizubehalten_id"
- . "\n WHERE gast_spieler_2_id = $spieler_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT DISTINCT individualwettbewerb_id"
- . "\n FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung"
- . "\n WHERE spieler_id = $spieler_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $individualwettbewerbe = $db->loadObjectList();
-
- foreach ($individualwettbewerbe as $individualwettbewerb) {
- $individualwettbewerbid = $individualwettbewerb->individualwettbewerb_id;
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung"
- . "\n WHERE individualwettbewerb_id = $individualwettbewerbid"
- . "\n ORDER BY platz";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $ausgangsplatzierungen = $db->loadObjectList();
-
- $platzierungen = array();
- foreach ($ausgangsplatzierungen as $ausgangsplatzierung)
- array_push($platzierungen, $ausgangsplatzierung->spieler_id);
-
- $spieler_beizubehalten_platzierung = array_search($spieler_beizubehalten_id, $platzierungen);
- $spieler_zu_entfernen_platzierung = array_search($spieler_zu_entfernen_id, $platzierungen);
- if ($spieler_beizubehalten_platzierung !== false && $spieler_zu_entfernen_platzierung !== false)
- array_splice($platzierungen, $spieler_zu_entfernen_platzierung, 1);
- else if ($spieler_beizubehalten_platzierung === false)
- array_splice($platzierungen, $spieler_zu_entfernen_platzierung, 1, $spieler_beizubehalten_id);
-
- $platzierungen_uebrig = $platzierungen;
- foreach ($ausgangsplatzierungen as $platzierung_vorhanden) {
- $index = array_search($platzierung_vorhanden->spieler_id, $platzierungen);
- if ($index !== false) {
- $platz = $index + 1;
- if ($platzierung_vorhanden->platz != $platz) {
- $query = "UPDATE #__sportsmanager_individualwettbewerb_ausgangsplatzierung"
- . "\n SET platz = '$platz'"
- . "\n WHERE individualwettbewerb_ausgangsplatzierung_id = " . $platzierung_vorhanden->individualwettbewerb_ausgangsplatzierung_id;
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $index_uebrig = array_search($platzierung_vorhanden->spieler_id, $platzierungen_uebrig);
- unset($platzierungen_uebrig[$index_uebrig]);
- }
- else {
- $query = "DELETE FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE individualwettbewerb_ausgangsplatzierung_id = " . $platzierung_vorhanden->individualwettbewerb_ausgangsplatzierung_id;
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
-
- foreach ($platzierungen_uebrig as $platzierung_uebrig) {
- $index = array_search($platzierung_uebrig, $platzierungen);
- $platz = $index + 1;
- $query = "INSERT #__sportsmanager_individualwettbewerb_ausgangsplatzierung"
- . "\n SET individualwettbewerb_id = '$individualwettbewerbid',"
- . "\n spieler_id = '$platzierung_uebrig',"
- . "\n platz = '$platz'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
-
- $query = "UPDATE #__sportsmanager_mitglied_von_team"
- . "\n SET spieler_id = $spieler_beizubehalten_id"
- . "\n WHERE spieler_id = $spieler_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT mitglied_von_verein_id, verein_id"
- . "\n FROM #__sportsmanager_mitglied_von_verein"
- . "\n WHERE spieler_id = $spieler_beizubehalten_id OR spieler_id = $spieler_zu_entfernen_id"
- . "\n ORDER BY verein_id, ausgetreten, IF(spieler_id = $spieler_beizubehalten_id, 0, 1), mitgliedsstatus";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $mitglied_verein_id = -1;
- foreach ($rows as $row) {
- if ($mitglied_verein_id != $row->verein_id) {
- $mitglied_verein_id = $row->verein_id;
- continue;
- }
- $query = "DELETE FROM #__sportsmanager_mitglied_von_verein WHERE mitglied_von_verein_id = '$row->mitglied_von_verein_id';";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $query = "UPDATE #__sportsmanager_mitglied_von_verein"
- . "\n SET spieler_id = $spieler_beizubehalten_id"
- . "\n WHERE spieler_id = $spieler_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_spieler WHERE spieler_id = $spieler_zu_entfernen_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'spieler';
- $neues_bild_pfad = $bilder_pfad . DIRECTORY_SEPARATOR . $spieler_beizubehalten_id . '.';
-
- if (!JFile::exists($neues_bild_pfad . 'png') && !JFile::exists($neues_bild_pfad . 'jpg')) {
- $altes_bild_pfad = $bilder_pfad . DIRECTORY_SEPARATOR . $spieler_zu_entfernen_id . '.';
-
- if (JFile::exists($altes_bild_pfad . 'png'))
- JFile::copy($altes_bild_pfad . 'png', $neues_bild_pfad . 'png');
- else if (JFile::exists($altes_bild_pfad . 'jpg'))
- JFile::copy($altes_bild_pfad . 'jpg', $neues_bild_pfad . 'jpg');
- }
-
- bildLoeschen("spieler", $spieler_zu_entfernen_id);
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if (!empty($spieler_zu_entfernen->erstmals_gespielt)) {
- wannGespieltAktualisieren();
- individualwettbewerbTabelleAktualisieren();
- eloAktualisieren($spieler_zu_entfernen->erstmals_gespielt);
- }
- spielerstatistikAktualisieren();
- aktuellerVereinAktualisieren($spieler_beizubehalten_id);
- ranglisteAktualisieren();
- einstufungAktualisieren();
-
- redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter) . '#id' . $spieler_beizubehalten_id);
-}
-
-function adminRemoveInaktiveSpielerForm() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spieler_aendern"))
- keinZugriff(true);
-
- $filter = $jinput->get('filter', '', 'RAW');
-
- $query = "SELECT #__sportsmanager_spieler.spieler_id, vorname, nachname, spielernr, lizenznr"
- . "\n FROM #__sportsmanager_spieler"
- . "\n LEFT JOIN #__sportsmanager_turniermeldung_spieler USING (spieler_id)"
- . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_ausgangsplatzierung USING (spieler_id)"
- . "\n LEFT JOIN #__sportsmanager_mitglied_von_team USING (spieler_id)"
- . "\n LEFT JOIN #__sportsmanager_teamspiel AS teamspiel1 ON #__sportsmanager_spieler.spieler_id = teamspiel1.heim_spieler_1_id"
- . "\n LEFT JOIN #__sportsmanager_teamspiel AS teamspiel2 ON #__sportsmanager_spieler.spieler_id = teamspiel2.heim_spieler_2_id"
- . "\n LEFT JOIN #__sportsmanager_teamspiel AS teamspiel3 ON #__sportsmanager_spieler.spieler_id = teamspiel3.gast_spieler_1_id"
- . "\n LEFT JOIN #__sportsmanager_teamspiel AS teamspiel4 ON #__sportsmanager_spieler.spieler_id = teamspiel4.gast_spieler_2_id"
- . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_spiel AS individualspiel1 ON #__sportsmanager_spieler.spieler_id = individualspiel1.heim_spieler_1_id"
- . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_spiel AS individualspiel2 ON #__sportsmanager_spieler.spieler_id = individualspiel2.heim_spieler_2_id"
- . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_spiel AS individualspiel3 ON #__sportsmanager_spieler.spieler_id = individualspiel3.gast_spieler_1_id"
- . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_spiel AS individualspiel4 ON #__sportsmanager_spieler.spieler_id = individualspiel4.gast_spieler_2_id"
- . "\n WHERE ISNULL(aktueller_verein_id)"
- . "\n AND ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id)"
- . "\n AND ISNULL(#__sportsmanager_individualwettbewerb_ausgangsplatzierung.spieler_id)"
- . "\n AND ISNULL(#__sportsmanager_mitglied_von_team.team_id)"
- . "\n AND ISNULL(teamspiel1.heim_spieler_1_id)"
- . "\n AND ISNULL(teamspiel2.heim_spieler_2_id)"
- . "\n AND ISNULL(teamspiel3.gast_spieler_1_id)"
- . "\n AND ISNULL(teamspiel4.gast_spieler_2_id)"
- . "\n AND ISNULL(individualspiel1.heim_spieler_1_id)"
- . "\n AND ISNULL(individualspiel2.heim_spieler_2_id)"
- . "\n AND ISNULL(individualspiel3.gast_spieler_1_id)"
- . "\n AND ISNULL(individualspiel4.gast_spieler_2_id)"
- . "\n ORDER BY nachname, vorname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spieler = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminRemoveInaktiveSpieler($spieler, $filter);
-}
-
-function adminRemoveInaktiveSpieler() {
- $db =& getDatabase();
- global $sportsmanager_joomla_path;
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spieler_aendern"))
- keinZugriff();
-
- $spieler_beizubehalten_ids = $jinput->get('spielerids', array(), 'ARRAY');
- $filter = $jinput->get('filter', '', 'RAW');
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter));
-
- return;
- }
-
- $query = "LOCK TABLES #__sportsmanager_teamspiel AS teamspiel1 READ, #__sportsmanager_teamspiel AS teamspiel2 READ, #__sportsmanager_teamspiel AS teamspiel3 READ, #__sportsmanager_teamspiel AS teamspiel4 READ, #__sportsmanager_turniermeldung_spieler READ, #__sportsmanager_mitglied_von_team WRITE, #__sportsmanager_mitglied_von_verein WRITE, #__sportsmanager_individualwettbewerb_spiel AS individualspiel1 WRITE, #__sportsmanager_individualwettbewerb_spiel AS individualspiel2 WRITE, #__sportsmanager_individualwettbewerb_spiel AS individualspiel3 WRITE, #__sportsmanager_individualwettbewerb_spiel AS individualspiel4 WRITE, #__sportsmanager_individualwettbewerb_ausgangsplatzierung WRITE, #__sportsmanager_spieler WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT #__sportsmanager_spieler.spieler_id"
- . "\n FROM #__sportsmanager_spieler"
- . "\n LEFT JOIN #__sportsmanager_turniermeldung_spieler USING (spieler_id)"
- . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_ausgangsplatzierung USING (spieler_id)"
- . "\n LEFT JOIN #__sportsmanager_mitglied_von_team USING (spieler_id)"
- . "\n LEFT JOIN #__sportsmanager_teamspiel AS teamspiel1 ON #__sportsmanager_spieler.spieler_id = teamspiel1.heim_spieler_1_id"
- . "\n LEFT JOIN #__sportsmanager_teamspiel AS teamspiel2 ON #__sportsmanager_spieler.spieler_id = teamspiel2.heim_spieler_2_id"
- . "\n LEFT JOIN #__sportsmanager_teamspiel AS teamspiel3 ON #__sportsmanager_spieler.spieler_id = teamspiel3.gast_spieler_1_id"
- . "\n LEFT JOIN #__sportsmanager_teamspiel AS teamspiel4 ON #__sportsmanager_spieler.spieler_id = teamspiel4.gast_spieler_2_id"
- . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_spiel AS individualspiel1 ON #__sportsmanager_spieler.spieler_id = individualspiel1.heim_spieler_1_id"
- . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_spiel AS individualspiel2 ON #__sportsmanager_spieler.spieler_id = individualspiel2.heim_spieler_2_id"
- . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_spiel AS individualspiel3 ON #__sportsmanager_spieler.spieler_id = individualspiel3.gast_spieler_1_id"
- . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_spiel AS individualspiel4 ON #__sportsmanager_spieler.spieler_id = individualspiel4.gast_spieler_2_id"
- . "\n WHERE ISNULL(aktueller_verein_id)"
- . "\n AND ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id)"
- . "\n AND ISNULL(#__sportsmanager_individualwettbewerb_ausgangsplatzierung.spieler_id)"
- . "\n AND ISNULL(#__sportsmanager_mitglied_von_team.team_id)"
- . "\n AND ISNULL(teamspiel1.heim_spieler_1_id)"
- . "\n AND ISNULL(teamspiel2.heim_spieler_2_id)"
- . "\n AND ISNULL(teamspiel3.gast_spieler_1_id)"
- . "\n AND ISNULL(teamspiel4.gast_spieler_2_id)"
- . "\n AND ISNULL(individualspiel1.heim_spieler_1_id)"
- . "\n AND ISNULL(individualspiel2.heim_spieler_2_id)"
- . "\n AND ISNULL(individualspiel3.gast_spieler_1_id)"
- . "\n AND ISNULL(individualspiel4.gast_spieler_2_id)"
- . "\n ORDER BY nachname, vorname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spieler = $db->loadObjectList();
-
- $bilder_spieler_ids = array();
-
- foreach ($spieler AS $s) {
- $id = $s->spieler_id;
-
- if (in_array($id, $spieler_beizubehalten_ids))
- continue;
-
- array_push($bilder_spieler_ids, $id);
-
- $query = "DELETE FROM #__sportsmanager_mitglied_von_verein WHERE spieler_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_spieler WHERE spieler_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- spielerstatistikAktualisieren();
-
- foreach ($bilder_spieler_ids AS $id)
- bildLoeschen("spieler", $id);
-
- redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter) . '#id' . $spieler_beizubehalten_id);
-}
-
-function adminImportSpielerForm() {
- $db =& getDatabase();
-
- $ansprechpartner_importieren = einstellungswert("ansprechpartner_importieren");
-
- if (benutzerZugriff("spieler_aendern"))
- $beschraenkter_zugriff = 0;
- else if (($ansprechpartner_importieren == 1 || $ansprechpartner_importieren == 2) && benutzerVeranstalterModerator())
- $beschraenkter_zugriff = 1;
-// else if (benutzerVereinModerator())
-// $beschraenkter_zugriff = 2;
- else
- keinZugriff(true);
-
- HTML_sportsmanager_admin::adminImportSpieler();
-}
-
-function adminImportSpielerDetailsForm() {
- $db =& getDatabase();
- global $_FILES;
- $jinput = JFactory::getApplication()->input;
-
- $ansprechpartner_importieren = einstellungswert("ansprechpartner_importieren");
-
- if (benutzerZugriff("spieler_aendern"))
- $beschraenkter_zugriff = 0;
- else if (($ansprechpartner_importieren == 1 || $ansprechpartner_importieren == 2) && benutzerVeranstalterModerator())
- $beschraenkter_zugriff = 1;
-// else if (benutzerVereinModerator())
-// $beschraenkter_zugriff = 2;
- else
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_spieler');
-
- return;
- }
-
- $query = "SELECT DISTINCT session_id"
- . "\n FROM #__sportsmanager_spieler_import"
- . "\n WHERE session_id < SUBTIME(NOW(), '00:05:00')";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- foreach ($rows as $row) {
- $query = "DELETE FROM #__sportsmanager_spieler_import"
- . "\n WHERE session_id = '$row->session_id'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- if (empty($_FILES["daten"]["tmp_name"]) || !is_uploaded_file($_FILES["daten"]["tmp_name"])) {
- redirectSportsManagerURL('&task=admin_spieler', JText::_('COM_SPORTSMANAGER_NO_FILE_SPECIFIED'));
-
- return;
- }
-
- $handle = fopen($_FILES["daten"]["tmp_name"], "r");
- if (!$handle) {
- redirectSportsManagerURL('&task=admin_spieler', JText::_('COM_SPORTSMANAGER_COULD_NOT_OPEN_FILE'));
-
- return;
- }
- if (feof($handle)) {
- redirectSportsManagerURL('&task=admin_spieler', JText::_('COM_SPORTSMANAGER_FILE_IS_EMPTY'));
-
- return;
- }
-
- $titelzeile = chop(utf8_encode(fgets($handle, 4096)));
- if (substr($titelzeile, 0, 4) == "sep=") {
- $trennzeichen = substr($titelzeile, 4);
- if ($trennzeichen == "") // TAB am Ende wird aus irgendwelchen Gründen weggekürzt
- $trennzeichen = "\t";
- $titelzeile = chop(utf8_encode(fgets($handle, 4096)));
- }
- else if ($titelzeile == "NAME#VORNAME#GESCHLECHT#VEREIN#STRASSE#PLZ/ORT#TELEFON#FAX#MOBILE#EMAIL#BEMERKUNG#SPIELERPASS#GEBURTSDATUM")
- $trennzeichen = "#";
- else if (strpos($titelzeile, "\t") !== false)
- $trennzeichen = "\t";
- else if (strpos($titelzeile, ";") !== false)
- $trennzeichen = ";";
- else
- $trennzeichen = ",";
-
- $spalte = array();
-
- if (substr($titelzeile, 0, 14) == ";All licensees" || substr($titelzeile, 0, 24) == ";All validated licensees") {
- // ITSF-Export
- $lizenz_import = true;
- $buffer = $titelzeile;
- while (!feof($handle) && strpos($buffer, "Profession") === false)
- $buffer = chop(utf8_encode(fgets($handle, 4096)));
- $spalte["nachname"] = 3;
- $spalte["vorname"] = 2;
- $spalte["geschlecht"] = 1;
- $spalte["spielernr"] = 6;
- $spalte["lizenznr"] = 0;
- $spalte["geburtsjahr"] = 5;
- }
- else {
- $lizenz_import = false;
- $titel = explode($trennzeichen, strtolower($titelzeile));
-
- foreach ($titel as $index => $bezeichnung) {
- $bezeichnung = trim($bezeichnung);
- $len = strlen($bezeichnung);
- if ($len >= 2 && $bezeichnung[0] == '"' && $bezeichnung[$len - 1] == '"')
- $bezeichnung = trim(str_replace('""', '"', substr($bezeichnung, 1, $len - 2)));
-
- if ($bezeichnung == "name" || $bezeichnung == "nachname")
- $spalte["nachname"] = $index;
- else if ($bezeichnung == "vorname")
- $spalte["vorname"] = $index;
- else if ($bezeichnung == "name, vorname" || $bezeichnung == "name,vorname")
- $spalte["name,vorname"] = $index;
- else if ($bezeichnung == "pseudonym")
- $spalte["pseudonym"] = $index;
- else if ($bezeichnung == "geschlecht" || $bezeichnung == "anrede")
- $spalte["geschlecht"] = $index;
- else if ($bezeichnung == "spielernr" || $bezeichnung == "spielernr." || $bezeichnung == "spielerpass")
- $spalte["spielernr"] = $index;
- else if ($bezeichnung == "spielernr alt" || $bezeichnung == "spielernr. alt" || $bezeichnung == "spielernr_alt")
- $spalte["spielernr_alt"] = $index;
- else if ($bezeichnung == "lizenznr" || $bezeichnung == "lizenznr.")
- $spalte["lizenznr"] = $index;
- else if ($bezeichnung == "organisation")
- $spalte["organisation"] = $index;
- else if ($bezeichnung == "vereinssitz")
- $spalte["vereinssitz"] = $index;
- else if ($bezeichnung == "vereinsname" || $bezeichnung == "verein")
- $spalte["vereinsname"] = $index;
- else if ($bezeichnung == "mannschaft" || $bezeichnung == "teamname")
- $spalte["teamname"] = $index;
- else if ($bezeichnung == "geburtsdatum")
- $spalte["geburtsdatum"] = $index;
- else if ($bezeichnung == "geburtsjahr")
- $spalte["geburtsjahr"] = $index;
- else if ($bezeichnung == "email" || $bezeichnung == "e-mail")
- $spalte["email"] = $index;
- else if (substr($bezeichnung, 0, 4) == "stra")
- $spalte["strasse"] = $index;
- else if ($bezeichnung == "plz/ort")
- $spalte["plz/ort"] = $index;
- else if ($bezeichnung == "plz")
- $spalte["plz"] = $index;
- else if ($bezeichnung == "ort")
- $spalte["ort"] = $index;
- else if ($bezeichnung == "landeskennung")
- $spalte["landeskennung"] = $index;
- else if ($bezeichnung == "telefon")
- $spalte["telefon"] = $index;
- else if ($bezeichnung == "mobil")
- $spalte["mobil"] = $index;
- else if ($bezeichnung == "beruf")
- $spalte["beruf"] = $index;
- else if ($bezeichnung == "austritt" || $bezeichnung == "ausgetreten")
- $spalte["ausgetreten"] = $index;
- else if ($bezeichnung == "mitgliedsstatus")
- $spalte["mitgliedsstatus"] = $index;
- }
-
- if (((!isset($spalte["nachname"]) || !isset($spalte["vorname"])) && !isset($spalte["name,vorname"])) || !isset($spalte["spielernr"])) {
- redirectSportsManagerURL('&task=admin_spieler', "Die übergebene Datei ist keine Spielerdatei.");
-
- return;
- }
- }
-
- $session_id = date('Y-m-d H:i:s');
-
-// $veranstalter_import = array();
-
- while (!feof($handle)) {
- $buffer = chop(utf8_encode(fgets($handle, 4096)));
- $daten = explode($trennzeichen, $buffer);
-
- foreach ($daten as $index => $wert) {
- $wert = trim($wert);
- $len = strlen($wert);
- if ($len < 2 || $wert[$len - 1] != '"' || !($wert[0] == '"' || ($wert[0] == '=' && $wert[1] == '"')))
- $daten[$index] = $wert;
- else if ($wert[0] == '"')
- $daten[$index] = trim(str_replace('""', '"', substr($wert, 1, $len - 2)));
- else
- $daten[$index] = trim(str_replace('""', '"', substr($wert, 2, $len - 3)));
- }
-
- if (isset($spalte["vorname"]) && isset($spalte["nachname"]) && isset($daten[$spalte["vorname"]]) && isset($daten[$spalte["nachname"]])) {
- $nachname = $daten[$spalte["nachname"]];
- $vorname = $daten[$spalte["vorname"]];
- }
- else if (isset($spalte["name,vorname"]) && isset($daten[$spalte["name,vorname"]])) {
- $pos = strpos($daten[$spalte["name,vorname"]], ",");
- if ($pos === false)
- continue;
- $nachname = trim(substr($daten[$spalte["name,vorname"]], 0, $pos));
- $vorname = trim(substr($daten[$spalte["name,vorname"]], $pos + 1));
- }
- else
- continue;
-
- if ($vorname == "" || $nachname == "")
- continue;
-
- $mitgliedsstatus = 1;
- if (isset($spalte["mitgliedsstatus"]) && isset($daten[$spalte["mitgliedsstatus"]]) && !empty($daten[$spalte["mitgliedsstatus"]])) {
- $s = strtolower($daten[$spalte["mitgliedsstatus"]]);
- if ($s == "ausgetreten")
- $mitgliedsstatus = 0;
- else if ($s == "passiv")
- $mitgliedsstatus = 3;
- else if (substr($s, 0, 9) == "eingeschr")
- $mitgliedsstatus = 2;
- }
- else if (isset($spalte["ausgetreten"]) && isset($daten[$spalte["ausgetreten"]]) && !empty($daten[$spalte["ausgetreten"]])) {
- if (strtolower($daten[$spalte["ausgetreten"]]) == "ja")
- $mitgliedsstatus = 0;
- }
-
- if ($mitgliedsstatus == 0)
- continue;
-
- $geschlecht = isset($spalte["geschlecht"]) && isset($daten[$spalte["geschlecht"]]) ? (($daten[$spalte["geschlecht"]][0] == "M" || $daten[$spalte["geschlecht"]][0] == "m" || $daten[$spalte["geschlecht"]][0] == "H" || $daten[$spalte["geschlecht"]][0] == "h") ? "M" : "W") : "M";
- $spielernr = isset($spalte["spielernr"]) && isset($daten[$spalte["spielernr"]]) ? trim($daten[$spalte["spielernr"]]) : "";
- if (!empty($spielernr) && !ctype_digit(substr($spielernr, strlen($spielernr) - 1, 1)))
- $spielernr = "";
- $spielernr_alt = isset($spalte["spielernr_alt"]) && isset($daten[$spalte["spielernr_alt"]]) ? trim($daten[$spalte["spielernr_alt"]]) : "";
- $lizenznr = isset($spalte["lizenznr"]) && isset($daten[$spalte["lizenznr"]]) ? $daten[$spalte["lizenznr"]] : "";
- if (!empty($lizenznr) && !ctype_digit(substr($lizenznr, strlen($lizenznr) - 1, 1)))
- $lizenznr = "";
- $pseudonym = isset($spalte["pseudonym"]) && isset($daten[$spalte["pseudonym"]]) ? $daten[$spalte["pseudonym"]] : "";
- $organisation = isset($spalte["organisation"]) && isset($daten[$spalte["organisation"]]) ? $daten[$spalte["organisation"]] : "";
- $vereinssitz = isset($spalte["vereinssitz"]) && isset($daten[$spalte["vereinssitz"]]) ? $daten[$spalte["vereinssitz"]] : "";
- $vereinsname = isset($spalte["vereinsname"]) && isset($daten[$spalte["vereinsname"]]) ? $daten[$spalte["vereinsname"]] : "";
- $geburtsdatum = isset($spalte["geburtsdatum"]) && isset($daten[$spalte["geburtsdatum"]]) ? normalisiertesDatum($daten[$spalte["geburtsdatum"]]) : null;
- $geburtsjahr = isset($spalte["geburtsjahr"]) && isset($daten[$spalte["geburtsjahr"]]) ? $daten[$spalte["geburtsjahr"]] : null;
- if (empty($geburtsjahr) || !ctype_digit($geburtsjahr) || $geburtsjahr < 1800)
- $geburtsjahr = null;
- $email = isset($spalte["email"]) && isset($daten[$spalte["email"]]) ? $daten[$spalte["email"]] : "";
- $strasse = isset($spalte["strasse"]) && isset($daten[$spalte["strasse"]]) ? $daten[$spalte["strasse"]] : "";
- if (isset($spalte["plz/ort"]) && isset($daten[$spalte["plz/ort"]])) {
- $pos = strpos($daten[$spalte["plz/ort"]], ' ');
- if ($pos == false) {
- $plz = "";
- $ort = "";
- }
- else {
- $plz = substr($daten[$spalte["plz/ort"]], 0, $pos);
- $ort = substr($daten[$spalte["plz/ort"]], $pos + 1);
- }
- }
- else {
- $plz = "";
- $ort = "";
- }
- if (isset($spalte["plz"]))
- $plz = isset($daten[$spalte["plz"]]) ? $daten[$spalte["plz"]] : "";
- if (isset($spalte["ort"]))
- $ort = isset($daten[$spalte["ort"]]) ? $daten[$spalte["ort"]] : "";
- $landeskennung = isset($spalte["landeskennung"]) && isset($daten[$spalte["landeskennung"]]) ? $daten[$spalte["landeskennung"]] : "";
- $telefon = isset($spalte["telefon"]) && isset($daten[$spalte["telefon"]]) ? $daten[$spalte["telefon"]] : "";
- $mobil = isset($spalte["mobil"]) && isset($daten[$spalte["mobil"]]) ? $daten[$spalte["mobil"]] : "";
- $beruf = isset($spalte["beruf"]) && isset($daten[$spalte["beruf"]]) ? $daten[$spalte["beruf"]] : "";
-
- $query = "INSERT #__sportsmanager_spieler_import"
- . "\n SET session_id = '" . $db->escape($session_id) . "',"
- . "\n vorname = '" . $db->escape($vorname) . "',"
- . "\n nachname = '" . $db->escape($nachname) . "'";
- if (isset($spalte["spielernr"]))
- $query .= ",\n spielernr = '" . $db->escape($spielernr) . "'";
- if (isset($spalte["spielernr_alt"]))
- $query .= ",\n spielernr_alt = '" . $db->escape($spielernr_alt) . "'";
- if (isset($spalte["lizenznr"]))
- $query .= ",\n lizenznr = '" . $db->escape($lizenznr) . "'";
- if (isset($spalte["pseudonym"]))
- $query .= ",\n pseudonym = '" . $db->escape($pseudonym) . "'";
- $query .= ",\n geschlecht = '" . $db->escape($geschlecht) . "'";
- if (isset($spalte["geburtsdatum"]))
- $query .= ",\n geburtsdatum = " . ($geburtsdatum == null ? "NULL" : ("'" . $db->escape($geburtsdatum) . "'"));
- if (isset($spalte["geburtsjahr"]) || isset($spalte["geburtsdatum"]))
- $query .= ",\n geburtsjahr = " . ($geburtsjahr == null ? ($geburtsdatum == null ? "NULL" : ("YEAR('" . $db->escape($geburtsdatum) . "')")) : ("'" . $db->escape($geburtsjahr) . "'"));
- if (isset($spalte["strasse"]))
- $query .= ",\n strasse = '" . $db->escape($strasse) . "'";
- if (isset($spalte["plz"]))
- $query .= ",\n plz = '" . $db->escape($plz) . "'";
- if (isset($spalte["ort"]))
- $query .= ",\n ort = '" . $db->escape($ort) . "'";
- if (isset($spalte["landeskennung"]))
- $query .= ",\n landeskennung = '" . $db->escape($landeskennung) . "'";
- if (isset($spalte["telefon"]))
- $query .= ",\n telefon = '" . $db->escape($telefon) . "'";
- if (isset($spalte["mobil"]))
- $query .= ",\n mobil = '" . $db->escape($mobil) . "'";
- if (isset($spalte["email"]))
- $query .= ",\n email = '" . $db->escape($email) . "'";
- if (isset($spalte["vereinsname"]))
- $query .= ",\n vereinsname = '" . $db->escape($vereinsname) . "'";
- if (isset($spalte["vereinssitz"]))
- $query .= ",\n vereinssitz = '" . $db->escape($vereinssitz) . "'";
- if (isset($spalte["organisation"]))
- $query .= ",\n veranstalterbezeichnung = '" . $db->escape($organisation) . "'";
- $query .= ",\n mitgliedsstatus = '" . $mitgliedsstatus . "'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
-// if (!isset($veranstalter_import[$organisation]))
-// $veranstalter_import[$organisation] = TRUE;
- }
- fclose($handle);
-
- if ($lizenz_import) {
- $query = "SELECT COUNT(*)"
- . "\n FROM #__sportsmanager_spieler_import"
- . "\n INNER JOIN #__sportsmanager_spieler USING (spielernr)"
- . "\n WHERE session_id = '" . $db->escape($session_id) . "' AND #__sportsmanager_spieler_import.spielernr <> '' AND #__sportsmanager_spieler_import.lizenznr <> ''";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $lizenzen_aktualisiert = $db->loadResult();
-
- $query = "UPDATE #__sportsmanager_spieler_import"
- . "\n INNER JOIN #__sportsmanager_spieler USING (spielernr)"
- . "\n SET #__sportsmanager_spieler.lizenznr = #__sportsmanager_spieler_import.lizenznr"
- . "\n WHERE session_id = '" . $db->escape($session_id) . "' AND #__sportsmanager_spieler_import.spielernr <> '' AND #__sportsmanager_spieler_import.lizenznr <> ''";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_spieler_import"
- . "\n WHERE session_id = '" . $db->escape($session_id) . "'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- HTML_sportsmanager_admin::adminImportSpielerBericht($lizenzen_aktualisiert, array(), 0, array(), array(), array(), false, redirectSessionIdEmpty() ? null : redirectSessionIdSetzen());
-
- return;
- }
-
- $spalten = array();
- if (isset($spalte["pseudonym"]))
- array_push($spalten, "pseudonym");
- if (isset($spalte["geschlecht"]))
- array_push($spalten, "geschlecht");
- if (isset($spalte["spielernr"]))
- array_push($spalten, "spielernr");
- if (isset($spalte["spielernr_alt"]))
- array_push($spalten, "spielernr_alt");
- if (isset($spalte["lizenznr"]))
- array_push($spalten, "lizenznr");
- if (isset($spalte["organisation"]))
- array_push($spalten, "organisation");
- if (isset($spalte["vereinssitz"]))
- array_push($spalten, "vereinssitz");
- if (isset($spalte["vereinsname"]))
- array_push($spalten, "vereinsname");
- if (isset($spalte["geburtsdatum"]))
- array_push($spalten, "geburtsdatum");
- if (isset($spalte["geburtsjahr"]) || isset($spalte["geburtsdatum"]))
- array_push($spalten, "geburtsjahr");
- if (isset($spalte["email"]))
- array_push($spalten, "email");
- if (isset($spalte["strasse"]))
- array_push($spalten, "strasse");
- if (isset($spalte["strasse"]))
- array_push($spalten, "strasse");
- if (isset($spalte["plz/ort"]) || isset($spalte["plz"]))
- array_push($spalten, "plz");
- if (isset($spalte["plz/ort"]) || isset($spalte["ort"]))
- array_push($spalten, "ort");
- if (isset($spalte["landeskennung"]))
- array_push($spalten, "landeskennung");
- if (isset($spalte["telefon"]))
- array_push($spalten, "telefon");
- if (isset($spalte["mobil"]))
- array_push($spalten, "mobil");
- array_push($spalten, "mitgliedsstatus");
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_veranstalter";
- if ($beschraenkter_zugriff)
- $query .= "\n WHERE" . veranstalterFilter("veranstalter_id IN");
- $query .= "\n ORDER BY veranstalterbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstalter = $db->loadObjectList();
-
- $query = "SELECT DISTINCT veranstalterbezeichnung"
- . "\n FROM #__sportsmanager_spieler_import"
- . "\n WHERE session_id = '" . $db->escape($session_id) . "'"
- . "\n ORDER BY veranstalterbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstalter_import = $db->loadObjectList();
-
- $veranstalter_zugehoerigkeit = array();
- foreach ($veranstalter_import as $v) {
- $query = "SELECT #__sportsmanager_veranstalter.veranstalter_id, COUNT(*) AS spieler"
- . "\n FROM #__sportsmanager_spieler_import"
- . "\n INNER JOIN #__sportsmanager_spieler ON #__sportsmanager_spieler_import.spielernr = #__sportsmanager_spieler.spielernr"
- . "\n INNER JOIN #__sportsmanager_mitglied_von_verein USING (spieler_id)"
- . "\n INNER JOIN #__sportsmanager_verein USING (verein_id)"
- . "\n INNER JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
- . "\n WHERE session_id = '" . $db->escape($session_id) . "' AND #__sportsmanager_spieler_import.spielernr != '' AND " . (empty($v->veranstalterbezeichnung) ? "ISNULL(#__sportsmanager_spieler_import.veranstalterbezeichnung)" : ("#__sportsmanager_spieler_import.veranstalterbezeichnung = '" . $db->escape($v->veranstalterbezeichnung) . "'")) . " AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten"
- . "\n GROUP BY #__sportsmanager_veranstalter.veranstalter_id"
- . "\n ORDER BY spieler DESC"
- . "\n LIMIT 1";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- if (count($rows) > 0)
- $veranstalter_zugehoerigkeit[$v->veranstalterbezeichnung] = $rows[0]->veranstalter_id;
- }
-
- $query = "SELECT DISTINCT vereinsname, veranstalterbezeichnung"
- . "\n FROM #__sportsmanager_spieler_import"
- . "\n WHERE session_id = '" . $db->escape($session_id) . "'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $vereine_import = $db->loadObjectList();
- $vereine_import_anzahl = count($vereine_import);
-
- $query = "SELECT COUNT(*)"
- . "\n FROM #__sportsmanager_verein";
- if ($beschraenkter_zugriff)
- $query .= "\n WHERE" . veranstalterFilter("veranstalter_id IN");
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $vereine_aktuell_anzahl = $db->loadResult();
-
- if (!$beschraenkter_zugriff && count($vereine_import) == 1) {
- $verein_import = $vereine_import[0]->vereinsname;
- $query = "SELECT #__sportsmanager_verein.verein_id, vereinsname, veranstalterbezeichnung"
- . "\n FROM #__sportsmanager_verein"
- . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
- . "\n WHERE NOT ausgetreten"
- . "\n ORDER BY veranstalterbezeichnung, vereinsname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $vereine = $db->loadObjectList();
- }
- else {
- $verein_import = "";
- $vereine = array();
- }
-
- HTML_sportsmanager_admin::adminImportSpielerDetails($beschraenkter_zugriff, $ansprechpartner_importieren, $veranstalter, $veranstalter_import, $veranstalter_zugehoerigkeit, $session_id, implode(",", $spalten), $verein_import, $vereine, einstellungswert("spielerimport_persoenliche_daten_vorauswahl"), $vereine_import_anzahl, $vereine_aktuell_anzahl);
-}
-
-function adminImportSpielerVorschau() {
- $db =& getDatabase();
- global $_FILES;
- $jinput = JFactory::getApplication()->input;
-
- $ansprechpartner_importieren = einstellungswert("ansprechpartner_importieren");
-
- if (benutzerZugriff("spieler_aendern"))
- $beschraenkter_zugriff = 0;
- else if (($ansprechpartner_importieren == 1 || $ansprechpartner_importieren == 2) && benutzerVeranstalterModerator())
- $beschraenkter_zugriff = 1;
-// else if (benutzerVereinModerator())
-// $beschraenkter_zugriff = 2;
- else
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_spieler');
-
- return;
- }
-
- if (!ini_get('safe_mode'))
- set_time_limit(300);
-
- $session_id = $jinput->get('session_id', '', 'RAW');
-
- $query = "SELECT DISTINCT veranstalterbezeichnung"
- . "\n FROM #__sportsmanager_spieler_import"
- . "\n WHERE session_id = '" . $db->escape($session_id) . "'"
- . "\n ORDER BY veranstalterbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstalter_import = $db->loadObjectList();
-
- $spalten = array();
- foreach (explode(",", $jinput->get('spalten', '', 'RAW')) as $s)
- $spalten[$s] = true;
- $veranstalter = array();
- $n = 1;
- foreach ($veranstalter_import as $v) {
- $veranstalter_id = $jinput->get('veranstalter_' . $n . '_id', '', 'INT');
- if (!$beschraenkter_zugriff || (!empty($veranstalter_id) && benutzerVeranstalterModerator($veranstalter_id)))
- $veranstalter[$v->veranstalterbezeichnung] = $veranstalter_id;
- else
- $veranstalter[$v->veranstalterbezeichnung] = "";
- $n++;
- }
-
- $spielernr_aendern = false;
- if (isset($spalten["spielernr_alt"])) {
- $query = "SELECT nachname, vorname, spielernr, spielernr_alt"
- . "\n FROM #__sportsmanager_spieler_import"
- . "\n WHERE session_id = '" . $db->escape($session_id) . "' AND mitgliedsstatus <> 0 AND spielernr != spielernr_alt AND NOT ISNULL(spielernr) AND NOT ISNULL(spielernr_alt) AND spielernr != '' AND spielernr_alt != ''"
- . "\n LIMIT 1";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spielervergleich = $db->loadObjectList();
-
- if (count($spielervergleich) > 0) {
- $spielernr_aendern = true;
- $s1 = $spielervergleich[0];
- $query = "SELECT nachname, vorname, spielernr"
- . "\n FROM #__sportsmanager_spieler"
- . "\n WHERE spielernr = '$s1->spielernr'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spieler = $db->loadObjectList();
-
- if (count($spieler) > 0) {
- $s2 = $spieler[0];
- if ($s1->vorname == $s2->vorname && $s1->nachname == $s1->nachname) {
- $query = "UPDATE #__sportsmanager_spieler_import"
- . "\n SET spielernr_alt = NULL";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spielernr_aendern = false;
- }
- }
-
- if ($spielernr_aendern) {
- $query = "SELECT nachname, vorname"
- . "\n FROM"
- . "\n (SELECT nachname, vorname, spielernr, spielernr_alt"
- . "\n FROM #__sportsmanager_spieler_import"
- . "\n WHERE session_id = '" . $db->escape($session_id) . "' AND mitgliedsstatus <> 0 AND spielernr != spielernr_alt AND NOT ISNULL(spielernr) AND NOT ISNULL(spielernr_alt) AND spielernr != '' AND spielernr_alt != '') AS import"
- . "\n INNER JOIN"
- . "\n (SELECT spielernr"
- . "\n FROM #__sportsmanager_spieler"
- . "\n ) AS bestand"
- . "\n ON bestand.spielernr = import.spielernr"
- . "\n WHERE NOT EXISTS(SELECT * FROM #__sportsmanager_spieler_import WHERE spielernr_alt = bestand.spielernr AND spielernr != spielernr_alt AND NOT ISNULL(spielernr) AND NOT ISNULL(spielernr_alt) AND spielernr != '' AND spielernr_alt != '')"
- . "\n ORDER BY nachname, vorname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $konflikte = $db->loadObjectList();
-
- if (count($konflikte) > 0) {
- HTML_sportsmanager_admin::adminImportSpielerFehler($konflikte);
-
- return;
- }
- }
- }
- }
-
- $query = "SELECT #__sportsmanager_spieler_import.*, #__sportsmanager_spieler.spieler_id, IF(#__sportsmanager_spieler.nachname != #__sportsmanager_spieler_import.nachname, #__sportsmanager_spieler.nachname, NULL) AS nachname_alt, IF(#__sportsmanager_spieler.vorname != #__sportsmanager_spieler_import.vorname, #__sportsmanager_spieler.vorname, NULL) AS vorname_alt,"
- . "\n IF(#__sportsmanager_spieler_import.spielernr = '', (SELECT COUNT(*) FROM #__sportsmanager_spieler AS t1 WHERE (#__sportsmanager_spieler_import.vorname = t1.vorname AND #__sportsmanager_spieler_import.nachname = t1.nachname AND ((ISNULL(#__sportsmanager_spieler_import.geburtsjahr) AND ISNULL(t1.geburtsjahr)) OR #__sportsmanager_spieler_import.geburtsjahr = t1.geburtsjahr))), 0) AS namensgleich"
- . "\n FROM #__sportsmanager_spieler_import"
- . "\n LEFT JOIN #__sportsmanager_spieler ON #__sportsmanager_spieler_import.spielernr != '' AND " . ($spielernr_aendern ? "IF(NOT ISNULL(#__sportsmanager_spieler_import.spielernr_alt) AND #__sportsmanager_spieler_import.spielernr_alt != '', #__sportsmanager_spieler_import.spielernr_alt = #__sportsmanager_spieler.spielernr, #__sportsmanager_spieler_import.spielernr = #__sportsmanager_spieler.spielernr)" : "#__sportsmanager_spieler_import.spielernr = #__sportsmanager_spieler.spielernr")
- . "\n WHERE session_id = '" . $db->escape($session_id) . "'"
- . "\n HAVING namensgleich > 0 OR NOT ISNULL(nachname_alt) OR NOT ISNULL(vorname_alt)"
- // "namensgleich" kann in der "ORDER"-Anweisung" nicht verwendet werden, da MySQL 5.0.x dies nicht akzeptiert
- . "\n ORDER BY IF(#__sportsmanager_spieler_import.spielernr = '', (SELECT COUNT(*) FROM #__sportsmanager_spieler AS t1 WHERE (#__sportsmanager_spieler_import.vorname = t1.vorname AND #__sportsmanager_spieler_import.nachname = t1.nachname AND ((ISNULL(#__sportsmanager_spieler_import.geburtsjahr) AND ISNULL(t1.geburtsjahr)) OR #__sportsmanager_spieler_import.geburtsjahr = t1.geburtsjahr))), 0) > 0 DESC, nachname, vorname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spieler_import = $db->loadObjectList();
-
- $import_verweigern = false;
- if ($beschraenkter_zugriff) {
- $eintraege_zugeordnet = 0;
- $eintraege_nicht_zugeordnet = 0;
- foreach ($spieler_import as $s) {
- if ($s->namensgleich > 0) {
- $import_verweigern = true;
- break;
- }
- $p1 = $p2 = 100;
- if ($s->nachname_alt != null)
- similar_text($s->nachname, $s->nachname_alt, $p1);
- if ($s->vorname_alt != null)
- similar_text($s->vorname, $s->vorname_alt, $p2);
- if (floor($p1) < 75 && floor($p2) < 75) {
- $p1 = $p2 = 100;
- if ($s->nachname_alt != null)
- similar_text($s->vorname, $s->nachname_alt, $p1);
- if ($s->vorname_alt != null)
- similar_text($s->nachname, $s->vorname_alt, $p2);
- if (floor($p1) < 75 && floor($p2) < 75) {
- $import_verweigern = true;
- break;
- }
- }
- }
- if (!$import_verweigern) {
- $query = "SELECT SUM(IF(ISNULL(spieler_id), 0, 1)) AS zugeordnet, SUM(IF(ISNULL(spieler_id), 1, 0)) AS nicht_zugeordnet"
- . "\n FROM #__sportsmanager_spieler_import"
- . "\n LEFT JOIN #__sportsmanager_spieler ON #__sportsmanager_spieler_import.spielernr != '' AND " . ($spielernr_aendern ? "IF(NOT ISNULL(#__sportsmanager_spieler_import.spielernr_alt) AND #__sportsmanager_spieler_import.spielernr_alt != '', #__sportsmanager_spieler_import.spielernr_alt = #__sportsmanager_spieler.spielernr, #__sportsmanager_spieler_import.spielernr = #__sportsmanager_spieler.spielernr)" : "#__sportsmanager_spieler_import.spielernr = #__sportsmanager_spieler.spielernr")
- . "\n WHERE session_id = '" . $db->escape($session_id) . "'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spieler_zugeordnet = $db->loadObjectList();
-
- if (count($spieler_zugeordnet) > 0 && $spieler_zugeordnet[0]->nicht_zugeordnet > ($spieler_zugeordnet[0]->zugeordnet / 2))
- $import_verweigern = true;
- }
- }
-
- if ($import_verweigern) {
- $query = "DELETE FROM #__sportsmanager_spieler_import"
- . "\n WHERE session_id = '" . $db->escape($session_id) . "'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- HTML_sportsmanager_admin::adminImportSpielerVorschau($import_verweigern, $spieler_import, $veranstalter, $session_id, $jinput->get('persoenliche_daten', 0, 'INT'), $jinput->get('lizenznr_beibehalten', 0, 'INT'), $jinput->get('spalten', '', 'RAW'));
-}
-
-function adminImportSpieler() {
- $db =& getDatabase();
- global $_FILES;
- $jinput = JFactory::getApplication()->input;
-
- $ansprechpartner_importieren = einstellungswert("ansprechpartner_importieren");
-
- if (benutzerZugriff("spieler_aendern"))
- $beschraenkter_zugriff = 0;
- else if (($ansprechpartner_importieren == 1 || $ansprechpartner_importieren == 2) && benutzerVeranstalterModerator())
- $beschraenkter_zugriff = 1;
-// else if (benutzerVereinModerator())
-// $beschraenkter_zugriff = 2;
- else
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_spieler');
-
- return;
- }
-
- if (!ini_get('safe_mode'))
- set_time_limit(300);
-
-
- if (!$beschraenkter_zugriff || $ansprechpartner_importieren != 1)
- $persoenliche_daten = $jinput->get('persoenliche_daten', 0, 'INT'); // 0: "Vor- und Nachname, Geschlecht, Spielernr., Lizenznr.", 1: "Vor- und Nachname, Geschlecht, Spielernr., Lizenznr., Geburtsdatum", "Alle"
- else
- $persoenliche_daten = 0;
- $lizenznr_beibehalten = $jinput->get('lizenznr_beibehalten', 0, 'INT');
-
- $session_id = $jinput->get('session_id', '', 'RAW');
- $query = "SELECT DISTINCT veranstalterbezeichnung"
- . "\n FROM #__sportsmanager_spieler_import"
- . "\n WHERE session_id = '" . $db->escape($session_id) . "'"
- . "\n ORDER BY veranstalterbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstalter_import = $db->loadObjectList();
-
- $spalten = array();
- foreach (explode(",", $jinput->get('spalten', '', 'RAW')) as $s)
- $spalten[$s] = true;
- $veranstalter = array();
- $n = 1;
- $verein_explizit = 0;
- foreach ($veranstalter_import as $v) {
- if (isset($_POST["veranstalter_" . $n . "_id"])) {
- $veranstalter_id = $jinput->get('veranstalter_' . $n . '_id', '', 'INT');
- if (!$beschraenkter_zugriff || (!empty($veranstalter_id) && benutzerVeranstalterModerator($veranstalter_id))) {
- if ($veranstalter_id == "")
- $veranstalter_id = -1;
- else if ($veranstalter_id < 0) {
- $verein_explizit = abs($veranstalter_id);
- break;
- }
- else
- $veranstalter_id = intval($veranstalter_id);
- $veranstalter[$v->veranstalterbezeichnung] = $veranstalter_id;
- }
- else {
- $veranstalter[$v->veranstalterbezeichnung] = -1;
- }
- }
- $n++;
- }
-
- $query = "LOCK TABLES #__sportsmanager_einstellungen READ, #__sportsmanager_spieler WRITE, #__sportsmanager_spieler AS tt1 READ, #__sportsmanager_spieler AS tt2 READ, #__sportsmanager_spieler_import WRITE, #__sportsmanager_spieler_import AS it1 READ, #__sportsmanager_mitglied_von_verein WRITE, #__sportsmanager_mitglied_von_verein AS t1 READ, #__sportsmanager_verein WRITE, #__sportsmanager_veranstalter READ;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- /*
- // TODO: Importinhalt um Spielernummern ergänzen, dann UPDATE aller gegebenen Spalten. So kein Vorgehen Spieler für Spieler erforderlich.
-
- Immer Spieler neu hinzufügen, wenn Spieler über Spielernr. nicht gefunden werden konnte, d.h.
- wenn keine Spielernr. vorhanden, dann Spielernr. generieren
- sonst Spielernr. übernehmen
-
-*/
-
- if (isset($spalten["spielernr_alt"])) {
- $query = "SELECT nachname, vorname"
- . "\n FROM"
- . "\n (SELECT nachname, vorname, spielernr, spielernr_alt"
- . "\n FROM #__sportsmanager_spieler_import"
- . "\n WHERE session_id = '" . $db->escape($session_id) . "' AND mitgliedsstatus <> 0 AND spielernr != spielernr_alt AND NOT ISNULL(spielernr) AND NOT ISNULL(spielernr_alt) AND spielernr != '' AND spielernr_alt != '') AS import"
- . "\n INNER JOIN"
- . "\n (SELECT spielernr"
- . "\n FROM #__sportsmanager_spieler"
- . "\n ) AS bestand"
- . "\n ON bestand.spielernr = import.spielernr"
- . "\n WHERE NOT EXISTS(SELECT * FROM #__sportsmanager_spieler_import AS it1 WHERE spielernr_alt = bestand.spielernr AND spielernr != spielernr_alt AND NOT ISNULL(spielernr) AND NOT ISNULL(spielernr_alt) AND spielernr != '' AND spielernr_alt != '')"
- . "\n ORDER BY nachname, vorname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $konflikte = $db->loadObjectList();
-
- if (count($konflikte) > 0) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- HTML_sportsmanager_admin::adminImportSpielerFehler($konflikte);
-
- return;
- }
-
- $query = "UPDATE #__sportsmanager_spieler"
- . "\n INNER JOIN #__sportsmanager_spieler_import ON NOT ISNULL(spielernr_alt) AND spielernr_alt != '' AND spielernr_alt = #__sportsmanager_spieler.spielernr"
- . "\n SET #__sportsmanager_spieler.spielernr = #__sportsmanager_spieler_import.spielernr"
- . "\n WHERE session_id = '" . $db->escape($session_id) . "' AND mitgliedsstatus <> 0 AND #__sportsmanager_spieler.spielernr = #__sportsmanager_spieler_import.spielernr_alt";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $query = "SELECT IF(EXISTS("
- . "\n SELECT * FROM #__sportsmanager_spieler"
- . "\n INNER JOIN #__sportsmanager_spieler_import ON NOT ISNULL(#__sportsmanager_spieler_import.spielernr) AND #__sportsmanager_spieler_import.spielernr != '' AND #__sportsmanager_spieler_import.spielernr = #__sportsmanager_spieler.spielernr"
- . "\n WHERE #__sportsmanager_spieler_import.geschlecht != #__sportsmanager_spieler.geschlecht OR #__sportsmanager_spieler_import.geburtsjahr != #__sportsmanager_spieler.geburtsjahr"
- . "\n), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $kategorie_potentiell_geaendert = $db->loadResult();
-
- $query = "SELECT #__sportsmanager_spieler_import.*, #__sportsmanager_spieler.spieler_id, IF(#__sportsmanager_spieler.nachname != #__sportsmanager_spieler_import.nachname, #__sportsmanager_spieler.nachname, NULL) AS nachname_alt, IF(#__sportsmanager_spieler.vorname != #__sportsmanager_spieler_import.vorname, #__sportsmanager_spieler.vorname, NULL) AS vorname_alt,"
- . "\n IF(#__sportsmanager_spieler_import.spielernr = '', (SELECT COUNT(*) FROM #__sportsmanager_spieler AS tt1 WHERE (#__sportsmanager_spieler_import.vorname = tt1.vorname AND #__sportsmanager_spieler_import.nachname = tt1.nachname AND ((ISNULL(#__sportsmanager_spieler_import.geburtsjahr) AND ISNULL(tt1.geburtsjahr)) OR #__sportsmanager_spieler_import.geburtsjahr = tt1.geburtsjahr))), 0) AS namensgleich"
- . "\n FROM #__sportsmanager_spieler_import"
- . "\n LEFT JOIN #__sportsmanager_spieler ON #__sportsmanager_spieler_import.spielernr != '' AND #__sportsmanager_spieler_import.spielernr = #__sportsmanager_spieler.spielernr"
- . "\n WHERE session_id = '" . $db->escape($session_id) . "' AND 1 = 1"
- // "namensgleich", "nachname_alt", "vorname_alt" kann in der "ORDER"-Anweisung" nicht verwendet werden, da MySQL 5.0.x dies nicht akzeptiert
- // . "\n ORDER BY IF(#__sportsmanager_spieler_import.spielernr = '', (SELECT COUNT(*) FROM #__sportsmanager_spieler AS tt2 WHERE (#__sportsmanager_spieler_import.vorname = tt2.vorname AND #__sportsmanager_spieler_import.nachname = tt2.nachname AND ((ISNULL(#__sportsmanager_spieler_import.geburtsjahr) AND ISNULL(tt2.geburtsjahr)) OR #__sportsmanager_spieler_import.geburtsjahr = tt2.geburtsjahr))), 0) > 0 DESC, IF(NOT ISNULL(nachname_alt) OR NOT ISNULL(vorname_alt), 0, 1), nachname, vorname";
- . "\n ORDER BY IF(#__sportsmanager_spieler_import.spielernr = '', (SELECT COUNT(*) FROM #__sportsmanager_spieler AS tt2 WHERE (#__sportsmanager_spieler_import.vorname = tt2.vorname AND #__sportsmanager_spieler_import.nachname = tt2.nachname AND ((ISNULL(#__sportsmanager_spieler_import.geburtsjahr) AND ISNULL(tt2.geburtsjahr)) OR #__sportsmanager_spieler_import.geburtsjahr = tt2.geburtsjahr))), 0) > 0 DESC, IF(NOT ISNULL(IF(#__sportsmanager_spieler.nachname != #__sportsmanager_spieler_import.nachname, #__sportsmanager_spieler.nachname, NULL)) OR NOT ISNULL(IF(#__sportsmanager_spieler.vorname != #__sportsmanager_spieler_import.vorname, #__sportsmanager_spieler.vorname, NULL)), 0, 1), nachname, vorname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spieler_import = $db->loadObjectList();
-
- if (empty($verein_explizit)) {
- // Alle Vereinsmitgliedschaften des Verbandes vorsorglich beenden, damit diese beim Import ggf. wieder aktiviert werden können
- foreach ($veranstalter as $v => $veranstalterid) {
- if ($veranstalterid != -1) {
- $query = "UPDATE #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id)"
- . "\n SET mitgliedsstatus = 0,"
- . "\n #__sportsmanager_mitglied_von_verein.ausgetreten = TRUE"
- . "\n WHERE " . ($veranstalterid == 0 ? "ISNULL(veranstalter_id)" : "veranstalter_id = $veranstalterid");
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
- else if ($verein_explizit != -1) {
- $query = "SELECT * FROM #__sportsmanager_verein WHERE verein_id = $verein_explizit";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id!");
-
- // Alle Vereinsmitgliedschaften des Vereins vorsorglich beenden, damit diese beim Import ggf. wieder aktiviert werden können
- $query = "UPDATE #__sportsmanager_mitglied_von_verein"
- . "\n SET mitgliedsstatus = 0,"
- . "\n ausgetreten = TRUE"
- . "\n WHERE verein_id = $verein_explizit";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else {
- $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") . ");";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
- }
-
- // Nächste Spieler-Nr. ermitteln
- $query = "SELECT * FROM #__sportsmanager_einstellungen WHERE name = 'basis_spielernr'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) == 0)
- die("Fehler: Inkonsistenz in den MySQL-Tabellen!");
- $naechste_spielernr = $rows[0]->wert;
- if (empty($naechste_spielernr))
- $naechste_spielernr = "1";
-
- for ($i = strlen($naechste_spielernr) - 1; $i >= 0; $i--) {
- if ($naechste_spielernr[$i] < '0' || $naechste_spielernr[$i] > '9')
- break;
- }
- $spielernr_praefix = substr($naechste_spielernr, 0, $i + 1);
-
- $query = "SELECT spielernr"
- . "\n FROM #__sportsmanager_spieler"
- . "\n WHERE Left(spielernr, " . strlen($spielernr_praefix) . ") = '" . $db->escape($spielernr_praefix) . "'"
- . "\n ORDER BY LENGTH(spielernr) DESC, spielernr DESC"
- . "\n LIMIT 1";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) > 0) {
- $naechste_spielernr = $rows[0]->spielernr;
- for ($i = strlen($naechste_spielernr) - 1; $i >= 0; $i--) {
- if ($naechste_spielernr[$i] < '0' || $naechste_spielernr[$i] > '9') {
- $naechste_spielernr = substr($naechste_spielernr, 0, $i + 1) . "1" . substr($naechste_spielernr, $i + 1);
- break;
- }
- if ($naechste_spielernr[$i] <= '8') {
- $naechste_spielernr[$i] = $naechste_spielernr[$i] + 1;
- break;
- }
- // $naechste_spielernr[$i] == '9'
- $naechste_spielernr[$i] = '0';
- }
- if ($i < 0)
- $naechste_spielernr = "1" . $naechste_spielernr;
- }
-
- $aktualisierungen = 0;
- $spielerHinzugefuegt = array();
- $vereineHinzugefuegt = 0;
- $vereineManuell = array();
- $spielerIdsHinzugefuegt = array();
-
- $organisation = -1;
- $veranstalterid = -1;
- foreach ($spieler_import as $t) {
- // wenn der Spieler ausgetreten ist, dann nicht prüfen
- $mitgliedsstatus = $t->mitgliedsstatus;
- if ($mitgliedsstatus == 0)
- continue;
-
- if (empty($verein_explizit)) {
- if ($organisation != $t->veranstalterbezeichnung) {
- $organisation = $t->veranstalterbezeichnung;
- $veranstalterid = isset($veranstalter[$organisation]) ? $veranstalter[$organisation] : -1;
- }
- if ($veranstalterid == -1)
- continue;
- }
-
- $spieler_id = $t->spieler_id;
- $nachname = $t->nachname;
- $vorname = $t->vorname;
- $name = $t->vorname . " " . $t->nachname;
- $geschlecht = $t->geschlecht;
- $spielernr = $t->spielernr;
- $lizenznr = $t->lizenznr;
- $pseudonym = $t->pseudonym;
- $vereinsname = $t->vereinsname;
- $geburtsdatum = $t->geburtsdatum;
- $geburtsjahr = $t->geburtsjahr;
- $email = $t->email;
- $strasse = $t->strasse;
- $plz = $t->plz;
- $ort = $t->ort;
- $landeskennung = $t->landeskennung;
- $telefon = $t->telefon;
- $mobil = $t->mobil;
- $spielernr = $t->spielernr;
-
- if ($spieler_id == null && !empty($spielernr) && isset($spielerIdsHinzugefuegt[$spielernr]))
- $spieler_id = $spielerIdsHinzugefuegt[$spielernr]; // Wenn Spieler schon hinzugefügt wurde, dann vorhandenen Eintrag verwenden; verhindert doppeltes Hinterlegen von Spielernr.
-
- // Wenn kein Vereinsname angegeben ist, aber eine Organisation gewählt wurde, dann Spieler nicht ergänzen
- if ($spieler_id == null && empty($vereinsname) && empty($verein_explizit))
- continue;
-
- // Spieler aktualisieren bzw. ergänzen
- if ($spieler_id != null) { // Spieler aktualisieren
- $query = "UPDATE #__sportsmanager_spieler"
- . "\n SET vorname = '" . $db->escape($vorname) . "',"
- . "\n nachname = '" . $db->escape($nachname) . "',"
- . "\n spielernr = '" . $db->escape($spielernr) . "'";
- if (isset($spalten["lizenznr"]) && ($lizenznr_beibehalten == 0 || !empty($lizenznr)))
- $query .= ",\n lizenznr = '" . $db->escape($lizenznr) . "'";
- if (isset($spalten["pseudonym"]))
- $query .= ",\n pseudonym = '" . $db->escape($pseudonym) . "'";
- if (isset($spalten["geschlecht"]))
- $query .= ",\n geschlecht = '" . $db->escape($geschlecht) . "'";
- if (isset($spalten["geburtsdatum"]) || isset($spalten["geburtsjahr"]))
- $query .= ",\n geburtsjahr = " . ($geburtsjahr == null ? "NULL" : ("'" . $db->escape($geburtsjahr) . "'"));
- if (($persoenliche_daten == 1 || $persoenliche_daten == 2) && isset($spalten["geburtsdatum"]))
- $query .= ",\n geburtsdatum = " . ($geburtsdatum == null ? "NULL" : ("'" . $db->escape($geburtsdatum) . "'"));
- if ($persoenliche_daten == 2) {
- if (isset($spalten["strasse"]))
- $query .= ",\n strasse = '" . $db->escape($strasse) . "'";
- if (isset($spalten["plz"]))
- $query .= ",\n plz = '" . $db->escape($plz) . "'";
- if (isset($spalten["ort"]))
- $query .= ",\n ort = '" . $db->escape($ort) . "'";
- if (isset($spalten["landeskennung"]))
- $query .= ",\n landeskennung = '" . $db->escape($landeskennung) . "'";
- if (isset($spalten["telefon"]))
- $query .= ",\n telefon = '" . $db->escape($telefon) . "'";
- if (isset($spalten["mobil"]))
- $query .= ",\n mobil = '" . $db->escape($mobil) . "'";
- if (isset($spalten["email"]))
- $query .= ",\n email = '" . $db->escape($email) . "'";
- }
- $query .= "\n WHERE spieler_id = $spieler_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- // $bearbeitungsVerlauf .= "-> Spielerdaten aktualisiert ";
-
- $aktualisierungen++;
- }
- else { // Spieler ergänzen
- // Neuen Spieler anlegen
- $query = "INSERT #__sportsmanager_spieler"
- . "\n SET vorname = '" . $db->escape($vorname) . "'"
- . ",\n nachname = '" . $db->escape($nachname) . "'"
- . ",\n spielernr = '" . $db->escape(!empty($spielernr) ? $spielernr : $naechste_spielernr) . "'"
- . ",\n lizenznr = '" . $db->escape($lizenznr) . "'"
- . ",\n geschlecht = '" . $db->escape($geschlecht) . "'"
- . ",\n geburtsjahr = " . ($geburtsjahr == null ? "NULL" : ("'" . $db->escape($geburtsjahr) . "'"));
- if ($persoenliche_daten == 1 || $persoenliche_daten == 2)
- $query .= ",\n geburtsdatum = " . ($geburtsdatum == null ? "NULL" : ("'" . $db->escape($geburtsdatum) . "'"));
- if ($persoenliche_daten == 2)
- $query .= ",\n pseudonym = '" . $db->escape($pseudonym) . "'"
- . ",\n strasse = '" . $db->escape($strasse) . "'"
- . ",\n plz = '" . $db->escape($plz) . "'"
- . ",\n ort = '" . $db->escape($ort) . "'"
- . ",\n landeskennung = '" . $db->escape($landeskennung) . "'"
- . ",\n telefon = '" . $db->escape($telefon) . "'"
- . ",\n mobil = '" . $db->escape($mobil) . "'"
- . ",\n email = '" . $db->escape($email) . "'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spieler_id = $db->insertid();
-
- array_push($spielerHinzugefuegt, array($nachname, $vorname, !empty($spielernr) ? $spielernr : $naechste_spielernr));
- $spielerIdsHinzugefuegt[!empty($spielernr) ? $spielernr : $naechste_spielernr] = $spieler_id;
-
- if (empty($spielernr)) {
- do {
- for ($i = strlen($naechste_spielernr) - 1; $i >= 0; $i--) {
- if ($naechste_spielernr[$i] < '0' || $naechste_spielernr[$i] > '9') {
- $naechste_spielernr = substr($naechste_spielernr, 0, $i + 1) . "1" . substr($naechste_spielernr, $i + 1);
- break;
- }
- if ($naechste_spielernr[$i] <= '8') {
- $naechste_spielernr[$i] = $naechste_spielernr[$i] + 1;
- break;
- }
- // $naechste_spielernr[$i] == '9'
- $naechste_spielernr[$i] = '0';
- }
- if ($i < 0)
- $naechste_spielernr = "1" . $naechste_spielernr;
- } while (isset($spielerIdsHinzugefuegt[$naechste_spielernr]));
- }
- }
-
- // Wenn nicht ausgetreten und Vereisname angegeben, dann Vereinsmitgliedschaft herstellen
- if (!empty($vereinsname) || !empty($verein_explizit)) {
- // Prüfen, ob Vereinsmitgliedschaft besteht
- if (!empty($verein_explizit)) {
- $query = "SELECT spieler_id"
- . "\n FROM #__sportsmanager_mitglied_von_verein"
- . "\n WHERE spieler_id = $spieler_id AND #__sportsmanager_mitglied_von_verein.verein_id = $verein_explizit";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- if (count($rows) > 0) {
- $query = "UPDATE #__sportsmanager_mitglied_von_verein"
- . "\n SET mitgliedsstatus = '$mitgliedsstatus',"
- . "\n ausgetreten = FALSE"
- . "\n WHERE spieler_id = $spieler_id AND verein_id = $verein_explizit";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else {
- // Vereinsmitgliedschaft besteht nicht, deshalb prüfen, ob Verein überhaupt existiert
- $query = "SELECT verein_id"
- . "\n FROM #__sportsmanager_verein"
- . "\n WHERE verein_id = $verein_explizit";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- // Wenn Verein existiert, dann Mitgliedschaft ergänzen
- if (count($rows) > 0) {
- $query = "INSERT #__sportsmanager_mitglied_von_verein"
- . "\n SET spieler_id = $spieler_id, verein_id = $verein_explizit, mitgliedsstatus = '$mitgliedsstatus', ausgetreten = FALSE";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
- else {
- $query = "SELECT spieler_id"
- . "\n FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein"
- . "\n WHERE spieler_id = $spieler_id AND vereinsname = '" . $db->escape($vereinsname) . "' AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id"
- . " AND " . ($veranstalterid == 0 ? "ISNULL(veranstalter_id)" : "veranstalter_id = $veranstalterid");
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- if (count($rows) > 0) {
- $query = "UPDATE #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein"
- . "\n SET mitgliedsstatus = '$mitgliedsstatus', #__sportsmanager_mitglied_von_verein.ausgetreten = FALSE"
- . "\n WHERE spieler_id = $spieler_id AND vereinsname = '" . $db->escape($vereinsname) . "' AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id"
- . " AND " . ($veranstalterid == 0 ? "ISNULL(veranstalter_id)" : "veranstalter_id = $veranstalterid");
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else {
- // Vereinsmitgliedschaft besteht nicht, deshalb prüfen, ob Verein überhaupt existiert
- $query = "SELECT verein_id"
- . "\n FROM #__sportsmanager_verein"
- . "\n WHERE vereinsname = '" . $db->escape($vereinsname) . "'"
- . " AND " . ($veranstalterid == 0 ? "ISNULL(veranstalter_id)" : "veranstalter_id = $veranstalterid");
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- // Wenn mehrere Vereine existieren, dann Aktualisierung auslassen
- if (count($rows) > 1) {
- array_push($vereineManuell, $name);
- // $bearbeitungsVerlauf .= "-> Vereinsaktualiesierung übersprungen, da mehrere Vereine mit Namen existieren";
- // echo "(" . $name . ", " . $spielernr . ") " . $bearbeitungsVerlauf . "
";
- continue;
- }
- // Wenn Verein nicht existiert, dann ergänzen
- if (count($rows) == 0) {
- $query = "INSERT #__sportsmanager_verein"
- . "\n SET vereinsname = '" . $db->escape($vereinsname) . "'";
- if (!empty($vereinssitz))
- $query .= ",\n vereinssitz = '" . $db->escape($vereinssitz) . "'";
- $query .= ",\n veranstalter_id = " . ($veranstalterid == 0 ? "NULL" : "$veranstalterid");
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $verein_id = $db->insertid();
- $vereineHinzugefuegt++;
- // $bearbeitungsVerlauf .= "-> Verein ergänzt ";
- }
- // Sonst Verein merken
- else {
- $verein_id = $rows[0]->verein_id;
- // $bearbeitungsVerlauf .= "-> Verein gefunden ";
- }
-
- // Vereinsmitgliedschaft setzen
- $query = "INSERT #__sportsmanager_mitglied_von_verein"
- . "\n SET spieler_id = $spieler_id, verein_id = $verein_id, mitgliedsstatus = '$mitgliedsstatus', ausgetreten = FALSE";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- // $bearbeitungsVerlauf .= "-> Vereinsmitgliedschaft ergänzt ";
- }
- }
- }
- // echo "(" . $name . ", " . $spielernr . ") " . $bearbeitungsVerlauf . "
";
- }
-
- $ausgetreteneVereineMitAktivenMitgliedern = array();
- /*
- if ($verein_explizit != 0) {
- // Alle Spieler austreten lassen, die nicht aktives Mitglied irgendeines Vereins sind, aber Mitglied des importierten Vereins waren
- $query = "UPDATE #__sportsmanager_spieler"
- . "\n SET ausgetreten = TRUE"
- . "\n WHERE (SELECT COUNT(*) FROM #__sportsmanager_mitglied_von_verein WHERE #__sportsmanager_mitglied_von_verein.verein_id = $verein_explizit AND #__sportsmanager_mitglied_von_verein.spieler_id = #__sportsmanager_spieler.spieler_id) > 0"
- . " AND (SELECT COUNT(*) FROM #__sportsmanager_mitglied_von_verein AS t1 WHERE t1.spieler_id = #__sportsmanager_spieler.spieler_id AND NOT t1.ausgetreten) = 0"
- . " AND NOT ausgetreten";
- $db->setQuery( $query );
- if (!$result = $db->execute()) { die($db->stderr(true)); }
- }
- else {
- // Alle Spieler austreten lassen, die nicht aktives Mitglied irgendeines Vereins sind, aber Mitglied in einem Verein des Verbandes waren oder sind
- foreach ($veranstalter as $v => $veranstalterid) {
- if ($veranstalterid != -1) {
- $query = "UPDATE #__sportsmanager_spieler"
- . "\n SET ausgetreten = TRUE"
- . "\n WHERE (SELECT COUNT(*) FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein WHERE #__sportsmanager_mitglied_von_verein.spieler_id = #__sportsmanager_spieler.spieler_id AND #__sportsmanager_mitglied_von_verein.verein_id = #__sportsmanager_verein.verein_id AND " . ($veranstalterid == 0 ? "ISNULL(veranstalter_id)" : "veranstalter_id = $veranstalterid") . ") > 0"
- . " AND (SELECT COUNT(*) FROM #__sportsmanager_mitglied_von_verein AS t1 WHERE t1.spieler_id = #__sportsmanager_spieler.spieler_id AND NOT t1.ausgetreten) = 0"
- . " AND NOT ausgetreten";
- $db->setQuery( $query );
- if (!$result = $db->execute()) { die($db->stderr(true)); }
- }
- }
- */
-
- if ($verein_explizit == 0) {
- // Vereine der Organisation als ausgetreten notieren, die keine aktiven Mitglieder haben
- foreach ($veranstalter as $v => $veranstalterid) {
- if ($veranstalterid != -1) {
- $query = "UPDATE #__sportsmanager_verein"
- . "\n SET ausgetreten = TRUE"
- . "\n WHERE NOT EXISTS(SELECT * FROM #__sportsmanager_mitglied_von_verein WHERE #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten) AND NOT ausgetreten AND " . ($veranstalterid == 0 ? "ISNULL(veranstalter_id)" : "veranstalter_id = $veranstalterid");
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
-
- // Vereine der Organisation aus nicht ausgetreten notieren, die aktive Mitglieder haben, aber als ausgetreten notiert sind
- foreach ($veranstalter as $v => $veranstalterid) {
- if ($veranstalterid != -1) {
- $query = "SELECT vereinsname"
- . "\n FROM #__sportsmanager_verein"
- . "\n WHERE EXISTS(SELECT * FROM #__sportsmanager_mitglied_von_verein WHERE #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten) AND ausgetreten AND " . ($veranstalterid == 0 ? "ISNULL(veranstalter_id)" : "veranstalter_id = $veranstalterid");
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $query = "UPDATE #__sportsmanager_verein"
- . "\n SET ausgetreten = FALSE"
- . "\n WHERE EXISTS(SELECT * FROM #__sportsmanager_mitglied_von_verein WHERE #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten) AND ausgetreten AND " . ($veranstalterid == 0 ? "ISNULL(veranstalter_id)" : "veranstalter_id = $veranstalterid");
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- foreach ($rows as $row)
- array_push($ausgetreteneVereineMitAktivenMitgliedern, $row->vereinsname);
-
- $query = "SELECT DISTINCT verein_id, #__sportsmanager_spieler_import.vereinsname, #__sportsmanager_spieler_import.vereinssitz"
- . "\n FROM #__sportsmanager_spieler_import"
- . "\n INNER JOIN #__sportsmanager_verein ON #__sportsmanager_verein.vereinsname = #__sportsmanager_spieler_import.vereinsname"
- . "\n WHERE session_id = '" . $db->escape($session_id) . "' AND " . ($v == null ? "ISNULL(#__sportsmanager_spieler_import.veranstalterbezeichnung)" : ("#__sportsmanager_spieler_import.veranstalterbezeichnung = '" . $db->escape($v) . "'")) . " AND #__sportsmanager_spieler_import.vereinsname != '' AND #__sportsmanager_spieler_import.vereinssitz != '' AND (ISNULL(#__sportsmanager_verein.vereinssitz) OR #__sportsmanager_verein.vereinssitz != #__sportsmanager_spieler_import.vereinssitz) AND NOT #__sportsmanager_verein.ausgetreten AND " . ($veranstalterid == 0 ? "ISNULL(veranstalter_id)" : "veranstalter_id = $veranstalterid");
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- foreach ($rows as $row) {
- $query = "UPDATE #__sportsmanager_verein"
- . "\n SET vereinssitz = '" . $db->escape($row->vereinssitz) . "'"
- . "\n WHERE verein_id = $row->verein_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
- }
-
- $query = "DELETE FROM #__sportsmanager_spieler_import"
- . "\n WHERE session_id = '" . $db->escape($session_id) . "'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- sort($vereineManuell);
- sort($ausgetreteneVereineMitAktivenMitgliedern);
-
- aktuellerVereinAktualisieren();
- if ($kategorie_potentiell_geaendert) {
- ranglisteAktualisieren();
- einstufungAktualisieren();
- }
-
- HTML_sportsmanager_admin::adminImportSpielerBericht($aktualisierungen, $spielerHinzugefuegt, $vereineHinzugefuegt, $spieler_import, $vereineManuell, $ausgetreteneVereineMitAktivenMitgliedern, $kategorie_potentiell_geaendert, redirectSessionIdEmpty() ? null : redirectSessionIdSetzen());
-}
-
-function adminExportSpielerInternationalForm() {
- $db =& getDatabase();
-
- if (!benutzerZugriff("spieler_aendern"))
- keinZugriff(true);
-
- HTML_sportsmanager_admin::adminExportSpielerInternational();
-}
-
-function csvFilter($value, $decode = true) {
- if ($value === null)
- return "";
- if ($decode)
- $value = utf8_decode($value);
- $value = str_replace('"', '""', $value);
- /*
- $value = str_replace("\t", ' ', $value);
- $value = str_replace("\r", '', $value);
- $value = str_replace("\n", ' ', $value);
- */
-
- // escape tab characters
- $value = preg_replace("/\t/", "\\t", $value);
-
- // escape new lines
- $value = preg_replace("/\r?\n/", "\\n", $value);
-
- /*
- // convert 't' and 'f' to boolean values
- if($str == 't') $str = 'TRUE';
- if($str == 'f') $str = 'FALSE';
- */
-
- // force certain number/date formats to be imported as strings
- /*
- if (preg_match("/^0/", $value) || preg_match("/^\+?\d{8,}$/", $value) || preg_match("/^\d{4}.\d{1,2}.\d{1,2}/", $value))
- $value = "'$value";
- */
-
- /*
- // escape fields that include double quotes
- if(strstr($value, '"')) $value = '"' . str_replace('"', '""', $value) . '"';
- */
- $value = '="' . $value . '"';
-
- return $value;
-}
-
-function adminExportSpielerInternational() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spieler_aendern"))
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_spieler');
-
- return;
- }
-
- $persoenliche_daten = $jinput->get('persoenliche_daten', 0, 'INT'); // 0: "Vor- und Nachname, Geschlecht, Spielernr., Lizenznr.", 1: "Vor- und Nachname, Geschlecht, Spielernr., Lizenznr., Geburtsdatum", "Alle"
- $landeskennung = $db->escape(trim($jinput->get('landeskennung', '', 'RAW')));
-
- $jahr = date("Y");
- $query = "SELECT lizenznr, vorname, nachname, spielernr, geschlecht, geburtsjahr";
- if ($persoenliche_daten == 1)
- $query .= ",\n email, strasse, plz, ort, landeskennung, telefon, mobil, pseudonym";
- $query .= "\n FROM #__sportsmanager_spieler"// . "\n WHERE EXISTS(SELECT * FROM #__sportsmanager_mitglied_von_verein AS t1 LEFT JOIN #__sportsmanager_verein AS t2 USING (verein_id) WHERE t1.spieler_id = #__sportsmanager_spieler.spieler_id AND t2.veranstalter_id = $veranstalterid AND NOT t1.ausgetreten AND NOT t2.ausgetreten)"
- . "\n WHERE NOT ISNULL(aktueller_verein_id)"
- . "\n ORDER BY nachname, vorname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- if (count($rows) == 0) {
- redirectSportsManagerURL('&task=admin_spieler_export_international_form', "Zu dieser Auswahl sind keine Spielerdaten vorhanden!");
-
- return;
- }
-
- $dateiname = "Spieler international " . date('Y-m-d') . ".csv";
- $dateiname = bereinigterDateiname($dateiname);
-
- ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind
- Header("Content-Type: text/x-csv");
- Header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
- Header('Content-Disposition: attachment; filename="' . $dateiname . '"');
- Header("Pragma: no-cache");
-
- $trennzeichen = "\t";
-
- $header = "ITSF Number\tGender\tFirst Name\tLAST NAME\tNationality\tYear of birth\tNational Code\tPlayer in wheelchair ?\tE-mail\tCountry of residence\tAddress\tZip/Postal Code\tCity\tPhone\tProfession";
- echo "sep=" . $trennzeichen . "\n" . $header . "\n";
- foreach ($rows as $row) {
- echo csvFilter($row->lizenznr) . $trennzeichen
- . csvFilter($row->geschlecht == "M" ? "M" : "F") . $trennzeichen
- . csvFilter($row->vorname) . $trennzeichen
- . csvFilter($row->nachname) . $trennzeichen
- . csvFilter($landeskennung) . $trennzeichen
- . csvFilter($row->geburtsjahr) . $trennzeichen
- . csvFilter($row->spielernr) . $trennzeichen
- . "N" . $trennzeichen;
- if ($persoenliche_daten == 1) {
- echo csvFilter($row->email) . $trennzeichen
- . csvFilter($row->landeskennung) . $trennzeichen
- . csvFilter($row->strasse) . $trennzeichen
- . csvFilter($row->plz) . $trennzeichen
- . csvFilter($row->ort) . $trennzeichen
- . csvFilter($row->telefon) . $trennzeichen
- . "\n";
- }
- else {
- echo $trennzeichen
- . $trennzeichen
- . $trennzeichen
- . $trennzeichen
- . $trennzeichen
- . $trennzeichen
- . "\n";
- }
- }
- die();
-}
-
-function adminExportSpielerForm() {
- $db =& getDatabase();
-
- $ansprechpartner_exportieren = einstellungswert("ansprechpartner_exportieren");
-
- if (benutzerZugriff("spieler_aendern"))
- $beschraenkter_zugriff = 0;
- else if (($ansprechpartner_exportieren == 1 || $ansprechpartner_exportieren == 2) && benutzerVeranstalterModerator())
- $beschraenkter_zugriff = 1;
-// else if (benutzerVereinModerator())
-// $beschraenkter_zugriff = 2;
- else
- keinZugriff(true);
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_veranstalter"
- . "\n WHERE EXISTS(SELECT * FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE #__sportsmanager_verein.veranstalter_id = #__sportsmanager_veranstalter.veranstalter_id AND NOT #__sportsmanager_verein.ausgetreten AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten)";
- if ($beschraenkter_zugriff)
- $query .= " AND" . veranstalterFilter("veranstalter_id IN");
- $query .= "\n ORDER BY veranstalterbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstalter = $db->loadObjectList();
-
- if (!$beschraenkter_zugriff) {
- $query = "SELECT #__sportsmanager_verein.verein_id, vereinsname, veranstalterbezeichnung"
- . "\n FROM #__sportsmanager_verein"
- . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
- . "\n WHERE NOT ausgetreten AND EXISTS(SELECT * FROM #__sportsmanager_mitglied_von_verein WHERE #__sportsmanager_mitglied_von_verein.verein_id = #__sportsmanager_verein.verein_id AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten)"
- . "\n ORDER BY veranstalterbezeichnung, vereinsname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $vereine = $db->loadObjectList();
- }
- else {
- $vereine = array();
- }
-
- HTML_sportsmanager_admin::adminExportSpieler($beschraenkter_zugriff, $ansprechpartner_exportieren, $veranstalter, $vereine);
-}
-
-function adminExportSpieler() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- $ansprechpartner_exportieren = einstellungswert("ansprechpartner_exportieren");
-
- if (benutzerZugriff("spieler_aendern"))
- $beschraenkter_zugriff = 0;
- else if (($ansprechpartner_exportieren == 1 || $ansprechpartner_exportieren == 2) && benutzerVeranstalterModerator())
- $beschraenkter_zugriff = 1;
-// else if (benutzerVereinModerator())
-// $beschraenkter_zugriff = 2;
- else
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_spieler');
-
- return;
- }
-
- $verein_explizit = 0;
- if ($beschraenkter_zugriff) {
- $veranstalterid = $jinput->get('veranstalterid', 0, 'INT');
- if (!benutzerVeranstalterModerator($veranstalterid))
- $veranstalterid = 0;
- $verein_explizit = 0;
- $ausgetretene = 0;
- if ($ansprechpartner_exportieren != 1)
- $persoenliche_daten = $jinput->get('persoenliche_daten', 0, 'INT'); // 0: "Vor- und Nachname, Geschlecht, Spielernr., Lizenznr.", 1: "Vor- und Nachname, Geschlecht, Spielernr., Lizenznr., Geburtsdatum", "Alle"
- else
- $persoenliche_daten = 0;
- $organisatorische_daten = 0;
- $statistische_daten = 1;
- }
- else {
- $veranstalterid = $jinput->get('veranstalterid', 0, 'INT');
- $verein_explizit = $veranstalterid < 0 ? abs($veranstalterid) : 0;
-
- $ausgetretene = $jinput->get('ausgetretene', 0, 'INT'); // "Nein", "Ja"
- $persoenliche_daten = $jinput->get('persoenliche_daten', 0, 'INT'); // 0: "Vor- und Nachname, Geschlecht, Spielernr., Lizenznr.", 1: "Vor- und Nachname, Geschlecht, Spielernr., Lizenznr., Geburtsdatum", "Alle"
- $organisatorische_daten = $jinput->get('organisatorische_daten', 0, 'INT'); // 0: "Verein, Vereinssitz, Wettbewerb, Mannschaft, Ausgetreten", 1: "Ausgetreten"
- $statistische_daten = $jinput->get('statistische_daten', 0, 'INT'); // 0: "Elo-Werte, Kategorie, Zuletzt gespielt", 1: "Kategorie", 2: "Keine"
- }
-
- if ($verein_explizit != 0) {
- $query = "SELECT * FROM #__sportsmanager_verein WHERE verein_id = $verein_explizit";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $verein = $rows[0];
- }
- else if ($veranstalterid != 0) {
- $query = "SELECT * FROM #__sportsmanager_veranstalter WHERE veranstalter_id = $veranstalterid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $veranstalter = $rows[0];
- }
-
- $jahr = date("Y");
- $query = "SELECT nachname, vorname, spielernr, lizenznr, lizenz, geschlecht";
- if ($statistische_daten != 2)
- $query .= ",\n IF(ISNULL(geburtsjahr), IF(geschlecht = 'M', 'H', 'D'), IF(" . ($jahr - 18) . " <= geburtsjahr, 'J', IF(" . ($jahr - 50) . " > geburtsjahr, 'S', IF(geschlecht = 'M', 'H', 'D')))) AS kategorie";
- if ($organisatorische_daten != 2)
- $query .= ",\n vereinsname as verein, vereinssitz, veranstalterbezeichnung as organisation, IF(mitgliedsstatus = 1, 'Aktiv', IF(mitgliedsstatus = 0, 'Ausgetreten', IF(mitgliedsstatus = 2, 'Eingeschränkt', 'Passiv'))) AS mitgliedsstatus";
- else if ($ausgetretene != 0)
- $query .= ", IF(ISNULL(aktueller_verein_id), 'Ausgetreten', 'Aktiv') as mitgliedsstatus";
- if ($persoenliche_daten == 0)
- $query .= ",\n geburtsjahr";
- if ($persoenliche_daten != 0)
- $query .= ",\n geburtsjahr, geburtsdatum";
- if ($persoenliche_daten == 2)
- $query .= ",\n email, strasse, plz, ort, landeskennung, telefon, mobil, pseudonym";
- if ($organisatorische_daten == 1)
- $query .= ",\n (SELECT bezeichnung FROM #__sportsmanager_mitglied_von_team, #__sportsmanager_team, #__sportsmanager_veranstaltung WHERE #__sportsmanager_spieler.spieler_id = #__sportsmanager_mitglied_von_team.spieler_id AND NOT #__sportsmanager_mitglied_von_team.ausgetreten AND #__sportsmanager_team.team_id = #__sportsmanager_mitglied_von_team.team_id AND #__sportsmanager_team.veranstaltung_id = #__sportsmanager_veranstaltung.veranstaltung_id AND #__sportsmanager_veranstaltung.status > 0 AND CURDATE() BETWEEN erster_tag AND letzter_tag ORDER BY YEAR(#__sportsmanager_veranstaltung.letzter_tag) DESC, #__sportsmanager_veranstaltung.reihenfolge, #__sportsmanager_veranstaltung.letzter_tag DESC, #__sportsmanager_veranstaltung.bezeichnung, #__sportsmanager_team.teamname, #__sportsmanager_veranstaltung.kategorie LIMIT 1) AS wettbewerb,"
- . "\n (SELECT teamname FROM #__sportsmanager_mitglied_von_team, #__sportsmanager_team, #__sportsmanager_veranstaltung WHERE #__sportsmanager_spieler.spieler_id = #__sportsmanager_mitglied_von_team.spieler_id AND NOT #__sportsmanager_mitglied_von_team.ausgetreten AND #__sportsmanager_team.team_id = #__sportsmanager_mitglied_von_team.team_id AND #__sportsmanager_team.veranstaltung_id = #__sportsmanager_veranstaltung.veranstaltung_id AND #__sportsmanager_veranstaltung.status > 0 AND CURDATE() BETWEEN erster_tag AND letzter_tag ORDER BY YEAR(#__sportsmanager_veranstaltung.letzter_tag) DESC, #__sportsmanager_veranstaltung.reihenfolge, #__sportsmanager_veranstaltung.letzter_tag DESC, #__sportsmanager_veranstaltung.bezeichnung, #__sportsmanager_team.teamname, #__sportsmanager_veranstaltung.kategorie LIMIT 1) AS mannschaft";
- if ($statistische_daten == 0)
- $query .= ",\n zuletzt_gespielt, elo_einzel, elo_einzel_spiele, elo_doppel, elo_doppel_spiele";
- $query .= "\n FROM #__sportsmanager_spieler";
- if ($organisatorische_daten != 2) {
- $query .= "\n LEFT JOIN #__sportsmanager_mitglied_von_verein USING (spieler_id)"
- . "\n LEFT JOIN #__sportsmanager_verein USING (verein_id)"
- . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)";
- }
- if ($beschraenkter_zugriff == 2)
- $query .= "\n WHERE " . vereinFilter("#__sportsmanager_verein.verein_id IN") . "AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten";
- else if ($verein_explizit != 0) {
- if ($ausgetretene != 0)
- $query .= "\n WHERE #__sportsmanager_verein.verein_id = $verein_explizit";
- else
- $query .= "\n WHERE #__sportsmanager_verein.verein_id = $verein_explizit AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten";
- }
- else if ($veranstalterid != 0) {
- if ($ausgetretene != 0) {
- if ($organisatorische_daten == 0)
- $query .= "\n WHERE #__sportsmanager_verein.veranstalter_id = $veranstalterid";
- else
- $query .= "\n WHERE (SELECT COUNT(*) FROM #__sportsmanager_mitglied_von_verein AS t1 LEFT JOIN #__sportsmanager_verein AS t2 USING (verein_id) WHERE t1.spieler_id = #__sportsmanager_spieler.spieler_id AND t2.veranstalter_id = $veranstalterid) > 0";
- }
- else {
- if ($organisatorische_daten == 0)
- $query .= "\n WHERE #__sportsmanager_verein.veranstalter_id = $veranstalterid AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten";
- else
- $query .= "\n WHERE EXISTS(SELECT * FROM #__sportsmanager_mitglied_von_verein AS t1 LEFT JOIN #__sportsmanager_verein AS t2 USING (verein_id) WHERE t1.spieler_id = #__sportsmanager_spieler.spieler_id AND t2.veranstalter_id = $veranstalterid AND NOT t1.ausgetreten AND NOT t2.ausgetreten)";
- }
- }
- else if ($ausgetretene == 0) {
- $query .= "\n WHERE NOT ISNULL(aktueller_verein_id)";
- if ($organisatorische_daten == 0)
- $query .= " AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten";
- }
- if ($organisatorische_daten == 0)
- $query .= "\n ORDER BY nachname, vorname, IF(ISNULL(IF(ISNULL(aktueller_verein_id), #__sportsmanager_mitglied_von_verein.ausgetreten, NULL)), 1, 0), IF(ISNULL(aktueller_verein_id), #__sportsmanager_mitglied_von_verein.ausgetreten, NULL), verein";
- else
- $query .= "\n ORDER BY nachname, vorname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- if (count($rows) == 0) {
- redirectSportsManagerURL('&task=admin_spieler_export_form', "Zu dieser Auswahl sind keine Spielerdaten vorhanden!");
-
- return;
- }
-
- $dateiname = "Spieler";
- if ($verein_explizit != 0)
- $dateiname .= " " . utf8_decode($verein->vereinsname);
- else if ($veranstalterid != 0)
- $dateiname .= " " . utf8_decode($veranstalter->veranstalterbezeichnung);
- $dateiname .= " " . date('Y-m-d') . ".csv";
- $dateiname = bereinigterDateiname($dateiname);
- ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind
- Header("Content-Type: text/x-csv");
- Header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
- Header('Content-Disposition: attachment; filename="' . $dateiname . '"');
- Header("Pragma: no-cache");
-
- $trennzeichen = "\t";
-
- $header = "";
- foreach ($rows[0] as $field => $value)
- $header .= $field . $trennzeichen;
-
- $data = "";
- foreach ($rows as $row) {
- $line = '';
- foreach ($row as $value) {
- if ((!isset($value)) OR ($value == "")) {
- $value = $trennzeichen;
- }
- else {
- $value = str_replace('"', '""', $value);
- $value = str_replace("\t", ' ', $value);
- $value = str_replace("\r", '', $value);
- $value = str_replace("\n", ' ', $value);
- $value = '="' . $value . '"' . $trennzeichen;
- }
- $line .= $value;
- }
- $data .= trim($line) . "\n";
- }
- $data = str_replace("\r", "", $data);
-
- echo "sep=" . $trennzeichen . "\n" . $header . "\n" . utf8_decode($data);
-
- die();
-}
-
-function adminExportSpielerSport() {
- $db =& getDatabase();
-
- if (benutzerZugriff("spieler_aendern"))
- $beschraenkter_zugriff = 0;
- else if (benutzerVeranstalterModerator())
- $beschraenkter_zugriff = 1;
-// else if (benutzerVereinModerator())
-// $beschraenkter_zugriff = 2;
- else
- keinZugriff(true);
-
- $jahr = date("Y");
- $query = "SELECT *,"
- . " IF(ISNULL(geburtsjahr), IF(geschlecht = 'M', 'H', 'D'), IF(" . ($jahr - 18) . " <= geburtsjahr, 'J', IF(" . ($jahr - 50) . " > geburtsjahr, 'S', IF(geschlecht = 'M', 'H', 'D')))) AS kategorie, vereinsname"
-// . " (SELECT veranstalterbezeichnung FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein, #__sportsmanager_veranstalter WHERE #__sportsmanager_spieler.spieler_id = #__sportsmanager_mitglied_von_verein.spieler_id AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_verein.ausgetreten AND #__sportsmanager_veranstalter.veranstalter_id = #__sportsmanager_verein.veranstalter_id ORDER BY #__sportsmanager_verein.verein_id DESC LIMIT 1) AS veranstalterbezeichnung"
-// . "\n (SELECT bezeichnung FROM #__sportsmanager_mitglied_von_team, #__sportsmanager_team, #__sportsmanager_veranstaltung WHERE #__sportsmanager_spieler.spieler_id = #__sportsmanager_mitglied_von_team.spieler_id AND NOT #__sportsmanager_mitglied_von_team.ausgetreten AND #__sportsmanager_team.team_id = #__sportsmanager_mitglied_von_team.team_id AND #__sportsmanager_team.veranstaltung_id = #__sportsmanager_veranstaltung.veranstaltung_id AND #__sportsmanager_veranstaltung.status > 0 AND CURDATE() BETWEEN erster_tag AND letzter_tag ORDER BY YEAR(#__sportsmanager_veranstaltung.letzter_tag) DESC, #__sportsmanager_veranstaltung.reihenfolge, #__sportsmanager_veranstaltung.letzter_tag DESC, #__sportsmanager_veranstaltung.bezeichnung, #__sportsmanager_team.teamname, #__sportsmanager_veranstaltung.kategorie LIMIT 1) AS wettbewerb,"
-// . "\n (SELECT teamname FROM #__sportsmanager_mitglied_von_team, #__sportsmanager_team, #__sportsmanager_veranstaltung WHERE #__sportsmanager_spieler.spieler_id = #__sportsmanager_mitglied_von_team.spieler_id AND NOT #__sportsmanager_mitglied_von_team.ausgetreten AND #__sportsmanager_team.team_id = #__sportsmanager_mitglied_von_team.team_id AND #__sportsmanager_team.veranstaltung_id = #__sportsmanager_veranstaltung.veranstaltung_id AND #__sportsmanager_veranstaltung.status > 0 AND CURDATE() BETWEEN erster_tag AND letzter_tag ORDER BY YEAR(#__sportsmanager_veranstaltung.letzter_tag) DESC, #__sportsmanager_veranstaltung.reihenfolge, #__sportsmanager_veranstaltung.letzter_tag DESC, #__sportsmanager_veranstaltung.bezeichnung, #__sportsmanager_team.teamname, #__sportsmanager_veranstaltung.kategorie LIMIT 1) AS mannschaft"
- . "\n FROM #__sportsmanager_spieler";
-
- if ($beschraenkter_zugriff == 2)
- $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) INNER JOIN #__sportsmanager_veranstalter USING (veranstalter_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND" . vereinFilter("verein_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- else
- $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- $query .= "\n INNER JOIN #__sportsmanager_verein ON aktueller_verein_id = verein_id"
- . "\n ORDER BY nachname, vorname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $dateiname = "Spieler " . date('Y-m-d') . ".csv";
- ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind
- Header("Content-Type: text/x-csv; charset=utf-8;");
- Header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
- Header('Content-Disposition: attachment; filename="' . $dateiname . '"');
- Header("Pragma: no-cache");
- echo "NAME#VORNAME#GESCHLECHT#VEREIN#STRASSE#PLZ/ORT#TELEFON#FAX#MOBILE#EMAIL#BEMERKUNG#SPIELERPASS#GEBURTSDATUM\r\n";
-
- $wiederholung_zaehler = 0;
- foreach ($rows as $index => $row) {
- $spielernr = $row->spielernr != null && $row->spielernr != "" ? $row->spielernr : "N/A";
- $lizenznr = $row->lizenznr != null && $row->lizenznr != "" ? $row->lizenznr : "N/A";
- $kategorie = array("H" => "Herren", "D" => "Damen", "J" => "Junioren", "S" => "Senioren");
- $kommentar = $kategorie[$row->kategorie];
- if ($lizenznr != null && $row->lizenznr != "")
- $kommentar .= " / " . $lizenznr;
- /*
- echo $row->nachname . "#" . $row->vorname . "#" . ($row->geschlecht == 'M' ? "M" : "F") . "#"
- . ($row->vereinsname != NULL ? ($row->vereinsname . ($row->veranstalterbezeichnung != NULL ? (" (" . $row->veranstalterbezeichnung . ")") : "")) : "Keiner") . "#" . $row->strasse . "#" . trim($row->plz . " " . $row->ort) . "#" . $row->telefon . "#"
- . "" . "#" . $row->mobil . "#" . $row->email . "#" . $kommentar . "#" . $spielernr . "#" . $row->geburtsdatum . "\r\n";
- */
- $vorname = $row->vorname;
- $nachname = $row->nachname;
- $naechster_name = isset($rows[$index + 1]) ? ($rows[$index + 1]->nachname . ", " . $rows[$index + 1]->vorname) : null;
- $name = $nachname . ", " . $vorname;
- if ($name == $naechster_name || $wiederholung_zaehler > 0) // Sports Manager macht einen case sensitive-Vergleich
- $vorname .= " (" . ($wiederholung_zaehler + 1) . ")";
- if ($name == $naechster_name)
- $wiederholung_zaehler++;
- else
- $wiederholung_zaehler = 0;
- echo utf8_decode($nachname . "#" . $vorname . "#" . ($row->geschlecht == 'M' ? "M" : "F") . "#"
- . ($row->vereinsname != null ? $row->vereinsname : "Keiner") . "#######" . $kommentar . "#" . $spielernr . "#\r\n");
- }
- die();
-}
-
-function adminVereine() {
- $db =& getDatabase();
-
- if (!benutzerZugriff("vereine_aendern"))
- keinZugriff(true);
-
- $query = "SELECT COUNT(DISTINCT veranstalter_id) FROM #__sportsmanager_verein WHERE NOT ausgetreten";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $organisationAnzeigen = $db->loadResult() > 1;
-
- $query = "SELECT *,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_mitglied_von_verein WHERE #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten) AS mitglieder"
- . "\n FROM #__sportsmanager_verein"
- . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
- . "\n ORDER BY IF(ISNULL(#__sportsmanager_veranstalter.veranstalter_id), 1, 0), veranstalterbezeichnung, ausgetreten, vereinsname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $vereine = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminVereine($vereine, $organisationAnzeigen);
-}
-
-function adminEditVerein() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("vereine_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- if ($id == null) {
- $row = null;
- $berechtigt_fuer_verein = null;
- $vereinsansprechpartner = null;
- }
- else {
- $query = "SELECT * FROM #__sportsmanager_verein WHERE verein_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) == 1)
- $row = $rows[0];
-
- $query = "SELECT t1.* FROM #__sportsmanager_berechtigt_fuer_verein AS t1, #__users AS t2 WHERE t1.berechtigt_user_id = t2.id AND berechtigt_verein_id = $id ORDER BY username, name";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $berechtigt_fuer_verein = $db->loadObjectList();
-
- $query = "SELECT * FROM #__sportsmanager_vereinsansprechpartner WHERE verein_id = $id ORDER BY vereinsansprechpartner_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $vereinsansprechpartner = $db->loadObjectList();
- }
-
- $query = "SELECT * FROM #__users ORDER BY name, username";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $users = $db->loadObjectList();
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_veranstalter"
- . "\n ORDER BY veranstalterbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstalter = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminEditVerein($row, $users, $veranstalter, $berechtigt_fuer_verein, $vereinsansprechpartner);
-}
-
-function adminSaveVerein() {
- $db =& getDatabase();
- global $_FILES;
- global $sportsmanager_joomla_path;
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("vereine_aendern"))
- keinZugriff();
-
- $id = $jinput->get('id', 0, 'INT');
- $vereinsname = $db->escape(trim($jinput->get('vereinsname', '', 'RAW')));
- $vereinssitz = $db->escape(trim($jinput->get('vereinssitz', '', 'RAW')));
- $vereinssitz_ortsteil = $db->escape(trim($jinput->get('vereinssitz_ortsteil', '', 'RAW')));
- $veranstalter_id = $jinput->get('veranstalter_id', 0, 'INT');
- $url = $db->escape(trim($jinput->get('url', '', 'RAW')));
- $beschreibung = $db->escape(trim($jinput->get('beschreibung', '', 'RAW')));
- $ausgetreten = $jinput->get('ausgetreten', 0, 'INT');
- $bildbeibehalten = $jinput->get('bildbeibehalten', 0, 'INT');
-
- $berechtigt_fuer_verein_user_ids = array($jinput->get('berechtigt_fuer_verein_user_1_id', 0, 'INT'),
- $jinput->get('berechtigt_fuer_verein_user_2_id', 0, 'INT'),
- $jinput->get('berechtigt_fuer_verein_user_3_id', 0, 'INT'),
- $jinput->get('berechtigt_fuer_verein_user_4_id', 0, 'INT'),
- $jinput->get('berechtigt_fuer_verein_user_5_id', 0, 'INT'),
- $jinput->get('berechtigt_fuer_verein_user_6_id', 0, 'INT'));
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_vereine#id' . $id);
-
- return;
- }
-
- $query = "LOCK TABLES #__sportsmanager_verein WRITE, #__sportsmanager_berechtigt_fuer_verein WRITE, #__sportsmanager_vereinsansprechpartner WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- 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") . ");";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
- }
- else {
- $query = "UPDATE #__sportsmanager_verein"
- . "\n SET vereinsname = '$vereinsname',"
- . "\n vereinssitz = '$vereinssitz',"
- . "\n vereinssitz_ortsteil = '$vereinssitz_ortsteil',"
- . "\n veranstalter_id = " . ($veranstalter_id != 0 ? "'$veranstalter_id'" : "NULL") . ","
- . "\n url = '$url',"
- . "\n beschreibung = '$beschreibung',"
- . "\n ausgetreten = " . ($ausgetreten ? "TRUE" : "FALSE")
- . "\n WHERE verein_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- // Vereinsvertreter speichern
-
- $query = "DELETE FROM #__sportsmanager_berechtigt_fuer_verein WHERE berechtigt_verein_id = $id AND berechtigt_user_id != $berechtigt_fuer_verein_user_ids[0] AND berechtigt_user_id != $berechtigt_fuer_verein_user_ids[1] AND berechtigt_user_id != $berechtigt_fuer_verein_user_ids[2] AND berechtigt_user_id != $berechtigt_fuer_verein_user_ids[3] AND berechtigt_user_id != $berechtigt_fuer_verein_user_ids[4] AND berechtigt_user_id != $berechtigt_fuer_verein_user_ids[5];";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT * FROM #__sportsmanager_berechtigt_fuer_verein WHERE berechtigt_verein_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- for ($nummer = 0; $nummer <= 5; $nummer++) {
- $berechtigt_user_id = $berechtigt_fuer_verein_user_ids[$nummer];
- if ($berechtigt_user_id != 0) {
- $gefunden = false;
- foreach ($rows as $row) {
- if ($row->berechtigt_user_id == $berechtigt_user_id)
- $gefunden = true;
- }
- if (!$gefunden) {
- $query = "INSERT INTO #__sportsmanager_berechtigt_fuer_verein (berechtigt_user_id, berechtigt_verein_id) VALUES ('$berechtigt_user_id', '$id');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
-
- // Ansprechpartner speichern
-
- for ($nummer = 1; $nummer <= 3; $nummer++) {
- $vereinsansprechpartner_id = $jinput->get('vereinsansprechpartner_' . $nummer . '_id', 0, 'INT');
- $vereinsansprechpartner_vorname = trim($jinput->get('vereinsansprechpartner_' . $nummer . '_vorname', '', 'RAW'));
- $vereinsansprechpartner_nachname = trim($jinput->get('vereinsansprechpartner_' . $nummer . '_nachname', '', 'RAW'));
- $vereinsansprechpartner_telefon = trim($jinput->get('vereinsansprechpartner_' . $nummer . '_telefon', '', 'RAW'));
- $vereinsansprechpartner_mobil = trim($jinput->get('vereinsansprechpartner_' . $nummer . '_mobil', '', 'RAW'));
- $vereinsansprechpartner_email = trim($jinput->get('vereinsansprechpartner_' . $nummer . '_email', '', 'RAW'));
-
- if ($vereinsansprechpartner_id == 0) {
- if (strlen($vereinsansprechpartner_vorname) > 0 || strlen($vereinsansprechpartner_nachname) > 0) {
- $query = "INSERT INTO #__sportsmanager_vereinsansprechpartner (verein_id, vorname, nachname, telefon, mobil, email) VALUES ('$id', '$vereinsansprechpartner_vorname', '$vereinsansprechpartner_nachname', '$vereinsansprechpartner_telefon', '$vereinsansprechpartner_mobil', '$vereinsansprechpartner_email');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- else {
- if (strlen($vereinsansprechpartner_vorname) > 0 || strlen($vereinsansprechpartner_nachname) > 0) {
- $query = "UPDATE #__sportsmanager_vereinsansprechpartner"
- . "\n SET vorname = '$vereinsansprechpartner_vorname',"
- . "\n nachname = '$vereinsansprechpartner_nachname',"
- . "\n telefon = '$vereinsansprechpartner_telefon',"
- . "\n mobil = '$vereinsansprechpartner_mobil',"
- . "\n email = '$vereinsansprechpartner_email'"
- . "\n WHERE vereinsansprechpartner_id = $vereinsansprechpartner_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else {
- $query = "DELETE FROM #__sportsmanager_vereinsansprechpartner WHERE vereinsansprechpartner_id = $vereinsansprechpartner_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($bildbeibehalten == 0) {
- bildLoeschen("vereine", $id);
-
- if (!empty($_FILES["bild"]["tmp_name"])) {
- if (is_uploaded_file($_FILES["bild"]["tmp_name"])) {
- $size = getimagesize($_FILES["bild"]["tmp_name"]);
- if ($size == false
- || ($size[2] != IMAGETYPE_JPEG && $size[2] != IMAGETYPE_PNG)
- || ($size[0] < 60 || $size[1] < 60 || $size[0] > 8192 || $size[1] > 8192)) {
- redirectSportsManagerURL('&task=admin_vereine', "Das Bild wurde nicht gespeichert, da es nicht im JPG/PNG-Format mit mindestens 90*90 und maximal 8192*8192 Bildpunkten vorliegt.");
-
- return;
- }
- $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'vereine';
- if (!bildKopierenAngepasst($_FILES["bild"]["tmp_name"], $bilder_pfad . DIRECTORY_SEPARATOR . $id . ($size[2] == IMAGETYPE_PNG ? '.png' : '.jpg'), 240, 240, 0)) {
- redirectSportsManagerURL('&task=admin_vereine', "Das Bild konnte nicht an die Zielposition kopiert werden.");
-
- return;
- }
- }
- }
- }
-
- aktuellerVereinAktualisieren();
-
- redirectSportsManagerURL('&task=admin_vereine#id' . $id);
-}
-
-function adminRemoveVerein() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("vereine_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_mitglied_von_verein WRITE, #__sportsmanager_team WRITE, #__sportsmanager_rechnung WRITE, #__sportsmanager_berechtigt_fuer_verein WRITE, #__sportsmanager_vereinsansprechpartner WRITE, #__sportsmanager_verein WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_team SET verein_id = NULL WHERE verein_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_rechnung SET verein_id = NULL WHERE verein_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_mitglied_von_verein WHERE verein_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_berechtigt_fuer_verein WHERE berechtigt_verein_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_vereinsansprechpartner WHERE verein_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_verein WHERE verein_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- bildLoeschen("vereine", $id);
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- aktuellerVereinAktualisieren();
-
- redirectSportsManagerURL('&task=admin_vereine');
-}
-
-function adminVereineZusammenlegenForm() {
- $db =& getDatabase();
-
- if (!benutzerZugriff("vereine_aendern"))
- keinZugriff(true);
-
- $query = "SELECT verein_id, vereinsname, veranstalterbezeichnung, ausgetreten"
- . "\n FROM #__sportsmanager_verein"
- . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
- . "\n ORDER BY veranstalterbezeichnung, vereinsname, ausgetreten";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $vereine = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminVereineZusammenlegen($vereine);
-}
-
-function adminVereineZusammenlegen() {
- $db =& getDatabase();
- global $_FILES;
- global $sportsmanager_joomla_path;
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("vereine_aendern"))
- keinZugriff(true);
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_vereine');
-
- return;
- }
-
- $verein_beizubehalten_id = $jinput->get('verein_beizubehalten_id', 0, 'INT');
- $verein_zu_entfernen_id = $jinput->get('verein_zu_entfernen_id', 0, 'INT');
-
- if ($verein_beizubehalten_id == $verein_zu_entfernen_id) {
- redirectSportsManagerURL('&task=admin_vereine#id' . $verein_beizubehalten_id, "Zum Zusammanlegen müssen zwei unterschiedliche Vereine gewählt werden");
-
- return;
- }
-
- $query = "LOCK TABLES #__sportsmanager_verein WRITE, #__sportsmanager_mitglied_von_verein WRITE, #__sportsmanager_rechnung WRITE, #__sportsmanager_mitglied_von_verein AS t1 WRITE, #__sportsmanager_vereinsansprechpartner WRITE, #__sportsmanager_berechtigt_fuer_verein WRITE, #__sportsmanager_team WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_mitglied_von_verein"
- . "\n SET verein_id = $verein_beizubehalten_id"
- . "\n WHERE verein_id = $verein_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT mitglied_von_verein_id, ausgetreten, spieler_id"
- . "\n FROM #__sportsmanager_mitglied_von_verein"
- . "\n WHERE #__sportsmanager_mitglied_von_verein.verein_id = $verein_beizubehalten_id"
- . "\n ORDER BY spieler_id, IF(ausgetreten, 1, 0), ausgetreten DESC";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $spieler_id = null;
- foreach ($rows as $row) {
- if ($row->spieler_id == $spieler_id) {
- $query = "DELETE FROM #__sportsmanager_mitglied_von_verein WHERE mitglied_von_verein_id = $row->mitglied_von_verein_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else
- $spieler_id = $row->spieler_id;
- }
-
-
- $query = "UPDATE #__sportsmanager_team"
- . "\n SET verein_id = $verein_beizubehalten_id"
- . "\n WHERE verein_id = $verein_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_rechnung"
- . "\n SET verein_id = $verein_beizubehalten_id"
- . "\n WHERE verein_id = $verein_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_mitglied_von_verein WHERE verein_id = $verein_zu_entfernen_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_vereinsansprechpartner WHERE verein_id = $verein_zu_entfernen_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_berechtigt_fuer_verein WHERE berechtigt_verein_id = $verein_zu_entfernen_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_verein WHERE verein_id = $verein_zu_entfernen_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- bildLoeschen("vereine", $verein_zu_entfernen_id);
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- aktuellerVereinAktualisieren();
-
- redirectSportsManagerURL('&task=admin_vereine#id' . $verein_beizubehalten_id);
-}
-
-function adminVereinsmitglieder() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("vereine_aendern"))
- keinZugriff(true);
-
- $vereinid = $jinput->get('vereinid', 0, 'INT');
- if ($vereinid == 0) die ("Wrong id!");
-
- $query = "SELECT * FROM #__sportsmanager_verein WHERE verein_id = $vereinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $vereine = $db->loadObjectList();
- if (count($vereine) < 1) die ("Wrong id");
- $verein = $vereine[0];
-
- $berechtigt_spieler_aendern = benutzerZugriff("spieler_aendern");
-
- $query = "SELECT mitglied_von_verein_id, mitgliedsstatus, vorname, nachname, spielernr, #__sportsmanager_spieler.spieler_id"
- . "\n FROM #__sportsmanager_mitglied_von_verein"
- . "\n LEFT JOIN #__sportsmanager_spieler USING (spieler_id)"
- . "\n WHERE #__sportsmanager_mitglied_von_verein.verein_id = $vereinid"
- . "\n ORDER BY IF(mitgliedsstatus <> 0, 0, 1), mitgliedsstatus, nachname, vorname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $vereinsmitglieder = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminVereinsmitglieder($verein, $vereinsmitglieder, $berechtigt_spieler_aendern);
-}
-
-function adminEditVereinsmitglied() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("vereine_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- $vereinid = $jinput->get('vereinid', 0, 'INT');
-
- if ($id == 0)
- $row = null;
- else {
- $query = "SELECT t1.*, t2.vorname, t2.nachname FROM #__sportsmanager_mitglied_von_verein AS t1 LEFT JOIN #__sportsmanager_spieler AS t2 ON t1.spieler_id = t2.spieler_id WHERE mitglied_von_verein_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) == 1)
- $row = $rows[0];
- }
-
- $query = "SELECT * FROM #__sportsmanager_verein WHERE verein_id = $vereinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $vereine = $db->loadObjectList();
- if (count($vereine) < 1) die ("Wrong id");
- $verein = $vereine[0];
-
- $query = "SELECT spieler_id, vorname, nachname, spielernr FROM #__sportsmanager_spieler ORDER BY nachname, vorname, spielernr";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spieler = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminEditVereinsmitglied($row, $verein, $spieler);
-}
-
-function adminSaveVereinsmitglied() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("vereine_aendern"))
- keinZugriff();
-
- $id = $jinput->get('id', 0, 'INT');
- $spielerid = $jinput->get('spielerid', 0, 'INT');
- $vereinid = $jinput->get('vereinid', 0, 'INT');
- $mitgliedsstatus = $jinput->get('mitgliedsstatus', 0, 'INT');
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_vereinsmitglieder&vereinid=' . $vereinid);
-
- return;
- }
-
- if (empty($id)) {
- $query = "INSERT INTO #__sportsmanager_mitglied_von_verein (spieler_id, verein_id, mitgliedsstatus, ausgetreten) VALUES ('$spielerid', '$vereinid', '1', FALSE);";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else {
- $query = "UPDATE #__sportsmanager_mitglied_von_verein"
- . "\n SET mitgliedsstatus = '" . $mitgliedsstatus . "',"
- . "\n ausgetreten = " . ($mitgliedsstatus == 0 ? "TRUE" : "FALSE")
- . "\n WHERE mitglied_von_verein_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- aktuellerVereinAktualisieren($spielerid);
-
- redirectSportsManagerURL('&task=admin_vereinsmitglieder&vereinid=' . $vereinid);
-}
-
-function adminRemoveVereinsmitglied() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("vereine_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- $vereinid = $jinput->get('vereinid', 0, 'INT');
- $query = "DELETE FROM #__sportsmanager_mitglied_von_verein WHERE mitglied_von_verein_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- aktuellerVereinAktualisieren();
-
- redirectSportsManagerURL('&task=admin_vereinsmitglieder&vereinid=' . $vereinid);
-}
-
-function adminSpielorte() {
- $db =& getDatabase();
-
- if (!benutzerZugriff("spielorte_aendern"))
- keinZugriff(true);
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_spielort"
- . "\n ORDER BY ortsname, name, ortsteil";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spielorte = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminSpielorte($spielorte);
-}
-
-function adminEditSpielort() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spielorte_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- if ($id == null) {
- $row = null;
- }
- else {
- $query = "SELECT * FROM #__sportsmanager_spielort WHERE spielort_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) == 1)
- $row = $rows[0];
- }
-
- HTML_sportsmanager_admin::adminEditSpielort($row);
-}
-
-function adminSaveSpielort() {
- $db =& getDatabase();
- global $_FILES;
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spielorte_aendern"))
- keinZugriff();
-
- $id = $jinput->get('id', 0, 'INT');
- $name = $db->escape(trim($jinput->get('name', '', 'RAW')));
- $strasse = $db->escape(trim($jinput->get('strasse', '', 'RAW')));
- $plz = $db->escape(trim($jinput->get('plz', '', 'RAW')));
- $ortsname = $db->escape(trim($jinput->get('ortsname', '', 'RAW')));
- $ortsteil = $db->escape(trim($jinput->get('ortsteil', '', 'RAW')));
- $url = $db->escape(trim($jinput->get('url', '', 'RAW')));
- $beschreibung = $db->escape(trim($jinput->get('beschreibung', '', 'RAW')));
- $status = $jinput->get('status', 0, 'INT');
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_spielorte#id' . $id);
-
- return;
- }
-
- $query = "LOCK TABLES #__sportsmanager_spielort WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($id == 0) {
- $query = "INSERT INTO #__sportsmanager_spielort (name, strasse, plz, ortsname, ortsteil, url, beschreibung, status)"
- . "\n VALUES ('$name', '$strasse', '$plz', '$ortsname', '$ortsteil', '$url', '$beschreibung', '$status');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
- }
- else {
- $query = "UPDATE #__sportsmanager_spielort"
- . "\n SET name = '$name',"
- . "\n strasse = '$strasse',"
- . "\n plz = '$plz',"
- . "\n ortsname = '$ortsname',"
- . "\n ortsteil = '$ortsteil',"
- . "\n url = '$url',"
- . "\n beschreibung = '$beschreibung',"
- . "\n status = '$status'"
- . "\n WHERE spielort_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_spielorte#id' . $id);
-}
-
-function adminRemoveSpielort() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spielorte_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_team WRITE, #__sportsmanager_spielort WRITE, #__sportsmanager_begegnung WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_team SET heimspielort_id = NULL WHERE heimspielort_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_begegnung SET spielort_id = NULL WHERE spielort_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_spielort WHERE spielort_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_spielorte');
-}
-
-function adminSpielorteZusammenlegenForm() {
- $db =& getDatabase();
-
- if (!benutzerZugriff("spielorte_aendern"))
- keinZugriff(true);
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_spielort"
- . "\n ORDER BY ortsname, name, ortsteil";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spielorte = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminSpielorteZusammenlegen($spielorte);
-}
-
-function adminSpielorteZusammenlegen() {
- $db =& getDatabase();
- global $_FILES;
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spielorte_aendern"))
- keinZugriff(true);
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_spielorte');
-
- return;
- }
-
- $spielort_beizubehalten_id = $jinput->get('spielort_beizubehalten_id', 0, 'INT');
- $spielort_zu_entfernen_id = $jinput->get('spielort_zu_entfernen_id', 0, 'INT');
-
- if ($spielort_beizubehalten_id == $spielort_zu_entfernen_id) {
- redirectSportsManagerURL('&task=admin_spielorte#id' . $spielort_beizubehalten_id, "Zum Zusammanlegen müssen zwei unterschiedliche Spielorte gewählt werden");
-
- return;
- }
-
- $query = "LOCK TABLES #__sportsmanager_team WRITE, #__sportsmanager_spielort WRITE, #__sportsmanager_begegnung WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_team"
- . "\n SET heimspielort_id = $spielort_beizubehalten_id"
- . "\n WHERE heimspielort_id = $spielort_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_begegnung"
- . "\n SET spielort_id = $spielort_beizubehalten_id"
- . "\n WHERE spielort_id = $spielort_zu_entfernen_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_spielort WHERE spielort_id = $spielort_zu_entfernen_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_spielorte#id' . $spielort_beizubehalten_id);
-}
-
-function adminEinstufungen() {
- $db =& getDatabase();
-
- if (!benutzerZugriff("einstufungen_aendern"))
- keinZugriff(true);
-
- $query = "SELECT *, (SELECT COUNT(*) FROM #__sportsmanager_einstufung_rangliste WHERE #__sportsmanager_einstufung.einstufung_id = #__sportsmanager_einstufung_rangliste.einstufung_id) AS ranglisten"
- . "\n FROM #__sportsmanager_einstufung"
- . "\n ORDER BY typ, prioritaet, bezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $einstufungen = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminEinstufungen($einstufungen);
-}
-
-function adminEditEinstufung() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("einstufungen_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- if ($id == null) {
- $row = null;
- }
- else {
- $query = "SELECT * FROM #__sportsmanager_einstufung WHERE einstufung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) == 1)
- $row = $rows[0];
- }
-
- // Ranglisten ermitteln
- if ($id == 0) {
- $query = "SELECT #__sportsmanager_rangliste.rangliste_id, bezeichnung, saisonbezeichnung"
- . "\n FROM #__sportsmanager_rangliste"
- . "\n INNER JOIN #__sportsmanager_saison USING (saison_id)"
- . "\n ORDER BY saisonbezeichnung DESC, reihenfolge, bezeichnung, kategorie";
- }
- else {
- $query = "SELECT DISTINCT #__sportsmanager_rangliste.rangliste_id, ranglisten.einstufung_rangliste_id, ranglisten.platz_min, ranglisten.platz_max, bezeichnung, saisonbezeichnung"
- . "\n FROM #__sportsmanager_rangliste"
- . "\n INNER JOIN #__sportsmanager_saison USING (saison_id)"
- . "\n LEFT JOIN (SELECT rangliste_id, einstufung_rangliste_id, platz_min, platz_max FROM #__sportsmanager_einstufung_rangliste WHERE einstufung_id = $id) AS ranglisten USING (rangliste_id)"
- . "\n ORDER BY saisonbezeichnung DESC, reihenfolge, bezeichnung, kategorie";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $ranglisten = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminEditEinstufung($row, $ranglisten);
-}
-
-function adminSaveEinstufung() {
- $db =& getDatabase();
- global $_FILES;
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("einstufungen_aendern"))
- keinZugriff();
-
- $id = $jinput->get('id', 0, 'INT');
- $bezeichnung = $db->escape(trim($jinput->get('bezeichnung', '', 'RAW')));
- $prioritaet = $jinput->get('prioritaet', 0, 'INT');
- $typ = $jinput->get('typ', 0, 'INT');
- $elo_min = $jinput->get('elo_min', 0, 'INT');
- $elo_max = $jinput->get('elo_max', 0, 'INT');
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_einstufungen#id' . $id);
-
- return;
- }
-
- $ranglisten_beruecksichtigt = array();
- $ranglisten_beruecksichtigt_platz_min = array();
- $ranglisten_beruecksichtigt_platz_max = array();
- $i = 0;
- $rangliste_id = $jinput->get('rangliste_id_' . $i, 0, 'INT');
- $rangliste_platz_min = $jinput->get('rangliste_platz_min_' . $i, 0, 'INT');
- $rangliste_platz_max = $jinput->get('rangliste_platz_max_' . $i, 0, 'INT');
- while ($rangliste_id != 0 && !in_array($rangliste_id, $ranglisten_beruecksichtigt)) {
- array_push($ranglisten_beruecksichtigt, $rangliste_id);
- array_push($ranglisten_beruecksichtigt_platz_min, $rangliste_platz_min);
- array_push($ranglisten_beruecksichtigt_platz_max, $rangliste_platz_max);
- $i++;
- $rangliste_id = $jinput->get('rangliste_id_' . $i, 0, 'INT');
- $rangliste_platz_min = $jinput->get('rangliste_platz_min_' . $i, 0, 'INT');
- $rangliste_platz_max = $jinput->get('rangliste_platz_max_' . $i, 0, 'INT');
- }
-
- $query = "LOCK TABLES #__sportsmanager_einstufung WRITE, #__sportsmanager_einstufung_rangliste WRITE, #__sportsmanager_rangliste READ;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($id == 0) {
- $query = "INSERT INTO #__sportsmanager_einstufung (bezeichnung, prioritaet, typ, elo_min, elo_max)"
- . "\n VALUES ('$bezeichnung', '$prioritaet', '$typ', '$elo_min', '$elo_max');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
- }
- else {
- $query = "UPDATE #__sportsmanager_einstufung"
- . "\n SET bezeichnung = '$bezeichnung',"
- . "\n prioritaet = '$prioritaet',"
- . "\n typ = '$typ',"
- . "\n elo_min = '$elo_min',"
- . "\n elo_max = '$elo_max'"
- . "\n WHERE einstufung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- // Berücksichtige Ranglisten prüfen und ggf. aktualisieren
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_einstufung_rangliste"
- . "\n WHERE einstufung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $bestehende_ranglisten_beruecksichtigt = $db->loadObjectList();
-
- $einstufungen_aktualisieren = false;
- foreach ($bestehende_ranglisten_beruecksichtigt as $bestehende_rangliste_beruecksichtigt) {
- $ist_beruecksichtigt = false;
- foreach ($ranglisten_beruecksichtigt as $rangliste_id) {
- if ($bestehende_rangliste_beruecksichtigt->rangliste_id == $rangliste_id) {
- $ist_beruecksichtigt = true;
- break;
- }
- }
- if (!$ist_beruecksichtigt) {
- $query = "DELETE FROM #__sportsmanager_einstufung_rangliste WHERE rangliste_id = $bestehende_rangliste_beruecksichtigt->rangliste_id AND einstufung_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
-
- foreach ($ranglisten_beruecksichtigt as $index => $rangliste_id) {
- $ist_beruecksichtigt = false;
- foreach ($bestehende_ranglisten_beruecksichtigt as $bestehende_rangliste_beruecksichtigt) {
- if ($bestehende_rangliste_beruecksichtigt->rangliste_id == $rangliste_id) {
- $ist_beruecksichtigt = true;
- $bestehende_rangliste_platz_min = $bestehende_rangliste_beruecksichtigt->platz_min;
- $bestehende_rangliste_platz_min = $bestehende_rangliste_beruecksichtigt->platz_max;
- break;
- }
- }
- $platz_min = $ranglisten_beruecksichtigt_platz_min[$index];
- $platz_max = $ranglisten_beruecksichtigt_platz_max[$index];
- if (!$ist_beruecksichtigt) {
- $query = "SELECT COUNT(*)"
- . "\n FROM #__sportsmanager_rangliste"
- . "\n WHERE rangliste_id = $rangliste_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
-
- if ($n > 0) {
- $query = "INSERT INTO #__sportsmanager_einstufung_rangliste (einstufung_id, rangliste_id, platz_min, platz_max) VALUES ('$id', '$rangliste_id', '$platz_min', '$platz_max');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- else if ($platz_min != $bestehende_rangliste_platz_min || $platz_max != $bestehende_rangliste_platz_max) {
- $query = "UPDATE #__sportsmanager_einstufung_rangliste"
- . "\n SET platz_min = '$platz_min',"
- . "\n platz_max = '$platz_max'"
- . "\n WHERE einstufung_id = $id AND rangliste_id = $rangliste_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- einstufungAktualisieren();
-
- redirectSportsManagerURL('&task=admin_einstufungen#id' . $id);
-}
-
-function adminRemoveEinstufung() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("einstufungen_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_einstufung WRITE, #__sportsmanager_einstufung_rangliste WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_einstufung_rangliste WHERE einstufung_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_einstufung WHERE einstufung_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- einstufungAktualisieren();
-
- redirectSportsManagerURL('&task=admin_einstufungen');
-}
-
-function einstufungAktualisieren($berechnungen_auswerten = false) {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- $query = "LOCK TABLES #__sportsmanager_berechnung WRITE, #__sportsmanager_rangliste_punkte READ, #__sportsmanager_spieler WRITE, #__sportsmanager_einstufung READ, #__sportsmanager_einstufung_rangliste READ;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($berechnungen_auswerten) {
- $session_id = redirectRequestGetSessionId();
-
- $query = "SELECT IF(EXISTS("
- . "\n SELECT *"
- . "\n FROM #__sportsmanager_berechnung"
- . "\n WHERE typ = 'einstufung' AND " . (empty($session_id) ? ("session_id < SUBTIME(NOW(), '00:10:00')") : ("session_id = '" . $session_id . "'"))
- . "\n ), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $berechnungen = $db->loadResult();;
-
- if (empty($berechnungen) || laufzeit() >= 5) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- return;
- }
- }
- else if (!redirectSessionIdEmpty() || laufzeit() >= 5) {
- $session_id = redirectSessionIdSetzen();
-
- $query = "INSERT INTO #__sportsmanager_berechnung (session_id, typ, id) VALUES ('$session_id', 'einstufung', NULL);";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- return;
- }
-
- $query = "SELECT einstufung_id, prioritaet, typ, elo_min, elo_max"
- . "\n FROM #__sportsmanager_einstufung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $einstufung_prioritaet = array();
- $einstufung_typ = array();
- foreach ($rows as $row) {
- $einstufung_prioritaet[$row->einstufung_id] = $row->prioritaet;
- $einstufung_typ[$row->einstufung_id] = $row->typ;
- }
-
- $spieler_einstufung_allgemein = array();
- $spieler_einstufung_einzel = array();
- $spieler_einstufung_doppel = array();
- $query = "SELECT rangliste_id, einstufung_id, platz_min, platz_max"
- . "\n FROM #__sportsmanager_einstufung_rangliste"
- . "\n ORDER BY rangliste_id, platz_min, platz_max";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $einstufung_ranglisten = $db->loadObjectList();
-
- $einstufungen_per_ranglisten = array();
- foreach ($einstufung_ranglisten as $einstufung_rangliste) {
- $platz_min = $einstufung_rangliste->platz_min;
- $platz_max = $einstufung_rangliste->platz_max;
- if (empty($platz_min) && empty($platz_max))
- continue;
- if (!isset($einstufungen_per_ranglisten[$einstufung_rangliste->rangliste_id]))
- $einstufungen_per_ranglisten[$einstufung_rangliste->rangliste_id] = array();
- array_push($einstufungen_per_ranglisten[$einstufung_rangliste->rangliste_id], array($einstufung_rangliste->einstufung_id, $platz_min, $platz_max));
- }
-
- foreach ($einstufungen_per_ranglisten as $rangliste_id => $einstufung) {
- $query = "SELECT spieler_id, platz"
- . "\n FROM #__sportsmanager_rangliste_punkte"
- . "\n WHERE rangliste_id = $rangliste_id"
- . "\n ORDER BY platz";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rangliste_punkte = $db->loadObjectList();
-
- foreach ($rangliste_punkte as $punkte) {
- foreach ($einstufung as $einstufung_platzierung) {
- $platz_min = $einstufung_platzierung[1];
- $platz_max = $einstufung_platzierung[2];
- if (($punkte->platz >= $platz_min || $platz_min == 0) && ($punkte->platz <= $platz_max || $platz_max == 0)) {
- $einstufung_id = $einstufung_platzierung[0];
- if ($einstufung_typ[$einstufung_id] == 0) {
- if (!isset($spieler_einstufung_allgemein[$punkte->spieler_id]) || ($einstufung_prioritaet[$spieler_einstufung_allgemein[$punkte->spieler_id]] > $einstufung_prioritaet[$einstufung_id]))
- $spieler_einstufung_allgemein[$punkte->spieler_id] = $einstufung_id;
- }
- else if ($einstufung->typ == 1) {
- if (!isset($spieler_einstufung_einzel[$punkte->spieler_id]) || ($einstufung_prioritaet[$spieler_einstufung_einzel[$punkte->spieler_id]] > $einstufung_prioritaet[$einstufung_id]))
- $spieler_einstufung_einzel[$punkte->spieler_id] = $einstufung_id;
- }
- else {
- if (!isset($spieler_einstufung_doppel[$punkte->spieler_id]) || ($einstufung_prioritaet[$spieler_einstufung_doppel[$punkte->spieler_id]] > $einstufung_prioritaet[$einstufung_id]))
- $spieler_einstufung_doppel[$punkte->spieler_id] = $einstufung_id;
- }
- }
- }
- }
- }
-
- $query = "SELECT spieler_id, elo_einzel, elo_doppel"
- . "\n FROM #__sportsmanager_spieler"
- . "\n WHERE NOT ISNULL(elo_einzel) OR NOT ISNULL(elo_doppel) OR elo_einzel > 0 OR elo_doppel > 0";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spieler = $db->loadObjectList();
-
- foreach ($spieler as $s) {
- $spieler_id = $s->spieler_id;
- $elo_einzel = $s->elo_einzel;
- $elo_doppel = $s->elo_doppel;
- foreach ($rows as $einstufung) {
- $einstufung_id = $einstufung->einstufung_id;
- $elo_min = $einstufung->elo_min;
- $elo_max = $einstufung->elo_max;
- if (empty($elo_min) && empty($elo_max))
- continue;
- if ($einstufung_typ[$einstufung_id] == 0) {
- if (($elo_einzel > 0 && ($elo_einzel >= $elo_min || empty($elo_min)) && ($elo_einzel <= $elo_max || empty($elo_max)))
- || ($elo_doppel > 0 && ($elo_doppel >= $elo_min || empty($elo_min)) && ($elo_doppel <= $elo_max || empty($elo_max)))) {
- if (!isset($spieler_einstufung_allgemein[$spieler_id]) || ($einstufung_prioritaet[$einstufung_id] > $einstufung_prioritaet[$spieler_einstufung_allgemein[$spieler_id]]))
- $spieler_einstufung_allgemein[$spieler_id] = $einstufung_id;
- }
- }
- else if ($einstufung->typ == 1) {
- if ($elo_einzel > 0 && ($elo_einzel >= $elo_min || empty($elo_min)) && ($elo_einzel <= $elo_max || empty($elo_max))) {
- if (!isset($spieler_einstufung_einzel[$spieler_id]) || ($einstufung_prioritaet[$einstufung_id] > $einstufung_prioritaet[$spieler_einstufung_einzel[$spieler_id]]))
- $spieler_einstufung_einzel[$spieler_id] = $einstufung_id;
- }
- }
- else {
- if ($elo_doppel > 0 && ($elo_doppel >= $elo_min || empty($elo_min)) && ($elo_doppel <= $elo_max || empty($elo_max))) {
- if (!isset($spieler_einstufung_doppel[$spieler_id]) || ($einstufung_prioritaet[$einstufung_id] > $einstufung_prioritaet[$spieler_einstufung_doppel[$spieler_id]]))
- $spieler_einstufung_doppel[$spieler_id] = $einstufung_id;
- }
- }
- }
- }
-
- $db->transactionStart();
- $query = "UPDATE #__sportsmanager_spieler"
- . "\n SET einstufung_allgemein_id = NULL,"
- . "\n einstufung_einzel_id = NULL,"
- . "\n einstufung_doppel_id = NULL";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $spieler_ids = array_keys($spieler_einstufung_allgemein) + array_keys($spieler_einstufung_einzel) + array_keys($spieler_einstufung_doppel);
- foreach ($spieler_ids as $spieler_id) {
- $query = "UPDATE #__sportsmanager_spieler"
- . "\n SET einstufung_allgemein_id = " . (isset($spieler_einstufung_allgemein[$spieler_id]) ? $spieler_einstufung_allgemein[$spieler_id] : "NULL") . ","
- . "\n einstufung_einzel_id = " . (isset($spieler_einstufung_einzel[$spieler_id]) ? $spieler_einstufung_einzel[$spieler_id] : "NULL") . ","
- . "\n einstufung_doppel_id = " . (isset($spieler_einstufung_doppel[$spieler_id]) ? $spieler_einstufung_doppel[$spieler_id] : "NULL");
- $query .= "\n WHERE spieler_id = $spieler_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- $db->transactionCommit();
-
- if ($berechnungen_auswerten) {
- $query = "DELETE FROM #__sportsmanager_berechnung WHERE typ = 'einstufung' AND " . (empty($session_id) ? ("session_id < SUBTIME(NOW(), '00:10:00')") : ("session_id = '" . $session_id . "'"));
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-}
-
-function adminTeamspielmodi() {
- $db =& getDatabase();
-
- if (!benutzerZugriff("mannschaftsspielplaene_aendern"))
- keinZugriff(true);
-
- $query = "SELECT *, IF(EXISTS(SELECT * FROM #__sportsmanager_veranstaltung WHERE teamspiel_modus_id = modus_id), 1, 0) AS veranstaltungen"
- . "\n FROM #__sportsmanager_teamspiel_modus"
- . "\n ORDER BY status DESC, bezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminTeamspielmodi($rows);
-}
-
-function adminEditTeamspielmodus() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("mannschaftsspielplaene_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- if ($id == null)
- $row = null;
- else {
- $query = "SELECT * FROM #__sportsmanager_teamspiel_modus WHERE teamspiel_modus_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) == 1)
- $row = $rows[0];
- }
-
- HTML_sportsmanager_admin::adminEditTeamspielmodus($row);
-}
-
-function adminSaveTeamspielmodus() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("mannschaftsspielplaene_aendern"))
- keinZugriff();
-
- $id = $jinput->get('id', 0, 'INT');
- $bezeichnung = $db->escape(trim($jinput->get('bezeichnung', '', 'RAW')));
- $punktetyp = $jinput->get('punktetyp', 0, 'INT');
- $punkte_sieg_einzel = $jinput->get('punkte_sieg_einzel', 0, 'INT');
- $punkte_sieg_doppel_separat = $jinput->get('punkte_sieg_doppel_separat', 0, 'INT');
- $punkte_sieg_doppel = $punkte_sieg_doppel_separat ? $jinput->get('punkte_sieg_doppel', 0, 'INT') : $punkte_sieg_einzel;
- $heimtausch = $jinput->get('heimtausch', 0, 'INT');
- $status = $jinput->get('status', 0, 'INT');
- $spielpunkte_wertung_einzel = $jinput->get('spielpunkte_wertung_einzel', 0, 'INT');
- $spielpunkte_wertung_doppel_separat = $jinput->get('spielpunkte_wertung_doppel_separat', 0, 'INT');
- $spielpunkte_wertung_doppel = $spielpunkte_wertung_doppel_separat ? $jinput->get('spielpunkte_wertung_doppel', 0, 'INT') : $spielpunkte_wertung_einzel;
- $spielpunkte_bedingung = $jinput->get('spielpunkte_bedingung', 0, 'INT');
- $spielernamen = $jinput->get('spielernamen', 0, 'INT');
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_teamspiel_modi');
-
- return;
- }
-
- $modus = "";
- $spiel_nr = 1;
- do {
- $spiel_heim = $jinput->get('spiel_' . $spiel_nr . '_heim', '', 'RAW');
- $spiel_gast = $jinput->get('spiel_' . $spiel_nr . '_gast', '', 'RAW');
- $spiel_auflage = $jinput->get('spiel_' . $spiel_nr . '_auflage', '', 'RAW');
- if (strlen($spiel_heim) != 0 && strlen($spiel_gast) != 0 && ($spiel_auflage == "" || $spiel_auflage == "H" || $spiel_auflage == "G")) {
- if (strlen($modus) != 0)
- $modus .= ",";
- $modus .= $spiel_heim . $spiel_gast . $spiel_auflage;
- }
- $spiel_nr++;
- } while (strlen($spiel_heim) != 0 && strlen($spiel_gast) != 0);
-
- $verknuepfungen = "";
- $verknuepfung_nr = 1;
- for (; ;) {
- $verknuepfung_doppel = $jinput->get('verknuepfung_' . $verknuepfung_nr . '_doppel', '', 'RAW');
- $verknuepfung_einzel1 = $jinput->get('verknuepfung_' . $verknuepfung_nr . '_einzel1', '', 'RAW');
- $verknuepfung_einzel2 = $jinput->get('verknuepfung_' . $verknuepfung_nr . '_einzel2', '', 'RAW');
- if (strlen($verknuepfung_doppel) == 0 || strlen($verknuepfung_einzel1) == 0 || strlen($verknuepfung_einzel2) == 0)
- break;
- if (strpos($verknuepfungen, $verknuepfung_doppel) !== false || strpos($verknuepfungen, $verknuepfung_einzel1) !== false || strpos($verknuepfungen, $verknuepfung_einzel2) !== false ||
- $verknuepfung_einzel1 == $verknuepfung_einzel2)
- break;
- if (strlen($verknuepfungen) != 0)
- $verknuepfungen .= ",";
- $verknuepfungen .= $verknuepfung_doppel . $verknuepfung_einzel1 . $verknuepfung_einzel2;
- $verknuepfung_nr++;
- }
-
- if (strlen($verknuepfungen) > 0)
- $modus .= "|" . $verknuepfungen;
- $modus = $db->escape($modus);
-
- if ($id == 0) {
- $query = "INSERT INTO #__sportsmanager_teamspiel_modus (bezeichnung, punktetyp, punkte_sieg_einzel, punkte_sieg_doppel, spielpunkte_wertung_einzel, spielpunkte_wertung_doppel, spielpunkte_bedingung, spielernamen, heimtausch, modus, status) VALUES ('$bezeichnung', '$punktetyp', '$punkte_sieg_einzel', '$punkte_sieg_doppel', '$spielpunkte_wertung_einzel', '$spielpunkte_wertung_doppel', '$spielpunkte_bedingung', '$spielernamen', '$heimtausch', '$modus', '$status');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
- }
- else {
- $query = "UPDATE #__sportsmanager_teamspiel_modus"
- . "\n SET bezeichnung = '$bezeichnung',"
- . "\n punktetyp = '$punktetyp',"
- . "\n punkte_sieg_einzel = '$punkte_sieg_einzel',"
- . "\n punkte_sieg_doppel = '$punkte_sieg_doppel',"
- . "\n spielpunkte_wertung_einzel = '$spielpunkte_wertung_einzel',"
- . "\n spielpunkte_wertung_doppel = '$spielpunkte_wertung_doppel',"
- . "\n spielpunkte_bedingung = '$spielpunkte_bedingung',"
- . "\n spielernamen = '$spielernamen',"
- . "\n heimtausch = '$heimtausch',"
- . "\n modus = '$modus',"
- . "\n status = '$status'"
- . "\n WHERE teamspiel_modus_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- begegnungenAktualisieren(0, $id);
- teamstatistikAktualisieren(0, $id);
- spielerstatistikAktualisieren(0, 0, 0, $id);
-
- redirectSportsManagerURL('&task=admin_teamspiel_modi');
-}
-
-function adminRemoveTeamspielmodus() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("mannschaftsspielplaene_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_veranstaltung WRITE, #__sportsmanager_teamspiel_modus WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_veranstaltung WHERE modus_id = $id), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS'));
-
- $query = "DELETE FROM #__sportsmanager_teamspiel_modus WHERE teamspiel_modus_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_teamspiel_modi');
-}
-
-function adminKopierenTeamspielmodus() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("mannschaftsspielplaene_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- $query = "SELECT * FROM #__sportsmanager_teamspiel_modus WHERE teamspiel_modus_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $teamspiel_modus = $rows[0];
-
- $query = "INSERT INTO #__sportsmanager_teamspiel_modus (bezeichnung, punktetyp, punkte_sieg_einzel, punkte_sieg_doppel, spielpunkte_wertung_einzel, spielpunkte_wertung_doppel, spielpunkte_bedingung, spielernamen, heimtausch, modus, status) VALUES ('" . $db->escape($teamspiel_modus->bezeichnung) . " (Kopie)', '$teamspiel_modus->punktetyp', '$teamspiel_modus->punkte_sieg_einzel', '$teamspiel_modus->punkte_sieg_doppel', '$teamspiel_modus->spielpunkte_wertung_einzel', '$teamspiel_modus->spielpunkte_wertung_doppel', '$teamspiel_modus->spielpunkte_bedingung', '$teamspiel_modus->spielernamen', '$teamspiel_modus->heimtausch', '$teamspiel_modus->modus', '$teamspiel_modus->status');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
-
- redirectSportsManagerURL('&task=admin_teamspiel_modi');
-}
-
-function adminVerschiebenModi() {
- $db =& getDatabase();
-
- if (!benutzerZugriff("verschieberegeln_aendern"))
- keinZugriff(true);
-
- $query = "SELECT *, IF(EXISTS(SELECT * FROM #__sportsmanager_veranstaltung WHERE #__sportsmanager_veranstaltung.verschieberegel_id = #__sportsmanager_verschieberegel.verschieberegel_id), 1, 0) AS veranstaltungen"
- . "\n FROM #__sportsmanager_verschieberegel"
- . "\n ORDER BY bezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminVerschiebenModi($rows);
-}
-
-function adminEditVerschiebenModus() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("verschieberegeln_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- if ($id == null)
- $row = null;
- else {
- $query = "SELECT * FROM #__sportsmanager_verschieberegel WHERE verschieberegel_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) == 1)
- $row = $rows[0];
- }
-
- HTML_sportsmanager_admin::adminEditVerschiebenModus($row);
-}
-
-function adminSaveVerschiebenModus() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("verschieberegeln_aendern"))
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_verschieben_modi');
-
- return;
- }
-
- $id = $jinput->get('id', 0, 'INT');
- $bezeichnung = $db->escape(trim($jinput->get('bezeichnung', '', 'RAW')));
- $initial_ohne_termin = $jinput->get('initial_ohne_termin', 0, 'INT');
- $keine_gegenvorschlaege = $jinput->get('keine_gegenvorschlaege', 0, 'INT');
- $vorlaufzeit_tage = $jinput->get('vorlaufzeit_tage', 0, 'INT');
- $termine_minimal = $jinput->get('termine_minimal', 1, 'INT');
- $termine_maximal = $jinput->get('termine_maximal', 3, 'INT');
- $ablehnen = $jinput->get('ablehnen', 0, 'INT');
-
- if ($termine_minimal > 0 && $termine_maximal > 0 && $termine_minimal > $termine_maximal) {
- $t = $termine_minimal;
- $termine_minimal = $termine_maximal;
- $termine_maximal = $t;
- }
-
- if ($id == 0)
- $query = "INSERT INTO #__sportsmanager_verschieberegel (bezeichnung, initial_ohne_termin, keine_gegenvorschlaege, vorlaufzeit_tage, termine_minimal, termine_maximal, ablehnen) VALUES ('$bezeichnung', '$initial_ohne_termin', '$keine_gegenvorschlaege', '$vorlaufzeit_tage', '$termine_minimal', '$termine_maximal', '$ablehnen');";
- else {
- $query = "UPDATE #__sportsmanager_verschieberegel"
- . "\n SET bezeichnung = '$bezeichnung',"
- . "\n initial_ohne_termin = '$initial_ohne_termin',"
- . "\n keine_gegenvorschlaege = '$keine_gegenvorschlaege',"
- . "\n vorlaufzeit_tage = '$vorlaufzeit_tage',"
- . "\n termine_minimal = '$termine_minimal',"
- . "\n termine_maximal = '$termine_maximal',"
- . "\n ablehnen = '$ablehnen'"
- . "\n WHERE verschieberegel_id = $id";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_verschieben_modi');
-}
-
-function adminRemoveVerschiebenModus() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("verschieberegeln_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_veranstaltung WRITE, #__sportsmanager_verschieberegel WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_veranstaltung WHERE verschieberegel_id = $id), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS'));
-
- $query = "DELETE FROM #__sportsmanager_verschieberegel WHERE verschieberegel_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_verschieben_modi');
-}
-
-function adminKategorien() {
- $db =& getDatabase();
-
- if (!benutzerZugriff("kategorien_aendern"))
- keinZugriff(true);
-
- $query = "SELECT * FROM #__sportsmanager_kategorie ORDER BY typ, nummer";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $kategorien = array();
- $kategorien[1] = array();
- $kategorien[2] = array();
- $kategorien[3] = array();
- $kategorien[4] = array();
-
- foreach ($rows as $row)
- $kategorien[$row->typ][$row->nummer] = $row->bezeichnung;
-
- HTML_sportsmanager_admin::adminKategorien($kategorien);
-}
-
-function adminSaveKategorien() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("kategorien_aendern"))
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_uebersicht');
-
- return;
- }
-
- $query = "LOCK TABLES #__sportsmanager_kategorie WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT * FROM #__sportsmanager_kategorie ORDER BY typ, nummer";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $kategorien = array();
- $kategorien[1] = array();
- $kategorien[2] = array();
- $kategorien[3] = array();
- $kategorien[4] = array();
- $kategorien[5] = array();
- $kategorien[6] = array();
-
- foreach ($rows as $row)
- $kategorien[$row->typ][$row->nummer] = $row->bezeichnung;
-
- for ($typ = 1; $typ <= 6; $typ++) {
- for ($nummer = 1; $nummer <= 30; $nummer++) {
- $bezeichnung = $db->escape($jinput->get('bezeichnung_' . $typ . '_' . $nummer, '', 'RAW'));
- if (empty($bezeichnung)) {
- if (isset($kategorien[$typ][$nummer])) {
- $query = "DELETE FROM #__sportsmanager_kategorie WHERE typ = $typ AND nummer = $nummer;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- else {
- if (isset($kategorien[$typ][$nummer])) {
- $query = "UPDATE #__sportsmanager_kategorie"
- . "\n SET bezeichnung = '$bezeichnung'"
- . "\n WHERE typ = $typ AND nummer = $nummer";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else {
- $query = "INSERT INTO #__sportsmanager_kategorie (typ, nummer, bezeichnung) VALUES ('$typ', '$nummer', '$bezeichnung');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_uebersicht');
-}
-
-function adminRanglistensysteme() {
- $db =& getDatabase();
-
- if (!benutzerZugriff("ranglistenwertungen_aendern"))
- keinZugriff(true);
-
- $query = "SELECT *, (SELECT COUNT(*) FROM #__sportsmanager_rangliste WHERE rangliste_system_id = system_id) AS ranglisten, (SELECT COUNT(*) FROM #__sportsmanager_rangliste_turnierdisziplin WHERE rangliste_system_id = system_id) AS ranglistenturnierdisziplinen FROM #__sportsmanager_rangliste_system ORDER BY status DESC, systembezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $error_level = error_reporting(E_ERROR);
- $math = new MathParserSM;
- $math->setVariable('n', 100);
- $math->setVariable('m', 1);
- $math->setVariable('p', 5);
- $pruefung = array();
- foreach ($rows as $row) {
- $korrekt = true;
- $pruefung[$row->rangliste_system_id] = $korrekt;
- if (!empty($row->funktion)) {
- try {
- $math->setExpression($row->funktion);
- $n = $math->getValue();
- }
- catch (Exception $e) {
- $korrekt = false;
- }
- }
- $pruefung[$row->rangliste_system_id] = $korrekt;
- }
- error_reporting($error_level);
-
- HTML_sportsmanager_admin::adminRanglistensysteme($rows, $pruefung);
-}
-
-function adminEditRanglistensystem() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("ranglistenwertungen_aendern"))
- keinZugriff(true);
-
- $row = null;
- $punkte = null;
-
- $id = $jinput->get('id', 0, 'INT');
- $typ = $jinput->get('typ', 0, 'INT');
- if ($id != null) {
- $query = "SELECT * FROM #__sportsmanager_rangliste_system WHERE rangliste_system_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $row = $rows[0];
-
- $query = "SELECT * FROM #__sportsmanager_rangliste_system_punkte WHERE system_id = $id ORDER BY rangliste_system_punkte_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $punkte = $db->loadObjectList();
- }
-
- HTML_sportsmanager_admin::adminEditRanglistensystem($row, $punkte, $row != null ? ($row->funktion != null) : $typ);
-}
-
-function adminSaveRanglistensystem() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("ranglistenwertungen_aendern"))
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_ranglistensysteme');
-
- return;
- }
-
- $id = $jinput->get('id', 0, 'INT');
- $bezeichnung = $db->escape(trim($jinput->get('bezeichnung', '', 'RAW')));
- $status = $jinput->get('status', 0, 'INT');
- $funktion = $db->escape(trim($jinput->get('funktion', '', 'RAW')));
- $typ = $jinput->get('typ', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_rangliste_system WRITE, #__sportsmanager_rangliste_system_punkte WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($id == 0) {
- if ($typ != 1)
- $query = "INSERT INTO #__sportsmanager_rangliste_system (systembezeichnung, status) VALUES ('$bezeichnung', '$status');";
- else
- $query = "INSERT INTO #__sportsmanager_rangliste_system (systembezeichnung, status, funktion) VALUES ('$bezeichnung', '$status', '$funktion');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
- }
- else {
- $query = "UPDATE #__sportsmanager_rangliste_system"
- . "\n SET systembezeichnung = '$bezeichnung',"
- . "\n status = '$status'";
- if ($typ == 1)
- $query .= ",\n funktion = '$funktion'";
- $query .= "\n WHERE rangliste_system_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $query = "DELETE FROM #__sportsmanager_rangliste_system_punkte WHERE system_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($typ != 1) {
- for ($punkte_nr = 1; $punkte_nr <= 50; $punkte_nr++) {
- $platz_min = $jinput->get('punkte_' . $punkte_nr . '_platz_min', 0, 'INT');
- $platz_max = $jinput->get('punkte_' . $punkte_nr . '_platz_max', 0, 'INT');
- $teilnehmer_min = $jinput->get('punkte_' . $punkte_nr . '_teilnehmer_min', 0, 'INT');
- $teilnehmer_max = $jinput->get('punkte_' . $punkte_nr . '_teilnehmer_max', 0, 'INT');
- $punkte = $jinput->get('punkte_' . $punkte_nr . '_punkte', 0, 'INT');
-
- if ($punkte != 0) {
- $query = "INSERT INTO #__sportsmanager_rangliste_system_punkte (system_id, platz_min, platz_max, teilnehmer_min, teilnehmer_max, punkte) VALUES ('$id', '$platz_min', '$platz_max', '$teilnehmer_min', '$teilnehmer_max', '$punkte');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- ranglisteAktualisieren();
- einstufungAktualisieren();
-
- redirectSportsManagerURL('&task=admin_ranglistensysteme');
-}
-
-function adminRanglistensystemAuswertung() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("ranglistenwertungen_aendern"))
- keinZugriff(true);
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_ranglistensysteme');
-
- return;
- }
-
- $id = $jinput->get('id', 0, 'INT');
- $teilnehmer = $jinput->get('teilnehmer', 100, 'INT');
- $multiplikator = $jinput->get('multiplikator', 1, 'FLOAT');
-
- $query = "SELECT * FROM #__sportsmanager_rangliste_system WHERE rangliste_system_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $system = $rows[0];
-
- $query = "SELECT * FROM #__sportsmanager_rangliste_system_punkte WHERE system_id = $id ORDER BY rangliste_system_punkte_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $systempunkte = $db->loadObjectList();
-
- if ($system->funktion != NULL) {
- $math = new MathParserSM;
- try {
- $math->setVariable('n', $teilnehmer);
- $math->setVariable('m', $multiplikator);
- $math->setExpression($system->funktion);
- } catch (Exception $e) {
- }
- }
-
- $teilnehmerpunkte = array();
- for ($platz = 1; $platz <= $teilnehmer; $platz++) {
- $p = 0;
- if ($system->funktion == NULL) {
- foreach ($systempunkte as $sp) {
- if (($sp->platz_min == 0 || $sp->platz_min <= $platz) && ($sp->platz_max == 0 || $platz <= $sp->platz_max) && ($sp->teilnehmer_min == 0 || $sp->teilnehmer_min <= $teilnehmer) && ($sp->teilnehmer_max == 0 || $teilnehmer <= $sp->teilnehmer_max)) {
- $p = round($sp->punkte * $multiplikator);
- break;
- }
- }
- } else {
- try {
- $math->setVariable('p', $platz);
- $p = round($math->getValue());
- } catch (Exception $e) {
- }
- }
- $teilnehmerpunkte[$platz] = $p;
- }
-
- HTML_sportsmanager_admin::adminRanglistensystemAuswertung($system, $teilnehmer, $multiplikator, $teilnehmerpunkte);
-}
-
-function adminRanglistensystemAuswertungOLd() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("ranglistenwertungen_aendern"))
- keinZugriff(true);
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_ranglistensysteme');
-
- return;
- }
-
- $row = null;
- $punkte = null;
-
- $id = $jinput->get('id', 0, 'INT');
- $teilnehmer = $jinput->get('teilnehmer', 100, 'INT');
- $multiplikator = $jinput->get('multiplikator', 1, 'INT');
-
- $query = "SELECT * FROM #__sportsmanager_rangliste_system WHERE rangliste_system_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $system = $rows[0];
-
- $query = "SELECT * FROM #__sportsmanager_rangliste_system_punkte WHERE system_id = $id ORDER BY rangliste_system_punkte_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $systempunkte = $db->loadObjectList();
-
- $teilnehmerpunkte = array();
- $math = new MathParserSM;
- for ($platz = 1; $platz <= $teilnehmer; $platz++) {
- $p = 0;
- if ($id != 0 && $system->funktion == NULL) {
- foreach ($systempunkte as $sp) {
- if (($sp->platz_min == 0 || $sp->platz_min <= $platz) && ($sp->platz_max == 0 || $platz <= $sp->platz_max) && ($sp->teilnehmer_min == 0 || $sp->teilnehmer_min <= $teilnehmer) && ($sp->teilnehmer_max == 0 || $teilnehmer <= $sp->teilnehmer_max)) {
- $p = round($sp->punkte * $wertung_multiplikator_normal);
- break;
- }
- }
- } else {
- $math->setVariable('p', $turnierplatzierung->platz);
- $math->setVariable('m', $wertung_multiplikator_normal);
- $math->setExpression($system->funktion);
- try {
- $p = round($math->getValue());
- } catch (Exception $e) {
-
- }
- }
- $teilnehmerpunkte[$platz] = $p;
- }
-
- HTML_sportsmanager_admin::adminRanglistensystemAuswertung($row, $teilnehmer, $multiplikator, $teilnehmerpunkte);
-}
-
-function adminRemoveRanglistensystem() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("ranglistenwertungen_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_rangliste_system WRITE, #__sportsmanager_rangliste_system_punkte WRITE, #__sportsmanager_rangliste READ, #__sportsmanager_rangliste_turnierdisziplin READ;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_rangliste WHERE system_id = $id), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS'));
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_rangliste_turnierdisziplin WHERE system_id = $id), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS'));
-
- $query = "DELETE FROM #__sportsmanager_rangliste_system_punkte WHERE system_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_rangliste_system WHERE rangliste_system_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_ranglistensysteme');
-}
-
-function adminEditRangliste() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("ranglisten_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- if ($id == 0)
- $rangliste = null;
- else {
- $query = "SELECT * FROM #__sportsmanager_rangliste WHERE rangliste_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $rangliste = $rows[0];
- }
-
- $query = "SELECT * FROM #__sportsmanager_rangliste_system WHERE status > 0 " . ($id != 0 ? "OR rangliste_system_id = $rangliste->system_id " : "") . "ORDER BY systembezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $systeme = $db->loadObjectList();
-
- $query = "SELECT nummer, bezeichnung FROM #__sportsmanager_kategorie WHERE typ = 4 ORDER BY nummer";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows_kategorien = $db->loadObjectList();
-
- $query = "SELECT * FROM #__sportsmanager_saison ORDER BY saisonbezeichnung DESC";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $saisons = $db->loadObjectList();
-
- $kategorien = array();
- foreach ($rows_kategorien as $kategorie)
- $kategorien[$kategorie->nummer] = $kategorie->bezeichnung;
-
- HTML_sportsmanager_admin::adminEditRangliste($rangliste, $systeme, $kategorien, $saisons);
-}
-
-function adminSaveRangliste() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("ranglisten_aendern"))
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_uebersicht');
-
- return;
- }
-
- $id = $jinput->get('id', 0, 'INT');
- $bezeichnung = $db->escape(trim($jinput->get('bezeichnung', '', 'RAW')));
- $saison_id = $jinput->get('saison_id', 0, 'INT');
- $erster_tag = normalisiertesDatum(sprintf("%04d-%02d-%02d", $jinput->get('erster_tag_jahr', 2000, 'INT'), $jinput->get('erster_tag_monat', 1, 'INT'), $jinput->get('erster_tag_tag', 1, 'INT')));
- $letzter_tag = normalisiertesDatum(sprintf("%04d-%02d-%02d", $jinput->get('letzter_tag_jahr', 2000, 'INT'), $jinput->get('letzter_tag_monat', 1, 'INT'), $jinput->get('letzter_tag_tag', 1, 'INT')));
- $system_id = $jinput->get('system_id', 0, 'INT');
- $maximal_gewertet_typ = $jinput->get('maximal_gewertet_typ', 0, 'INT');
- if ($maximal_gewertet_typ == 0)
- $maximal_gewertet_zahl = 0;
- else if ($maximal_gewertet_typ == 1)
- $maximal_gewertet_zahl = -$jinput->get('maximal_gewertet_zahl', 0, 'INT');
- else
- $maximal_gewertet_zahl = max(0, 100 - $jinput->get('maximal_gewertet_zahl', 0, 'INT'));
- $minalter = $jinput->get('minalter', 0, 'INT');
- $maxalter = $jinput->get('maxalter', 0, 'INT');
- $ohnealter = $jinput->get('ohnealter', 0, 'INT');
- $geschlecht = $jinput->get('geschlecht', 0, 'INT');
- $status = $jinput->get('status', 0, 'INT');
- $reihenfolge = $jinput->get('reihenfolge', 0, 'INT');
- $kategorie = $jinput->get('kategorie', 0, 'INT');
- if ($id == 0)
- $query = "INSERT INTO #__sportsmanager_rangliste (bezeichnung, saison_id, erster_tag, " . ($letzter_tag != null ? "letzter_tag, " : "") . "system_id, streichergebnisse, geschlecht, minalter, maxalter, ohnealter, status, reihenfolge, kategorie) VALUES ('$bezeichnung', '$saison_id', '$erster_tag', " . ($letzter_tag != null ? "'$letzter_tag', " : "") . "'$system_id', '$maximal_gewertet_zahl', " . ($geschlecht == null ? "null" : "'$geschlecht'") . ", " . ($minalter == null ? "null" : "'$minalter'") . ", " . ($maxalter == null ? "null" : "'$maxalter'") . ", '$ohnealter', '$status', '$reihenfolge', '$kategorie');";
- else {
- $query = "UPDATE #__sportsmanager_rangliste"
- . "\n SET bezeichnung = '$bezeichnung',"
- . "\n saison_id = '$saison_id',"
- . "\n erster_tag = '$erster_tag',"
- . "\n letzter_tag = " . ($letzter_tag != null ? "'$letzter_tag'," : "NULL,")
- . "\n system_id = '$system_id',"
- . "\n streichergebnisse = '$maximal_gewertet_zahl',"
- . "\n geschlecht = " . ($geschlecht != null ? "'$geschlecht'," : "NULL,")
- . "\n minalter = " . ($minalter != null ? "'$minalter'," : "NULL,")
- . "\n maxalter = " . ($maxalter != null ? "'$maxalter'," : "NULL,")
- . "\n ohnealter = '$ohnealter',"
- . "\n status = '$status',"
- . "\n reihenfolge = '$reihenfolge',"
- . "\n kategorie = '$kategorie'"
- . "\n WHERE rangliste_id = $id";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- if ($id == 0)
- $id = $db->insertid();
-
- ranglisteAktualisieren($id);
- einstufungAktualisieren();
-
- redirectSportsManagerURL('&task=admin_uebersicht');
-}
-
-function adminRemoveRangliste() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("ranglisten_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_rangliste_punkte WRITE, #__sportsmanager_rangliste_turnierdisziplin_punkte WRITE, #__sportsmanager_rangliste_turnierdisziplin WRITE, #__sportsmanager_turnierdisziplin WRITE, #__sportsmanager_rangliste WRITE, #__sportsmanager_einstufung_rangliste WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_einstufung_rangliste WHERE rangliste_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_rangliste_turnierdisziplin_punkte WHERE rangliste_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_rangliste_punkte WHERE rangliste_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_rangliste_turnierdisziplin WHERE rangliste_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_turnierdisziplin"
- . "\n SET voranmeldungen_rangliste_id = NULL"
- . "\n WHERE voranmeldungen_rangliste_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_rangliste WHERE rangliste_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- ranglisteAktualisieren($id);
- einstufungAktualisieren();
-
- redirectSportsManagerURL('&task=admin_uebersicht');
-}
-
-function adminKopierenRangliste() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("ranglisten_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_rangliste WRITE, #__sportsmanager_rangliste_turnierdisziplin WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT * FROM #__sportsmanager_rangliste WHERE rangliste_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $rangliste = $rows[0];
-
- $query = "INSERT INTO #__sportsmanager_rangliste (saison_id, system_id, streichergebnisse, geschlecht, minalter, maxalter, ohnealter, bezeichnung, erster_tag, letzter_tag, status, reihenfolge, kategorie)"
- . "\n VALUES ('$rangliste->saison_id', " . ($rangliste->system_id == null ? "null" : "'$rangliste->system_id'") . ", '" . $db->escape($rangliste->streichergebnisse) . "', " . ($rangliste->geschlecht == null ? "null" : "'$rangliste->geschlecht'") . ", " . ($rangliste->minalter == null ? "null" : "'$rangliste->minalter'") . ", " . ($rangliste->maxalter == null ? "null" : "'$rangliste->maxalter'") . ", '$rangliste->ohnealter', '" . $db->escape($rangliste->bezeichnung . " (Kopie)") . "', '" . $db->escape($rangliste->erster_tag) . "', '" . $db->escape($rangliste->letzter_tag) . "', '0', '" . $db->escape($rangliste->reihenfolge) . "', '" . $db->escape($rangliste->kategorie) . "');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $ziel_rangliste_id = $db->insertid();
-
- // Disziplinen kopieren
-
- $query = "SELECT * FROM #__sportsmanager_rangliste_turnierdisziplin WHERE rangliste_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- foreach ($rows as $row) {
- $query = "INSERT INTO #__sportsmanager_rangliste_turnierdisziplin (rangliste_id, turnierdisziplin_id, system_id, wertung, doppel_teilwertung)"
- . "\n VALUES ($ziel_rangliste_id, '$row->turnierdisziplin_id', " . ($row->system_id == null ? "null" : "'$row->system_id'") . ", '$row->wertung', '$row->doppel_teilwertung');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_uebersicht');
-}
-
-function adminRanglisteTurnierdisziplinen() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("ranglisten_aendern"))
- keinZugriff(true);
-
- $rangliste_id = $jinput->get('rangliste_id', 0, 'INT');
- if ($rangliste_id == 0) die ("Wrong id!");
-
- $query = "SELECT * FROM #__sportsmanager_rangliste WHERE rangliste_id = $rangliste_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $ranglisten = $db->loadObjectList();
- if (count($ranglisten) < 1) die ("Wrong id");
- $rangliste = $ranglisten[0];
-
- $query = "SELECT #__sportsmanager_rangliste_turnierdisziplin.*, disziplin, turnierbezeichnung, turnierort, systembezeichnung, beginn"
- . "\n FROM #__sportsmanager_rangliste_turnierdisziplin"
- . "\n LEFT JOIN #__sportsmanager_turnierdisziplin USING (turnierdisziplin_id)"
- . "\n LEFT JOIN #__sportsmanager_turnier USING (turnier_id)"
- . "\n LEFT JOIN #__sportsmanager_rangliste_system ON system_id = rangliste_system_id"
- . "\n WHERE rangliste_id = $rangliste_id"
- . "\n ORDER BY #__sportsmanager_turnier.erster_tag DESC, disziplin";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $turnierdisziplinen = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminRanglisteTurnierdisziplinen($rangliste, $turnierdisziplinen);
-}
-
-function adminEditRanglisteTurnierdisziplin() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("ranglisten_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- $rangliste_id = $jinput->get('rangliste_id', 0, 'INT');
-
- if ($id == 0)
- $ranglisteTurnierdisziplin = null;
- else {
- $query = "SELECT * FROM #__sportsmanager_rangliste_turnierdisziplin WHERE rangliste_turnierdisziplin_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $ranglisteTurnierdisziplin = $rows[0];
- }
-
- $query = "SELECT * FROM #__sportsmanager_rangliste WHERE rangliste_id = $rangliste_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $ranglisten = $db->loadObjectList();
- if (count($ranglisten) < 1) die ("Wrong id");
- $rangliste = $ranglisten[0];
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_turnierdisziplin, #__sportsmanager_turnier"
- . "\n WHERE #__sportsmanager_turnierdisziplin.turnier_id = #__sportsmanager_turnier.turnier_id";
- if ($rangliste->erster_tag != null)
- $query .= " AND (ISNULL(erster_tag) OR DATEDIFF(erster_tag, '$rangliste->erster_tag') >= -1096" . ($ranglisteTurnierdisziplin != null ? " OR $ranglisteTurnierdisziplin->turnierdisziplin_id = turnierdisziplin_id" : "") . ")";
- if ($rangliste->letzter_tag != null)
- $query .= " AND (ISNULL(erster_tag) OR DATEDIFF('$rangliste->letzter_tag', letzter_Tag) >= -366" . ($ranglisteTurnierdisziplin != null ? " OR $ranglisteTurnierdisziplin->turnierdisziplin_id = turnierdisziplin_id" : "") . ")";
- $query .= "\n ORDER BY erster_tag DESC, turnierbezeichnung, reihenfolge, disziplin";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $turnierdisziplinen = $db->loadObjectList();
-
- $query = "SELECT * FROM #__sportsmanager_rangliste_system WHERE status != 0 " . ($id != 0 && $ranglisteTurnierdisziplin->system_id != null ? "OR rangliste_system_id = $ranglisteTurnierdisziplin->system_id " : "") . "ORDER BY systembezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $systeme = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminEditRanglisteTurnierdisziplin($rangliste, $ranglisteTurnierdisziplin, $turnierdisziplinen, $systeme);
-}
-
-function adminSaveRanglisteTurnierdisziplin() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("ranglisten_aendern"))
- keinZugriff();
-
- $id = $jinput->get('id', 0, 'INT');
- $rangliste_id = $jinput->get('rangliste_id', 0, 'INT');
- $turnierdisziplin_id = $db->escape($jinput->get('turnierdisziplin_id', 0, 'INT'));
- $system_id = $jinput->get('system_id', 0, 'INT');
- $wertung = $jinput->get('wertung', 0, 'RAW');
- $doppel_teilwertung = $jinput->get('doppel_teilwertung', 0, 'RAW');
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_rangliste_turnierdisziplinen&rangliste_id=' . $rangliste_id);
-
- return;
- }
-
- $query = ($id == 0 ? "INSERT" : "UPDATE") . " #__sportsmanager_rangliste_turnierdisziplin"
- . "\n SET rangliste_id = '$rangliste_id',"
- . "\n turnierdisziplin_id = '$turnierdisziplin_id',"
- . "\n system_id = " . ($system_id != 0 ? "'$system_id'" : "NULL") . ","
- . "\n wertung = '" . $db->escape($wertung) . "',"
- . "\n doppel_teilwertung = '" . $db->escape($doppel_teilwertung) . "'";
- if ($id != 0)
- $query .= "\n WHERE rangliste_turnierdisziplin_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- ranglisteAktualisieren($rangliste_id);
- einstufungAktualisieren();
-
- redirectSportsManagerURL('&task=admin_rangliste_turnierdisziplinen&rangliste_id=' . $rangliste_id);
-}
-
-function adminRemoveRanglisteTurnierdisziplin() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("ranglisten_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- $rangliste_id = $jinput->get('rangliste_id', 0, 'INT');
-
- $query = "DELETE FROM #__sportsmanager_rangliste_turnierdisziplin WHERE rangliste_turnierdisziplin_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- ranglisteAktualisieren($rangliste_id);
- einstufungAktualisieren();
-
- redirectSportsManagerURL('&task=admin_rangliste_turnierdisziplinen&rangliste_id=' . $rangliste_id);
-}
-
-function adminRanglisteDisziplinenEntfernen() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("ranglisten_aendern"))
- keinZugriff(true);
-
- $rangliste_id = $jinput->get('rangliste_id', 0, 'INT');
-
- $query = "DELETE FROM #__sportsmanager_rangliste_turnierdisziplin WHERE rangliste_id = $rangliste_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- ranglisteAktualisieren($rangliste_id);
- einstufungAktualisieren();
-
- redirectSportsManagerURL('&task=admin_rangliste_turnierdisziplinen&rangliste_id=' . $rangliste_id);
-}
-
-function adminRanglisteSystemZuruecksetzen() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("ranglisten_aendern"))
- keinZugriff(true);
-
- $rangliste_id = $jinput->get('rangliste_id', 0, 'INT');
-
- $query = "UPDATE #__sportsmanager_rangliste_turnierdisziplin"
- . "\n SET system_id = NULL,"
- . "\n wertung = 1"
- . "\n WHERE rangliste_id = $rangliste_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- ranglisteAktualisieren($rangliste_id);
- einstufungAktualisieren();
-
- redirectSportsManagerURL('&task=admin_rangliste_turnierdisziplinen&rangliste_id=' . $rangliste_id);
-}
-
-function adminEditSpielerstatistik() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spielerstatistiken_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- if ($id == 0)
- $spielerstatistik = null;
- else {
- $query = "SELECT * FROM #__sportsmanager_bestenliste WHERE bestenliste_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $spielerstatistik = $rows[0];
- }
-
- $query = "SELECT nummer, bezeichnung FROM #__sportsmanager_kategorie WHERE typ = 5 ORDER BY nummer";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows_kategorien = $db->loadObjectList();
-
- $kategorien = array();
- foreach ($rows_kategorien as $kategorie)
- $kategorien[$kategorie->nummer] = $kategorie->bezeichnung;
-
- $query = "SELECT * FROM #__sportsmanager_saison ORDER BY saisonbezeichnung DESC";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $saisons = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminEditSpielerstatistik($spielerstatistik, $kategorien, $saisons);
-}
-
-function adminSaveSpielerstatistik() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spielerstatistiken_aendern"))
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_uebersicht');
-
- return;
- }
-
- $id = $jinput->get('id', 0, 'INT');
- $bezeichnung = $db->escape(trim($jinput->get('bezeichnung', '', 'RAW')));
- $saison_id = $jinput->get('saison_id', 0, 'INT');
- $erster_tag = normalisiertesDatum(sprintf("%04d-%02d-%02d", $jinput->get('erster_tag_jahr', 2000, 'INT'), $jinput->get('erster_tag_monat', 1, 'INT'), $jinput->get('erster_tag_tag', 1, 'INT')));
- $letzter_tag = normalisiertesDatum(sprintf("%04d-%02d-%02d", $jinput->get('letzter_tag_jahr', 2000, 'INT'), $jinput->get('letzter_tag_monat', 1, 'INT'), $jinput->get('letzter_tag_tag', 1, 'INT')));
- $tabellenwertung = $jinput->get('tabellenwertung', 0, 'INT');
- $typ = $jinput->get('typ', 0, 'INT');
- $status = $jinput->get('status', 0, 'INT');
- $reihenfolge = $jinput->get('reihenfolge', 0, 'INT');
- $kategorie = $jinput->get('kategorie', 0, 'INT');
- if ($id == 0) {
- $query = "INSERT INTO #__sportsmanager_bestenliste (bezeichnung, saison_id, erster_tag, " . ($letzter_tag != null ? "letzter_tag, " : "") . "tabellenwertung, typ, status, reihenfolge, kategorie) VALUES ('$bezeichnung', '$saison_id', '$erster_tag', " . ($letzter_tag != null ? "'$letzter_tag', " : "") . "'$tabellenwertung', '$typ', '$status', '$reihenfolge', '$kategorie');";
- $spielerstatistik_aktualisieren = false;
- }
- else {
- $query = "SELECT * FROM #__sportsmanager_bestenliste WHERE bestenliste_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $spielerstatistik = $rows[0];
-
- $query = "UPDATE #__sportsmanager_bestenliste"
- . "\n SET bezeichnung = '$bezeichnung',"
- . "\n saison_id = '$saison_id',"
- . "\n erster_tag = '$erster_tag',"
- . "\n letzter_tag = " . ($letzter_tag != null ? "'$letzter_tag'," : "NULL,")
- . "\n tabellenwertung = '$tabellenwertung',"
- . "\n typ = '$typ',"
- . "\n status = '$status',"
- . "\n reihenfolge = '$reihenfolge',"
- . "\n kategorie = '$kategorie'"
- . "\n WHERE bestenliste_id = $id";
-
- if ($spielerstatistik->tabellenwertung != $tabellenwertung || $spielerstatistik->typ != $typ)
- $spielerstatistik_aktualisieren = true;
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- if ($id == 0)
- $id = $db->insertid();
-
- if ($spielerstatistik_aktualisieren)
- spielerstatistikAktualisieren($id);
-
- redirectSportsManagerURL('&task=admin_uebersicht');
-}
-
-function adminRemoveSpielerstatistik() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spielerstatistiken_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_bestenliste_punkte WRITE, #__sportsmanager_bestenliste_veranstaltung WRITE, #__sportsmanager_bestenliste_individualwettbewerb WRITE, #__sportsmanager_bestenliste WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_bestenliste_punkte WHERE bestenliste_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_bestenliste_veranstaltung WHERE bestenliste_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_bestenliste_individualwettbewerb WHERE bestenliste_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_bestenliste WHERE bestenliste_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_uebersicht');
-}
-
-function adminKopierenSpielerstatistik() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spielerstatistiken_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_bestenliste WRITE, #__sportsmanager_bestenliste_veranstaltung WRITE, #__sportsmanager_bestenliste_individualwettbewerb WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT * FROM #__sportsmanager_bestenliste WHERE bestenliste_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $spielerstatistik = $rows[0];
-
- $query = "INSERT INTO #__sportsmanager_bestenliste (saison_id, bezeichnung, tabellenwertung, typ, erster_tag, letzter_tag, status, reihenfolge, kategorie)"
- . "\n VALUES ('$spielerstatistik->saison_id', '" . $db->escape($spielerstatistik->bezeichnung . " (Kopie)") . "', '$spielerstatistik->tabellenwertung', '$spielerstatistik->typ', '" . $db->escape($spielerstatistik->erster_tag) . "', '" . $db->escape($spielerstatistik->letzter_tag) . "', '0', '" . $db->escape($spielerstatistik->reihenfolge) . "', '" . $db->escape($spielerstatistik->kategorie) . "');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $ziel_spielerstatistik_id = $db->insertid();
-
- $query = "SELECT * FROM #__sportsmanager_bestenliste_veranstaltung WHERE bestenliste_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- foreach ($rows as $row) {
- $query = "INSERT INTO #__sportsmanager_bestenliste_veranstaltung (bestenliste_id, veranstaltung_id)"
- . "\n VALUES ($ziel_spielerstatistik_id, $row->veranstaltung_id);";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $query = "SELECT * FROM #__sportsmanager_bestenliste_individualwettbewerb WHERE bestenliste_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- foreach ($rows as $row) {
- $query = "INSERT INTO #__sportsmanager_bestenliste_individualwettbewerb (bestenliste_id, individualwettbewerb_id)"
- . "\n VALUES ($ziel_spielerstatistik_id, $row->individualwettbewerb_id);";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- spielerstatistikAktualisieren($ziel_spielerstatistik_id);
-
- redirectSportsManagerURL('&task=admin_uebersicht');
-}
-
-function adminSpielerstatistikVeranstaltungen() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spielerstatistiken_aendern"))
- keinZugriff(true);
-
- $spielerstatistik_id = $jinput->get('spielerstatistik_id', 0, 'INT');
- if ($spielerstatistik_id == 0) die ("Wrong id!");
-
- $query = "SELECT * FROM #__sportsmanager_bestenliste WHERE bestenliste_id = $spielerstatistik_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spielerstatistiken = $db->loadObjectList();
- if (count($spielerstatistiken) < 1) die ("Wrong id");
- $spielerstatistik = $spielerstatistiken[0];
-
- $query = "SELECT #__sportsmanager_bestenliste_veranstaltung.*, bezeichnung, erster_tag, letzter_tag, saisonbezeichnung"
- . "\n FROM #__sportsmanager_bestenliste_veranstaltung"
- . "\n LEFT JOIN #__sportsmanager_veranstaltung USING (veranstaltung_id)"
- . "\n LEFT JOIN #__sportsmanager_saison ON #__sportsmanager_saison.saison_id = #__sportsmanager_veranstaltung.saison_id"
- . "\n WHERE bestenliste_id = $spielerstatistik_id"
- . "\n ORDER BY YEAR(letzter_tag) DESC, reihenfolge, letzter_tag DESC, bezeichnung, kategorie";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstaltungen = $db->loadObjectList();
-
- $query = "SELECT #__sportsmanager_bestenliste_individualwettbewerb.*, bezeichnung, saisonbezeichnung"
- . "\n FROM #__sportsmanager_bestenliste_individualwettbewerb"
- . "\n LEFT JOIN #__sportsmanager_individualwettbewerb USING (individualwettbewerb_id)"
- . "\n LEFT JOIN #__sportsmanager_saison ON #__sportsmanager_saison.saison_id = #__sportsmanager_individualwettbewerb.saison_id"
- . "\n WHERE bestenliste_id = $spielerstatistik_id"
- . "\n ORDER BY saisonbezeichnung, reihenfolge, bezeichnung, kategorie";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $individualwettbewerbe = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminSpielerstatistikVeranstaltungen($spielerstatistik, $veranstaltungen, $individualwettbewerbe);
-}
-
-function adminEditSpielerstatistikVeranstaltung() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spielerstatistiken_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- $spielerstatistik_id = $jinput->get('spielerstatistik_id', 0, 'INT');
-
- if ($id == 0)
- $spielerstatistikVeranstaltung = null;
- else {
- $query = "SELECT * FROM #__sportsmanager_bestenliste_veranstaltung WHERE bestenliste_veranstaltung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $spielerstatistikVeranstaltung = $rows[0];
- }
-
- $query = "SELECT * FROM #__sportsmanager_bestenliste WHERE bestenliste_id = $spielerstatistik_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spielerstatistiken = $db->loadObjectList();
- if (count($spielerstatistiken) < 1) die ("Wrong id");
- $spielerstatistik = $spielerstatistiken[0];
-
- $query = "SELECT * FROM #__sportsmanager_veranstaltung";
- if ($spielerstatistik->erster_tag != null)
- $query .= "\n WHERE (ISNULL(erster_tag) OR DATEDIFF(erster_tag, '$spielerstatistik->erster_tag') >= -1096" . ($spielerstatistikVeranstaltung != null ? " OR $spielerstatistikVeranstaltung->veranstaltung_id = veranstaltung_id" : "") . ")";
- if ($spielerstatistik->letzter_tag != null)
- $query .= ($spielerstatistik->erster_tag != null ? " AND" : "\n WHERE") . " (ISNULL(erster_tag) OR DATEDIFF('$spielerstatistik->letzter_tag', letzter_Tag) >= -366" . ($spielerstatistikVeranstaltung != null ? " OR $spielerstatistikVeranstaltung->veranstaltung_id = veranstaltung_id" : "") . ")";
- $query .= "\n ORDER BY YEAR(letzter_tag) DESC, reihenfolge, letzter_tag DESC, bezeichnung, kategorie";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstaltungen = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminEditSpielerstatistikVeranstaltung($spielerstatistik, $spielerstatistikVeranstaltung, $veranstaltungen);
-}
-
-function adminSaveSpielerstatistikVeranstaltung() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spielerstatistiken_aendern"))
- keinZugriff();
-
- $id = $jinput->get('id', 0, 'INT');
- $spielerstatistik_id = $jinput->get('spielerstatistik_id', 0, 'INT');
- $veranstaltung_id = $jinput->get('veranstaltung_id', 0, 'INT');
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_spielerstatistik_veranstaltungen&spielerstatistik_id=' . $spielerstatistik_id);
-
- return;
- }
-
- $query = ($id == 0 ? "INSERT" : "UPDATE") . " #__sportsmanager_bestenliste_veranstaltung"
- . "\n SET bestenliste_id = '$spielerstatistik_id',"
- . "\n veranstaltung_id = '$veranstaltung_id'";
- if ($id != 0)
- $query .= "\n WHERE bestenliste_veranstaltung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- spielerstatistikAktualisieren($spielerstatistik_id);
-
- redirectSportsManagerURL('&task=admin_spielerstatistik_veranstaltungen&spielerstatistik_id=' . $spielerstatistik_id);
-}
-
-function adminRemoveSpielerstatistikVeranstaltung() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spielerstatistiken_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- $spielerstatistik_id = $jinput->get('spielerstatistik_id', 0, 'INT');
-
- $query = "DELETE FROM #__sportsmanager_bestenliste_veranstaltung WHERE bestenliste_veranstaltung_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- spielerstatistikAktualisieren($spielerstatistik_id);
-
- redirectSportsManagerURL('&task=admin_spielerstatistik_veranstaltungen&spielerstatistik_id=' . $spielerstatistik_id);
-}
-
-function adminEditSpielerstatistikIndividualwettbewerb() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spielerstatistiken_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- $spielerstatistik_id = $jinput->get('spielerstatistik_id', 0, 'INT');
-
- if ($id == 0)
- $spielerstatistikIndividualwettbewerb = null;
- else {
- $query = "SELECT * FROM #__sportsmanager_bestenliste_individualwettbewerb WHERE bestenliste_individualwettbewerb_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $spielerstatistikIndividualwettbewerb = $rows[0];
- }
-
- $query = "SELECT * FROM #__sportsmanager_bestenliste WHERE bestenliste_id = $spielerstatistik_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spielerstatistiken = $db->loadObjectList();
- if (count($spielerstatistiken) < 1) die ("Wrong id");
- $spielerstatistik = $spielerstatistiken[0];
-
- $query = "SELECT * FROM #__sportsmanager_individualwettbewerb"
- . "\n LEFT JOIN #__sportsmanager_saison USING (saison_id)"
- . "\n ORDER BY saisonbezeichnung DESC, reihenfolge, bezeichnung, kategorie";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $individualwettbewerbe = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminEditSpielerstatistikIndividualwettbewerb($spielerstatistik, $spielerstatistikIndividualwettbewerb, $individualwettbewerbe);
-}
-
-function adminSaveSpielerstatistikIndividualwettbewerb() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spielerstatistiken_aendern"))
- keinZugriff();
-
- $id = $jinput->get('id', 0, 'INT');
- $spielerstatistik_id = $jinput->get('spielerstatistik_id', 0, 'INT');
- $individualwettbewerb_id = $jinput->get('individualwettbewerb_id', 0, 'INT');
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_spielerstatistik_veranstaltungen&spielerstatistik_id=' . $spielerstatistik_id);
-
- return;
- }
-
- $query = ($id == 0 ? "INSERT" : "UPDATE") . " #__sportsmanager_bestenliste_individualwettbewerb"
- . "\n SET bestenliste_id = '$spielerstatistik_id',"
- . "\n individualwettbewerb_id = '$individualwettbewerb_id'";
- if ($id != 0)
- $query .= "\n WHERE bestenliste_individualwettbewerb_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- spielerstatistikAktualisieren($spielerstatistik_id);
-
- redirectSportsManagerURL('&task=admin_spielerstatistik_veranstaltungen&spielerstatistik_id=' . $spielerstatistik_id);
-}
-
-function adminRemoveSpielerstatistikIndividualwettbewerb() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("spielerstatistiken_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- $spielerstatistik_id = $jinput->get('spielerstatistik_id', 0, 'INT');
-
- $query = "DELETE FROM #__sportsmanager_bestenliste_individualwettbewerb WHERE bestenliste_individualwettbewerb_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- spielerstatistikAktualisieren($spielerstatistik_id);
-
- redirectSportsManagerURL('&task=admin_spielerstatistik_veranstaltungen&spielerstatistik_id=' . $spielerstatistik_id);
-}
-
-function adminSpielerstatistikVeranstaltungenEntfernen() {
- $db =& getDatabase();
-
- if (!benutzerZugriff("spielerstatistiken_aendern"))
- keinZugriff(true);
-
- $spielerstatistik_id = $jinput->get('spielerstatistik_id', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_bestenliste_veranstaltung WRITE, #__sportsmanager_bestenliste_individualwettbewerb WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_bestenliste_veranstaltung WHERE bestenliste_id = $spielerstatistik_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_bestenliste_individualwettbewerb WHERE bestenliste_id = $spielerstatistik_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- spielerstatistikAktualisieren($spielerstatistik_id);
-
- redirectSportsManagerURL('&task=admin_spielerstatistik_veranstaltungen&spielerstatistik_id=' . $spielerstatistik_id);
-}
-
-function adminModeratoren() {
- $db =& getDatabase();
-
- if (!benutzerZugriff("moderatoren_aendern"))
- keinZugriff(true);
-
- $query = "SELECT t1.moderator_id, t1.moderator_user_id, t2.name, t2.username, (SELECT COUNT(*) FROM #__sportsmanager_moderator_zugriff WHERE #__sportsmanager_moderator_zugriff.moderator_id = t1.moderator_id) AS zugriffe FROM #__sportsmanager_moderator as t1 LEFT JOIN #__users AS t2 ON t1.moderator_user_id=t2.id ORDER BY name, username";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminModeratoren($rows);
-}
-
-function adminEditModerator() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("moderatoren_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- $row = null;
- if ($id != 0) {
- $query = "SELECT * FROM #__sportsmanager_moderator WHERE moderator_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $row = $rows[0];
- }
-
- if (empty($id)) {
- $zugriffe = null;
- }
- else {
- $query = "SELECT * FROM #__sportsmanager_moderator_zugriff WHERE moderator_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $zugriffe = $db->loadObjectList();
- }
-
- $query = "SELECT * FROM #__users ORDER BY name, username";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $users = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminEditModerator($row, $zugriffe, $users);
-}
-
-function adminSaveModerator() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("moderatoren_aendern"))
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_moderatoren');
-
- return;
- }
-
- $id = $jinput->get('id', 0, 'INT');
- $userid = $jinput->get('userid', 0, 'INT');
- $zugriffe = $jinput->get('zugriffe', array(), 'ARRAY');
-
- $query = "LOCK TABLES #__sportsmanager_moderator WRITE, #__sportsmanager_moderator_zugriff WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($id == 0) {
- $query = "INSERT INTO #__sportsmanager_moderator (moderator_user_id)"
- . "\n VALUES ('$userid');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
- }
- else {
- $query = "UPDATE #__sportsmanager_moderator"
- . "\n SET moderator_user_id = '$userid'"
- . "\n WHERE moderator_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $query = "SELECT * FROM #__sportsmanager_moderator_zugriff WHERE moderator_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $alte_zugriffe = $db->loadObjectList();
-
- foreach ($alte_zugriffe as $alter_zugriff) {
- if (!in_array($alter_zugriff->zugriff, $zugriffe)) {
- $alter_zugriff_id = $alter_zugriff->moderator_zugriff_id;
- $query = "DELETE FROM #__sportsmanager_moderator_zugriff WHERE moderator_zugriff_id = $alter_zugriff_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else {
- $index = array_search($alter_zugriff->zugriff, $zugriffe);
- if ($index !== false) {
- unset($zugriffe[$index]);
- }
- }
- }
-
- foreach ($zugriffe as $zugriff) {
- $query = "INSERT #__sportsmanager_moderator_zugriff"
- . "\n SET moderator_id = '$id',"
- . "\n zugriff = '$zugriff',"
- . "\n zusatz = ''";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_moderatoren');
-}
-
-function adminRemoveModerator() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("moderatoren_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_moderator WRITE, #__sportsmanager_moderator_zugriff WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_moderator WHERE moderator_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_moderator_zugriff WHERE moderator_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_moderatoren');
-}
-
-function adminVeranstalter() {
- $db =& getDatabase();
-
- if (!benutzerZugriff("organisationen_aendern"))
- keinZugriff(true);
-
- $query = "SELECT *,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_veranstaltung WHERE #__sportsmanager_veranstalter.veranstalter_id = #__sportsmanager_veranstaltung.veranstalter_id) AS veranstaltungen,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_verein WHERE #__sportsmanager_veranstalter.veranstalter_id = #__sportsmanager_verein.veranstalter_id) AS vereine,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_turnier WHERE #__sportsmanager_veranstalter.veranstalter_id = #__sportsmanager_turnier.veranstalter_id) AS turniere,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_individualwettbewerb WHERE #__sportsmanager_veranstalter.veranstalter_id = #__sportsmanager_individualwettbewerb.veranstalter_id) AS individualwettbewerbe"
- . "\n FROM #__sportsmanager_veranstalter"
- . "\n ORDER BY veranstalterbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminVeranstalter($rows);
-}
-
-function adminEditVeranstalter() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("organisationen_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- if ($id == 0) {
- $row = null;
- $berechtigt_fuer_veranstalter = array();
- }
- else {
- $query = "SELECT * FROM #__sportsmanager_veranstalter WHERE veranstalter_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) == 1)
- $row = $rows[0];
-
- $query = "SELECT #__sportsmanager_berechtigt_fuer_veranstalter.* FROM #__sportsmanager_berechtigt_fuer_veranstalter, #__users WHERE berechtigt_user_id = id AND berechtigt_veranstalter_id = $id ORDER BY username, name";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $berechtigt_fuer_veranstalter = $db->loadObjectList();
- }
-
- $query = "SELECT * FROM #__users ORDER BY name, username";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $users = $db->loadObjectList();
-
- $query = "SELECT nummer, bezeichnung FROM #__sportsmanager_kategorie WHERE typ = 1 ORDER BY nummer";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows_kategorien = $db->loadObjectList();
-
- $kategorien = array();
- foreach ($rows_kategorien as $kategorie)
- $kategorien[$kategorie->nummer] = $kategorie->bezeichnung;
-
- HTML_sportsmanager_admin::adminEditVeranstalter($row, $berechtigt_fuer_veranstalter, $users, $kategorien);
-}
-
-function adminSaveVeranstalter() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("organisationen_aendern"))
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_veranstalter');
-
- return;
- }
-
- $id = $jinput->get('id', 0, 'INT');
- $bezeichnung = $db->escape(trim($jinput->get('bezeichnung', '', 'RAW')));
- $kuerzel = $db->escape(trim($jinput->get('kuerzel', '', 'RAW')));
- $kategorie = $jinput->get('kategorie', 0, 'INT');
-
- $berechtigt_fuer_veranstalter_user_ids = array($jinput->get('berechtigt_fuer_veranstalter_user_1_id', 0, 'INT'),
- $jinput->get('berechtigt_fuer_veranstalter_user_2_id', 0, 'INT'),
- $jinput->get('berechtigt_fuer_veranstalter_user_3_id', 0, 'INT'),
- $jinput->get('berechtigt_fuer_veranstalter_user_4_id', 0, 'INT'),
- $jinput->get('berechtigt_fuer_veranstalter_user_5_id', 0, 'INT'),
- $jinput->get('berechtigt_fuer_veranstalter_user_6_id', 0, 'INT'));
-
- $query = "LOCK TABLES #__sportsmanager_veranstalter WRITE, #__sportsmanager_berechtigt_fuer_veranstalter WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($id == 0)
- $query = "INSERT INTO #__sportsmanager_veranstalter (veranstalterbezeichnung, veranstalterkuerzel, kategorie) VALUES ('$bezeichnung', '$kuerzel', '$kategorie');";
- else {
- $query = "UPDATE #__sportsmanager_veranstalter"
- . "\n SET veranstalterbezeichnung = '$bezeichnung',"
- . "\n veranstalterkuerzel = '$kuerzel',"
- . "\n kategorie = '$kategorie'"
- . "\n WHERE veranstalter_id = $id";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- if ($id == 0)
- $id = $db->insertid();
-
- $query = "DELETE FROM #__sportsmanager_berechtigt_fuer_veranstalter WHERE berechtigt_veranstalter_id = $id AND berechtigt_user_id != $berechtigt_fuer_veranstalter_user_ids[0] AND berechtigt_user_id != $berechtigt_fuer_veranstalter_user_ids[1] AND berechtigt_user_id != $berechtigt_fuer_veranstalter_user_ids[2] AND berechtigt_user_id != $berechtigt_fuer_veranstalter_user_ids[3] AND berechtigt_user_id != $berechtigt_fuer_veranstalter_user_ids[4] AND berechtigt_user_id != $berechtigt_fuer_veranstalter_user_ids[5];";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT * FROM #__sportsmanager_berechtigt_fuer_veranstalter WHERE berechtigt_veranstalter_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- for ($nummer = 0; $nummer <= 5; $nummer++) {
- $berechtigt_user_id = $berechtigt_fuer_veranstalter_user_ids[$nummer];
- if ($berechtigt_user_id != 0) {
- $gefunden = false;
- foreach ($rows as $row) {
- if ($row->berechtigt_user_id == $berechtigt_user_id)
- $gefunden = true;
- }
- if (!$gefunden) {
- $query = "INSERT INTO #__sportsmanager_berechtigt_fuer_veranstalter (berechtigt_user_id, berechtigt_veranstalter_id) VALUES ('$berechtigt_user_id', '$id');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_veranstalter');
-}
-
-function adminRemoveVeranstalter() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("organisationen_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_veranstaltung WRITE, #__sportsmanager_rechnung WRITE, #__sportsmanager_berechtigt_fuer_veranstalter WRITE, #__sportsmanager_verein WRITE, #__sportsmanager_turnier WRITE, #__sportsmanager_individualwettbewerb WRITE, #__sportsmanager_veranstalter WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstalter_id = $id), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS'));
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_verein WHERE veranstalter_id = $id), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS'));
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_turnier WHERE veranstalter_id = $id), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS'));
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb WHERE veranstalter_id = $id), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS'));
-
- $query = "UPDATE #__sportsmanager_rechnung SET veranstalter_id = NULL WHERE veranstalter_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_berechtigt_fuer_veranstalter WHERE berechtigt_veranstalter_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_veranstalter WHERE veranstalter_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_veranstalter');
-}
-
-function adminSaisons() {
- $db =& getDatabase();
-
- if (!benutzerZugriff("saisons_aendern"))
- keinZugriff(true);
-
- $query = "SELECT *,"
- . "\n IF(EXISTS(SELECT * FROM #__sportsmanager_veranstaltung WHERE #__sportsmanager_veranstaltung.saison_id = #__sportsmanager_saison.saison_id), 1, 0) AS veranstaltungen,"
- . "\n IF(EXISTS(SELECT * FROM #__sportsmanager_turnier WHERE #__sportsmanager_turnier.saison_id = #__sportsmanager_saison.saison_id), 1, 0) AS turniere,"
- . "\n IF(EXISTS(SELECT * FROM #__sportsmanager_rangliste WHERE #__sportsmanager_rangliste.saison_id = #__sportsmanager_saison.saison_id), 1, 0) AS ranglisten,"
- . "\n IF(EXISTS(SELECT * FROM #__sportsmanager_bestenliste WHERE #__sportsmanager_bestenliste.saison_id = #__sportsmanager_saison.saison_id), 1, 0) AS bestenlisten"
- . "\n FROM #__sportsmanager_saison"
- . "\n ORDER BY saisonbezeichnung DESC";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminSaisons($rows);
-}
-
-function adminEditSaison() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("saisons_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- if ($id == 0)
- $row = null;
- else {
- $query = "SELECT * FROM #__sportsmanager_saison WHERE saison_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $row = $rows[0];
- }
-
- HTML_sportsmanager_admin::adminEditSaison($row);
-}
-
-function adminSaveSaison() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("saisons_aendern"))
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_saisons');
-
- return;
- }
-
- $id = $jinput->get('id', 0, 'INT');
- $saisonbezeichnung = $db->escape(trim($jinput->get('saisonbezeichnung', '', 'RAW')));
-
- if ($id == 0)
- $query = "INSERT INTO #__sportsmanager_saison (saisonbezeichnung) VALUES ('$saisonbezeichnung');";
- else {
- $query = "UPDATE #__sportsmanager_saison"
- . "\n SET saisonbezeichnung = '$saisonbezeichnung'"
- . "\n WHERE saison_id = $id";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_saisons');
-}
-
-function adminRemoveSaison() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("saisons_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_saison WRITE, #__sportsmanager_veranstaltung READ, #__sportsmanager_turnier READ, #__sportsmanager_rangliste READ, #__sportsmanager_bestenliste READ;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT *,"
- . "\n IF(EXISTS(SELECT * FROM #__sportsmanager_veranstaltung WHERE #__sportsmanager_veranstaltung.saison_id = #__sportsmanager_saison.saison_id), 1, 0) AS veranstaltungen,"
- . "\n IF(EXISTS(SELECT * FROM #__sportsmanager_turnier WHERE #__sportsmanager_turnier.saison_id = #__sportsmanager_saison.saison_id), 1, 0) AS turniere,"
- . "\n IF(EXISTS(SELECT * FROM #__sportsmanager_rangliste WHERE #__sportsmanager_rangliste.saison_id = #__sportsmanager_saison.saison_id), 1, 0) AS ranglisten,"
- . "\n IF(EXISTS(SELECT * FROM #__sportsmanager_bestenliste WHERE #__sportsmanager_bestenliste.saison_id = #__sportsmanager_saison.saison_id), 1, 0) AS bestenlisten"
- . "\n FROM #__sportsmanager_saison"
- . "\n WHERE saison_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $row = $rows[0];
- if ($row->veranstaltungen != 0 || $row->turniere != 0 || $row->ranglisten != 0 || $row->bestenlisten != 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS'));
-
- $query = "DELETE FROM #__sportsmanager_saison WHERE saison_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_saisons');
-}
-
-function adminEditVeranstaltung() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- $id = $jinput->get('id', 0, 'INT');
- if (!benutzerZugriff("mannschaftswettbewerb_aendern"))
- keinZugriff(true);
-
- if ($id == 0)
- $row = null;
- else {
- $query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $row = $rows[0];
- }
- $vorlage = $jinput->get('vorlage', 0, 'INT');
-
- $query = "SELECT * FROM #__sportsmanager_veranstalter ORDER BY veranstalterbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstalter = $db->loadObjectList();
-
- $query = "SELECT * FROM #__sportsmanager_teamspiel_modus WHERE status != 0 " . ($id != 0 ? "OR teamspiel_modus_id = $row->modus_id " : "") . "ORDER BY bezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spielmodi = $db->loadObjectList();
-
- $query = "SELECT * FROM #__sportsmanager_verschieberegel ORDER BY bezeichnung"; // WHERE status != 0 " . ($id != 0 ? "OR teamspiel_modus_id = $row->modus_id " : "") . "ORDER BY bezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $verschieberegeln = $db->loadObjectList();
-
- $query = "SELECT nummer, bezeichnung FROM #__sportsmanager_kategorie WHERE typ = 2 ORDER BY nummer";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows_kategorien = $db->loadObjectList();
-
- $kategorien = array();
- foreach ($rows_kategorien as $kategorie)
- $kategorien[$kategorie->nummer] = $kategorie->bezeichnung;
-
- $query = "SELECT * FROM #__sportsmanager_saison ORDER BY saisonbezeichnung DESC";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $saisons = $db->loadObjectList();
-
- if (empty($id)) {
- $berechtigt_fuer_veranstaltung = array();
- }
- else {
- $query = "SELECT #__sportsmanager_berechtigt_fuer_veranstaltung.* FROM #__sportsmanager_berechtigt_fuer_veranstaltung, #__users WHERE berechtigt_user_id = id AND berechtigt_veranstaltung_id = $id ORDER BY username, name";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $berechtigt_fuer_veranstaltung = $db->loadObjectList();
- }
-
- $query = "SELECT * FROM #__users ORDER BY name, username";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $users = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminEditVeranstaltung($row, $veranstalter, $spielmodi, $verschieberegeln, $kategorien, $saisons, $users, $berechtigt_fuer_veranstaltung, $vorlage);
-}
-
-function adminSaveVeranstaltung() {
- $db =& getDatabase();
- global $_FILES;
- global $sportsmanager_joomla_path;
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("mannschaftswettbewerb_aendern"))
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_uebersicht');
-
- return;
- }
-
- $vorlage = $jinput->get('vorlage', 0, 'INT');
- $id = $vorlage ? 0 : $jinput->get('id', 0, 'INT');
- $veranstalterid = $jinput->get('veranstalterid', 0, 'INT');
- $bezeichnung = $db->escape(trim($jinput->get('bezeichnung', '', 'RAW')));
- $saison_id = $jinput->get('saison_id', 0, 'INT');
- $erster_tag = normalisiertesDatum(sprintf("%04d-%02d-%02d", $jinput->get('erster_tag_jahr', 2000, 'INT'), $jinput->get('erster_tag_monat', 1, 'INT'), $jinput->get('erster_tag_tag', 1, 'INT')));
- $letzter_tag = normalisiertesDatum(sprintf("%04d-%02d-%02d", $jinput->get('letzter_tag_jahr', 2000, 'INT'), $jinput->get('letzter_tag_monat', 1, 'INT'), $jinput->get('letzter_tag_tag', 1, 'INT')));
- $modus_id = $jinput->get('modus_id', 0, 'INT');
- $verschieberegel_id = $jinput->get('verschieberegel_id', 0, 'INT');
- $tabellenwertung = $jinput->get('tabellenwertung', 0, 'INT');
- $unterteilung = $jinput->get('unterteilung', 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')));
- $status = $jinput->get('status', 0, 'INT');
- $reihenfolge = $jinput->get('reihenfolge', 0, 'INT');
- $kategorie = $jinput->get('kategorie', 0, 'INT');
- $bildbeibehalten_logo = $jinput->get('bildbeibehalten_logo', 0, 'INT');
- $bildbeibehalten_ticker_logo = $jinput->get('bildbeibehalten_ticker_logo', 0, 'INT');
- $aktualisieren_ab_datum = $erster_tag;
- $berechtigt_fuer_veranstaltung_user_ids = array();
- for ($i = 1; $i <= 6; $i++) {
- $berechtigt_user_id = $jinput->get('berechtigt_fuer_veranstaltung_user_' . $i . '_id', 0, 'INT');
- if (!empty($berechtigt_user_id) && !in_array($berechtigt_user_id, $berechtigt_fuer_veranstaltung_user_ids))
- array_push($berechtigt_fuer_veranstaltung_user_ids, $berechtigt_user_id);
- }
-
- $query = "LOCK TABLES #__sportsmanager_veranstaltung WRITE, #__sportsmanager_berechtigt_fuer_veranstaltung WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $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, 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', '$unterteilung', '$elo_wertung', '$logo_url', '$ticker_logo_url', '$status', '$reihenfolge', '$kategorie');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
- }
- else {
- $query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_uebersicht', "Die Veranstaltung existiert nicht mehr!");
-
- return;
- }
- $row = $rows[0];
-
- if (!empty($row->erster_tag) && $row->erster_tag < $erster_tag)
- $aktualisieren_ab_datum = $erster_tag;
-
- $query = "UPDATE #__sportsmanager_veranstaltung"
- . "\n SET veranstalter_id = '$veranstalterid',"
- . "\n bezeichnung = '$bezeichnung',"
- . "\n saison_id = '$saison_id',"
- . "\n erster_tag = '$erster_tag',"
- . "\n letzter_tag = " . ($letzter_tag != null ? "'$letzter_tag'," : "NULL,")
- . "\n modus_id = '$modus_id',"
- . "\n verschieberegel_id = '$verschieberegel_id',"
- . "\n tabellenwertung = '$tabellenwertung',"
- . "\n unterteilung = '$unterteilung',"
- . "\n elo_wertung = '$elo_wertung',"
- . "\n logo_url = '$logo_url',"
- . "\n ticker_logo_url = '$ticker_logo_url',"
- . "\n status = '$status',"
- . "\n reihenfolge = '$reihenfolge',"
- . "\n kategorie = '$kategorie'"
- . "\n WHERE veranstaltung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if (($elo_wertung != 0 && $status != 0) != ($row->elo_wertung != 0 && $row->status != 0))
- $elo_aktualisieren = true;
- if ((($modus_id != 0 || $row->modus_id != 0) && $status != $row->status)
- || (($status != 0 || $row->status != 0) && $modus_id != $row->modus_id))
- $spielerstatistik_aktualisieren = true;
- }
-
- $query = "DELETE FROM #__sportsmanager_berechtigt_fuer_veranstaltung WHERE berechtigt_veranstaltung_id = $id";
- if (!empty($berechtigt_fuer_veranstaltung_user_ids))
- $query .= " AND berechtigt_user_id NOT IN (" . implode($berechtigt_fuer_veranstaltung_user_ids, ", ") . ")";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT * FROM #__sportsmanager_berechtigt_fuer_veranstaltung WHERE berechtigt_veranstaltung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- foreach ($rows as $row) {
- $index = array_search($row->berechtigt_user_id, $berechtigt_fuer_veranstaltung_user_ids);
- if ($index !== false) {
- unset($berechtigt_fuer_veranstaltung_user_ids[$index]);
- }
- }
-
- foreach ($berechtigt_fuer_veranstaltung_user_ids as $berechtigt_user_id) {
- $query = "INSERT INTO #__sportsmanager_berechtigt_fuer_veranstaltung (berechtigt_user_id, berechtigt_veranstaltung_id) VALUES ('$berechtigt_user_id', '$id');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($elo_aktualisieren) {
- eloAktualisieren($aktualisieren_ab_datum);
- einstufungAktualisieren();
- }
-
- teamstatistikAktualisieren($id);
-
- if ($spielerstatistik_aktualisieren) {
- begegnungenAktualisieren($id, 0);
- spielerstatistikAktualisieren(0, $id);
- }
-
- if ($bildbeibehalten_ticker_logo == 0) {
- bildLoeschen("mannschaftswettbewerbe/ticker_logo", $id);
-
- if (!empty($_FILES["bild_ticker_logo"]["tmp_name"])) {
- if (is_uploaded_file($_FILES["bild_ticker_logo"]["tmp_name"])) {
- $size = getimagesize($_FILES["bild_ticker_logo"]["tmp_name"]);
- if ($size == false
- || ($size[2] != IMAGETYPE_JPEG && $size[2] != IMAGETYPE_PNG)
- || ($size[0] > 8192 || $size[1] > 8192)) {
- redirectSportsManagerURL('&task=admin_ubersicht', "Das Bild wurde nicht gespeichert, da es nicht im JPG/PNG-Format mit maximal 8192*8192 Bildpunkten vorliegt.");
-
- return;
- }
- $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'mannschaftswettbewerbe';
- if (!JFile::copy($_FILES["bild_ticker_logo"]["tmp_name"], $bilder_pfad . DIRECTORY_SEPARATOR . 'ticker_logo' . $id . ($size[2] == IMAGETYPE_PNG ? '.png' : '.jpg'))) {
- redirectSportsManagerURL('&task=admin_uebersicht', "Das Bild konnte nicht an die Zielposition kopiert werden.");
-
- return;
- }
- }
- }
- }
-
- redirectSportsManagerURL('&task=admin_uebersicht');
-}
-
-function adminRemoveVeranstaltung() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("mannschaftswettbewerb_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_team WRITE, #__sportsmanager_bestenliste_veranstaltung WRITE, #__sportsmanager_veranstaltung WRITE, #__sportsmanager_berechtigt_fuer_veranstaltung WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_team WHERE veranstaltung_id = $id), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS'));
-
- $query = "DELETE FROM #__sportsmanager_bestenliste_veranstaltung WHERE veranstaltung_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_berechtigt_fuer_veranstaltung WHERE berechtigt_veranstaltung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
-
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- spielerstatistikAktualisieren(0, $id);
-
- bildLoeschen("mannschaftswettbewerbe/logo", $id);
- bildLoeschen("mannschaftswettbewerbe/ticker_logo", $id);
-
- redirectSportsManagerURL('&task=admin_uebersicht');
-}
-
-function adminMannschaften() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->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";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $veranstaltung = $rows[0];
-
- $query = "SELECT #__sportsmanager_team.*, #__sportsmanager_verein.vereinsname, #__sportsmanager_spielort.*,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_mitglied_von_team WHERE #__sportsmanager_team.team_id = #__sportsmanager_mitglied_von_team.team_id AND NOT ausgetreten) AS mitglieder_aktiv,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_mitglied_von_team WHERE #__sportsmanager_team.team_id = #__sportsmanager_mitglied_von_team.team_id) AS mitglieder,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_begegnung WHERE heim_team_id = #__sportsmanager_team.team_id OR gast_team_id = #__sportsmanager_team.team_id) AS begegnungen"
- . "\n FROM #__sportsmanager_team"
- . "\n LEFT JOIN #__sportsmanager_verein ON #__sportsmanager_verein.verein_id = #__sportsmanager_team.verein_id"
- . "\n LEFT JOIN #__sportsmanager_spielort ON #__sportsmanager_spielort.spielort_id = #__sportsmanager_team.heimspielort_id"
- . "\n WHERE #__sportsmanager_team.veranstaltung_id = $veranstaltungid"
- . "\n ORDER BY teamname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminMannschaften($veranstaltung, $rows);
-}
-
-function adminEditMannschaft() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- $id = $jinput->get('id', 0, 'INT');
- $veranstaltungid = $jinput->get('veranstaltungid', 0, 'INT');
- if ($veranstaltungid == 0) die("Missing id!");
-
- if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungid))
- keinZugriff(true);
-
- if ($id == 0) {
- $row = null;
- $berechtigt_fuer_team = null;
- $teamansprechpartner = null;
- }
- else {
- $query = "SELECT * FROM #__sportsmanager_team WHERE team_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) == 1)
- $row = $rows[0];
-
- if ($veranstaltungid != $row->veranstaltung_id)
- die("Wrong id!");
-
- $query = "SELECT t1.* FROM #__sportsmanager_berechtigt_fuer_team AS t1, #__users AS t2 WHERE t1.berechtigt_user_id = t2.id AND berechtigt_team_id = $id ORDER BY username, name";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $berechtigt_fuer_team = $db->loadObjectList();
-
- $query = "SELECT * FROM #__sportsmanager_teamansprechpartner WHERE team_id = $id ORDER BY kontaktperson_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teamansprechpartner = $db->loadObjectList();
- }
-
- $query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $veranstaltungid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $veranstaltung = $rows[0];
-
- $query = "SELECT verein_id, vereinsname, veranstalterbezeichnung, ausgetreten"
- . "\n FROM #__sportsmanager_verein"
- . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
- . "\n WHERE NOT ausgetreten" . (!empty($row) && !empty($row->verein_id) ? " OR verein_id = $row->verein_id" : "")
- . "\n ORDER BY veranstalterbezeichnung, vereinsname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $vereine = $db->loadObjectList();
-
- $query = "SELECT * FROM #__users ORDER BY name, username";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $users = $db->loadObjectList();
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_spielort"
- . "\n ORDER BY ortsname, name, ortsteil";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spielorte = $db->loadObjectList();
-
- $beschraenkter_zugriff_veranstaltungen = benutzerZugriff("mannschaftswettbewerb_aendern") ? 0 : 1;
- if ($beschraenkter_zugriff_veranstaltungen) {
- if (empty($id) || empty($row->teamgruppe_id)) {
- $query = "SELECT veranstaltung_id, bezeichnung, erster_tag, letzter_tag, saison_id, IF(" . veranstaltungFilter("veranstaltung_id IN") . ", 1, 0) AS veranstaltung_moderator"
- . "\n FROM #__sportsmanager_veranstaltung"
- . "\n INNER JOIN #__sportsmanager_saison USING (saison_id)"
- . "\n WHERE veranstaltung_id != $veranstaltung->veranstaltung_id AND saison_id = $veranstaltung->saison_id AND " . veranstaltungFilter("veranstaltung_id IN")
- . "\n ORDER BY YEAR(letzter_tag) DESC, reihenfolge, letzter_tag DESC, bezeichnung, kategorie";
- }
- else {
- $query = "SELECT DISTINCT veranstaltung_id, bezeichnung, erster_tag, letzter_tag, saison_id, team_id, team_begegnungen, IF(" . veranstaltungFilter("veranstaltung_id IN") . ", 1, 0) AS veranstaltung_moderator"
- . "\n FROM #__sportsmanager_veranstaltung"
- . "\n INNER JOIN #__sportsmanager_saison USING (saison_id)"
- . "\n LEFT JOIN (SELECT veranstaltung_id, team_id, IF(EXISTS(SELECT * FROM #__sportsmanager_begegnung WHERE heim_team_id = team_id OR gast_team_id = team_id), 1, 0) AS team_begegnungen FROM #__sportsmanager_team WHERE teamgruppe_id = $row->teamgruppe_id) AS veranstaltungen USING (veranstaltung_id)"
- . "\n WHERE veranstaltung_id != $veranstaltung->veranstaltung_id AND ((saison_id = $veranstaltung->saison_id AND " . veranstaltungFilter("veranstaltung_id IN") . ") OR NOT ISNULL(team_id))"
- . "\n ORDER BY YEAR(letzter_tag) DESC, reihenfolge, letzter_tag DESC, bezeichnung, kategorie";
- }
- }
- else {
- if (empty($id) || empty($row->teamgruppe_id)) {
- $query = "SELECT veranstaltung_id, bezeichnung, erster_tag, letzter_tag, saison_id"
- . "\n FROM #__sportsmanager_veranstaltung"
- . "\n INNER JOIN #__sportsmanager_saison USING (saison_id)"
- . "\n WHERE veranstaltung_id != $veranstaltung->veranstaltung_id AND saison_id = $veranstaltung->saison_id"
- . "\n ORDER BY YEAR(letzter_tag) DESC, reihenfolge, letzter_tag DESC, bezeichnung, kategorie";
- }
- else {
- $query = "SELECT DISTINCT veranstaltung_id, bezeichnung, erster_tag, letzter_tag, saison_id, team_id, team_begegnungen"
- . "\n FROM #__sportsmanager_veranstaltung"
- . "\n INNER JOIN #__sportsmanager_saison USING (saison_id)"
- . "\n LEFT JOIN (SELECT veranstaltung_id, team_id, IF(EXISTS(SELECT * FROM #__sportsmanager_begegnung WHERE heim_team_id = team_id OR gast_team_id = team_id), 1, 0) AS team_begegnungen FROM #__sportsmanager_team WHERE teamgruppe_id = $row->teamgruppe_id) AS veranstaltungen USING (veranstaltung_id)"
- . "\n WHERE veranstaltung_id != $veranstaltung->veranstaltung_id AND (saison_id = $veranstaltung->saison_id OR NOT ISNULL(team_id))"
- . "\n ORDER BY YEAR(letzter_tag) DESC, reihenfolge, letzter_tag DESC, bezeichnung, kategorie";
- }
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstaltungen = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminEditMannschaft($veranstaltung, $row, $veranstaltungen, $vereine, $users, $berechtigt_fuer_team, $teamansprechpartner, $spielorte, $beschraenkter_zugriff_veranstaltungen);
-}
-
-function adminSaveMannschaft() {
- $db =& getDatabase();
- global $_FILES;
- global $sportsmanager_joomla_path;
- $jinput = JFactory::getApplication()->input;
-
- $id = $jinput->get('id', 0, 'INT');
- $veranstaltungid = $jinput->get('veranstaltungid', 0, 'INT');
- if ($veranstaltungid == 0) die("Missing id!");
-
- if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltung_id))
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_teams&veranstaltungid=' . $veranstaltungid);
-
- return;
- }
-
- $beschraenkter_zugriff_veranstaltungen = benutzerZugriff("mannschaftswettbewerb_aendern") ? 0 : 1;
- $beschraenkter_zugriff_veranstaltungen_ids = $beschraenkter_zugriff_veranstaltungen ? benutzerVeranstaltungIdsModerator() : null;
-
- $teamname = $db->escape(trim($jinput->get('teamname', '', 'RAW')));
- $platz = $jinput->get('platz', 0, 'INT');
- $verein_id = $jinput->get('verein_id', 0, 'INT');
- $tischtyp = $db->escape(trim($jinput->get('tischtyp', '', 'RAW')));
- $tischeigenschaften = $db->escape(trim($jinput->get('tischeigenschaften', '', 'RAW')));
- $heimspiel_wochentag = $jinput->get('heimspiel_wochentag', 0, 'INT');
- $heimspiel_uhrzeit = sprintf("%02d%02d", $jinput->get('heimspiel_uhrzeit_stunden', 0, 'INT'), $jinput->get('heimspiel_uhrzeit_minuten', 0, 'INT'));
- $heimspielort_id = $jinput->get('heimspielort_id', 0, 'INT');
- $nichtraucherschutz = $jinput->get('nichtraucherschutz', 0, 'INT');
- $zusatzpunkte = $jinput->get('zusatzpunkte', 0, 'FLOAT');
- $bildbeibehalten = $jinput->get('bildbeibehalten', 0, 'INT');
-
- $berechtigt_fuer_team_user_ids = array($jinput->get('berechtigt_fuer_team_user_1_id', 0, 'INT'),
- $jinput->get('berechtigt_fuer_team_user_2_id', 0, 'INT'),
- $jinput->get('berechtigt_fuer_team_user_3_id', 0, 'INT'),
- $jinput->get('berechtigt_fuer_team_user_4_id', 0, 'INT'),
- $jinput->get('berechtigt_fuer_team_user_5_id', 0, 'INT'),
- $jinput->get('berechtigt_fuer_team_user_6_id', 0, 'INT'));
- $pin = $db->escape(trim($jinput->get('pin', '', 'RAW')));
-
- $weitere_veranstaltungen_anzahl = $jinput->get('weitere_veranstaltungen_anzahl', 0, 'INT');
- $weitere_veranstaltungen_beruecksichtigt = array();
- for ($i = 0; $i < $weitere_veranstaltungen_anzahl; $i++) {
- $weitere_veranstaltung_id = $jinput->get('weitere_veranstaltung_id_' . $i, 0, 'INT');
- if ($weitere_veranstaltung_id != 0 && !in_array($weitere_veranstaltung_id, $weitere_veranstaltungen_beruecksichtigt))
- array_push($weitere_veranstaltungen_beruecksichtigt, $weitere_veranstaltung_id);
- }
-
- $query = "LOCK TABLES #__sportsmanager_team WRITE, #__sportsmanager_berechtigt_fuer_team WRITE, #__sportsmanager_teamansprechpartner WRITE, #__sportsmanager_mitglied_von_team WRITE, #__sportsmanager_begegnung WRITE, #__sportsmanager_veranstaltung READ, #__sportsmanager_unbestaetigtes_ergebnis READ, #__sportsmanager_begegnung_historie READ;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $veranstaltungid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $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);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
- $teamgruppe_id = $id;
- $team_alt = null;
- }
- else {
- $query = "SELECT * FROM #__sportsmanager_team"
- . "\n WHERE team_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
- if (count($teams) == 0) die("Wrong id!");
- $team_alt = $teams[0];
- $teamgruppe_id = $team_alt->teamgruppe_id != null ? $team_alt->teamgruppe_id : $id;
-
- if ($veranstaltungid != $team_alt->veranstaltung_id)
- die("Wrong id!");
-
- $query = "UPDATE #__sportsmanager_team"
- . "\n SET verein_id = " . ($verein_id != 0 ? "'$verein_id'" : "NULL") . ","
- . "\n teamname = '$teamname',"
- . "\n tischtyp = '$tischtyp',"
- . "\n tischeigenschaften = '$tischeigenschaften',"
- . "\n heimspiel_wochentag = '$heimspiel_wochentag',"
- . "\n heimspiel_uhrzeit = '$heimspiel_uhrzeit',"
- . "\n heimspielort_id = " . ($heimspielort_id != 0 ? "'$heimspielort_id'" : "NULL") . ","
- . "\n nichtraucherschutz = '$nichtraucherschutz',"
- . ($veranstaltung->tabellenwertung == -2 ? ($platz != 0 ? "\n platz = '$platz'," : "\n platz = NULL,") : "")
- . "\n zusatzpunkte = '$zusatzpunkte',"
- . "\n pin = '$pin'"
- . "\n WHERE team_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- // Teamvertreter speichern
-
- $query = "DELETE FROM #__sportsmanager_berechtigt_fuer_team WHERE berechtigt_team_id = $id AND berechtigt_user_id != $berechtigt_fuer_team_user_ids[0] AND berechtigt_user_id != $berechtigt_fuer_team_user_ids[1] AND berechtigt_user_id != $berechtigt_fuer_team_user_ids[2] AND berechtigt_user_id != $berechtigt_fuer_team_user_ids[3] AND berechtigt_user_id != $berechtigt_fuer_team_user_ids[4] AND berechtigt_user_id != $berechtigt_fuer_team_user_ids[5];";
-
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT * FROM #__sportsmanager_berechtigt_fuer_team WHERE berechtigt_team_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- for ($nummer = 0; $nummer <= 5; $nummer++) {
- $berechtigt_user_id = $berechtigt_fuer_team_user_ids[$nummer];
- if ($berechtigt_user_id != 0) {
- $gefunden = false;
- foreach ($rows as $row) {
- if ($row->berechtigt_user_id == $berechtigt_user_id)
- $gefunden = true;
- }
- if (!$gefunden) {
- $query = "INSERT INTO #__sportsmanager_berechtigt_fuer_team (berechtigt_user_id, berechtigt_team_id) VALUES ('$berechtigt_user_id', '$id');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
-
- // Ansprechpartner speichern
- for ($nummer = 1; $nummer <= 2; $nummer++) {
- $teamansprechpartner_id = $jinput->get('teamansprechpartner_' . $nummer . '_id', 0, 'INT');
- $teamansprechpartner_vorname = trim($jinput->get('teamansprechpartner_' . $nummer . '_vorname', '', 'RAW'));
- $teamansprechpartner_nachname = trim($jinput->get('teamansprechpartner_' . $nummer . '_nachname', '', 'RAW'));
- $teamansprechpartner_telefon = trim($jinput->get('teamansprechpartner_' . $nummer . '_telefon', '', 'RAW'));
- $teamansprechpartner_mobil = trim($jinput->get('teamansprechpartner_' . $nummer . '_mobil', '', 'RAW'));
- $teamansprechpartner_email = trim($jinput->get('teamansprechpartner_' . $nummer . '_email', '', 'RAW'));
-
- if ($teamansprechpartner_id == 0) {
- if (strlen($teamansprechpartner_vorname) > 0 || strlen($teamansprechpartner_nachname) > 0) {
- $query = "INSERT INTO #__sportsmanager_teamansprechpartner (team_id, vorname, nachname, telefon, mobil, email) VALUES ('$id', '$teamansprechpartner_vorname', '$teamansprechpartner_nachname', '$teamansprechpartner_telefon', '$teamansprechpartner_mobil', '$teamansprechpartner_email');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- else {
- if (strlen($teamansprechpartner_vorname) > 0 || strlen($teamansprechpartner_nachname) > 0) {
- $query = "UPDATE #__sportsmanager_teamansprechpartner"
- . "\n SET vorname = '$teamansprechpartner_vorname',"
- . "\n nachname = '$teamansprechpartner_nachname',"
- . "\n telefon = '$teamansprechpartner_telefon',"
- . "\n mobil = '$teamansprechpartner_mobil',"
- . "\n email = '$teamansprechpartner_email'"
- . "\n WHERE kontaktperson_id = $teamansprechpartner_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else {
- $query = "DELETE FROM #__sportsmanager_teamansprechpartner WHERE kontaktperson_id = $teamansprechpartner_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
-
- if ($team_alt != null && ($team_alt->heimspiel_wochentag != $heimspiel_wochentag || $team_alt->heimspiel_uhrzeit != $heimspiel_uhrzeit))
- heimspieltag_aktualisieren($id);
-
- $bild_aktualisieren_gescheitert = 0;
- if ($bildbeibehalten == 0) {
- bildLoeschen("mannschaften", $id);
- if (!empty($_FILES["bild"]["tmp_name"])) {
- if (is_uploaded_file($_FILES["bild"]["tmp_name"])) {
- $size = getimagesize($_FILES["bild"]["tmp_name"]);
- if ($size == false
- || ($size[2] != IMAGETYPE_JPEG && $size[2] != IMAGETYPE_PNG)
- || ($size[0] < 60 || $size[1] < 60 || $size[0] > 8192 || $size[1] > 8192)) {
- $bild_aktualisieren_gescheitert = 1;
- }
- else {
- $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'mannschaften';
- $ziel_pfad = $bilder_pfad . DIRECTORY_SEPARATOR . $id . ($size[2] == IMAGETYPE_PNG ? '.png' : '.jpg');
- if (!bildKopierenAngepasst($_FILES["bild"]["tmp_name"], $ziel_pfad, 240, 240, 0))
- $bild_aktualisieren_gescheitert = 2;
- }
- }
- }
- }
-
- // Weitere Wettbewerbe aktualisieren
- $query = "SELECT team_id, veranstaltung_id"
- . "\n FROM #__sportsmanager_team"
- . "\n WHERE team_id != $id AND teamgruppe_id = $teamgruppe_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $bestehende_weitere_veranstaltungen_beruecksichtigt = $db->loadObjectList();
-
- $veranstaltungen_aktualisieren = array();
- foreach ($bestehende_weitere_veranstaltungen_beruecksichtigt as $bestehende_weitere_veranstaltung_beruecksichtigt) {
- if ($beschraenkter_zugriff_veranstaltungen && !in_array($bestehende_weitere_veranstaltung_beruecksichtigt->veranstaltung_id, $beschraenkter_zugriff_veranstaltungen_ids))
- continue;
- $ist_beruecksichtigt = false;
- foreach ($weitere_veranstaltungen_beruecksichtigt as $weitere_veranstaltung_id) {
- if ($bestehende_weitere_veranstaltung_beruecksichtigt->veranstaltung_id == $weitere_veranstaltung_id) {
- $ist_beruecksichtigt = true;
- break;
- }
- }
- if (!$ist_beruecksichtigt)
- mannschaftsgruppe_entfernen($bestehende_weitere_veranstaltung_beruecksichtigt->team_id);
- else {
- mannschaftsgruppe_verknuepfen($id, $bestehende_weitere_veranstaltung_beruecksichtigt->team_id, true, false, $bildbeibehalten == 0);
- if ($team_alt != null && ($team_alt->heimspiel_wochentag != $heimspiel_wochentag || $team_alt->heimspiel_uhrzeit != $heimspiel_uhrzeit))
- heimspieltag_aktualisieren($bestehende_weitere_veranstaltung_beruecksichtigt->team_id);
- }
- if (!in_array($bestehende_weitere_veranstaltung_beruecksichtigt->veranstaltung_id, $veranstaltungen_aktualisieren))
- array_push($veranstaltungen_aktualisieren, $bestehende_weitere_veranstaltung_beruecksichtigt->veranstaltung_id);
- }
-
- foreach ($weitere_veranstaltungen_beruecksichtigt as $index => $weitere_veranstaltung_id) {
- if ($beschraenkter_zugriff_veranstaltungen && !in_array($weitere_veranstaltung_id, $beschraenkter_zugriff_veranstaltungen_ids))
- continue;
-
- $ist_beruecksichtigt = false;
- foreach ($bestehende_weitere_veranstaltungen_beruecksichtigt as $bestehende_weitere_veranstaltung_beruecksichtigt) {
- if ($bestehende_weitere_veranstaltung_beruecksichtigt->veranstaltung_id == $weitere_veranstaltung_id) {
- $ist_beruecksichtigt = true;
- break;
- }
- }
- if (!$ist_beruecksichtigt)
- mannschaftsgruppe_hinzufuegen($id, $weitere_veranstaltung_id);
- if (!in_array($weitere_veranstaltung_id, $veranstaltungen_aktualisieren))
- array_push($veranstaltungen_aktualisieren, $weitere_veranstaltung_id);
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- teamstatistikAktualisieren($veranstaltungid);
- foreach ($veranstaltungen_aktualisieren as $weitere_veranstaltung_id)
- teamstatistikAktualisieren($weitere_veranstaltung_id);
-
- if ($bild_aktualisieren_gescheitert > 0) {
- redirectSportsManagerURL('&task=admin_teams&veranstaltungid=' . $veranstaltungid, $bild_aktualisieren_gescheitert == 1 ? "Das Bild wurde nicht gespeichert, da es nicht im JPG/PNG-Format mit mindestens 90*90 und maximal 8192*8192 Bildpunkten vorliegt." : "Das Bild konnte nicht an die Zielposition kopiert werden.");
-
- return;
- }
-
- redirectSportsManagerURL('&task=admin_teams&veranstaltungid=' . $veranstaltungid);
-}
-
-function mannschaftsgruppe_hinzufuegen($quelle_team_id, $ziel_veranstaltung_id) {
- $db =& getDatabase();
-
- $query = "SELECT * FROM #__sportsmanager_team"
- . "\n WHERE team_id = $quelle_team_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
- if (count($teams) == 0) die("Wrong id!");
- $team = $teams[0];
- $teamgruppe_id = $team->teamgruppe_id != null ? $team->teamgruppe_id : $quelle_team_id;
-
- $query = "SELECT COUNT(*)"
- . "\n FROM #__sportsmanager_team"
- . "\n WHERE teamgruppe_id = $teamgruppe_id AND veranstaltung_id = $ziel_veranstaltung_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n > 0)
- return false;
-
- $query = "SELECT COUNT(*)"
- . "\n FROM #__sportsmanager_veranstaltung"
- . "\n WHERE veranstaltung_id = $ziel_veranstaltung_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n == 0) die("Wrong id!");
-
- $query = "INSERT INTO #__sportsmanager_team (verein_id, veranstaltung_id, teamname, tischtyp, tischeigenschaften, heimspiel_wochentag, heimspiel_uhrzeit, heimspielort_id, nichtraucherschutz, pin)"
- . "\n VALUES (" . ($team->verein_id == null ? "NULL" : "'$team->verein_id'") . ", '$ziel_veranstaltung_id', '" . $db->escape($team->teamname) . "', '" . $db->escape($team->tischtyp) . "', '" . $db->escape($team->tischeigenschaften) . "', '" . $db->escape($team->heimspiel_wochentag) . "', '" . $db->escape($team->heimspiel_uhrzeit) . "', " . ($team->heimspielort_id != 0 ? "'$team->heimspielort_id'" : "NULL") . ", '$team->nichtraucherschutz', '" . $db->escape($team->pin) . "');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $ziel_team_id = $db->insertid();
-
- return mannschaftsgruppe_verknuepfen($quelle_team_id, $ziel_team_id, true, true, true);
-}
-
-function mannschaftsgruppe_verknuepfen($quelle_team_id, $ziel_team_id, $mannschaftsdaten_aktualisieren, $mannschaftsspieler_aktualisieren, $mannschaftsbild_aktualisieren) {
- $db =& getDatabase();
- global $sportsmanager_joomla_path;
-
- if ($quelle_team_id == $ziel_team_id)
- return false;
-
- $query = "SELECT * FROM #__sportsmanager_team"
- . "\n WHERE team_id = $quelle_team_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
- if (count($teams) < 0) die("Wrong id!");
- $team = $teams[0];
- $teamgruppe_id = $team->teamgruppe_id != null ? $team->teamgruppe_id : $quelle_team_id;
-
- if ($team->teamgruppe_id == null) {
- $query = "UPDATE #__sportsmanager_team"
- . "\n SET teamgruppe_id = '$teamgruppe_id'"
- . "\n WHERE team_id = $quelle_team_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- // Mannschaftsdaten aktualisieren
- if ($mannschaftsdaten_aktualisieren) {
- $query = "UPDATE #__sportsmanager_team"
- . "\n SET teamgruppe_id = '$teamgruppe_id',"
- . "\n verein_id = " . ($team->verein_id == null ? "NULL" : "'$team->verein_id'") . ","
- . "\n teamname = '" . $db->escape($team->teamname) . "',"
- . "\n tischtyp = '" . $db->escape($team->tischtyp) . "',"
- . "\n tischeigenschaften = '" . $db->escape($team->tischeigenschaften) . "',"
- . "\n heimspiel_wochentag = '" . $db->escape($team->heimspiel_wochentag) . "',"
- . "\n heimspiel_uhrzeit = '" . $db->escape($team->heimspiel_uhrzeit) . "',"
- . "\n heimspielort_id = " . ($team->heimspielort_id != 0 ? "'$team->heimspielort_id'" : "NULL") . ","
- . "\n nichtraucherschutz = '$team->nichtraucherschutz',"
- . "\n pin = '" . $db->escape($team->pin) . "'"
- . "\n WHERE team_id = $ziel_team_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- // Teamvertreter kopieren
- $query = "SELECT * FROM #__sportsmanager_berechtigt_fuer_team WHERE berechtigt_team_id = $quelle_team_id ORDER BY berechtigt_fuer_team_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $quelle_teamvertreter = $db->loadObjectList();
-
- $query = "SELECT * FROM #__sportsmanager_berechtigt_fuer_team WHERE berechtigt_team_id = $ziel_team_id ORDER BY berechtigt_fuer_team_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $ziel_teamvertreter = $db->loadObjectList();
-
- $quelle_teamvertreter_anzahl = count($quelle_teamvertreter);
- $ziel_teamvertreter_anzahl = count($ziel_teamvertreter);
- for ($i = 0; $i < $quelle_teamvertreter_anzahl; $i++) {
- $berechtigt_user_id = $quelle_teamvertreter[$i]->berechtigt_user_id;
- if ($i < $ziel_teamvertreter_anzahl) {
- $berechtigt_fuer_team_id = $ziel_teamvertreter[$i]->berechtigt_fuer_team_id;
- $query = "UPDATE #__sportsmanager_berechtigt_fuer_team"
- . "\n SET berechtigt_user_id = '$berechtigt_user_id'"
- . "\n WHERE berechtigt_fuer_team_id = $berechtigt_fuer_team_id";
- }
- else {
- $query = "INSERT INTO #__sportsmanager_berechtigt_fuer_team (berechtigt_user_id, berechtigt_team_id)"
- . "\n VALUES ('$berechtigt_user_id', '$ziel_team_id');";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- for ($i = $quelle_teamvertreter_anzahl; $i < $ziel_teamvertreter_anzahl; $i++) {
- $berechtigt_fuer_team_id = $ziel_teamvertreter[$i]->berechtigt_fuer_team_id;
- $query = "DELETE FROM #__sportsmanager_berechtigt_fuer_team WHERE berechtigt_fuer_team_id = $berechtigt_fuer_team_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- // Ansprechpartner kopieren
- $query = "SELECT * FROM #__sportsmanager_teamansprechpartner WHERE team_id = $quelle_team_id ORDER BY kontaktperson_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $quelle_ansprechpartner = $db->loadObjectList();
-
- $query = "SELECT * FROM #__sportsmanager_teamansprechpartner WHERE team_id = $ziel_team_id ORDER BY kontaktperson_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $ziel_ansprechpartner = $db->loadObjectList();
-
- $quelle_ansprechpartner_anzahl = count($quelle_ansprechpartner);
- $ziel_ansprechpartner_anzahl = count($ziel_ansprechpartner);
- for ($i = 0; $i < $quelle_ansprechpartner_anzahl; $i++) {
- if ($i < $ziel_ansprechpartner_anzahl) {
- $kontaktperson_id = $ziel_ansprechpartner[$i]->kontaktperson_id;
- $query = "UPDATE #__sportsmanager_teamansprechpartner"
- . "\n SET nachname = '" . $db->escape($quelle_ansprechpartner[$i]->nachname) . "',"
- . "\n vorname = '" . $db->escape($quelle_ansprechpartner[$i]->vorname) . "',"
- . "\n telefon = '" . $db->escape($quelle_ansprechpartner[$i]->telefon) . "',"
- . "\n mobil = '" . $db->escape($quelle_ansprechpartner[$i]->mobil) . "',"
- . "\n email = '" . $db->escape($quelle_ansprechpartner[$i]->email) . "'"
- . "\n WHERE kontaktperson_id = $kontaktperson_id";
- }
- else {
- $query = "INSERT INTO #__sportsmanager_teamansprechpartner (team_id, nachname, vorname, telefon, mobil, email)"
- . "\n VALUES ('$ziel_team_id', '" . $db->escape($quelle_ansprechpartner[$i]->nachname) . "', '" . $db->escape($quelle_ansprechpartner[$i]->vorname) . "', '" . $db->escape($quelle_ansprechpartner[$i]->telefon) . "', '" . $db->escape($quelle_ansprechpartner[$i]->mobil) . "', '" . $db->escape($quelle_ansprechpartner[$i]->email) . "');";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- for ($i = $quelle_ansprechpartner_anzahl; $i < $ziel_ansprechpartner_anzahl; $i++) {
- $kontaktperson_id = $ziel_ansprechpartner[$i]->kontaktperson_id;
- $query = "DELETE FROM #__sportsmanager_teamansprechpartner WHERE kontaktperson_id = $kontaktperson_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
-
- // Mitglieder aktualisieren
- if ($mannschaftsspieler_aktualisieren) {
- $query = "SELECT spieler_id, ausgetreten, SUM(IF(team_id = $quelle_team_id, 1, 0)) AS mitglied_quelle, SUM(IF(team_id = $ziel_team_id, 1, 0)) AS mitglied_ziel" // , SUM(IF(team_id = $quelle_team_id, 1, IF(team_id = $ziel_team_id, 10000, 0))) AS teammitgliedschaften"
- . "\n FROM #__sportsmanager_mitglied_von_team"
- . "\n WHERE team_id = $quelle_team_id OR team_id = $ziel_team_id"
- . "\n GROUP BY spieler_id, ausgetreten";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $vereinte_mitglieder = $db->loadObjectList();
-
- $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'mannschaftsmitglieder';
- foreach ($vereinte_mitglieder as $mitglied) {
- $query = "SELECT mitglied_von_team_id"
- . "\n FROM #__sportsmanager_mitglied_von_team"
- . "\n WHERE spieler_id = $mitglied->spieler_id AND team_id = $ziel_team_id AND ausgetreten = $mitglied->ausgetreten";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $ziel_mitglieder = $db->loadObjectList();
-
- foreach ($ziel_mitglieder as $ziel_mitglied)
- bildLoeschen("mannschaftsmitglieder", $ziel_mitglied->mitglied_von_team_id);
-
- if ($mitglied->mitglied_quelle == 0 && $mitglied->mitglied_ziel > 0) {
- $query = "DELETE FROM #__sportsmanager_mitglied_von_team WHERE spieler_id = $mitglied->spieler_id AND team_id = $ziel_team_id AND ausgetreten = $mitglied->ausgetreten;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- continue;
- }
-
- if ($mitglied->mitglied_quelle > 0 && $mitglied->mitglied_ziel == 0) {
- $query = "INSERT INTO #__sportsmanager_mitglied_von_team (spieler_id, team_id, ausgetreten)"
- . "\n VALUES ('$mitglied->spieler_id', '$ziel_team_id', '$mitglied->ausgetreten');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT mitglied_von_team_id"
- . "\n FROM #__sportsmanager_mitglied_von_team"
- . "\n WHERE spieler_id = $mitglied->spieler_id AND team_id = $ziel_team_id AND ausgetreten = $mitglied->ausgetreten";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $ziel_mitglieder = $db->loadObjectList();
- }
-
- $query = "SELECT mitglied_von_team_id"
- . "\n FROM #__sportsmanager_mitglied_von_team"
- . "\n WHERE spieler_id = $mitglied->spieler_id AND team_id = $quelle_team_id AND ausgetreten = $mitglied->ausgetreten";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $quelle_mitglieder = $db->loadObjectList();
-
- $bild_kopiert = false;
- foreach ($quelle_mitglieder as $quelle_mitglied) {
- foreach ($ziel_mitglieder as $ziel_mitglied) {
- $pfad = $bilder_pfad . DIRECTORY_SEPARATOR . $quelle_mitglied->mitglied_von_team_id . '.';
- if (JFile::exists($pfad . 'png')) {
- JFile::copy($pfad . 'png', $bilder_pfad . DIRECTORY_SEPARATOR . $ziel_mitglied->mitglied_von_team_id . '.png');
- $bild_kopiert = true;
- }
- else if (JFile::exists($pfad . 'jpg')) {
- JFile::copy($pfad . 'jpg', $bilder_pfad . DIRECTORY_SEPARATOR . $ziel_mitglied->mitglied_von_team_id . '.jpg');
- $bild_kopiert = true;
- }
- }
- if ($bild_kopiert)
- break;
- }
- }
- }
-
- // Mannschaftsbild aktualisieren
- if ($mannschaftsbild_aktualisieren) {
- bildLoeschen("mannschaften", $ziel_team_id);
- $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'mannschaften';
- $quelle_pfad = $bilder_pfad . DIRECTORY_SEPARATOR . $quelle_team_id . '.';
- $ziel_pfad = $bilder_pfad . DIRECTORY_SEPARATOR . $ziel_team_id . '.';
- if (JFile::exists($quelle_pfad . 'png'))
- $ext = "png";
- else if (JFile::exists($quelle_pfad . 'jpg'))
- $ext = "jpg";
- else
- $ext = "";
- if (!empty($ext) && !JFile::copy($quelle_pfad . $ext, $ziel_pfad . $ext))
- return false;
- }
-
- return true;
-}
-
-function mannschaftsgruppe_entfernen($ziel_team_id) {
- $db =& getDatabase();
- global $sportsmanager_joomla_path;
-
- $query = "SELECT * FROM #__sportsmanager_team"
- . "\n WHERE team_id = $ziel_team_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
- if (count($teams) < 0) die("Wrong id!");
- $team = $teams[0];
- $teamgruppe_id = $team->teamgruppe_id;
- if ($teamgruppe_id == null)
- return false;
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_begegnung WHERE heim_team_id = $ziel_team_id OR gast_team_id = $ziel_team_id), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
-
- if ($n > 0)
- return false;
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_mitglied_von_team"
- . "\n WHERE team_id = $ziel_team_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- foreach ($rows as $row)
- bildLoeschen("mannschaftsmitglieder", $row->mitglied_von_team_id);
-
- $query = "DELETE FROM #__sportsmanager_berechtigt_fuer_team WHERE berechtigt_team_id = $ziel_team_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_teamansprechpartner WHERE team_id = $ziel_team_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_mitglied_von_team WHERE team_id = $ziel_team_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_team WHERE team_id = $ziel_team_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT COUNT(*)"
- . "\n FROM #__sportsmanager_team"
- . "\n WHERE teamgruppe_id = $teamgruppe_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
-
- if ($n == 1) {
- $query = "UPDATE #__sportsmanager_team"
- . "\n SET teamgruppe_id = NULL"
- . "\n WHERE teamgruppe_id = $teamgruppe_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- return true;
-}
-
-function heimspieltag_aktualisieren($team_id) {
- $db =& getDatabase();
-
- $query = "SELECT * FROM #__sportsmanager_team"
- . "\n WHERE team_id = $team_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
- if (count($teams) < 0) die("Wrong id!");
- $team = $teams[0];
-
- if ($team->heimspiel_wochentag < 1 || $team->heimspiel_wochentag > 7)
- return;
-
- $query = "SELECT begegnung_id, zeitpunkt"
- . "\n FROM #__sportsmanager_begegnung"
- . "\n LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis USING (begegnung_id)"
- . "\n WHERE heim_team_id = $team_id AND COALESCE(heim_spielpunkte, 0) = 0 AND COALESCE(gast_spielpunkte, 0) = 0 AND NOT ISNULL(zeitpunkt) AND ISNULL(spielort_id) AND ISNULL(#__sportsmanager_unbestaetigtes_ergebnis.begegnung_id) AND NOT EXISTS(SELECT * FROM #__sportsmanager_begegnung_historie WHERE #__sportsmanager_begegnung_historie.begegnung_id = #__sportsmanager_begegnung.begegnung_id)"
- . "\n ORDER BY spieltag DESC";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $begegnungen = $db->loadObjectList();
-
- foreach ($begegnungen as $begegnung) {
- $ts = getdate(geaenderterWochentag(strtotime($begegnung->zeitpunkt), $team->heimspiel_wochentag - 1));
- $neuer_zeitpunkt = sprintf("%04d-%02d-%02d %02d:%02d", $ts["year"], $ts["mon"], $ts["mday"], floor($team->heimspiel_uhrzeit / 100), $team->heimspiel_uhrzeit % 100);
- $query = "UPDATE #__sportsmanager_begegnung"
- . "\n SET zeitpunkt = '$neuer_zeitpunkt'"
- . "\n WHERE begegnung_id = $begegnung->begegnung_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-}
-
-function termin_aktualisieren($begegnung_id) {
- $db =& getDatabase();
-
- $query = "SELECT heim_team_id, zeitpunkt"
- . "\n FROM #__sportsmanager_begegnung"
- . "\n LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis USING (begegnung_id)"
- . "\n WHERE begegnung_id = $begegnung_id AND COALESCE(heim_spielpunkte, 0) = 0 AND COALESCE(gast_spielpunkte, 0) = 0 AND NOT ISNULL(zeitpunkt) AND ISNULL(spielort_id) AND ISNULL(#__sportsmanager_unbestaetigtes_ergebnis.begegnung_id) AND NOT EXISTS(SELECT * FROM #__sportsmanager_begegnung_historie WHERE #__sportsmanager_begegnung_historie.begegnung_id = #__sportsmanager_begegnung.begegnung_id)"
- . "\n ORDER BY spieltag DESC";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $begegnungen = $db->loadObjectList();
- if (count($begegnungen) < 1)
- return;
- $begegnung = $begegnungen[0];
-
- $query = "SELECT * FROM #__sportsmanager_team"
- . "\n WHERE team_id = $begegnung->heim_team_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
- if (count($teams) < 0) die("Wrong id!");
- $team = $teams[0];
-
- if ($team->heimspiel_wochentag < 1 || $team->heimspiel_wochentag > 7)
- return;
-
- $ts = getdate(geaenderterWochentag(strtotime($begegnung->zeitpunkt), $team->heimspiel_wochentag - 1));
- $neuer_zeitpunkt = sprintf("%04d-%02d-%02d %02d:%02d", $ts["year"], $ts["mon"], $ts["mday"], floor($team->heimspiel_uhrzeit / 100), $team->heimspiel_uhrzeit % 100);
- $query = "UPDATE #__sportsmanager_begegnung"
- . "\n SET zeitpunkt = '$neuer_zeitpunkt'"
- . "\n WHERE begegnung_id = $begegnung_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-}
-
-function adminRemoveMannschaft() {
- $db =& getDatabase();
- global $sportsmanager_joomla_path;
- $jinput = JFactory::getApplication()->input;
-
- $id = $jinput->get('id', 0, 'INT');
- $veranstaltungid = $jinput->get('veranstaltungid', 0, 'INT');
- if ($veranstaltungid == 0) die("Missing id!");
-
- if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungid))
- keinZugriff(true);
-
- $query = "LOCK TABLES #__sportsmanager_begegnung WRITE, #__sportsmanager_berechtigt_fuer_team WRITE, #__sportsmanager_teamansprechpartner WRITE, #__sportsmanager_mitglied_von_team WRITE, #__sportsmanager_team WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT teamgruppe_id, veranstaltung_id FROM #__sportsmanager_team WHERE team_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $teamgruppe_id = $rows[0]->teamgruppe_id != null ? $rows[0]->teamgruppe_id : $id;
-
- if ($veranstaltungid != $rows[0]->veranstaltung_id)
- die("Wrong id!");
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_begegnung WHERE heim_team_id = $id OR gast_team_id = $id), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
- if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS'));
-
- if ($rows[0]->teamgruppe_id != null) {
- mannschaftsgruppe_entfernen($id);
- }
- else {
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_mitglied_von_team"
- . "\n WHERE team_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- foreach ($rows as $row)
- bildLoeschen("mannschaftsmitglieder", $row->mitglied_von_team_id);
-
- $query = "DELETE FROM #__sportsmanager_berechtigt_fuer_team WHERE berechtigt_team_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_teamansprechpartner WHERE team_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_mitglied_von_team WHERE team_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_team WHERE team_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- bildLoeschen("mannschaften", $id);
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- teamstatistikAktualisieren($veranstaltungid);
-
- redirectSportsManagerURL('&task=admin_teams&veranstaltungid=' . $veranstaltungid);
-}
-
-function adminKopierenMannschaftForm() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->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";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $veranstaltung = $rows[0];
-
- $query = "SELECT #__sportsmanager_team.*, vereinsname"
- . "\n FROM #__sportsmanager_team"
- . "\n LEFT JOIN #__sportsmanager_verein USING (verein_id)"
- . "\n WHERE #__sportsmanager_team.veranstaltung_id = $veranstaltungid"
- . "\n ORDER BY teamname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
-
- $beschraenkter_zugriff_veranstaltungen = benutzerZugriff("mannschaftswettbewerb_aendern") ? 0 : 1;
- if ($beschraenkter_zugriff_veranstaltungen) {
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_veranstaltung"
- . "\n WHERE " . veranstaltungFilter("veranstaltung_id IN")
- . "\n ORDER BY YEAR(letzter_tag) DESC, reihenfolge, letzter_tag DESC, bezeichnung, kategorie";
- }
- else {
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_veranstaltung"
- . "\n ORDER BY YEAR(letzter_tag) DESC, reihenfolge, letzter_tag DESC, bezeichnung, kategorie";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstaltungen = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminKopierenMannschaft($veranstaltung, $teams, $veranstaltungen);
-}
-
-function adminKopierenMannschaft() {
- $db =& getDatabase();
- global $sportsmanager_joomla_path;
- $jinput = JFactory::getApplication()->input;
-
- $ids = $jinput->get('ids', array(), 'ARRAY');
- $veranstaltungid = $jinput->get('veranstaltungid', 0, 'INT');
- if ($veranstaltungid == 0) die("Missing id!");
- $mitglieder_kopieren = $jinput->get('mitglieder_kopieren', 0, 'INT');
-
- if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungid))
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_teams&veranstaltungid=' . $veranstaltungid);
-
- return;
- }
-
- $beschraenkter_zugriff = benutzerZugriff("mannschaftswettbewerb_aendern") ? 0 : 1;
-
- $ziel_veranstaltungen_ids = array();
- for ($i = 1; $i <= 4; $i++) {
- $ziel_veranstaltungid = $jinput->get('ziel_veranstaltungid_' . $i, 0, 'INT');
- if (empty($ziel_veranstaltungid) || ($beschraenkter_zugriff && !benutzerVeranstaltungModerator($ziel_veranstaltungid)))
- continue;
- if (!in_array($ziel_veranstaltungid, $ziel_veranstaltungen_ids))
- array_push($ziel_veranstaltungen_ids, $ziel_veranstaltungid);
- }
-
- $query = "LOCK TABLES #__sportsmanager_team WRITE, #__sportsmanager_mitglied_von_team WRITE, #__sportsmanager_berechtigt_fuer_team WRITE, #__sportsmanager_teamansprechpartner WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- foreach ($ziel_veranstaltungen_ids as $ziel_veranstaltungid) {
- foreach ($ids as $id) {
- $query = "SELECT * FROM #__sportsmanager_team"
- . "\n WHERE team_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
- if (count($teams) < 0) die("Wrong id!");
- $team = $teams[0];
-
- if ($veranstaltungid != $team->veranstaltung_id)
- die("Wrong id!");
-
- $query = "INSERT INTO #__sportsmanager_team (verein_id, veranstaltung_id, teamname, tischtyp, tischeigenschaften, heimspiel_wochentag, heimspiel_uhrzeit, heimspielort_id, nichtraucherschutz, pin)"
- . "\n VALUES (" . ($team->verein_id == null ? "NULL" : "'$team->verein_id'") . ", '$ziel_veranstaltungid', '" . $db->escape($team->teamname) . "', '" . $db->escape($team->tischtyp) . "', '" . $db->escape($team->tischeigenschaften) . "', '" . $db->escape($team->heimspiel_wochentag) . "', '" . $db->escape($team->heimspiel_uhrzeit) . "', " . ($team->heimspielort_id != 0 ? "'$team->heimspielort_id'" : "NULL") . ", '$team->nichtraucherschutz', '" . $db->escape($team->pin) . "');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $ziel_teamid = $db->insertid();
-
- // Mitglieder kopieren
- if ($mitglieder_kopieren) {
- $query = "SELECT * FROM #__sportsmanager_mitglied_von_team WHERE team_id = $id AND NOT ausgetreten";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- foreach ($rows as $row) {
- $query = "INSERT INTO #__sportsmanager_mitglied_von_team (spieler_id, team_id)"
- . "\n VALUES ('$row->spieler_id', '$ziel_teamid');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $ziel_mitglied_von_team_id = $db->insertid();
-
- $pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'mannschaftsmitglieder' . DIRECTORY_SEPARATOR . $row->mitglied_von_team_id . '.';
- if (JFile::exists($pfad . 'png'))
- JFile::copy($pfad . 'png', $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'mannschaftsmitglieder' . DIRECTORY_SEPARATOR . $ziel_mitglied_von_team_id . '.png');
- else if (JFile::exists($pfad . 'jpg'))
- JFile::copy($pfad . 'jpg', $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'mannschaftsmitglieder' . DIRECTORY_SEPARATOR . $ziel_mitglied_von_team_id . '.jpg');
- }
- }
-
- // Teamvertreter kopieren
- $query = "SELECT * FROM #__sportsmanager_berechtigt_fuer_team WHERE berechtigt_team_id = $id ORDER BY berechtigt_fuer_team_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- foreach ($rows as $row) {
- $query = "INSERT INTO #__sportsmanager_berechtigt_fuer_team (berechtigt_user_id, berechtigt_team_id)"
- . "\n VALUES ('$row->berechtigt_user_id', '$ziel_teamid');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- // Ansprechpartner kopieren
- $query = "SELECT * FROM #__sportsmanager_teamansprechpartner WHERE team_id = $id ORDER BY kontaktperson_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- foreach ($rows as $row) {
- $query = "INSERT INTO #__sportsmanager_teamansprechpartner (team_id, nachname, vorname, telefon, mobil, email)"
- . "\n VALUES ('$ziel_teamid', '" . $db->escape($row->nachname) . "', '" . $db->escape($row->vorname) . "', '" . $db->escape($row->telefon) . "', '" . $db->escape($row->mobil) . "', '" . $db->escape($row->email) . "');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'mannschaften' . DIRECTORY_SEPARATOR . $id . '.';
- if (JFile::exists($pfad . 'png'))
- JFile::copy($pfad . "png", $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'mannschaften' . DIRECTORY_SEPARATOR . $ziel_teamid . '.png');
- else if (JFile::exists($pfad . 'jpg'))
- JFile::copy($pfad . "jpg", $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'mannschaften' . DIRECTORY_SEPARATOR . $ziel_teamid . '.jpg');
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- teamstatistikAktualisieren($ziel_veranstaltungid);
-
- redirectSportsManagerURL('&task=admin_teams&veranstaltungid=' . $veranstaltungid);
-}
-
-function adminVerknuepfenMannschaftForm() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->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";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $veranstaltung = $rows[0];
-
- $query = "SELECT #__sportsmanager_team.*, vereinsname"
- . "\n FROM #__sportsmanager_team"
- . "\n LEFT JOIN #__sportsmanager_verein USING (verein_id)"
- . "\n WHERE #__sportsmanager_team.veranstaltung_id = $veranstaltungid"
- . "\n ORDER BY teamname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
-
- $beschraenkter_zugriff_veranstaltungen = benutzerZugriff("mannschaftswettbewerb_aendern") ? 0 : 1;
- if ($beschraenkter_zugriff_veranstaltungen) {
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_veranstaltung"
- . "\n WHERE saison_id = $veranstaltung->saison_id AND " . veranstaltungFilter("veranstaltung_id IN")
- . "\n ORDER BY YEAR(letzter_tag) DESC, reihenfolge, letzter_tag DESC, bezeichnung, kategorie";
- }
- else {
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_veranstaltung"
- . "\n WHERE saison_id = $veranstaltung->saison_id"
- . "\n ORDER BY YEAR(letzter_tag) DESC, reihenfolge, letzter_tag DESC, bezeichnung, kategorie";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstaltungen = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminVerknuepfenMannschaft($veranstaltung, $teams, $veranstaltungen);
-}
-
-function adminVerknuepfenMannschaft() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- $ids = $jinput->get('ids', array(), 'ARRAY');
- $veranstaltungid = $jinput->get('veranstaltungid', 0, 'INT');
- if ($veranstaltungid == 0) die("Missing id!");
-
- if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungid))
- keinZugriff(true);
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_teams&veranstaltungid=' . $veranstaltungid);
-
- return;
- }
-
- $beschraenkter_zugriff = benutzerZugriff("mannschaftswettbewerb_aendern") ? 0 : 1;
-
- $ziel_veranstaltungen_ids = array();
- for ($i = 1; $i <= 4; $i++) {
- $ziel_veranstaltungid = $jinput->get('ziel_veranstaltungid_' . $i, 0, 'INT');
- if (empty($ziel_veranstaltungid) || ($beschraenkter_zugriff && !benutzerVeranstaltungModerator($ziel_veranstaltungid)))
- continue;
- if (!in_array($ziel_veranstaltungid, $ziel_veranstaltungen_ids))
- array_push($ziel_veranstaltungen_ids, $ziel_veranstaltungid);
- }
-
- $query = "LOCK TABLES #__sportsmanager_team WRITE, #__sportsmanager_mitglied_von_team WRITE, #__sportsmanager_berechtigt_fuer_team WRITE, #__sportsmanager_teamansprechpartner WRITE, #__sportsmanager_veranstaltung READ;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- foreach ($ziel_veranstaltungen_ids as $ziel_veranstaltungid) {
- foreach ($ids as $id) {
- $query = "SELECT * FROM #__sportsmanager_team"
- . "\n WHERE team_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
- if (count($teams) < 0) die("Wrong id!");
- $team = $teams[0];
-
- if ($veranstaltungid != $team->veranstaltung_id)
- die("Wrong id!");
-
- mannschaftsgruppe_hinzufuegen($id, $ziel_veranstaltungid);
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- teamstatistikAktualisieren($ziel_veranstaltungid);
-
- redirectSportsManagerURL('&task=admin_teams&veranstaltungid=' . $veranstaltungid);
-}
-
-function adminMitglieder() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator())
- keinZugriff(true);
-
- $berechtigt_spieler_aendern = benutzerZugriff("spieler_aendern");
-
- $teamid = $jinput->get('teamid', 0, 'INT');
- if ($teamid == 0) die ("Wrong id!");
-
- $query = "SELECT * FROM #__sportsmanager_team WHERE team_id = $teamid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
- if (count($teams) < 1) die ("Wrong id");
- $team = $teams[0];
- $teamgruppe_id = $team->teamgruppe_id != null ? $team->teamgruppe_id : $teamid;
-
- if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($team->veranstaltung_id))
- keinZugriff(true);
-
- $query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $team->veranstaltung_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $veranstaltung = $rows[0];
-
- $query = "SELECT mitglied_von_team_id, spieler_id, aktueller_verein_id, MAX(IF(team_id = $teamid, #__sportsmanager_mitglied_von_team.ausgetreten, 0)) AS ausgetreten, MAX(IF(team_id = $teamid, erster_spieltag, NULL)) AS erster_spieltag, MAX(IF(team_id = $teamid, letzter_spieltag, NULL)) AS letzter_spieltag, vorname, nachname, spielernr, MIN(IF(team_id = $teamid, 0, 1)) AS anderes_team"
- . "\n FROM #__sportsmanager_mitglied_von_team"
- . "\n LEFT JOIN #__sportsmanager_spieler USING (spieler_id)"
- . "\n INNER JOIN #__sportsmanager_team USING (team_id)"
- . "\n WHERE (team_id = $teamid OR teamgruppe_id = $teamgruppe_id)"
- . "\n GROUP BY spieler_id"
- . "\n ORDER BY anderes_team, IF(#__sportsmanager_mitglied_von_team.ausgetreten, 1, 0), nachname, vorname, erster_spieltag";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $mitglieder = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminMitglieder($team, $veranstaltung, $mitglieder, $berechtigt_spieler_aendern);
-}
-
-function adminEditMitglied() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator())
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- $teamid = $jinput->get('teamid', 0, 'INT');
- $alle_anzeigen = $jinput->get('alle_anzeigen', 0, 'INT');
- $entfernen = $jinput->get('entfernen', 0, 'INT');
-
- $query = "SELECT * FROM #__sportsmanager_team WHERE team_id = $teamid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
- if (count($teams) < 1) die ("Wrong id");
- $team = $teams[0];
- $teamgruppe_id = $team->teamgruppe_id != null ? $team->teamgruppe_id : $teamid;
-
- if (empty($id))
- $row = null;
- else {
- $query = "SELECT #__sportsmanager_mitglied_von_team.*, vorname, nachname FROM #__sportsmanager_mitglied_von_team LEFT JOIN #__sportsmanager_spieler USING (spieler_id) INNER JOIN #__sportsmanager_team USING (team_id) WHERE spieler_id = $id AND (team_id = $teamid OR teamgruppe_id = $teamgruppe_id)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $row = $rows[0];
- }
-
- if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($team->veranstaltung_id))
- keinZugriff(true);
-
- $query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $team->veranstaltung_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $veranstaltung = $rows[0];
-
- if (empty($id)) {
- $query = "SELECT DISTINCT veranstaltung_id, bezeichnung, unterteilung, saison_id, team_id, NULL AS mitglied_von_team_id, NULL AS erster_spieltag, NULL AS letzter_spieltag, NULL AS ausgetreten"
- . "\n FROM #__sportsmanager_veranstaltung"
- . "\n INNER JOIN #__sportsmanager_saison USING (saison_id)"
- . "\n LEFT JOIN (SELECT veranstaltung_id, team_id, teamgruppe_id FROM #__sportsmanager_team WHERE team_id = $teamid" . (!empty($team->teamgruppe_id) ? " OR teamgruppe_id = $team->teamgruppe_id" : "") . ") AS veranstaltungen USING (veranstaltung_id)"
- . "\n WHERE team_id = $teamid" . (!empty($team->teamgruppe_id) ? " OR teamgruppe_id = $team->teamgruppe_id" : "")
- . "\n ORDER BY IF(veranstaltung_id = $team->veranstaltung_id, 0, 1), bezeichnung";
- }
- else {
- $query = "SELECT DISTINCT veranstaltung_id, bezeichnung, unterteilung, saison_id, veranstaltungen.team_id, mitglied_von_team_id, erster_spieltag, letzter_spieltag, #__sportsmanager_mitglied_von_team.ausgetreten"
- . "\n FROM #__sportsmanager_veranstaltung"
- . "\n INNER JOIN #__sportsmanager_saison USING (saison_id)"
- . "\n LEFT JOIN (SELECT veranstaltung_id, team_id, teamgruppe_id FROM #__sportsmanager_team WHERE #__sportsmanager_team.team_id = $teamid" . (!empty($team->teamgruppe_id) ? " OR teamgruppe_id = $team->teamgruppe_id" : "") . ") AS veranstaltungen USING (veranstaltung_id)"
- . "\n LEFT JOIN #__sportsmanager_mitglied_von_team ON veranstaltungen.team_id = #__sportsmanager_mitglied_von_team.team_id AND spieler_id = " . $row->spieler_id
- . "\n WHERE veranstaltungen.team_id = $teamid" . (!empty($team->teamgruppe_id) ? " OR teamgruppe_id = $team->teamgruppe_id" : "")
- . "\n ORDER BY IF(veranstaltung_id = $team->veranstaltung_id, 0, 1), bezeichnung";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstaltungen = $db->loadObjectList();
-
- $veranstaltungen_begegnungen = array();
- foreach ($veranstaltungen as $v) {
- $query = "SELECT spieltag, zeitpunkt"
- . "\n FROM #__sportsmanager_begegnung"
- . "\n WHERE (heim_team_id = " . $v->team_id . " OR gast_team_id = " . $v->team_id . ") AND zeitpunkt < CURDATE()"
- . "\n ORDER BY zeitpunkt DESC"
- . "\n LIMIT 2";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $begegnungen = $db->loadObjectList();
-
- $veranstaltungen_begegnungen[$v->veranstaltung_id] = array();
- $begegnungen = array_reverse($begegnungen);
- foreach ($begegnungen as $begegnung)
- array_push($veranstaltungen_begegnungen[$v->veranstaltung_id], array($begegnung->spieltag, $begegnung->zeitpunkt));
-
- $query = "SELECT spieltag, zeitpunkt"
- . "\n FROM #__sportsmanager_begegnung"
- . "\n WHERE (heim_team_id = " . $v->team_id . " OR gast_team_id = " . $v->team_id . ") AND zeitpunkt >= CURDATE()"
- . "\n ORDER BY zeitpunkt"
- . "\n LIMIT 4";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $begegnungen = $db->loadObjectList();
-
- foreach ($begegnungen as $begegnung)
- array_push($veranstaltungen_begegnungen[$v->veranstaltung_id], array($begegnung->spieltag, $begegnung->zeitpunkt));
- }
-
- /*
- $query = "SELECT spieler_id, vorname, nachname, spielernr"
- . "\n FROM #__sportsmanager_spieler";
- if ($team->verein_id != NULL)
- $query .= "\n LEFT JOIN #__sportsmanager_mitglied_von_verein USING (spieler_id)"
- . "\n LEFT JOIN #__sportsmanager_verein USING (verein_id)"
- . "\n WHERE #__sportsmanager_mitglied_von_verein.verein_id = $team->verein_id AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT ISNULL(aktueller_verein_id)";
- else
- $query .= "\n WHERE NOT ISNULL(aktueller_verein_id)";
- $query .= "\n ORDER BY nachname, vorname";
-*/
- if ($team->verein_id != null) {
- $query = "SELECT * FROM #__sportsmanager_verein WHERE verein_id = $team->verein_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $vereine = $db->loadObjectList();
- if (count($vereine) < 1) die ("Wrong id");
- $verein = $vereine[0];
- }
- else
- $verein = null;
-
- if (empty($id)) {
- if (!empty($team->verein_id) && !$alle_anzeigen) {
- $query = "SELECT DISTINCT #__sportsmanager_spieler.spieler_id, vorname, nachname, spielernr, 1 AS aktives_mitglied"
- . "\n FROM #__sportsmanager_mitglied_von_verein"
- . "\n INNER JOIN #__sportsmanager_spieler USING (spieler_id)"
- . "\n WHERE verein_id = $team->verein_id AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten"
- . " AND spieler_id NOT IN (SELECT spieler_id FROM #__sportsmanager_team INNER JOIN #__sportsmanager_mitglied_von_team USING (team_id) WHERE team_id = $teamid OR teamgruppe_id = $teamgruppe_id)"
- . "\n ORDER BY nachname, vorname";
- }
- else {
- $query = "SELECT spieler_id, vorname, nachname, spielernr"
- . "\n FROM #__sportsmanager_spieler"
- . "\n WHERE NOT ISNULL(aktueller_verein_id)"
- . " AND spieler_id NOT IN (SELECT spieler_id FROM #__sportsmanager_team INNER JOIN #__sportsmanager_mitglied_von_team USING (team_id) WHERE team_id = $teamid OR teamgruppe_id = $teamgruppe_id)"
- . "\n ORDER BY nachname, vorname";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spieler = $db->loadObjectList();
-
- if (!empty($team->verein_id) && !$alle_anzeigen) {
- $query = "SELECT spieler_id, veranstaltung_id, unterteilung, erster_spieltag, letzter_spieltag, team_id, ausgetreten"
- . "\n FROM #__sportsmanager_veranstaltung"
- . "\n INNER JOIN #__sportsmanager_team USING (veranstaltung_id)"
- . "\n INNER JOIN #__sportsmanager_mitglied_von_team USING (team_id)"
- . "\n INNER JOIN #__sportsmanager_spieler USING (spieler_id)"
- . "\n WHERE saison_id = $veranstaltung->saison_id AND (unterteilung = 0 OR unterteilung = 1)"
- . " AND EXISTS(SELECT * FROM #__sportsmanager_mitglied_von_verein WHERE #__sportsmanager_mitglied_von_verein.verein_id = $team->verein_id AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten)"
- . "\n ORDER BY reihenfolge, letzter_tag DESC, bezeichnung, kategorie";
-
- }
- else {
- $query = "SELECT spieler_id, veranstaltung_id, unterteilung, erster_spieltag, letzter_spieltag, team_id, ausgetreten"
- . "\n FROM #__sportsmanager_veranstaltung"
- . "\n INNER JOIN #__sportsmanager_team USING (veranstaltung_id)"
- . "\n INNER JOIN #__sportsmanager_mitglied_von_team USING (team_id)"
- . "\n INNER JOIN #__sportsmanager_spieler USING (spieler_id)"
- . "\n WHERE saison_id = $veranstaltung->saison_id AND (unterteilung = 0 OR unterteilung = 1) AND NOT ISNULL(aktueller_verein_id)"
- . "\n ORDER BY reihenfolge, letzter_tag DESC, bezeichnung, kategorie";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $mitgliedschaften = $db->loadObjectList();
-
- $spielberechtigungen = array();
- foreach ($mitgliedschaften as $mitgliedschaft) {
- if (!isset($spielberechtigungen[$mitgliedschaft->spieler_id]))
- $spielberechtigungen[$mitgliedschaft->spieler_id] = array();
- array_push($spielberechtigungen[$mitgliedschaft->spieler_id], array($mitgliedschaft->veranstaltung_id, $mitgliedschaft->unterteilung, $mitgliedschaft->erster_spieltag, $mitgliedschaft->letzter_spieltag, $mitgliedschaft->team_id, $mitgliedschaft->ausgetreten));
- }
-
- // Veranstaltungsbezeichnungen ermitteln
- $query = "SELECT veranstaltung_id, bezeichnung"
- . "\n FROM #__sportsmanager_veranstaltung"
- . "\n WHERE saison_id = $veranstaltung->saison_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $veranstaltungsbezeichnungen = array();
- foreach ($rows as $v)
- $veranstaltungsbezeichnungen[$v->veranstaltung_id] = $v->bezeichnung;
-
- // Mannschaftsbezeichnungen ermitteln
- $query = "SELECT team_id, teamname"
- . "\n FROM #__sportsmanager_team"
- . "\n LEFT JOIN #__sportsmanager_veranstaltung USING (veranstaltung_id)"
- . "\n WHERE saison_id = $veranstaltung->saison_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $mannschaftsnamen = array();
- foreach ($rows as $m)
- $veranstaltungsbezeichnungen[$m->team_id] = $m->teamname;
-
- }
- else {
- $spieler = array();
- $spielberechtigungen = null;
- $veranstaltungsbezeichnungen = null;
- $mannschaftsnamen = null;
- }
-
- HTML_sportsmanager_admin::adminEditMitglied($row, $team, $verein, $veranstaltung, $spieler, $spielberechtigungen, $veranstaltungsbezeichnungen, $mannschaftsnamen, $veranstaltungen, $veranstaltungen_begegnungen, $alle_anzeigen, $entfernen);
-}
-
-function adminSaveMitglied() {
- $db =& getDatabase();
- global $sportsmanager_joomla_path;
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator())
- keinZugriff();
-
- $id = $jinput->get('id', 0, 'INT');
- $spielerids = $id != 0 ? array($id) : $jinput->get('spielerids', array(), 'ARRAY');
- $teamid = $jinput->get('teamid', 0, 'INT');
- $bildbeibehalten = $jinput->get('bildbeibehalten', 0, 'INT');
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_mitglieder&teamid=' . $teamid);
-
- return;
- }
-
- $query = "SELECT * FROM #__sportsmanager_team WHERE team_id = $teamid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
- if (count($teams) < 1) die ("Wrong id");
- $team = $teams[0];
- $teamgruppe_id = $team->teamgruppe_id != null ? $team->teamgruppe_id : $teamid;
-
- if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($team->veranstaltung_id))
- keinZugriff();
-
- $query = "LOCK TABLES #__sportsmanager_team WRITE, #__sportsmanager_berechtigt_fuer_team WRITE, #__sportsmanager_teamansprechpartner WRITE, #__sportsmanager_mitglied_von_team WRITE, #__sportsmanager_begegnung READ, #__sportsmanager_veranstaltung READ;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- // Sicherstellen, dass Mannschaftsmitglied zum Team gehört
- if (!empty($id)) {
- $query = "SELECT * FROM #__sportsmanager_mitglied_von_team INNER JOIN #__sportsmanager_team USING (team_id) WHERE spieler_id = $id AND (team_id = $teamid OR teamgruppe_id = $teamgruppe_id)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- }
-
- $query = "SELECT DISTINCT veranstaltung_id, team_id"
- . "\n FROM #__sportsmanager_team"
- . "\n WHERE team_id = $teamid" . (!empty($teamgruppe_id) ? " OR teamgruppe_id = $teamgruppe_id" : null);
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstaltungen = $db->loadObjectList();
-
- foreach ($veranstaltungen as $v) {
- $status = $jinput->get('status_' . $v->veranstaltung_id, -1, 'INT');
- if ($status == -1)
- continue;
- $erster_spieltag = $jinput->get('erster_spieltag_' . $v->veranstaltung_id, 0, 'INT');
- $letzter_spieltag = $jinput->get('letzter_spieltag_' . $v->veranstaltung_id, 0, 'INT');
-
- $erste_runde_typ = $jinput->get('erste_runde_typ_' . $v->veranstaltung_id, -1, 'INT');
- $erste_runde = max(min(abs($jinput->get('erste_runde_' . $v->veranstaltung_id, 1, 'INT')), $erste_runde_typ == -2 ? 99 : 9999), 1);
- $erste_runde_platzierung_ende = max(min(abs($jinput->get('erste_runde_platzierung_ende_' . $v->veranstaltung_id, 0, 'INT')), $erste_runde + 99), 1);
-
- if ($erste_runde_typ >= 10000)
- $erste_runde = $erste_runde_typ;
- else if ($erste_runde_typ == -2)
- $erste_runde = 20000 + ((99 - abs($erste_runde_platzierung_ende - $erste_runde)) * 100) + 99 - min($erste_runde, $erste_runde_platzierung_ende);
- else if ($erste_runde_typ == 0)
- $erste_runde = 0;
-
- $letzte_runde_typ = $jinput->get('letzte_runde_typ_' . $v->veranstaltung_id, -1, 'INT');
- $letzte_runde = max(min(abs($jinput->get('letzte_runde_' . $v->veranstaltung_id, 1, 'INT')), $letzte_runde_typ == -2 ? 99 : 9999), 1);
- $letzte_runde_platzierung_ende = max(min(abs($jinput->get('letzte_runde_platzierung_ende_' . $v->veranstaltung_id, 0, 'INT')), $letzte_runde + 99), 1);
-
- if ($letzte_runde_typ >= 10000)
- $letzte_runde = $letzte_runde_typ;
- else if ($letzte_runde_typ == -2)
- $letzte_runde = 20000 + ((99 - abs($letzte_runde_platzierung_ende - $letzte_runde)) * 100) + 99 - min($letzte_runde, $letzte_runde_platzierung_ende);
- else if ($letzte_runde_typ == 0)
- $letzte_runde = 0;
-
- if ($letzte_runde != 0 && $erste_runde != 0 && $erste_runde > $letzte_runde) {
- $t = $erste_runde;
- $erste_runde = $letzte_runde;
- $letzte_runde = $t;
- }
-
- if ($id == 0) {
- foreach ($spielerids as $spielerid) {
- if ($status == 0)
- continue;
-
- $query = "SELECT mitglied_von_team_id FROM #__sportsmanager_mitglied_von_team WHERE team_id = $v->team_id AND spieler_id = '" . $db->escape($spielerid) . "'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) > 0)
- continue;
-
- $query = "INSERT #__sportsmanager_mitglied_von_team"
- . "\n SET spieler_id = '" . $db->escape($spielerid) . "',"
- . "\n team_id = '$v->team_id',"
- . "\n erster_spieltag = " . ($erste_runde == 0 ? "NULL" : "'$erste_runde'") . ","
- . "\n letzter_spieltag = " . ($letzte_runde == 0 ? "NULL" : "'$letzte_runde'") . ","
- . "\n ausgetreten = " . ($status == 2 ? "TRUE" : "FALSE") . ";";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- else {
- $query = "SELECT mitglied_von_team_id FROM #__sportsmanager_mitglied_von_team WHERE team_id = $v->team_id AND spieler_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if ($status == 0) {
- foreach ($rows as $row) {
- $query = "DELETE FROM #__sportsmanager_mitglied_von_team WHERE mitglied_von_team_id = " . $row->mitglied_von_team_id;
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- bildLoeschen("mannschaftsmitglieder", $row->mitglied_von_team_id);
- }
- }
- else {
- if (count($rows) == 0) {
- $query = "INSERT #__sportsmanager_mitglied_von_team"
- . "\n SET spieler_id = '$id',"
- . "\n team_id = '$v->team_id',"
- . "\n erster_spieltag = " . ($erste_runde == 0 ? "NULL" : "'$erste_runde'") . ","
- . "\n letzter_spieltag = " . ($letzte_runde == 0 ? "NULL" : "'$letzte_runde'") . ","
- . "\n ausgetreten = " . ($status == 2 ? "TRUE" : "FALSE");
- }
- else {
- $query = "UPDATE #__sportsmanager_mitglied_von_team"
- . "\n SET erster_spieltag = " . ($erste_runde == 0 ? "NULL" : "'$erste_runde'") . ","
- . "\n letzter_spieltag = " . ($letzte_runde == 0 ? "NULL" : "'$letzte_runde'") . ","
- . "\n ausgetreten = " . ($status == 2 ? "TRUE" : "FALSE")
- . "\n WHERE mitglied_von_team_id = " . $rows[0]->mitglied_von_team_id;
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($bildbeibehalten == 0) {
- foreach ($rows as $row) {
- bildLoeschen("mannschaftsmitglieder", $row->mitglied_von_team_id);
-
- if (!empty($_FILES["bild"]["tmp_name"])) {
- if (is_uploaded_file($_FILES["bild"]["tmp_name"])) {
- $size = getimagesize($_FILES["bild"]["tmp_name"]);
- if ($size == false
- || ($size[2] != IMAGETYPE_JPEG && $size[2] != IMAGETYPE_PNG)
- || ($size[0] < 60 || $size[1] < 60 || $size[0] > 8192 || $size[1] > 8192)) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_mitglieder&teamid=' . $teamid, "Das Bild wurde nicht gespeichert, da es nicht im JPG/PNG-Format mit mindestens 90*90 und maximal 8192*8192 Bildpunkten vorliegt.");
-
- return;
- }
- $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'mannschaftsmitglieder';
- if (!bildKopierenAngepasst($_FILES["bild"]["tmp_name"], $bilder_pfad . DIRECTORY_SEPARATOR . $row->mitglied_von_team_id . ($size[2] == IMAGETYPE_PNG ? '.png' : '.jpg'), 180, 240, 1)) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_mitglieder&teamid=' . $teamid, "Das Bild konnte nicht an die Zielposition kopiert werden.");
-
- return;
- }
- }
- }
- }
- }
- }
- }
- }
-
- $query = "SELECT team_id"
- . "\n FROM #__sportsmanager_team"
- . "\n WHERE team_id != $teamid AND teamgruppe_id = $teamgruppe_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $bestehende_weitere_veranstaltungen_beruecksichtigt = $db->loadObjectList();
-
- foreach ($bestehende_weitere_veranstaltungen_beruecksichtigt as $bestehende_weitere_veranstaltung_beruecksichtigt)
- mannschaftsgruppe_verknuepfen($teamid, $bestehende_weitere_veranstaltung_beruecksichtigt->team_id, false, false, false);
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_mitglieder&teamid=' . $teamid);
-}
-
-function adminBegegnungen() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->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";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $veranstaltung = $rows[0];
-
- $modus_id = $veranstaltung->modus_id;
- $query = "SELECT * FROM #__sportsmanager_teamspiel_modus WHERE teamspiel_modus_id = $modus_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) == 1)
- $modus = $rows[0];
-
- $query = "SELECT t1.*, t2.teamname AS heim_name, t3.teamname AS gast_name, t4.unbestaetigtes_ergebnis_id, t4.zwischenergebnis, t2.nichtraucherschutz AS heim_nichtraucherschutz, t3.nichtraucherschutz AS gast_nichtraucherschutz,"
- . "\n EXISTS(SELECT * FROM #__sportsmanager_begegnung_historie USE INDEX (begegnung_id) WHERE #__sportsmanager_begegnung_historie.begegnung_id = t1.begegnung_id AND aktion IN (1, 5)) AS verlegt,"
- . "\n (SELECT IF(#__sportsmanager_begegnung_historie.aktion NOT IN (0, 3, 4), NULL, #__sportsmanager_begegnung_historie.eingetragen) AS eingetragen FROM #__sportsmanager_begegnung_historie USE INDEX (begegnung_id) WHERE #__sportsmanager_begegnung_historie.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen"
- . "\n 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_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";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminBegegnungen($veranstaltung, $modus, $rows);
-}
-
-function adminEditBegegnung() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- $id = $jinput->get('id', 0, 'INT');
- $veranstaltungid = $jinput->get('veranstaltungid', 0, 'INT');
- if ($veranstaltungid == 0) die("Missing id!");
-
- if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungid))
- keinZugriff(true);
-
- if (empty($id)) {
- $query = "SELECT #__sportsmanager_begegnung.*"
- . "\n FROM #__sportsmanager_veranstaltung"
- . "\n INNER JOIN #__sportsmanager_team USING (veranstaltung_id)"
- . "\n INNER JOIN #__sportsmanager_begegnung ON team_id = heim_team_id"
- . "\n WHERE veranstaltung_id = $veranstaltungid"
- . "\n ORDER BY zeitpunkt DESC LIMIT 1";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- $row = count($rows) < 1 ? null : $rows[0]; // Falls keine Begegnung als Vorlage verfügbar ist
- }
- else {
- $query = "SELECT * FROM #__sportsmanager_begegnung WHERE begegnung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id!");
- $row = $rows[0];
-
- // Sicherstellen, dass mindestens ein Team zu Veranstaltung gehört
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_team"
- . "\n WHERE team_id = $row->heim_team_id AND veranstaltung_id = $veranstaltungid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
- if (count($teams) < 1) die ("Wrong id!");
- }
-
- $query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $veranstaltungid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $veranstaltung = $rows[0];
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_team"
- . "\n WHERE veranstaltung_id = $veranstaltungid"
- . "\n ORDER BY teamname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
-
- // Vorgeschlagene Termine ermitteln
- $query = "SELECT #__sportsmanager_begegnung_historie.*, team.teamname as team, user.username, user.name, verantwortlich_team.teamname as verantwortlich_team"
- . "\n FROM #__sportsmanager_begegnung_historie"
- . "\n LEFT JOIN #__sportsmanager_team AS team USING (team_id)"
- . "\n LEFT JOIN #__sportsmanager_team AS verantwortlich_team ON verantwortlich_team.team_id = verantwortlich_team_id"
- . "\n LEFT JOIN #__users AS user ON user.id = user_id"
- . "\n WHERE begegnung_id = $id"
- . "\n ORDER BY begegnung_historie_id DESC";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $verlegen_aktionen = $db->loadObjectList();
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_spielort"
- . "\n ORDER BY ortsname, name, ortsteil";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spielorte = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminEditBegegnung($veranstaltung, $row, $id == null, $teams, $spielorte);
- HTML_sportsmanager_admin::adminVerlegenVerlauf($verlegen_aktionen);
-}
-
-function adminSaveBegegnung() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- $id = $jinput->get('id', 0, 'INT');
- $update = $id != 0;
- $veranstaltungid = $jinput->get('veranstaltungid', 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 . '#id' . $id);
-
- return;
- }
-
- $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);
- $heim_team_id = $jinput->get('heim_team_id', 0, 'INT');
- $gast_team_id = $jinput->get('gast_team_id', 0, 'INT');
- $spielort_id = $jinput->get('spielort_id', 0, 'INT');
- $tisch = $db->escape(trim($jinput->get('tisch', '', 'RAW')));
- $nichtraucherschutz = $jinput->get('nichtraucherschutz', 0, 'INT');
- $rundentyp = $jinput->get('rundentyp', -1, 'INT');
- $runde = max(min(abs($jinput->get('runde', 1, 'INT')), $rundentyp == -2 ? 99 : 9999), 1);
- $platzierung_ende = max(min(abs($jinput->get('platzierung_ende', 0, 'INT')), $runde + 99), 1);
- $aktualisieren_ab_datum = $datum;
-
- if ($rundentyp >= 10000)
- $runde = $rundentyp;
- else if ($rundentyp == -2)
- $runde = 20000 + ((99 - abs($platzierung_ende - $runde)) * 100) + 99 - min($runde, $platzierung_ende);
- else if ($rundentyp == 0)
- $runde = 0;
-
- $query = "SELECT status, elo_wertung"
- . "\n FROM #__sportsmanager_veranstaltung"
- . "\n WHERE veranstaltung_id = $veranstaltungid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong Id!");
- $veranstaltung = $rows[0];
-
- // Sicherstellen, dass Teams zu Veranstaltung gehören
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_team"
- . "\n WHERE team_id = $heim_team_id AND veranstaltung_id = $veranstaltungid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
- if (count($teams) < 1) die ("Wrong id!");
- $heim_team = $teams[0];
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_team"
- . "\n WHERE team_id = $gast_team_id AND veranstaltung_id = $veranstaltungid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
- if (count($teams) < 1) die ("Wrong id!");
- $gast_team = $teams[0];
-
- $query = "LOCK TABLES #__sportsmanager_begegnung WRITE, #__sportsmanager_begegnung_historie WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $user_id = isExternalDatabase() ? 0 : JFactory::getUser()->id;
- if ($id == 0) {
- $query = "INSERT INTO #__sportsmanager_begegnung (zeitpunkt, spieltag, heim_team_id, gast_team_id, spielort_id, tisch, nichtraucherschutz)"
- . "\n VALUES (" . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . ", " . ($runde != null ? "'$runde'" : "NULL") . ", '$heim_team_id', '$gast_team_id', " . ($spielort_id != 0 ? "'$spielort_id'" : "NULL") . ", '$tisch', '$nichtraucherschutz');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
- }
- else {
- // Begegnung ermitteln
- $query = "SELECT *,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_begegnung_historie WHERE #__sportsmanager_begegnung_historie.begegnung_id = #__sportsmanager_begegnung.begegnung_id) AS verlegen_aktionen"
- . "\n FROM #__sportsmanager_begegnung"
- . "\n WHERE begegnung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id!");
- $begegnung = $rows[0];
-
- if (!empty($begegnung->zeitpunkt) && substr($begegnung->zeitpunkt, 0, 10) < $aktualisieren_ab_datum)
- $aktualisieren_ab_datum = substr($begegnung->zeitpunkt, 0, 10);
-
- if ($begegnung->heim_team_id != $heim_team_id || $begegnung->gast_team_id != $gast_team_id) {
- $query = "DELETE FROM #__sportsmanager_begegnung_historie WHERE begegnung_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else if ($begegnung->zeitpunkt != $zeitpunkt && $begegnung->verlegen_aktionen != 0) {
- $aktueller_zeitpunkt = date('Y-m-d H:i:s');
- $query = "INSERT INTO #__sportsmanager_begegnung_historie (begegnung_id, aktion, zeitpunkt, user_id, team_id, verantwortlich_team_id, kommentar, eingetragen)"
- . "\n VALUES ($id, 5, " . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . ", '$user_id', NULL, NULL, NULL, '$aktueller_zeitpunkt');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- if ($begegnung->heim_team_id != $heim_team_id || $begegnung->gast_team_id != $gast_team_id || $begegnung->zeitpunkt != $zeitpunkt || $begegnung->spieltag != $runde || $begegnung->spielort_id != $spielort_id || (empty($begegnung->tisch) != empty($tisch) || $begegnung->tisch != $tisch) || $begegnung->nichtraucherschutz != $nichtraucherschutz) {
- $query = "UPDATE #__sportsmanager_begegnung"
- . "\n SET zeitpunkt = " . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . ","
- . "\n spieltag = " . ($runde != null ? "'$runde'" : "NULL") . ","
- . "\n heim_team_id = '$heim_team_id',"
- . "\n gast_team_id = '$gast_team_id',"
- . "\n spielort_id = " . ($spielort_id != 0 ? "'$spielort_id'" : "NULL") . ","
- . "\n tisch = '$tisch',"
- . "\n nichtraucherschutz = '$nichtraucherschutz'"
- . "\n WHERE begegnung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($veranstaltung->status > 0) {
- if ($update && (empty($begegnung->tisch) != empty($tisch) || $begegnung->tisch != $tisch)) {
- $query = "SELECT *,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_begegnung_historie WHERE #__sportsmanager_begegnung_historie.begegnung_id = #__sportsmanager_begegnung.begegnung_id) AS verlegen_aktionen"
- . "\n FROM #__sportsmanager_begegnung"
- . "\n WHERE begegnung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id!");
- $begegnung = $rows[0];
- begegnungTischChanged($begegnung, $heim_team, $gast_team);
- }
-
- wannGespieltAktualisieren();
- if ($veranstaltung->elo_wertung > 0) {
- eloAktualisieren($aktualisieren_ab_datum);
- einstufungAktualisieren();
- }
- }
-
- redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungid . '#id' . $id);
-}
-
-function adminRemoveBegegnung() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- $id = $jinput->get('id', 0, 'INT');
- $veranstaltungid = $jinput->get('veranstaltungid', 0, 'INT');
- if ($veranstaltungid == 0) die("Missing id!");
-
- if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungid))
- keinZugriff(true);
-
- $query = "LOCK TABLES #__sportsmanager_begegnung_historie WRITE, #__sportsmanager_unbestaetigtes_ergebnis WRITE, #__sportsmanager_teamspiel WRITE, #__sportsmanager_begegnung WRITE, #__sportsmanager_team READ, #__sportsmanager_veranstaltung READ;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- // Sicherstellen, dass Begegnung zu Veranstaltung gehört und Elo-Status abrufen
- $query = "SELECT status, elo_wertung, zeitpunkt"
- . "\n FROM #__sportsmanager_begegnung"
- . "\n INNER JOIN #__sportsmanager_team ON heim_team_id = team_id"
- . "\n INNER JOIN #__sportsmanager_veranstaltung USING (veranstaltung_id)"
- . "\n WHERE begegnung_id = $id AND veranstaltung_id = $veranstaltungid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- return;
- }
- $row = $rows[0];
-
- $elo_aktualisieren = $row->status != 0 && $row->elo_wertung != 0;
- $aktualisieren_ab_datum = !empty($row->zeitpunkt) ? substr($row->zeitpunkt, 0, 10) : null;
-
- $query = "DELETE FROM #__sportsmanager_begegnung_historie WHERE begegnung_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_unbestaetigtes_ergebnis WHERE begegnung_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_teamspiel WHERE begegnung_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_begegnung WHERE begegnung_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($elo_aktualisieren) {
- wannGespieltAktualisieren();
- eloAktualisieren($aktualisieren_ab_datum);
- einstufungAktualisieren();
- }
- spielerstatistikAktualisieren(0, $veranstaltungid);
- teamstatistikAktualisieren($veranstaltungid);
-
- redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungid);
-}
-
-function adminHeimtauschBegegnung() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- $id = $jinput->get('id', 0, 'INT');
- $veranstaltungid = $jinput->get('veranstaltungid', 0, 'INT');
- if ($veranstaltungid == 0) die("Missing id!");
-
- if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungid))
- keinZugriff(true);
-
- $query = "LOCK TABLES #__sportsmanager_begegnung WRITE, #__sportsmanager_teamspiel WRITE, #__sportsmanager_unbestaetigtes_ergebnis READ, #__sportsmanager_begegnung_historie READ, #__sportsmanager_team READ;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT * FROM #__sportsmanager_begegnung WHERE begegnung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id!");
- $row = $rows[0];
-
- // Sicherstellen, dass mindestens ein Team zur Veranstaltung gehört
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_team"
- . "\n WHERE team_id = $row->heim_team_id AND veranstaltung_id = $veranstaltungid"
- . "\n ORDER BY teamname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
- if (count($teams) < 1) die ("Wrong id!");
-
- $query = "UPDATE #__sportsmanager_begegnung"
- . "\n SET heim_team_id = (@temp_heim_team_id := heim_team_id), heim_team_id = gast_team_id,"
- . "\n gast_team_id = @temp_heim_team_id,"
- . "\n heim_punkte = (@temp_heim_punkte := heim_punkte), heim_punkte = gast_punkte,"
- . "\n gast_punkte = @temp_heim_punkte,"
- . "\n heim_spielpunkte = (@temp_heim_spielpunkte := heim_spielpunkte), heim_spielpunkte = gast_spielpunkte,"
- . "\n gast_spielpunkte = @temp_heim_spielpunkte"
- . "\n WHERE begegnung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_teamspiel"
- . "\n SET heim_spieler_1_id = (@temp_heim_spieler_1_id := heim_spieler_1_id), heim_spieler_1_id = gast_spieler_1_id,"
- . "\n gast_spieler_1_id = @temp_heim_spieler_1_id,"
- . "\n heim_spieler_2_id = (@temp_heim_spieler_2_id := heim_spieler_2_id), heim_spieler_2_id = gast_spieler_2_id,"
- . "\n gast_spieler_2_id = @temp_heim_spieler_2_id,"
- . "\n teamspiel_heim_punkte = (@temp_teamspiel_heim_punkte := teamspiel_heim_punkte), teamspiel_heim_punkte = teamspiel_gast_punkte,"
- . "\n teamspiel_gast_punkte = @temp_teamspiel_heim_punkte,"
- . "\n teamspiel_heim_spielpunkte = (@temp_teamspiel_heim_spielpunkte := teamspiel_heim_spielpunkte), teamspiel_heim_spielpunkte = teamspiel_gast_spielpunkte,"
- . "\n teamspiel_gast_spielpunkte = @temp_teamspiel_heim_spielpunkte"
- . "\n WHERE begegnung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- termin_aktualisieren($id);
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungid . '#id' . $id);
-}
-
-function adminEditBegegnungSpielplan($bestaetigen) {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- $user_id = isExternalDatabase() ? 0 : (isJson() ? getUserID() : JFactory::getUser()->id);
- $erneut_oeffnen = $jinput->get('erneut_oeffnen', 0, 'INT');
-
- if ($bestaetigen == 2) {
- $pin = $db->escape(trim($jinput->get('pin', '', 'RAW')));
- if (empty($pin)) {
- $encrypted_pin = $db->escape($jinput->get('epin', '', 'RAW'));
- if (empty($encrypted_pin)) {
- redirectSportsManagerURL(null, "Keine PIN eingegeben.");
- jexit();
- }
- $id = $jinput->get('id', 0, 'INT');
- if ($id == 0) die("Missing id!");
- $veranstaltungid = $jinput->get('veranstaltungid', 0, 'INT');
- if ($veranstaltungid == 0) die("Missing id!");
- $aus_uebersicht = $jinput->get('aus_uebersicht', 0, 'INT');
- $pin = decrypt($encrypted_pin, "a9cZ" . $veranstaltungid . "oDS7" . $id . "2eA");
- }
-
- $query = "SELECT t1.begegnung_id, t5.veranstaltung_id, IF(t2.pin = '$pin', heim_team_id, gast_team_id) AS aktion_team_id, IF(t2.pin = '$pin', gast_team_id, heim_team_id) AS anderes_team_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_unbestaetigtes_ergebnis AS t4 ON t1.begegnung_id = t4.begegnung_id"
- . "\n LEFT JOIN #__sportsmanager_veranstaltung AS t5 ON t2.veranstaltung_id = t5.veranstaltung_id"
- . "\n WHERE t5.status > 0 " . kategorieFilter("AND t5.kategorie IN") . " AND ((ISNULL(heim_punkte) AND ISNULL(gast_punkte)) OR zwischenergebnis OR NOT ISNULL(unbestaetigtes_ergebnis_id)) AND ((NOT ISNULL(t2.pin) AND t2.pin = '$pin') OR (NOT ISNULL(t3.pin) AND t3.pin = '$pin'))"
- . "\n ORDER BY t1.zeitpunkt"
- . "\n LIMIT 1";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- if (count($rows) == 0) {
- redirectSportsManagerURL(null, "Keine offene Begegnung zur PIN gefunden.");
- jexit();
- }
-
- $id = $rows[0]->begegnung_id;
- $veranstaltungid = $rows[0]->veranstaltung_id;
- $aus_uebersicht = 0;
- $aktion_team_id = $rows[0]->aktion_team_id;
- $anderes_team_id = $rows[0]->anderes_team_id;
- }
- else {
- $pin = "";
- $id = $jinput->get('id', 0, 'INT');
- if ($id == 0) die("Missing id!");
- $veranstaltungid = $jinput->get('veranstaltungid', 0, 'INT');
- if ($veranstaltungid == 0) die("Missing id!");
- $aus_uebersicht = $jinput->get('aus_uebersicht', 0, 'INT');
- }
-
- $query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $veranstaltungid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $veranstaltung = $rows[0];
-
- $teamspiel_modus_id = $veranstaltung->modus_id;
-
- $query = "SELECT * FROM #__sportsmanager_teamspiel_modus WHERE teamspiel_modus_id = $teamspiel_modus_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $teamspiel_modus = $rows[0];
-
- $query = "SELECT t1.*, t2.unbestaetigtes_ergebnis_id, t2.kommentar, t2.zwischenergebnis,";
- $query .= "\n (SELECT COUNT(*) FROM #__sportsmanager_berechtigt_fuer_team AS tt1 WHERE tt1.berechtigt_user_id = $user_id AND (tt1.berechtigt_team_id = t1.heim_team_id OR tt1.berechtigt_team_id = t1.gast_team_id)) AS berechtigt_fuer_team_eintragen,";
- if ($bestaetigen != 2) {
- $query .= "\n (SELECT COUNT(*) FROM #__sportsmanager_berechtigt_fuer_team AS tt1 WHERE tt1.berechtigt_user_id = $user_id AND ((tt1.berechtigt_team_id = t1.heim_team_id AND t4.vorschlagendes_team_id = t1.gast_team_id) OR (tt1.berechtigt_team_id = t1.gast_team_id AND t4.vorschlagendes_team_id = t1.heim_team_id))) AS berechtigt_fuer_team_akzeptieren";
- } else {
- $query .= "\n IF(t4.vorschlagendes_team_id = $anderes_team_id, 1, 0) AS berechtigt_fuer_team_akzeptieren";
- }
- $query .= "\n FROM #__sportsmanager_begegnung AS t1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS t2 ON t1.begegnung_id = t2.begegnung_id"
- . "\n LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS t4 ON t1.begegnung_id = t4.begegnung_id"
- . "\n WHERE t1.begegnung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id!");
- $begegnung = $rows[0];
-
- // Vorgeschlagene Termine ermitteln
- $query = "SELECT #__sportsmanager_begegnung_historie.*, team.teamname as team, user.username, user.name, verantwortlich_team.teamname as verantwortlich_team"
- . "\n FROM #__sportsmanager_begegnung_historie"
- . "\n LEFT JOIN #__sportsmanager_team AS team USING (team_id)"
- . "\n LEFT JOIN #__sportsmanager_team AS verantwortlich_team ON verantwortlich_team.team_id = verantwortlich_team_id"
- . "\n LEFT JOIN #__users AS user ON user.id = user_id"
- . "\n WHERE begegnung_id = $id"
- . "\n ORDER BY begegnung_historie_id DESC";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $verlegen_aktionen = $db->loadObjectList();
-
- if ($bestaetigen == 1) {
- if ($begegnung->unbestaetigtes_ergebnis_id == null && ($begegnung->heim_punkte != 0 || $begegnung->gast_punkte != 0))
- keinZugriff();
-
- $query = "SELECT t1.berechtigt_team_id FROM #__sportsmanager_berechtigt_fuer_team AS t1, #__sportsmanager_begegnung WHERE begegnung_id = $id AND berechtigt_user_id = $user_id AND (berechtigt_team_id = heim_team_id OR berechtigt_team_id = gast_team_id)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) == 0)
- keinZugriff(true);
- }
- else if ($bestaetigen == 2) {
- //
- }
- else {
- if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungid))
- keinZugriff(true);
- }
-
- $query = "SELECT * FROM #__sportsmanager_team WHERE team_id = $begegnung->heim_team_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $heim_team = $rows[0];
-
- if ($veranstaltungid != $heim_team->veranstaltung_id)
- die("Wrong id!");
-
- $query = "SELECT * FROM #__sportsmanager_team WHERE team_id = $begegnung->gast_team_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $gast_team = $rows[0];
-
- $query = "SELECT * FROM #__sportsmanager_teamspiel WHERE begegnung_id = $id ORDER BY teamspiel_nummer";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spiele = $db->loadObjectList();
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_mitglied_von_team as t1"
- . "\n INNER JOIN #__sportsmanager_spieler AS t2 USING (spieler_id)"
- . "\n WHERE team_id = $begegnung->heim_team_id AND NOT t1.ausgetreten " . ($begegnung->spieltag != null ? "AND (ISNULL(t1.erster_spieltag) OR t1.erster_spieltag <= $begegnung->spieltag) AND (ISNULL(t1.letzter_spieltag) OR $begegnung->spieltag <= t1.letzter_spieltag) " : "")
- . "\n ORDER BY nachname, vorname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $heim_spieler = $db->loadObjectList();
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_mitglied_von_team as t1"
- . "\n INNER JOIN #__sportsmanager_spieler AS t2 USING (spieler_id)"
- . "\n WHERE team_id = $begegnung->gast_team_id AND NOT t1.ausgetreten " . ($begegnung->spieltag != null ? "AND (ISNULL(t1.erster_spieltag) OR t1.erster_spieltag <= $begegnung->spieltag) AND (ISNULL(t1.letzter_spieltag) OR $begegnung->spieltag <= t1.letzter_spieltag) " : "")
- . "\n ORDER BY nachname, vorname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $gast_spieler = $db->loadObjectList();
-
- $encrypted_pin = encrypt($pin, "a9cZ" . $veranstaltung->veranstaltung_id . "oDS7" . $id . "2eA");
- // Spielort ermitteln
- $spielortQuery = "SELECT name FROM #__sportsmanager_spielort WHERE spielort_id = \""
- . (JFactory::getApplication()->input->getCmd('spielort_heim') == 1
- ? $heim_team->heimspielort_id
- : $begegnung->spielort_id) . "\"";
- $db->setQuery($spielortQuery);
- $begegnung->spielort_name = $db->loadResult();
-
-
- if (isJson()) {
- $response = JSON_sportsmanager::adminEditBegegnungSpielplan($bestaetigen, $veranstaltung, $begegnung, $heim_team, $gast_team, $spiele, $heim_spieler, $gast_spieler, $teamspiel_modus, $encrypted_pin, count($verlegen_aktionen), $erneut_oeffnen, $aus_uebersicht);
- JSON_sportsmanager::JSON($response);
- } else {
- HTML_sportsmanager_admin::adminEditBegegnungSpielplan($bestaetigen, $veranstaltung, $begegnung, $heim_team, $gast_team, $spiele, $heim_spieler, $gast_spieler, $teamspiel_modus, $encrypted_pin, count($verlegen_aktionen), $erneut_oeffnen, $aus_uebersicht);
- HTML_sportsmanager_admin::adminVerlegenVerlauf($verlegen_aktionen);
- }
-
-}
-
-
-function adminSaveBegegnungSpielplan() {
- $app = &JFactory::getApplication();
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
- $begegnung_input = isJson() ? $jinput->json : $jinput;
-
- $user_id = isExternalDatabase() ? 0 : (isJson() ? getUserID() : JFactory::getUser()->id);
- $id = $jinput->get('id', 0, 'INT');
- $bestaetigen = $begegnung_input->get('bestaetigen', 0, 'INT');
- $zwischenergebnis = isJson() && $jinput->getMethod() === 'PATCH' ? true : $begegnung_input->get('live', false, 'BOOL');
-
- $veranstaltungid = $jinput->get('veranstaltungid', 0, 'INT');
- if ($veranstaltungid == 0) {
- abortWithError("Missing id!");
- }
- $kommentar = $db->escape($jinput->get('kommentar', '', 'RAW'));
- $aus_uebersicht = $jinput->get('aus_uebersicht', 0, 'INT');
- $anzahl_historie = $jinput->get('anzahl_historie', 0, 'INT');
- $erneut_oeffnen = $jinput->get('erneut_oeffnen', 0, 'INT');
- $heim_team_id = $jinput->get('heim_team_id', 0, 'INT');
- $gast_team_id = $jinput->get('gast_team_id', 0, 'INT');
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- if ($bestaetigen == 1) {
- if ($aus_uebersicht) {
- redirectSportsManagerURL('#id' . $id);
- }
- else {
- redirectSportsManagerURL('&task=veranstaltung&veranstaltungid=' . $veranstaltungid . '#id' . $id);
- }
- }
- else if ($bestaetigen == 2) {
- if ($aus_uebersicht) {
- redirectSportsManagerURL();
- }
- else {
- redirectSportsManagerURL('&task=veranstaltung&veranstaltungid=' . $veranstaltungid);
- }
- }
- else {
- redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungid . '#id' . $id);
- }
-
- return;
- }
-
- $benutzer_ist_moderator = benutzerZugriff("mannschaftswettbewerb_aendern") || benutzerVeranstaltungModerator($veranstaltungid); // Abfrage muss vor LOCK erfolgen, da sonst die Abfrage mangels Lock auf Moderator-Tabelle scheitert
-
- $query = "LOCK TABLES #__sportsmanager_begegnung WRITE, #__sportsmanager_veranstaltung WRITE, #__sportsmanager_teamspiel_modus WRITE, #__sportsmanager_unbestaetigtes_ergebnis WRITE, #__sportsmanager_berechtigt_fuer_team WRITE, #__sportsmanager_teamspiel WRITE, #__sportsmanager_begegnung_historie WRITE, #__sportsmanager_team WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
-
- $query = "SELECT #__sportsmanager_begegnung.*, unbestaetigtes_ergebnis_id, zwischenergebnis,"
- . " (SELECT COUNT(*) FROM #__sportsmanager_begegnung_historie WHERE #__sportsmanager_begegnung_historie.begegnung_id = #__sportsmanager_begegnung.begegnung_id) AS verlegen_aktionen"
- . "\n FROM #__sportsmanager_begegnung"
- . "\n LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis ON #__sportsmanager_begegnung.begegnung_id = #__sportsmanager_unbestaetigtes_ergebnis.begegnung_id"
- . "\n WHERE #__sportsmanager_begegnung.begegnung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) {
- abortWithError("Wrong id!");
- }
- $begegnung = $rows[0];
-
- $mannschaften_vertauscht = $begegnung->heim_team_id == $gast_team_id || $begegnung->gast_team_id == $heim_team_id;
- $aktualisieren_ab_datum = !empty($begegnung->zeitpunkt) ? substr($begegnung->zeitpunkt, 0, 10) : null;
-
- // Veranstaltung ermitteln
- $query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $veranstaltungid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) {
- abortWithError("Wrong id!");
- }
- $veranstaltung = $rows[0];
-
- // Sicherstellen, dass mindestens ein Team zu Veranstaltung gehört
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_team"
- . "\n WHERE team_id = $begegnung->heim_team_id AND veranstaltung_id = $veranstaltungid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- $teams = $db->loadObjectList();
- if (count($teams) < 1) {
- abortWithError("Wrong id!");
- }
-
- // Spielmodus ermitteln
- $modus_id = $veranstaltung->modus_id;
- $query = "SELECT * FROM #__sportsmanager_teamspiel_modus WHERE teamspiel_modus_id = $modus_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) {
- abortWithError("Wrong id!");
- }
- $teamspiel_modus = $rows[0];
-
- $spielpunkte_wertung_einzel = $teamspiel_modus->spielpunkte_wertung_einzel;
- $spielpunkte_wertung_doppel = $teamspiel_modus->spielpunkte_wertung_doppel;
- $modus = explode("|", $teamspiel_modus->modus);
- $spieltypen = isset($modus[0]) ? explode(",", $modus[0]) : array();
-
- if ($bestaetigen == 1) {
- if ($begegnung->unbestaetigtes_ergebnis_id == null && ($begegnung->heim_punkte != 0 || $begegnung->gast_punkte != 0)) {
- keinZugriff();
- }
-
- $query = "SELECT #__sportsmanager_berechtigt_fuer_team.berechtigt_team_id FROM #__sportsmanager_berechtigt_fuer_team, #__sportsmanager_begegnung WHERE begegnung_id = $id AND berechtigt_user_id = $user_id AND (berechtigt_team_id = heim_team_id OR berechtigt_team_id = gast_team_id)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) == 0) {
- keinZugriff();
- }
- $vorschlagendes_team_id = $rows[0]->berechtigt_team_id;
- }
- else if ($bestaetigen == 2) {
- if ($begegnung->unbestaetigtes_ergebnis_id == null && ($begegnung->heim_punkte != 0 || $begegnung->gast_punkte != 0)) {
- keinZugriff();
- }
-
- $encrypted_pin = $db->escape($jinput->get('pin', '', 'RAW'));
- $pin = decrypt($encrypted_pin, "a9cZ" . $veranstaltungid . "oDS7" . $id . "2eA");
- if (empty($pin)) {
- keinZugriff();
- }
-
- $query = "SELECT team_id FROM #__sportsmanager_begegnung LEFT JOIN #__sportsmanager_team ON heim_team_id = team_id OR gast_team_id = team_id WHERE begegnung_id = $id AND (team_id = $begegnung->heim_team_id OR team_id = $begegnung->gast_team_id) AND NOT ISNULL(pin) AND pin = '$pin'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- if (count($rows) == 0) {
- keinZugriff();
- }
-
- $vorschlagendes_team_id = $rows[0]->team_id;
- }
- else {
- if (!$benutzer_ist_moderator) {
- keinZugriff();
- }
- }
-
- $veranstaltungid = $jinput->get('veranstaltungid', 0, 'INT');
- if ($veranstaltungid == 0) {
- abortWithError("Missing id!");
- }
-
- $query = "DELETE FROM #__sportsmanager_unbestaetigtes_ergebnis WHERE begegnung_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
-
- if ($zwischenergebnis) {
- $query = "INSERT INTO #__sportsmanager_unbestaetigtes_ergebnis (begegnung_id, vorschlagendes_team_id, zwischenergebnis, kommentar, vorgeschlagen)"
- . "\n VALUES ('$id', " . ($bestaetigen != 0 ? "'$vorschlagendes_team_id'" : "'0'") . ", '1', '$kommentar', now());";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
-
- $query = "INSERT INTO #__sportsmanager_begegnung_historie (begegnung_id, aktion, zeitpunkt, user_id, team_id, verantwortlich_team_id, kommentar, eingetragen)"
- . "\n VALUES ($id, 9, NULL, " . ($bestaetigen != 2 ? "'$user_id'" : "NULL") . ", " . ($bestaetigen != 0 ? "'$vorschlagendes_team_id'" : "NULL") . ", NULL, NULL, now());";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- }
- else if ($bestaetigen != 0) {
- $query = "INSERT INTO #__sportsmanager_unbestaetigtes_ergebnis (begegnung_id, vorschlagendes_team_id, kommentar, vorgeschlagen)"
- . "\n VALUES ('$id', '$vorschlagendes_team_id', '$kommentar', now());";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
-
- $query = "INSERT INTO #__sportsmanager_begegnung_historie (begegnung_id, aktion, zeitpunkt, user_id, team_id, verantwortlich_team_id, kommentar, eingetragen)"
- . "\n VALUES ($id, 6, NULL, " . ($bestaetigen != 2 ? "'$user_id'" : "NULL") . ", '$vorschlagendes_team_id', '" . ($vorschlagendes_team_id == $begegnung->heim_team_id ? $begegnung->gast_team_id : $begegnung->heim_team_id) . "', NULL, now());";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- }
- else {
- $query = "INSERT INTO #__sportsmanager_begegnung_historie (begegnung_id, aktion, zeitpunkt, user_id, team_id, verantwortlich_team_id, kommentar, eingetragen)"
- . "\n VALUES ($id, 8, NULL, '$user_id', NULL, NULL, NULL, now());";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- }
-
- $query = "SELECT * FROM #__sportsmanager_teamspiel WHERE begegnung_id = $id ORDER BY teamspiel_nummer";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- $spiele = $db->loadObjectList();
-
- $spiele_nummern = array();
- foreach ($spiele as $spiel) {
- $spiele_nummern[$spiel->teamspiel_nummer] = $spiel;
- }
-
- $ergebnis_vereinen = $zwischenergebnis && $begegnung->verlegen_aktionen != $anzahl_historie;
-
- $total_heim_punkte = 0;
- $total_gast_punkte = 0;
- $total_heim_spielpunkte = 0;
- $total_gast_spielpunkte = 0;
- $spiel_nr = 1;
- do {
- $spieltyp = isset($spieltypen[$spiel_nr - 1]) ? $spieltypen[$spiel_nr - 1] : '';
-
- $skip_spiel = $begegnung_input->get('spiel_' . $spiel_nr . '_typ', '', 'RAW') == '' && $jinput->getMethod() === 'PATCH';
-
- if ($skip_spiel) {
- if (isset($spiele_nummern[$spiel_nr])) {
- $spiel_heim_punkte = $spiele_nummern[$spiel_nr]->$spiel_heim_punkte;
- $spiel_gast_punkte = $spiele_nummern[$spiel_nr]->$spiel_gast_punkte;
- }
- else {
- $spiel_heim_punkte = 0;
- $spiel_gast_punkte = 0;
- }
- }
- else {
- $spiel_heim_punkte_detailliert = $begegnung_input->get('spiel_' . $spiel_nr . '_heim_punkte_detailliert', array(), 'ARRAY');
- $spiel_gast_punkte_detailliert = $begegnung_input->get('spiel_' . $spiel_nr . '_gast_punkte_detailliert', array(), 'ARRAY');
- if (empty($spiel_heim_punkte_detailliert)) {
- $spiel_heim_punkte = $begegnung_input->get('spiel_' . $spiel_nr . '_heim_punkte', 0, 'INT');
- $spiel_gast_punkte = $begegnung_input->get('spiel_' . $spiel_nr . '_gast_punkte', 0, 'INT');
- $ergebnis_detailliert = $spiel_heim_punkte == 0 && $spiel_gast_punkte == 0 ? '' : ($spiel_heim_punkte . ":" . $spiel_gast_punkte);
- }
- else {
- $ergebnis_detailliert = "";
- $spiel_heim_punkte = 0;
- $spiel_gast_punkte = 0;
- for ($i = 0; $i < count($spiel_heim_punkte_detailliert); $i++) {
- if (($spiel_heim_punkte_detailliert[$i] == 0 || empty($spiel_heim_punkte_detailliert[$i])) && ($spiel_gast_punkte_detailliert[$i] == 0 || empty($spiel_gast_punkte_detailliert[$i]))) {
- continue;
- }
- if (!empty($ergebnis_detailliert)) {
- $ergebnis_detailliert .= " ";
- }
- $punkte_heim = empty($spiel_heim_punkte_detailliert[$i]) ? "0" : $spiel_heim_punkte_detailliert[$i];
- $punkte_gast = empty($spiel_gast_punkte_detailliert[$i]) ? "0" : $spiel_gast_punkte_detailliert[$i];
- if ($punkte_heim > $punkte_gast) {
- $spiel_heim_punkte++;
- }
- else if ($punkte_gast > $punkte_heim) {
- $spiel_gast_punkte++;
- }
- $ergebnis_detailliert .= $punkte_heim . ":" . $punkte_gast;
- }
- }
-
- if ($spieltyp[0] == "S") {
- $spiel_heim_spieler_1_id = 0;
- $spiel_gast_spieler_1_id = 0;
- $spiel_heim_spieler_2_id = 0;
- $spiel_gast_spieler_2_id = 0;
- }
- else {
- $spiel_heim_spieler_1_id = $begegnung_input->get('spiel_' . $spiel_nr . '_heim_spieler_1_id', 0, 'INT');
- $spiel_gast_spieler_1_id = $begegnung_input->get('spiel_' . $spiel_nr . '_gast_spieler_1_id', 0, 'INT');
- if ($spieltyp[0] == "E") {
- $spiel_heim_spieler_2_id = 0;
- $spiel_gast_spieler_2_id = 0;
- }
- else {
- $spiel_heim_spieler_2_id = $begegnung_input->get('spiel_' . $spiel_nr . '_heim_spieler_2_id', 0, 'INT');
- $spiel_gast_spieler_2_id = $begegnung_input->get('spiel_' . $spiel_nr . '_gast_spieler_2_id', 0, 'INT');
- }
- $spieler_angegeben = $spiel_heim_spieler_1_id != 0 || $spiel_gast_spieler_1_id != 0 || $spiel_heim_spieler_2_id != 0 || $spiel_gast_spieler_2_id != 0;
- }
-
- if ($mannschaften_vertauscht) {
- $t = $spiel_heim_punkte;
- $spiel_heim_punkte = $spiel_gast_punkte;
- $spiel_gast_punkte = $t;
- $ergebnis_detailliert = runden_detailliert_invers($ergebnis_detailliert);
-
- $t = $spiel_heim_spieler_1_id;
- $spiel_heim_spieler_1_id = $spiel_gast_spieler_1_id;
- $spiel_gast_spieler_1_id = $t;
-
- $t = $spiel_heim_spieler_2_id;
- $spiel_heim_spieler_2_id = $spiel_gast_spieler_2_id;
- $spiel_gast_spieler_2_id = $t;
- }
-
- if ($zwischenergebnis && $begegnung->verlegen_aktionen != $anzahl_historie && isset($spiele_nummern[$spiel_nr])) {
- $spiel = $spiele_nummern[$spiel_nr];
- if ($spiel_heim_punkte == 0 && $spiel_gast_punkte == 0) {
- $spiel_heim_punkte = $spiel->teamspiel_heim_punkte;
- $spiel_gast_punkte = $spiel->teamspiel_gast_punkte;
- }
- if ($spiel_heim_spieler_1_id == 0)
- $spiel_heim_spieler_1_id = $spiel->heim_spieler_1_id;
- if ($spiel_gast_spieler_1_id == 0)
- $spiel_gast_spieler_1_id = $spiel->gast_spieler_1_id;
- $spieler_angegeben = $spiel_heim_spieler_1_id != 0 || $spiel_gast_spieler_1_id != 0;
- if ((!empty($spieltyp) && $spieltyp[0] == "D")) {
- if ($spiel_heim_spieler_2_id == 0)
- $spiel_heim_spieler_2_id = $spiel->heim_spieler_2_id;
- if ($spiel_gast_spieler_2_id == 0)
- $spiel_gast_spieler_2_id = $spiel->gast_spieler_2_id;
- if (!$spieler_angegeben)
- $spieler_angegeben = $spiel_heim_spieler_2_id != 0 || $spiel_gast_spieler_2_id != 0;
- }
- }
- }
-
- if ($skip_spiel || $spiel_heim_punkte != 0 || $spiel_gast_punkte != 0 || ($zwischenergebnis && $spieler_angegeben)) {
- $total_heim_punkte += $spiel_heim_punkte;
- $total_gast_punkte += $spiel_gast_punkte;
-
- if ($spieltyp[0] != "D") {
- if ($spielpunkte_wertung_einzel == 2) {
- $spiel_heim_spielpunkte = $spiel_heim_punkte;
- $spiel_gast_spielpunkte = $spiel_gast_punkte;
- }
- else {
- if ($spiel_heim_punkte > $spiel_gast_punkte) {
- $spiel_heim_spielpunkte = $spielpunkte_wertung_einzel == 0 ? 2 : ($spielpunkte_wertung_einzel == 1 ? 3 : 1);
- $spiel_gast_spielpunkte = 0;
- }
- else if ($spiel_heim_punkte < $spiel_gast_punkte) {
- $spiel_heim_spielpunkte = 0;
- $spiel_gast_spielpunkte = $spielpunkte_wertung_einzel == 0 ? 2 : ($spielpunkte_wertung_einzel == 1 ? 3 : 1);
- }
- else if ($spiel_heim_punkte == 0 && $spiel_gast_punkte == 0) {
- $spiel_heim_spielpunkte = 0;
- $spiel_gast_spielpunkte = 0;
- }
- else if ($spielpunkte_wertung != 3) {
- $spiel_heim_spielpunkte = 1;
- $spiel_gast_spielpunkte = 1;
- }
- else {
- $spiel_heim_spielpunkte = 0;
- $spiel_gast_spielpunkte = 0;
- }
- }
- }
- else {
- if ($spielpunkte_wertung_doppel == 2) {
- $spiel_heim_spielpunkte = $spiel_heim_punkte;
- $spiel_gast_spielpunkte = $spiel_gast_punkte;
- }
- else {
- if ($spiel_heim_punkte > $spiel_gast_punkte) {
- $spiel_heim_spielpunkte = $spielpunkte_wertung_doppel == 0 ? 2 : ($spielpunkte_wertung_doppel == 1 ? 3 : 1);
- $spiel_gast_spielpunkte = 0;
- }
- else if ($spiel_heim_punkte < $spiel_gast_punkte) {
- $spiel_heim_spielpunkte = 0;
- $spiel_gast_spielpunkte = $spielpunkte_wertung_doppel == 0 ? 2 : ($spielpunkte_wertung_doppel == 1 ? 3 : 1);
- }
- else if ($spiel_heim_punkte == 0 && $spiel_gast_punkte == 0) {
- $spiel_heim_spielpunkte = 0;
- $spiel_gast_spielpunkte = 0;
- }
- else if ($spielpunkte_wertung_doppel != 3) {
- $spiel_heim_spielpunkte = 1;
- $spiel_gast_spielpunkte = 1;
- }
- else {
- $spiel_heim_spielpunkte = 0;
- $spiel_gast_spielpunkte = 0;
- }
- }
- }
-
- $total_heim_spielpunkte += $spiel_heim_spielpunkte;
- $total_gast_spielpunkte += $spiel_gast_spielpunkte;
-
- if (!$skip_spiel) {
- if (!isset($spiele_nummern[$spiel_nr])) {
- $query = "INSERT INTO #__sportsmanager_teamspiel (begegnung_id, teamspiel_nummer, heim_spieler_1_id, heim_spieler_2_id, gast_spieler_1_id, gast_spieler_2_id, teamspiel_heim_punkte, teamspiel_gast_punkte, teamspiel_heim_spielpunkte, teamspiel_gast_spielpunkte, ergebnis_detailliert)"
- . "\n VALUES ('$id', '$spiel_nr', '$spiel_heim_spieler_1_id', " . ($spieltyp[0] == "D" ? "'$spiel_heim_spieler_2_id'" : "NULL") . ", '$spiel_gast_spieler_1_id', " . ($spieltyp[0] == "D" ? "'$spiel_gast_spieler_2_id'" : "NULL") . ", '$spiel_heim_punkte', '$spiel_gast_punkte', '$spiel_heim_spielpunkte', '$spiel_gast_spielpunkte', " . (empty($ergebnis_detailliert) ? "null" : "'$ergebnis_detailliert'") . ");";
- }
- else {
- $teamspiel_id = $spiele_nummern[$spiel_nr]->teamspiel_id;
- $query = "UPDATE #__sportsmanager_teamspiel"
- . "\n SET heim_spieler_1_id = '$spiel_heim_spieler_1_id',"
- . "\n heim_spieler_2_id = " . ($spieltyp[0] == "D" ? "'$spiel_heim_spieler_2_id'" : "NULL") . ","
- . "\n gast_spieler_1_id = '$spiel_gast_spieler_1_id',"
- . "\n gast_spieler_2_id = " . ($spieltyp[0] == "D" ? "'$spiel_gast_spieler_2_id'" : "NULL") . ","
- . "\n teamspiel_heim_punkte = '$spiel_heim_punkte',"
- . "\n teamspiel_gast_punkte = '$spiel_gast_punkte',"
- . "\n teamspiel_heim_spielpunkte = '$spiel_heim_spielpunkte',"
- . "\n teamspiel_gast_spielpunkte = '$spiel_gast_spielpunkte',"
- . "\n ergebnis_detailliert = " . (empty($ergebnis_detailliert) ? "null" : "'$ergebnis_detailliert'")
- . "\n WHERE teamspiel_id = $teamspiel_id";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- }
-
- $spiel_nr++;
- }
-
- } while (isset($spieltypen[$spiel_nr - 1]) && ($skip_spiel || $spiel_heim_punkte != 0 || $spiel_gast_punkte != 0 || ($zwischenergebnis && $spieler_angegeben)));
-
- $query = "DELETE FROM #__sportsmanager_teamspiel WHERE begegnung_id = $id AND teamspiel_nummer >= $spiel_nr;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
-
- if ($spiel_nr > 1) {
- $query = "UPDATE #__sportsmanager_begegnung"
- . "\n SET heim_punkte = '$total_heim_punkte',"
- . "\n gast_punkte = '$total_gast_punkte',"
- . "\n heim_spielpunkte = '$total_heim_spielpunkte',"
- . "\n gast_spielpunkte = '$total_gast_spielpunkte'"
- . "\n WHERE begegnung_id = $id";
- }
- else {
- $query = "UPDATE #__sportsmanager_begegnung"
- . "\n SET heim_punkte = NULL,"
- . "\n gast_punkte = NULL,"
- . "\n heim_spielpunkte = NULL,"
- . "\n gast_spielpunkte = NULL"
- . "\n WHERE begegnung_id = $id";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
-
- // Benachrichtigung schreiben
- /*
- $query = "SELECT * FROM #__sportsmanager_einstellungen WHERE name = 'twitter_benutzername' || name = 'twitter_kennwort' ORDER BY name";
- $db->setQuery( $query );
- if (!$result = $db->execute()) { die($db->stderr(true)); }
- $rows = $db->loadObjectList();
- if (count($rows) != 2 || empty($rows[0]->wert) || empty($rows[1]->wert))
- $twitter_benutzername = "";
- else {
- $twitter_benutzername = $rows[0]->wert;
- $twitter_kennwort = $rows[1]->wert;
- }
- */
-
-// if (!empty($twitter_benutzername) || $bestaetigen) {
- if ($bestaetigen != 0) {
- // Begegnung ermitteln
- $query = "SELECT #__sportsmanager_begegnung.*, unbestaetigtes_ergebnis_id, zwischenergebnis"
- . "\n FROM #__sportsmanager_begegnung"
- . "\n LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis ON #__sportsmanager_begegnung.begegnung_id = #__sportsmanager_unbestaetigtes_ergebnis.begegnung_id"
- . "\n WHERE #__sportsmanager_begegnung.begegnung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id!");
- $begegnung_alt = $begegnung;
- $begegnung = $rows[0];
-
- // Heimteam ermitteln
- $query = "SELECT * FROM #__sportsmanager_team WHERE team_id = $begegnung->heim_team_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) {
- abortWithError("Wrong id!");
- }
- $heim_team = $rows[0];
-
- // Gastteam ermitteln
- $query = "SELECT * FROM #__sportsmanager_team WHERE team_id = $begegnung->gast_team_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) {
- abortWithError("Wrong id!");
- }
- $gast_team = $rows[0];
- }
-
- if ($bestaetigen != 0 && !$zwischenergebnis) {
- $mailfrom = $app->getCfg('mailfrom');
- $fromname = $app->getCfg('fromname');
- $subject = $heim_team->teamname . " vs. " . $gast_team->teamname . ": Ergebnis vorgeschlagen";
- $body = "Zur Begegnung " . $heim_team->teamname . " gegen " . $gast_team->teamname . " am " . FormatiertesDatum($begegnung->zeitpunkt) . " in der " . $veranstaltung->bezeichnung . " wurde von " . ($vorschlagendes_team_id == $heim_team->team_id ? $heim_team->teamname : $gast_team->teamname) . " ein Ergebnis eingetragen.\n\nBestaetigen des Ergebnisses ueber " . SportsManagerURL('&task=admin_begegnung_spielplan_edit_bestaetigen&veranstaltungid=' . $veranstaltungid . '&id=' . $id, -1) . ".";
-
- $query = "SELECT * FROM #__users AS t1, #__sportsmanager_berechtigt_fuer_team AS t2 WHERE t1.id = t2.berechtigt_user_id AND (t2.berechtigt_team_id = " . $begegnung->heim_team_id . " OR t2.berechtigt_team_id = " . $begegnung->gast_team_id . ")";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- foreach ($rows as $row) {
- JFactory::getMailer()->sendMail($mailfrom, $fromname, $row->email, $subject, $body);
- }
- }
-
- /*
- if (!empty($twitter_benutzername)
- && ($begegnung_alt->zwischenergebnis != $begegnung->zwischenergebnis
- || $begegnung_alt->heim_punkte != $begegnung->heim_punkte
- || $begegnung_alt->gast_punkte != $begegnung->gast_punkte
- || $begegnung_alt->heim_spielpunkte != $begegnung->heim_spielpunkte
- || $begegnung_alt->gast_spielpunkte != $begegnung->gast_spielpunkte)) {
- try {
- $twitter = new Twitter($twitter_benutzername, $twitter_kennwort);
- $status = $twitter->send(($zwischenergebnis ? "Live: " : "") . $veranstaltung->bezeichnung . " " . $heim_team->teamname . " vs. " . $gast_team->teamname . " " . $total_heim_spielpunkte . ":" . $total_gast_spielpunkte . " (" . $total_heim_punkte . ":" . $total_gast_punkte . ")");
- }
- catch(TwitterException $e) {
- }
-
- }
- */
-
- begegnungChanged($begegnung, $begegnung_alt, $modus, $heim_team, $gast_team, $spiele);
-
- if ($bestaetigen == 0) {
- if ($veranstaltung->status != 0) {
- wannGespieltAktualisieren();
- if ($veranstaltung->elo_wertung != 0) {
- eloAktualisieren($aktualisieren_ab_datum);
- einstufungAktualisieren();
- }
- }
- spielerstatistikAktualisieren(0, $veranstaltungid);
- teamstatistikAktualisieren($veranstaltungid);
- }
-
- if (isJson()) {
- begegnungSpielplan();
- } else {
- if ($erneut_oeffnen) {
- redirectSportsManagerURL('&task=' . ($bestaetigen != 0 ? ($bestaetigen == 1 ? 'admin_begegnung_spielplan_edit_bestaetigen' : 'pineingabe') : 'admin_begegnung_spielplan_edit') . '&id=' . $id . '&veranstaltungid=' . $veranstaltungid . ($bestaetigen != 0 ? '_bestaetigen' : '') . '&veranstaltungid=' . $veranstaltungid . '&id=' . $id . '&erneut_oeffnen=1' . (!empty($encrypted_pin) ? ('&epin=' . $encrypted_pin) : "") . ($aus_uebersicht ? '&aus_uebersicht=1' : ''));
- }
- else if ($bestaetigen == 1) {
- if ($aus_uebersicht)
- redirectSportsManagerURL('#id' . $id);
- else
- redirectSportsManagerURL('&task=veranstaltung&veranstaltungid=' . $veranstaltungid . '#id' . $id);
- }
- else if ($bestaetigen == 2) {
- if ($aus_uebersicht)
- redirectSportsManagerURL();
- else
- redirectSportsManagerURL('&task=veranstaltung&veranstaltungid=' . $veranstaltungid);
- }
- else {
- redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungid . '#id' . $id);
- }
- }
-}
-
-function adminBegegnungSpielplanHeimtausch() {
- $app = &JFactory::getApplication();
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- $user_id = isExternalDatabase() ? 0 : JFactory::getUser()->id;
- $id = $jinput->get('id', 0, 'INT');
- $bestaetigen = $jinput->get('bestaetigen', 0, 'INT');
- $zwischenergebnis = $jinput->get('zwischenergebnis', 0, 'INT');
- $veranstaltungid = $jinput->get('veranstaltungid', 0, 'INT');
- if ($veranstaltungid == 0) die("Missing id!");
- $kommentar = $db->escape($jinput->get('kommentar', '', 'RAW'));
- $aus_uebersicht = $jinput->get('aus_uebersicht', 0, 'INT');
- $anzahl_historie = $jinput->get('anzahl_historie', 0, 'INT');
- $erneut_oeffnen = $jinput->get('erneut_oeffnen', 0, 'INT');
- $heim_team_id = $jinput->get('heim_team_id', 0, 'INT');
- $gast_team_id = $jinput->get('gast_team_id', 0, 'INT');
-
- $benutzer_ist_moderator = benutzerZugriff("mannschaftswettbewerb_aendern") || benutzerVeranstaltungModerator($veranstaltungid); // Abfrage muss vor LOCK erfolgen, da sonst die Abfrage mangels Lock auf Moderator-Tabelle scheitert
-
- $query = "LOCK TABLES #__sportsmanager_begegnung WRITE, #__sportsmanager_veranstaltung WRITE, #__sportsmanager_teamspiel_modus WRITE, #__sportsmanager_unbestaetigtes_ergebnis WRITE, #__sportsmanager_berechtigt_fuer_team WRITE, #__sportsmanager_teamspiel WRITE, #__sportsmanager_begegnung_historie WRITE, #__sportsmanager_team WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT #__sportsmanager_begegnung.*, unbestaetigtes_ergebnis_id, zwischenergebnis,"
- . " (SELECT COUNT(*) FROM #__sportsmanager_begegnung_historie WHERE #__sportsmanager_begegnung_historie.begegnung_id = #__sportsmanager_begegnung.begegnung_id) AS verlegen_aktionen"
- . "\n FROM #__sportsmanager_begegnung"
- . "\n LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis ON #__sportsmanager_begegnung.begegnung_id = #__sportsmanager_unbestaetigtes_ergebnis.begegnung_id"
- . "\n WHERE #__sportsmanager_begegnung.begegnung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id!");
- $begegnung = $rows[0];
-
- $mannschaften_vertauscht = $begegnung->heim_team_id == $gast_team_id || $begegnung->gast_team_id == $heim_team_id;
-
- // Veranstaltung ermitteln
- $query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $veranstaltungid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $veranstaltung = $rows[0];
-
- // Sicherstellen, dass mindestens ein Team zu Veranstaltung gehört
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_team"
- . "\n WHERE team_id = $begegnung->heim_team_id AND veranstaltung_id = $veranstaltungid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
- if (count($teams) < 1) die ("Wrong id!");
-
- // Spielmodus ermitteln
- $modus_id = $veranstaltung->modus_id;
- $query = "SELECT * FROM #__sportsmanager_teamspiel_modus WHERE teamspiel_modus_id = $modus_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $modus = $rows[0];
-
- if ($bestaetigen == 1) {
- if ($begegnung->unbestaetigtes_ergebnis_id == null && ($begegnung->heim_punkte != 0 || $begegnung->gast_punkte != 0))
- keinZugriff();
-
- $query = "SELECT #__sportsmanager_berechtigt_fuer_team.berechtigt_team_id FROM #__sportsmanager_berechtigt_fuer_team, #__sportsmanager_begegnung WHERE begegnung_id = $id AND berechtigt_user_id = $user_id AND (berechtigt_team_id = heim_team_id OR berechtigt_team_id = gast_team_id)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) == 0)
- keinZugriff();
- $vorschlagendes_team_id = $rows[0]->berechtigt_team_id;
- }
- else if ($bestaetigen == 2) {
- if ($begegnung->unbestaetigtes_ergebnis_id == null && ($begegnung->heim_punkte != 0 || $begegnung->gast_punkte != 0))
- keinZugriff();
-
- $encrypted_pin = $db->escape($jinput->get('pin', '', 'RAW'));
- $pin = decrypt($encrypted_pin, "a9cZ" . $veranstaltungid . "oDS7" . $id . "2eA");
- if (empty($pin))
- keinZugriff();
-
- $query = "SELECT team_id FROM #__sportsmanager_begegnung LEFT JOIN #__sportsmanager_team ON heim_team_id = team_id OR gast_team_id = team_id WHERE begegnung_id = $id AND (team_id = $begegnung->heim_team_id OR team_id = $begegnung->gast_team_id) AND NOT ISNULL(pin) AND pin = '$pin'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- if (count($rows) == 0)
- keinZugriff();
-
- $vorschlagendes_team_id = $rows[0]->team_id;
- }
- else {
- if (!$benutzer_ist_moderator)
- keinZugriff();
- }
-
- if (!$benutzer_ist_moderator && !$modus->heimtausch)
- keinZugriff();
-
- if (!$mannschaften_vertauscht) {
- /*
- $query = "INSERT INTO #__sportsmanager_begegnung_historie (begegnung_id, aktion, zeitpunkt, user_id, team_id, verantwortlich_team_id, kommentar, eingetragen)"
- . "\n VALUES ($id, 9, NULL, '$user_id', " . ($bestaetigen != 0 ? "'$vorschlagendes_team_id'" : "NULL") . ", NULL, NULL, now());";
- $db->setQuery($query);
- if (!$result = $db->execute()) { die($db->stderr(true)); }
- */
-
- $query = "UPDATE #__sportsmanager_begegnung"
- . "\n SET heim_team_id = (@temp_heim_team_id := heim_team_id), heim_team_id = gast_team_id,"
- . "\n gast_team_id = @temp_heim_team_id,"
- . "\n heim_punkte = (@temp_heim_punkte := heim_punkte), heim_punkte = gast_punkte,"
- . "\n gast_punkte = @temp_heim_punkte,"
- . "\n heim_spielpunkte = (@temp_heim_spielpunkte := heim_spielpunkte), heim_spielpunkte = gast_spielpunkte,"
- . "\n gast_spielpunkte = @temp_heim_spielpunkte"
- . "\n WHERE begegnung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UPDATE #__sportsmanager_teamspiel"
- . "\n SET heim_spieler_1_id = (@temp_heim_spieler_1_id := heim_spieler_1_id), heim_spieler_1_id = gast_spieler_1_id,"
- . "\n gast_spieler_1_id = @temp_heim_spieler_1_id,"
- . "\n heim_spieler_2_id = (@temp_heim_spieler_2_id := heim_spieler_2_id), heim_spieler_2_id = gast_spieler_2_id,"
- . "\n gast_spieler_2_id = @temp_heim_spieler_2_id,"
- . "\n teamspiel_heim_punkte = (@temp_teamspiel_heim_punkte := teamspiel_heim_punkte), teamspiel_heim_punkte = teamspiel_gast_punkte,"
- . "\n teamspiel_gast_punkte = @temp_teamspiel_heim_punkte,"
- . "\n teamspiel_heim_spielpunkte = (@temp_teamspiel_heim_spielpunkte := teamspiel_heim_spielpunkte), teamspiel_heim_spielpunkte = teamspiel_gast_spielpunkte,"
- . "\n teamspiel_gast_spielpunkte = @temp_teamspiel_heim_spielpunkte"
- . "\n WHERE begegnung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- redirectSportsManagerURL('&task=' . ($bestaetigen != 0 ? ($bestaetigen == 1 ? 'admin_begegnung_spielplan_edit_bestaetigen' : 'pineingabe') : 'admin_begegnung_spielplan_edit') . '&id=' . $id . '&veranstaltungid=' . $veranstaltungid . ($bestaetigen != 0 ? '_bestaetigen' : '') . '&veranstaltungid=' . $veranstaltungid . '&id=' . $id . '&erneut_oeffnen=1' . (!empty($encrypted_pin) ? ('&epin=' . $encrypted_pin) : "") . ($aus_uebersicht ? '&aus_uebersicht=1' : ''));
-}
-
-function adminBegegnungSpielplanBestaetigen() {
- $app = &JFactory::getApplication();
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- $user_id = isExternalDatabase() ? 0 : (isJson() ? getUserID() : JFactory::getUser()->id);
- $id = $jinput->get('id', 0, 'INT');
- $bestaetigen = $jinput->get('bestaetigen', 0, 'INT');
- $veranstaltungid = $jinput->get('veranstaltungid', 0, 'INT');
- if ($veranstaltungid == 0) die("Missing id!");
- $aus_uebersicht = $jinput->get('aus_uebersicht', 0, 'INT');
-
- // Begegnung ermitteln
- $query = "SELECT #__sportsmanager_begegnung.*, unbestaetigtes_ergebnis_id, zwischenergebnis,"
- . " (SELECT COUNT(*) FROM #__sportsmanager_begegnung_historie WHERE #__sportsmanager_begegnung_historie.begegnung_id = #__sportsmanager_begegnung.begegnung_id) AS verlegen_aktionen"
- . "\n FROM #__sportsmanager_begegnung"
- . "\n LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis ON #__sportsmanager_begegnung.begegnung_id = #__sportsmanager_unbestaetigtes_ergebnis.begegnung_id"
- . "\n WHERE #__sportsmanager_begegnung.begegnung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) {
- abortWithError("Wrong id!");
- }
- $begegnung = $rows[0];
-
- $aktualisieren_ab_datum = !empty($begegnung->zeitpunkt) ? substr($begegnung->zeitpunkt, 0, 10) : null;
-
- if ($bestaetigen == 2) {
- $encrypted_pin = $db->escape($jinput->get('pin', '', 'RAW'));
- $pin = decrypt($encrypted_pin, "a9cZ" . $veranstaltungid . "oDS7" . $id . "2eA");
- if (empty($pin)) {
- keinZugriff();
- }
- if ($begegnung->unbestaetigtes_ergebnis_id == null && ($begegnung->heim_punkte != 0 || $begegnung->gast_punkte != 0)) {
- keinZugriff();
- }
-
- $query = "SELECT t1.begegnung_id, t5.veranstaltung_id, IF(t2.pin = '$pin', heim_team_id, gast_team_id) AS aktion_team_id, IF(t2.pin = '$pin', gast_team_id, heim_team_id) AS anderes_team_id,"
- . "\n IF(t4.vorschlagendes_team_id = IF(t2.pin = '$pin', gast_team_id, heim_team_id), 1, 0) AS berechtigt_fuer_team_akzeptieren"
- . "\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_unbestaetigtes_ergebnis AS t4 ON t1.begegnung_id = t4.begegnung_id"
- . "\n LEFT JOIN #__sportsmanager_veranstaltung AS t5 ON t2.veranstaltung_id = t5.veranstaltung_id"
- . "\n WHERE t5.status > 0 " . kategorieFilter("AND t5.kategorie IN") . " AND ((ISNULL(heim_punkte) AND ISNULL(gast_punkte)) OR zwischenergebnis OR NOT ISNULL(unbestaetigtes_ergebnis_id)) AND ((NOT ISNULL(t2.pin) AND t2.pin = '$pin') OR (NOT ISNULL(t3.pin) AND t3.pin = '$pin'))"
- . "\n ORDER BY t1.zeitpunkt"
- . "\n LIMIT 1";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- if (count($rows) == 0) {
- keinZugriff();
- }
-
- if (!$rows[0]->berechtigt_fuer_team_akzeptieren) {
- keinZugriff();
- }
-
- $aktion_team_id = $rows[0]->aktion_team_id;
- }
- else {
- if ($begegnung->unbestaetigtes_ergebnis_id == null && ($begegnung->heim_punkte != 0 || $begegnung->gast_punkte != 0)) {
- keinZugriff();
- }
-
- $query = "SELECT t1.berechtigt_team_id FROM #__sportsmanager_berechtigt_fuer_team AS t1, #__sportsmanager_begegnung AS t2 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis t3 ON t2.begegnung_id = t3.begegnung_id WHERE NOT t3.zwischenergebnis AND t2.begegnung_id = $id AND t1.berechtigt_user_id = $user_id AND ((t1.berechtigt_team_id = t2.heim_team_id AND t3.vorschlagendes_team_id = t2.gast_team_id) OR (t1.berechtigt_team_id = t2.gast_team_id AND t3.vorschlagendes_team_id = t2.heim_team_id))";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) == 0) {
- keinZugriff();
- }
-
- $aktion_team_id = $rows[0]->berechtigt_team_id;
- }
-
- $query = "DELETE FROM #__sportsmanager_unbestaetigtes_ergebnis WHERE begegnung_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
-
- /*
- // Benachrichtigung schreiben
- $query = "SELECT * FROM #__sportsmanager_einstellungen WHERE name = 'twitter_benutzername' || name = 'twitter_kennwort' ORDER BY name";
- $db->setQuery( $query );
- if (!$result = $db->execute()) { die($db->stderr(true)); }
- $rows = $db->loadObjectList();
- if (count($rows) != 2 || empty($rows[0]->wert) || empty($rows[1]->wert))
- $twitter_benutzername = "";
- else {
- $twitter_benutzername = $rows[0]->wert;
- $twitter_kennwort = $rows[1]->wert;
- }
- */
-
- // Veranstaltung ermitteln
- $query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $veranstaltungid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) {
- abortWithError("Wrong id!");
- }
- $veranstaltung = $rows[0];
-
- $query = "INSERT INTO #__sportsmanager_begegnung_historie (begegnung_id, aktion, zeitpunkt, user_id, team_id, verantwortlich_team_id, kommentar, eingetragen)"
- . "\n VALUES ($id, 7, NULL, " . ($bestaetigen != 2 ? "'$user_id'" : "NULL") . ", '$aktion_team_id', NULL, NULL, now());";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
-
- // Heimteam ermitteln
- $query = "SELECT * FROM #__sportsmanager_team WHERE team_id = $begegnung->heim_team_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) {
- abortWithError("Wrong id!");
- }
- $heim_team = $rows[0];
-
- // Gastteam ermitteln
- $query = "SELECT * FROM #__sportsmanager_team WHERE team_id = $begegnung->gast_team_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) {
- abortWithError("Wrong id!");
- }
- $gast_team = $rows[0];
-
- if ($veranstaltung->status != 0) {
- wannGespieltAktualisieren();
- if ($veranstaltung->elo_wertung != 0) {
- eloAktualisieren($aktualisieren_ab_datum);
- einstufungAktualisieren();
- }
- }
- spielerstatistikAktualisieren(0, $veranstaltungid);
- teamstatistikAktualisieren($veranstaltungid);
-
- $mailfrom = $app->getCfg('mailfrom');
- $fromname = $app->getCfg('fromname');
- $subject = $heim_team->teamname . " vs. " . $gast_team->teamname . ": Ergebnis akzeptiert";
- $body = "Zur Begegnung " . $heim_team->teamname . " gegen " . $gast_team->teamname . " am " . FormatiertesDatum($begegnung->zeitpunkt) . " in der " . $veranstaltung->bezeichnung . " wurde von " . ($aktion_team_id == $heim_team->team_id ? $heim_team->teamname : $gast_team->teamname) . " das Ergebnis akzeptiert.";
-
- $query = "SELECT * FROM #__users AS t1, #__sportsmanager_berechtigt_fuer_team AS t2 WHERE t1.id = t2.berechtigt_user_id AND (t2.berechtigt_team_id = " . $begegnung->heim_team_id . " OR t2.berechtigt_team_id = " . $begegnung->gast_team_id . ")";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- abortWithError($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- foreach ($rows as $row) {
- JFactory::getMailer()->sendMail($mailfrom, $fromname, $row->email, $subject, $body);
- }
-
- /*
- if (!empty($twitter_benutzername)) {
- try {
- $twitter = new Twitter($twitter_benutzername, $twitter_kennwort);
- $status = $twitter->send($veranstaltung->bezeichnung . " " . $heim_team->teamname . " vs. " . $gast_team->teamname . " " . $begegnung->heim_spielpunkte . ":" . $begegnung->gast_spielpunkte . " (" . $begegnung->heim_punkte . ":" . $begegnung->gast_punkte . ")");
- }
- catch(TwitterException $e) {
- }
- }
- */
- if (isJson()) {
-// adminEditBegegnungSpielplan(0);
- begegnungSpielplan(false);
- } else {
- if ($aus_uebersicht) {
- redirectSportsManagerURL('#id' . $id);
- }
- else {
- redirectSportsManagerURL('&task=veranstaltung&veranstaltungid=' . $veranstaltungid . '#id' . $id);
- }
- }
-}
-
-/* Generiert Gruppenspiele zu einer beliebigen geraden Anzahl Teams
- * bei denen jedes Team genau einmal gegen jedes andere Team spielt,
- * die Spiele an Anzahl Teams - 1 Spieltagen ausgetragen werden und
- * jedes Team an jedem Tag genau ein Spiel austrägt
- *
- * Rückgabewert: Dreidimensionales Array mit Spieltag als erstem Index (1, ..., Anzahl Teams - 1),
- * Spiel-Nr. als zweitem Index (1, ..., Anzahl Teams / 2) und als drittem Index 0 für das erste
- * und 1 für das zweite Team, wobei jeweils die Teamnummer enthalten ist (1, ..., Anzahl Teams)
- *
- * (C) Sven Nickel 2006
- */
-function Gruppenspiele($anzahlteams) {
- if ($anzahlteams % 2 == 1) {
- die ("Gruppenspiele(): Eine ungerade Anzahl an Teams ist nicht zulässig!");
- exit;
- }
-
- $b = 1;
- for ($i = 1; $i < $anzahlteams; $i++) {
- for ($j = $i + 1; $j <= $anzahlteams; $j++) {
- $begegnungen[$b++] = array($i, $j);
- }
- }
-
- $rueckschritt = false;
- for ($spieltag = 1; $spieltag < $anzahlteams;) {
- for ($spielnr = 1; $spielnr <= $anzahlteams / 2;) {
- // Nächste noch nicht eingetragene Begegnung ermitteln, in der
- // keine Mannschaft am aktuellen Spieltag bereits spielt
- for ($b = 1; $b <= ($anzahlteams - 1) * $anzahlteams / 2; $b++) {
- if ($rueckschritt) {
- if ($begegnungen[$b][0] != $spiele[$spieltag][$spielnr][0] ||
- $begegnungen[$b][1] != $spiele[$spieltag][$spielnr][1])
- continue;
- $rueckschritt = false;
- continue;
- }
- $nicht_zulaessig = false;
- for ($i = 1; $i <= $spieltag && !$nicht_zulaessig; $i++) {
- for ($j = 1; $j <= ($i != $spieltag ? $anzahlteams / 2 : $spielnr - 1) && !$nicht_zulaessig; $j++) {
- if (($spiele[$i][$j][0] == $begegnungen[$b][0] && $spiele[$i][$j][1] == $begegnungen[$b][1]) ||
- ($spiele[$i][$j][0] == $begegnungen[$b][1] && $spiele[$i][$j][1] == $begegnungen[$b][0])) {
- $nicht_zulaessig = true;
- break;
- }
- if ($spielnr > 1 && $spieltag < $anzahlteams - 1) {
- if (($spiele[$i][$j][0] == $spiele[$spieltag][$spielnr - 1][1] && $spiele[$i][$j][1] == $begegnungen[$b][0]) ||
- ($spiele[$i][$j][0] == $begegnungen[$b][0] && $spiele[$i][$j][1] == $spiele[$spieltag][$spielnr - 1][1])) {
- $nicht_zulaessig = true;
- break;
- }
- if ($spielnr == $anzahlteams / 2) {
- if (($spiele[$i][$j][0] == $begegnungen[$b][1] && $spiele[$i][$j][1] == $spiele[$spieltag][1][0]) ||
- ($spiele[$i][$j][0] == $spiele[$spieltag][1][0] && $spiele[$i][$j][1] == $begegnungen[$b][1])) {
- $nicht_zulaessig = true;
- break;
- }
- }
- }
- if ($i == $spieltag)
- if ($begegnungen[$b][0] == $spiele[$i][$j][0] ||
- $begegnungen[$b][0] == $spiele[$i][$j][1] ||
- $begegnungen[$b][1] == $spiele[$i][$j][0] ||
- $begegnungen[$b][1] == $spiele[$i][$j][1]) {
- $nicht_zulaessig = true;
- break;
- }
- }
- }
- if (!$nicht_zulaessig)
- break;
- }
- if ($b <= ($anzahlteams - 1) * $anzahlteams / 2) { // Begegnung gefunden
- $spiele[$spieltag][$spielnr][0] = $begegnungen[$b][0];
- $spiele[$spieltag][$spielnr][1] = $begegnungen[$b][1];
- if ($spieltag < ($anzahlteams - 1)) {
- $spiele[$spieltag + 1][$spielnr == 1 ? $anzahlteams / 2 : $spielnr - 1][1] = $begegnungen[$b][0];
- $spiele[$spieltag + 1][$spielnr][0] = $begegnungen[$b][1];
- }
- $spielnr++;
- }
- else { // Keine weitere Begegnung gefunden
- // Rückschritt durchführen
- if ($spielnr > 1) {
- $spielnr--;
- }
- else {
- $spielnr = $anzahlteams / 2;
- $spieltag -= 2;
- }
- $rueckschritt = true;
- }
- }
- $spieltag += 2;
- }
-
- return $spiele;
-}
-
-function adminBegegnungenGenerierenForm() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->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";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $veranstaltung = $rows[0];
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_team"
- . "\n WHERE veranstaltung_id = $veranstaltungid"
- . "\n ORDER BY teamname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminBegegnungenGenerieren($veranstaltung, $rows);
-}
-
-function adminBegegnungenGenerieren() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- $veranstaltungid = $jinput->get('veranstaltungid', 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);
-
- return;
- }
-
- $anzahlteams = $jinput->get('anzahlteams', 0, 'INT');
- if ($anzahlteams == 0) die("Wrong number of teams!");
-
- $query = "SELECT t1.*"
- . "\n FROM #__sportsmanager_team AS t1"
- . "\n WHERE veranstaltung_id = $veranstaltungid"
- . "\n ORDER BY t1.teamname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
-
- for ($i = 1; $i <= $anzahlteams; $i++) {
- $teamids[$i] = $jinput->get('team_id_' . $i, 0, 'INT');
- if ($teamids[$i] == 0) die("Wrong id!");
- }
-
- $spieltage = $anzahlteams % 2 != 0 ? $anzahlteams : $anzahlteams - 1;
- $spieltag_basis = array();
- for ($i = 1; $i <= ($spieltage * 2); $i++) {
- $jahr = $jinput->get('datum_jahr_' . $i, 0, 'INT');
- $kw = $jinput->get('datum_kw_' . $i, 0, 'INT');
- if ($jahr == 0 || $kw == 0) die("Wrong date!");
- $spieltag_basis[$i] = array();
- $spieltag_basis[$i]["jahr"] = $jahr;
- $spieltag_basis[$i]["kw"] = $kw;
- }
-
- $spiele = Gruppenspiele($anzahlteams % 2 != 0 ? $anzahlteams + 1 : $anzahlteams);
-
- for ($spieltag = 1; $spieltag <= $spieltage; $spieltag++) {
- for ($spielnr = 1; $spielnr <= ($anzahlteams % 2 != 0 ? $anzahlteams + 1 : $anzahlteams) / 2; $spielnr++) {
- 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 = null;
- foreach ($teams as $t) {
- if ($t->team_id == $heim_team_id) {
- $heim_team = $t;
- break;
- }
- }
- if ($heim_team == null) die("Team id not found!");
-
- $gast_team = null;
- foreach ($teams as $t) {
- if ($t->team_id == $gast_team_id) {
- $gast_team = $t;
- break;
- }
- }
- if ($gast_team == null) die("Team id not found!");
-
- if ($heim_team->heimspiel_wochentag == 0)
- $zeitpunkt = null;
- else {
- $ts = getdate(mondaykw($spieltag_basis[$spieltag]["kw"], $spieltag_basis[$spieltag]["jahr"], $heim_team->heimspiel_wochentag - 1));
- $zeitpunkt = sprintf("%04d-%02d-%02d %02d:%02d", $ts["year"], $ts["mon"], $ts["mday"], floor($heim_team->heimspiel_uhrzeit / 100), $heim_team->heimspiel_uhrzeit % 100);
- }
-
- $query = "INSERT INTO #__sportsmanager_begegnung (zeitpunkt, spieltag, heim_team_id, gast_team_id)"
- . "\n VALUES (" . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . ", '$spieltag', '$heim_team_id', '$gast_team_id');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $weiterer_spieltag = $spieltag + $spieltage;
- if ($gast_team->heimspiel_wochentag == 0)
- $zeitpunkt = null;
- else {
- $ts = getdate(mondaykw($spieltag_basis[$weiterer_spieltag]["kw"], $spieltag_basis[$weiterer_spieltag]["jahr"], $gast_team->heimspiel_wochentag - 1));
- $zeitpunkt = sprintf("%04d-%02d-%02d %02d:%02d", $ts["year"], $ts["mon"], $ts["mday"], floor($gast_team->heimspiel_uhrzeit / 100), $gast_team->heimspiel_uhrzeit % 100);
- }
-
- $query = "INSERT INTO #__sportsmanager_begegnung (zeitpunkt, spieltag, heim_team_id, gast_team_id)"
- . "\n VALUES (" . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . ", '$weiterer_spieltag', '$gast_team_id', '$heim_team_id');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
-
- redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungid);
-}
-
-function adminBegegnungenRundeErzeugenForm() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->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";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $veranstaltung = $rows[0];
-
- $query = "SELECT #__sportsmanager_begegnung.*"
- . "\n FROM #__sportsmanager_veranstaltung"
- . "\n INNER JOIN #__sportsmanager_team USING (veranstaltung_id)"
- . "\n INNER JOIN #__sportsmanager_begegnung ON team_id = heim_team_id"
- . "\n WHERE veranstaltung_id = $veranstaltungid"
- . "\n ORDER BY zeitpunkt DESC LIMIT 1";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- $row = count($rows) < 1 ? null : $row = $rows[0]; // Falls keine Begegnung als Vorlage verfügbar
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_team"
- . "\n WHERE veranstaltung_id = $veranstaltungid"
- . "\n ORDER BY teamname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_spielort"
- . "\n ORDER BY ortsname, name, ortsteil";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spielorte = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminBegegnungenRundeErzeugen($veranstaltung, $rows, $row, $spielorte);
-}
-
-function adminBegegnungenRundeErzeugen() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- $veranstaltungid = $jinput->get('veranstaltungid', 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);
-
- return;
- }
-
- $anzahlteams = $jinput->get('anzahlteams', 0, 'INT');
- if ($anzahlteams == 0) die("Wrong number of teams!");
- if ($jinput->get('datum_tag', 0, 'INT') >= 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'));
- }
- $rundentyp = $jinput->get('rundentyp', -1, 'INT');
- $runde = max(min(abs($jinput->get('runde', 1, 'INT')), $rundentyp == -2 ? 99 : 9999), 1);
- $platzierung_ende = max(min(abs($jinput->get('platzierung_ende', 0, 'INT')), $runde + 99), 1);
-
- if ($rundentyp >= 10000)
- $runde = $rundentyp;
- else if ($rundentyp == -2)
- $runde = 20000 + ((99 - abs($platzierung_ende - $runde)) * 100) + 99 - min($runde, $platzierung_ende);
- else if ($rundentyp == 0)
- $runde = 0;
-
- $query = "SELECT t1.*"
- . "\n FROM #__sportsmanager_team AS t1"
- . "\n WHERE veranstaltung_id = $veranstaltungid"
- . "\n ORDER BY t1.teamname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $teams = $db->loadObjectList();
-
- for ($i = 1; $i <= $anzahlteams; $i++)
- $teamids[$i] = $jinput->get('team_id_' . $i, 0, 'INT');
-
- $spielort_ids = array();
- for ($i = 1; $i <= $anzahlteams; $i += 2)
- $spielort_ids[$i] = $jinput->get('spielort_id_' . $i, 0, 'INT');
-
- for ($teamnr = 1; $teamnr < $anzahlteams; $teamnr += 2) {
- $heim_team_id = $teamids[$teamnr];
- $gast_team_id = $teamids[$teamnr + 1];
-
- if ($heim_team_id == 0 || $gast_team_id == 0)
- continue;
-
- $heim_team = null;
- foreach ($teams as $t) {
- if ($t->team_id == $heim_team_id) {
- $heim_team = $t;
- break;
- }
- }
- if ($heim_team == null) die("Team id not found!");
-
- $gast_team = null;
- foreach ($teams as $t) {
- if ($t->team_id == $gast_team_id) {
- $gast_team = $t;
- break;
- }
- }
- if ($gast_team == null) die("Team id not found!");
-
- if ($datum_kw != null) {
- if ($heim_team->heimspiel_wochentag == 0)
- $zeitpunkt = null;
- else {
- $ts = getdate(mondaykw($datum_kw, $datum_jahr, $heim_team->heimspiel_wochentag - 1));
- $zeitpunkt = sprintf("%04d-%02d-%02d %02d:%02d", $ts["year"], $ts["mon"], $ts["mday"], floor($heim_team->heimspiel_uhrzeit / 100), $heim_team->heimspiel_uhrzeit % 100);
- }
- }
-
- $query = "INSERT INTO #__sportsmanager_begegnung (zeitpunkt, spieltag, heim_team_id, gast_team_id, spielort_id)"
- . "\n VALUES (" . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . ", " . ($runde != null ? "'$runde'" : "NULL") . ", '$heim_team_id', '$gast_team_id', " . ($spielort_ids[$teamnr] != 0 ? "'$spielort_ids[$teamnr]'" : "NULL") . ");";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungid);
-}
-
-function adminBegegnungenAlleEntfernen() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- $veranstaltungid = $jinput->get('veranstaltungid', 0, 'INT');
- if ($veranstaltungid == 0) die("Missing id!");
-
- if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungid))
- keinZugriff();
-
- $query = "LOCK TABLES #__sportsmanager_begegnung WRITE, #__sportsmanager_begegnung_historie WRITE, #__sportsmanager_unbestaetigtes_ergebnis WRITE, #__sportsmanager_teamspiel WRITE, #__sportsmanager_veranstaltung READ, #__sportsmanager_team READ;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- // Veranstaltung ermitteln
- $query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $veranstaltungid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $veranstaltung = $rows[0];
-
- $query = "SELECT MIN(DATE(zeitpunkt))"
- . "\n FROM #__sportsmanager_begegnung"
- . "\n LEFT JOIN #__sportsmanager_team ON heim_team_id = team_id"
- . "\n WHERE veranstaltung_id = $veranstaltungid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $aktualisieren_ab_datum = $db->loadResult();
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_begegnung"
- . "\n LEFT JOIN #__sportsmanager_team ON heim_team_id = team_id"
- . "\n WHERE veranstaltung_id = $veranstaltungid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- foreach ($rows as $row) {
- $id = $row->begegnung_id;
-
- $query = "DELETE FROM #__sportsmanager_begegnung_historie WHERE begegnung_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_unbestaetigtes_ergebnis WHERE begegnung_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_teamspiel WHERE begegnung_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_begegnung WHERE begegnung_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($veranstaltung->status != 0 && $veranstaltung->elo_wertung != 0) {
- wannGespieltAktualisieren();
- eloAktualisieren($aktualisieren_ab_datum);
- einstufungAktualisieren();
- }
-
- redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungid);
-}
-
-function adminEditTurnier() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- if ($id == null)
- $row = null;
- else {
- $query = "SELECT * FROM #__sportsmanager_turnier WHERE turnier_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $row = $rows[0];
- }
- $vorlage = $jinput->get('vorlage', 0, 'INT');
-
- $query = "SELECT * FROM #__sportsmanager_veranstalter ORDER BY veranstalterbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstalter = $db->loadObjectList();
-
- $query = "SELECT * FROM #__sportsmanager_saison ORDER BY saisonbezeichnung DESC";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $saisons = $db->loadObjectList();
-
- if (empty($id)) {
- $berechtigt_fuer_turnier = array();
- }
- else {
- $query = "SELECT #__sportsmanager_berechtigt_fuer_turnier.* FROM #__sportsmanager_berechtigt_fuer_turnier, #__users WHERE berechtigt_user_id = id AND berechtigt_turnier_id = $id ORDER BY username, name";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $berechtigt_fuer_turnier = $db->loadObjectList();
- }
-
- $query = "SELECT * FROM #__users ORDER BY name, username";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $users = $db->loadObjectList();
-
- $query = "SELECT nummer, bezeichnung FROM #__sportsmanager_kategorie WHERE typ = 3 ORDER BY nummer";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows_kategorien = $db->loadObjectList();
-
- $kategorien = array();
- foreach ($rows_kategorien as $kategorie)
- $kategorien[$kategorie->nummer] = $kategorie->bezeichnung;
-
- HTML_sportsmanager_admin::adminEditTurnier($row, $veranstalter, $saisons, $vorlage, $users, $berechtigt_fuer_turnier, $kategorien);
-}
-
-function adminSaveTurnier() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern"))
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_uebersicht');
-
- return;
- }
-
- $id = $jinput->get('id', 0, 'INT');
- $veranstalterid = $jinput->get('veranstalterid', 0, 'INT');
- $turnierbezeichnung = $db->escape(trim($jinput->get('turnierbezeichnung', '', 'RAW')));
- $saison_id = $jinput->get('saison_id', 0, 'INT');
- $turnierort = $db->escape(trim($jinput->get('turnierort', '', 'RAW')));
- $erster_tag = normalisiertesDatum(sprintf("%04d-%02d-%02d", $jinput->get('erster_tag_jahr', 2000, 'INT'), $jinput->get('erster_tag_monat', 1, 'INT'), $jinput->get('erster_tag_tag', 1, 'INT')));
- $mehrtaegig = $jinput->get('mehrtaegig', 0, 'INT');
- if (!$mehrtaegig)
- $letzter_tag = $erster_tag;
- else
- $letzter_tag = normalisiertesDatum(sprintf("%04d-%02d-%02d", $jinput->get('letzter_tag_jahr', 2000, 'INT'), $jinput->get('letzter_tag_monat', 1, 'INT'), $jinput->get('letzter_tag_tag', 1, 'INT')));
- $kategorie = $jinput->get('kategorie', 0, 'INT');
- $vorlage = $jinput->get('vorlage', 0, 'INT');
- $berechtigt_fuer_turnier_user_ids = array();
- for ($i = 1; $i <= 6; $i++) {
- $berechtigt_user_id = $jinput->get('berechtigt_fuer_turnier_user_' . $i . '_id', 0, 'INT');
- if (!empty($berechtigt_user_id) && !in_array($berechtigt_user_id, $berechtigt_fuer_turnier_user_ids))
- array_push($berechtigt_fuer_turnier_user_ids, $berechtigt_user_id);
- }
-
- $query = "LOCK TABLES #__sportsmanager_turnierspiel WRITE, #__sportsmanager_turnierdisziplin WRITE, #__sportsmanager_turniermeldung_spieler WRITE, #__sportsmanager_turniermeldung_spieler_name WRITE, #__sportsmanager_turniermeldung WRITE, #__sportsmanager_turnier WRITE, #__sportsmanager_rangliste_turnierdisziplin WRITE, #__sportsmanager_turnier_rundenstufe WRITE, #__sportsmanager_berechtigt_fuer_turnier WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($vorlage) {
- $vorlage_id = $id;
- $id = 0;
- $query = "SELECT erster_tag FROM #__sportsmanager_turnier WHERE turnier_id = $vorlage_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $vorlage_erster_tag = $rows[0]->erster_tag;
- }
-
- if ($id == 0) {
- $query = "INSERT INTO #__sportsmanager_turnier (veranstalter_id, turnierbezeichnung, saison_id, turnierort, erster_tag" . ($letzter_tag != null ? ", letzter_tag" : "") . ", kategorie) VALUES ('$veranstalterid', '$turnierbezeichnung', '$saison_id', '$turnierort', '$erster_tag'" . ($letzter_tag != null ? ", '$letzter_tag'" : "") . ", '$kategorie');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
- }
- else {
- $query = "UPDATE #__sportsmanager_turnier"
- . "\n SET veranstalter_id = '$veranstalterid',"
- . "\n turnierbezeichnung = '$turnierbezeichnung',"
- . "\n saison_id = '$saison_id',"
- . "\n turnierort = '$turnierort',"
- . "\n erster_tag = '$erster_tag',"
- . "\n letzter_tag = " . ($letzter_tag != null ? "'$letzter_tag'" : "NULL") . ","
- . "\n kategorie = '$kategorie'"
- . "\n WHERE turnier_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $query = "DELETE FROM #__sportsmanager_berechtigt_fuer_turnier WHERE berechtigt_turnier_id = $id";
- if (!empty($berechtigt_fuer_turnier_user_ids))
- $query .= " AND berechtigt_user_id NOT IN (" . implode($berechtigt_fuer_turnier_user_ids, ", ") . ")";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT * FROM #__sportsmanager_berechtigt_fuer_turnier WHERE berechtigt_turnier_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- foreach ($rows as $row) {
- $index = array_search($row->berechtigt_user_id, $berechtigt_fuer_turnier_user_ids);
- if ($index !== false) {
- unset($berechtigt_fuer_turnier_user_ids[$index]);
- }
- }
-
- foreach ($berechtigt_fuer_turnier_user_ids as $berechtigt_user_id) {
- $query = "INSERT INTO #__sportsmanager_berechtigt_fuer_turnier (berechtigt_user_id, berechtigt_turnier_id) VALUES ('$berechtigt_user_id', '$id');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- if ($vorlage) {
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_turnierdisziplin"
- . "\n WHERE turnier_id = $vorlage_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $disziplinen = $db->loadObjectList();
-
- foreach ($disziplinen as $disziplin) {
- $ts = getdate(strtotime($erster_tag) - strtotime($vorlage_erster_tag) + strtotime($disziplin->beginn));
- $neuer_beginn = $disziplin->beginn == null ? null : sprintf("%04d-%02d-%02d %02d:%02d", $ts["year"], $ts["mon"], $ts["mday"], $ts["hours"], $ts["minutes"]);
-
- $query = "INSERT INTO #__sportsmanager_turnierdisziplin (turnier_id, disziplin, kuerzel, beginn, typ, elo_wertung, voranmeldung, voranmeldungen_rangliste_id, voranmeldungen_reihenfolge, reihenfolge, status)"
- . "\n VALUES ('$id', '" . $db->escape($disziplin->disziplin) . "', '" . $db->escape($disziplin->kuerzel) . "', " . ($neuer_beginn == null ? "NULL" : "'$neuer_beginn'") . ", '$disziplin->typ', '$disziplin->elo_wertung', " . ($disziplin->voranmeldung == null ? "NULL" : ("'" . $disziplin->voranmeldung . "'")) . ", " . ($disziplin->voranmeldungen_rangliste_id == 0 ? "NULL" : ("'" . $disziplin->voranmeldungen_rangliste_id . "'")) . ", '$disziplin->voranmeldungen_reihenfolge', '$disziplin->reihenfolge', '$disziplin->status');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $disziplin_id = $db->insertid();
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_rangliste_turnierdisziplin"
- . "\n WHERE turnierdisziplin_id = $disziplin->turnierdisziplin_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $ranglisten = $db->loadObjectList();
-
- foreach ($ranglisten as $rangliste) {
- $query = "INSERT INTO #__sportsmanager_rangliste_turnierdisziplin (rangliste_id, turnierdisziplin_id, system_id, wertung, doppel_teilwertung) VALUES ('$rangliste->rangliste_id', '$disziplin_id', " . ($rangliste->system_id != null ? "'$rangliste->system_id'" : "NULL") . ", '" . $db->escape($rangliste->wertung) . "', '" . $db->escape($rangliste->doppel_teilwertung) . "');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_uebersicht');
-}
-
-function adminRemoveTurnier() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_turnierspiel WRITE, #__sportsmanager_turnierdisziplin WRITE, #__sportsmanager_turniermeldung_spieler WRITE, #__sportsmanager_turniermeldung_spieler_name WRITE, #__sportsmanager_turniermeldung WRITE, #__sportsmanager_turnier WRITE, #__sportsmanager_rangliste_turnierdisziplin WRITE, #__sportsmanager_turnier_rundenstufe WRITE, #__sportsmanager_berechtigt_fuer_turnier WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_turnierdisziplin WHERE turnier_id = $id AND elo_wertung > 0), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $elo_aktualisieren = $db->loadResult();
-
- $query = "SELECT MIN(DATE(beginn))"
- . "\n FROM #__sportsmanager_turnierdisziplin"
- . "\n WHERE turnier_id = $id AND elo_wertung > 0";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $aktualisieren_ab_datum = $db->loadResult();
-
- $query = "DELETE #__sportsmanager_turnierspiel FROM #__sportsmanager_turnierspiel, #__sportsmanager_turnierdisziplin WHERE #__sportsmanager_turnierspiel.turnierdisziplin_id = #__sportsmanager_turnierdisziplin.turnierdisziplin_id AND turnier_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE #__sportsmanager_turniermeldung_spieler_name FROM #__sportsmanager_turniermeldung_spieler_name, #__sportsmanager_turniermeldung_spieler, #__sportsmanager_turniermeldung, #__sportsmanager_turnierdisziplin WHERE #__sportsmanager_turniermeldung_spieler_name.turniermeldung_spieler_id = #__sportsmanager_turniermeldung_spieler.turniermeldung_spieler_id AND #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id AND #__sportsmanager_turniermeldung.turnierdisziplin_id = #__sportsmanager_turnierdisziplin.turnierdisziplin_id AND turnier_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE #__sportsmanager_turniermeldung_spieler FROM #__sportsmanager_turniermeldung_spieler, #__sportsmanager_turniermeldung, #__sportsmanager_turnierdisziplin WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id AND #__sportsmanager_turniermeldung.turnierdisziplin_id = #__sportsmanager_turnierdisziplin.turnierdisziplin_id AND turnier_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE #__sportsmanager_turniermeldung FROM #__sportsmanager_turniermeldung, #__sportsmanager_turnierdisziplin WHERE #__sportsmanager_turniermeldung.turnierdisziplin_id = #__sportsmanager_turnierdisziplin.turnierdisziplin_id AND turnier_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE #__sportsmanager_rangliste_turnierdisziplin FROM #__sportsmanager_rangliste_turnierdisziplin, #__sportsmanager_turnierdisziplin WHERE #__sportsmanager_rangliste_turnierdisziplin.turnierdisziplin_id = #__sportsmanager_turnierdisziplin.turnierdisziplin_id AND turnier_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE #__sportsmanager_turnier_rundenstufe FROM #__sportsmanager_turnier_rundenstufe, #__sportsmanager_turnierdisziplin WHERE #__sportsmanager_turnier_rundenstufe.turnierdisziplin_id = #__sportsmanager_turnierdisziplin.turnierdisziplin_id AND turnier_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_turnierdisziplin WHERE turnier_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_berechtigt_fuer_turnier WHERE berechtigt_turnier_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_turnier WHERE turnier_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- wannGespieltAktualisieren();
- if ($elo_aktualisieren)
- eloAktualisieren($aktualisieren_ab_datum);
- ranglisteAktualisieren();
- einstufungAktualisieren();
-
- redirectSportsManagerURL('&task=admin_uebersicht');
-}
-
-function adminTurnierdisziplinen() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- $turnierid = $jinput->get('turnierid', 0, 'INT');
- if ($turnierid == 0) die("Missing id!");
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator($turnierid))
- keinZugriff(true);
-
- $beschraenkter_zugriff_turniere = benutzerZugriff("turniere_aendern") ? 0 : 1;
-
- $query = "SELECT * FROM #__sportsmanager_turnier WHERE turnier_id = $turnierid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $turnier = $rows[0];
-
- $query = "SELECT t1.*,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_turniermeldung AS t2 WHERE t1.turnierdisziplin_id = t2.turnierdisziplin_id AND rundenstufe = 20) AS voranmeldungen,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_turniermeldung AS t2 WHERE t1.turnierdisziplin_id = t2.turnierdisziplin_id AND rundenstufe = 0) AS meldungen,"
- . "\n (SELECT COUNT(*) FROM #__sportsmanager_turnierspiel AS t2 WHERE t1.turnierdisziplin_id = t2.turnierdisziplin_id) AS spiele"
- . "\n FROM #__sportsmanager_turnierdisziplin AS t1"
- . "\n WHERE turnier_id = $turnierid"
- . "\n ORDER BY reihenfolge, disziplin, beginn";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminTurnierdisziplinen($turnier, $rows, $beschraenkter_zugriff_turniere);
-}
-
-function adminEditTurnierdisziplin() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- $turnierid = $jinput->get('turnierid', 0, 'INT');
- if ($turnierid == 0) die("Missing id!");
-
- if ($id == null)
- $row = null;
- else {
- $query = "SELECT * FROM #__sportsmanager_turnierdisziplin WHERE turnierdisziplin_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $row = $rows[0];
- }
-
- $query = "SELECT * FROM #__sportsmanager_turnier WHERE turnier_id = $turnierid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $turnier = $rows[0];
-
- // Ranglisten ermitteln
- if ($id == 0) {
- $query = "SELECT #__sportsmanager_rangliste.rangliste_id, bezeichnung, saisonbezeichnung"
- . "\n FROM #__sportsmanager_rangliste"
- . "\n INNER JOIN #__sportsmanager_saison USING (saison_id)"
- . "\n ORDER BY saisonbezeichnung DESC, reihenfolge, bezeichnung, kategorie";
- }
- else {
- $query = "SELECT DISTINCT #__sportsmanager_rangliste.rangliste_id, turnierdisziplin_id, ranglisten.system_id, wertung, doppel_teilwertung, bezeichnung, saisonbezeichnung"
- . "\n FROM #__sportsmanager_rangliste"
- . "\n INNER JOIN #__sportsmanager_saison USING (saison_id)"
- . "\n LEFT JOIN (SELECT rangliste_id, turnierdisziplin_id, system_id, wertung, doppel_teilwertung FROM #__sportsmanager_rangliste_turnierdisziplin WHERE turnierdisziplin_id = $id) AS ranglisten USING (rangliste_id)"
- . "\n ORDER BY saisonbezeichnung DESC, reihenfolge, bezeichnung, kategorie";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $ranglisten = $db->loadObjectList();
-
- if ($id == 0) {
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_rangliste_system"
- . "\n WHERE status != 0"
- . "\n ORDER BY systembezeichnung";
- }
- else {
- $query = "SELECT DISTINCT rangliste_system_id, #__sportsmanager_rangliste_system.*"
- . "\n FROM #__sportsmanager_rangliste_system"
- . "\n LEFT JOIN #__sportsmanager_rangliste_turnierdisziplin ON turnierdisziplin_id = $id AND system_id = rangliste_system_id"
- . "\n WHERE status != 0 OR NOT ISNULL(turnierdisziplin_id)"
- . "\n ORDER BY systembezeichnung";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $systeme = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminEditTurnierdisziplin($turnier, $row, $ranglisten, $systeme);
-}
-
-function adminSaveTurnierdisziplin() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern"))
- keinZugriff();
-
- $id = $jinput->get('id', 0, 'INT');
- $turnierid = $jinput->get('turnierid', 0, 'INT');
- if ($turnierid == 0) die("Missing id!");
- $disziplin = $db->escape(trim($jinput->get('disziplin', '', 'RAW')));
- $kuerzel = $db->escape(trim($jinput->get('kuerzel', '', 'RAW')));
- $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')));
- $beginn = $datum == null || $uhrzeit == null ? null : ($datum . " " . $uhrzeit);
- $reihenfolge = $jinput->get('reihenfolge', 0, 'INT');
- $aktualisieren_ab_datum = $datum;
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_turnierdisziplinen&turnierid=' . $turnierid);
-
- return;
- }
-
- $typ = $jinput->get('typ', 0, 'INT');
- $elo_wertung = $jinput->get('elo_wertung', 0, 'INT');
- $voranmeldung_datum = normalisiertesDatum($jinput->get('voranmeldung_datum_jahr', 0, 'INT') == 0 ? null : sprintf("%04d-%02d-%02d", $jinput->get('voranmeldung_datum_jahr', 0, 'INT'), $jinput->get('voranmeldung_datum_monat', 0, 'INT'), $jinput->get('voranmeldung_datum_tag', 0, 'INT')));
- $voranmeldung_uhrzeit = normalisierteUhrzeit(sprintf(" %02d-%02d-00", $jinput->get('voranmeldung_uhrzeit_stunden', 0, 'INT'), $jinput->get('voranmeldung_uhrzeit_minuten', 0, 'INT')));
- $voranmeldung = $voranmeldung_datum == null || $voranmeldung_uhrzeit == null ? null : ($voranmeldung_datum . " " . $voranmeldung_uhrzeit);
- $status = $jinput->get('status', 0, 'INT');
- $voranmeldungen_rangliste_id = $jinput->get('voranmeldungen_rangliste_id', 0, 'INT');
- $voranmeldungen_reihenfolge = $jinput->get('voranmeldungen_reihenfolge', 0, 'INT');
-
- $i = 0;
- $rangliste_id = $jinput->get('rangliste_id_' . $i, 0, 'INT');
- $rangliste_system_id = $jinput->get('rangliste_system_id_' . $i, 0, 'INT');
- $rangliste_wertung = $jinput->get('rangliste_wertung_' . $i, 0, 'RAW');
- $rangliste_doppel_teilwertung = $jinput->get('doppel_teilwertung_' . $i, 0, 'RAW');
- $ranglisten_beruecksichtigt = array();
- $ranglisten_beruecksichtigt_system_id = array();
- $ranglisten_beruecksichtigt_wertung = array();
- $ranglisten_beruecksichtigt_doppel_teilwertung = array();
- while ($rangliste_id != 0 && !in_array($rangliste_id, $ranglisten_beruecksichtigt)) {
- array_push($ranglisten_beruecksichtigt, $rangliste_id);
- array_push($ranglisten_beruecksichtigt_system_id, $rangliste_system_id);
- array_push($ranglisten_beruecksichtigt_wertung, $rangliste_wertung);
- array_push($ranglisten_beruecksichtigt_doppel_teilwertung, $rangliste_doppel_teilwertung);
- $i++;
- $rangliste_id = $jinput->get('rangliste_id_' . $i, 0, 'INT');
- $rangliste_system_id = $jinput->get('rangliste_system_id_' . $i, 0, 'INT');
- $rangliste_wertung = $jinput->get('rangliste_wertung_' . $i, 0, 'RAW');
- $rangliste_doppel_teilwertung = $jinput->get('doppel_teilwertung_' . $i, 0, 'RAW');
- }
-
- $query = "LOCK TABLES #__sportsmanager_turnierspiel WRITE, #__sportsmanager_turniermeldung_spieler WRITE, #__sportsmanager_turniermeldung_spieler_name WRITE, #__sportsmanager_turniermeldung WRITE, #__sportsmanager_turnierdisziplin WRITE, #__sportsmanager_rangliste_turnierdisziplin WRITE, #__sportsmanager_rangliste READ;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($id == 0) {
- $aktualisieren = false;
- $query = "INSERT INTO #__sportsmanager_turnierdisziplin (turnier_id, disziplin, kuerzel, beginn, typ, elo_wertung, voranmeldung, voranmeldungen_rangliste_id, voranmeldungen_reihenfolge, reihenfolge, status)"
- . "\n VALUES ('$turnierid', '$disziplin', '$kuerzel', '$beginn', '$typ', '$elo_wertung', " . ($voranmeldung == null ? "NULL" : ("'" . $voranmeldung . "'")) . ", " . ($voranmeldungen_rangliste_id == 0 ? "NULL" : ("'" . $voranmeldungen_rangliste_id . "'")) . ", '$voranmeldungen_reihenfolge', '$reihenfolge', '$status');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
- }
- else {
- $aktualisieren = true;
- $query = "SELECT * FROM #__sportsmanager_turnierdisziplin WHERE turnierdisziplin_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $row = $rows[0];
-
- $elo_aktualisieren = $row->elo_wertung || $elo_wertung;
-
- if ($row->typ != $typ) {
- $query = "DELETE FROM #__sportsmanager_turnierspiel WHERE turnierdisziplin_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE #__sportsmanager_turniermeldung_spieler_name FROM #__sportsmanager_turniermeldung_spieler_name, #__sportsmanager_turniermeldung_spieler, #__sportsmanager_turniermeldung WHERE #__sportsmanager_turniermeldung_spieler_name.turniermeldung_spieler_id = #__sportsmanager_turniermeldung_spieler.turniermeldung_spieler_id AND #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id AND turnierdisziplin_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE #__sportsmanager_turniermeldung_spieler FROM #__sportsmanager_turniermeldung_spieler, #__sportsmanager_turniermeldung WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id AND turnierdisziplin_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_turniermeldung WHERE turnierdisziplin_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $query = "UPDATE #__sportsmanager_turnierdisziplin"
- . "\n SET turnier_id = '$turnierid',"
- . "\n disziplin = '$disziplin',"
- . "\n kuerzel = '$kuerzel',"
- . "\n beginn = " . ($beginn == null ? "NULL" : ("'" . $beginn . "'")) . ","
- . "\n typ = '$typ',"
- . "\n elo_wertung = '$elo_wertung',"
- . "\n voranmeldung = " . ($voranmeldung == null ? "NULL" : ("'" . $voranmeldung . "'")) . ","
- . "\n voranmeldungen_rangliste_id = " . ($voranmeldungen_rangliste_id == 0 ? "NULL" : ("'" . $voranmeldungen_rangliste_id . "'")) . ","
- . "\n voranmeldungen_reihenfolge = '$voranmeldungen_reihenfolge',"
- . "\n reihenfolge = '$reihenfolge',"
- . "\n status = '$status'"
- . "\n WHERE turnierdisziplin_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- // Berücksichtige Ranglisten prüfen und ggf. aktualisieren
- $query = "SELECT rangliste_id, system_id, wertung, doppel_teilwertung"
- . "\n FROM #__sportsmanager_rangliste_turnierdisziplin"
- . "\n WHERE turnierdisziplin_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $bestehende_ranglisten_beruecksichtigt = $db->loadObjectList();
-
- foreach ($bestehende_ranglisten_beruecksichtigt as $bestehende_rangliste_beruecksichtigt) {
- $ist_beruecksichtigt = false;
- foreach ($ranglisten_beruecksichtigt as $rangliste_id) {
- if ($bestehende_rangliste_beruecksichtigt->rangliste_id == $rangliste_id) {
- $ist_beruecksichtigt = true;
- break;
- }
- }
- if (!$ist_beruecksichtigt) {
- $query = "DELETE FROM #__sportsmanager_rangliste_turnierdisziplin WHERE rangliste_id = $bestehende_rangliste_beruecksichtigt->rangliste_id AND turnierdisziplin_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
-
- foreach ($ranglisten_beruecksichtigt as $index => $rangliste_id) {
- $ist_beruecksichtigt = false;
- foreach ($bestehende_ranglisten_beruecksichtigt as $bestehende_rangliste_beruecksichtigt) {
- if ($bestehende_rangliste_beruecksichtigt->rangliste_id == $rangliste_id) {
- $ist_beruecksichtigt = true;
- $bestehende_rangliste_system_id = $bestehende_rangliste_beruecksichtigt->system_id;
- $bestehende_rangliste_wertung = $bestehende_rangliste_beruecksichtigt->wertung;
- $bestehende_rangliste_doppel_teilwertung = $bestehende_rangliste_beruecksichtigt->doppel_teilwertung;
- break;
- }
- }
- $system_id = $ranglisten_beruecksichtigt_system_id[$index];
- $wertung = $ranglisten_beruecksichtigt_wertung[$index];
- $doppel_teilwertung = $ranglisten_beruecksichtigt_doppel_teilwertung[$index];
- if (!$ist_beruecksichtigt) {
- $query = "SELECT COUNT(*)"
- . "\n FROM #__sportsmanager_rangliste"
- . "\n WHERE rangliste_id = $rangliste_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
-
- if ($n > 0) {
- $query = "INSERT INTO #__sportsmanager_rangliste_turnierdisziplin (rangliste_id, turnierdisziplin_id, system_id, wertung, doppel_teilwertung) VALUES ('$rangliste_id', '$id', " . ($system_id != 0 ? "'$system_id'" : "NULL") . ", '" . $db->escape($wertung) . "', '" . $db->escape($doppel_teilwertung) . "');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- else if ($system_id != $bestehende_rangliste_system_id || $wertung != $bestehende_rangliste_wertung || $doppel_teilwertung != $bestehende_rangliste_doppel_teilwertung) {
- $query = "UPDATE #__sportsmanager_rangliste_turnierdisziplin"
- . "\n SET system_id = " . ($system_id != 0 ? "'$system_id'" : "NULL") . ","
- . "\n wertung = '" . $db->escape($wertung) . "',"
- . "\n doppel_teilwertung = '" . $db->escape($doppel_teilwertung) . "'"
- . "\n WHERE rangliste_id = $rangliste_id AND turnierdisziplin_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($aktualisieren) {
- wannGespieltAktualisieren();
- if ($elo_aktualisieren)
- eloAktualisieren($aktualisieren_ab_datum);
- ranglisteAktualisieren(0, $id);
- einstufungAktualisieren();
- }
-
- redirectSportsManagerURL('&task=admin_turnierdisziplinen&turnierid=' . $turnierid);
-}
-
-function adminRemoveTurnierdisziplin() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern"))
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- if ($id == 0) die("Missing id!");
- $turnierid = $jinput->get('turnierid', 0, 'INT');
- if ($turnierid == 0) die("Missing id!");
-
- $query = "LOCK TABLES #__sportsmanager_turnierspiel WRITE, #__sportsmanager_turniermeldung_spieler WRITE, #__sportsmanager_turniermeldung_spieler_name WRITE, #__sportsmanager_turniermeldung WRITE, #__sportsmanager_turnierdisziplin WRITE, #__sportsmanager_rangliste_turnierdisziplin WRITE, #__sportsmanager_turnier_rundenstufe WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT * FROM #__sportsmanager_turnierdisziplin WHERE turnierdisziplin_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $row = $rows[0];
-
- $elo_aktualisieren = $row->elo_wertung;
- $aktualisieren_ab_datum = !empty($row->beginn) ? substr($row->beginn, 0, 10) : null;
-
- $query = "DELETE FROM #__sportsmanager_turnierspiel WHERE turnierdisziplin_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE #__sportsmanager_turniermeldung_spieler_name FROM #__sportsmanager_turniermeldung_spieler_name, #__sportsmanager_turniermeldung_spieler, #__sportsmanager_turniermeldung WHERE #__sportsmanager_turniermeldung_spieler_name.turniermeldung_spieler_id = #__sportsmanager_turniermeldung_spieler.turniermeldung_spieler_id AND #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id AND turnierdisziplin_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE #__sportsmanager_turniermeldung_spieler FROM #__sportsmanager_turniermeldung_spieler, #__sportsmanager_turniermeldung WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id AND turnierdisziplin_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_turniermeldung WHERE turnierdisziplin_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_rangliste_turnierdisziplin WHERE turnierdisziplin_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_turnier_rundenstufe WHERE turnierdisziplin_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_turnierdisziplin WHERE turnierdisziplin_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- wannGespieltAktualisieren();
- if ($elo_aktualisieren)
- eloAktualisieren($aktualisieren_ab_datum);
- ranglisteAktualisieren();
- einstufungAktualisieren();
-
- redirectSportsManagerURL('&task=admin_turnierdisziplinen&turnierid=' . $turnierid);
-}
-
-function adminExportTurniervoranmeldungenForm() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator())
- keinZugriff(true);
-
- $turnierdisziplinid = $jinput->get('turnierdisziplinid', 0, 'INT');
- if ($turnierdisziplinid == 0) die ("Wrong id!");
-
- $query = "SELECT #__sportsmanager_turnierdisziplin.turnierdisziplin_id, disziplin, typ, turnierbezeichnung, turnierort, beginn, voranmeldungen_rangliste_id, voranmeldungen_reihenfolge, turnier_id FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $turnierdisziplin = $rows[0];
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator($turnierdisziplin->turnier_id))
- keinZugriff(true);
-
- /*
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_rangliste"
- . "\n WHERE status > 0 AND erster_tag <= CURDATE() AND letzter_tag >= CURDATE()"
- . "\n ORDER BY YEAR(letzter_tag) DESC, reihenfolge, letzter_tag DESC, bezeichnung, kategorie";
- $db->setQuery( $query );
- if (!$result = $db->execute()) { die($db->stderr(true)); }
- $ranglisten_aktuell = $db->loadObjectList();
- */
-
- $query = "SELECT DISTINCT #__sportsmanager_rangliste.rangliste_id, turnierdisziplin_id, ranglisten.system_id, wertung, bezeichnung, saisonbezeichnung"
- . "\n FROM #__sportsmanager_rangliste"
- . "\n INNER JOIN #__sportsmanager_saison USING (saison_id)"
- . "\n LEFT JOIN (SELECT rangliste_id, turnierdisziplin_id, system_id, wertung FROM #__sportsmanager_rangliste_turnierdisziplin WHERE turnierdisziplin_id = $turnierdisziplinid) AS ranglisten USING (rangliste_id)"
- . "\n ORDER BY saisonbezeichnung DESC, reihenfolge, bezeichnung, kategorie";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $ranglisten = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminExportTurniervoranmeldungen($turnierdisziplin, $ranglisten);
-}
-
-function adminExportTurniervoranmeldungen() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator())
- keinZugriff();
-
- $turnierdisziplinid = $jinput->get('turnierdisziplinid', 0, 'INT');
- $ranglisteid = $jinput->get('ranglisteid', 0, 'INT');
- $sortierung = $jinput->get('sortierung', 0, 'INT');
- $format = $jinput->get('format', 0, 'INT');
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $turnierdisziplinid);
-
- return;
- }
-
- $query = "SELECT #__sportsmanager_turnierdisziplin.turnierdisziplin_id, disziplin, turnierbezeichnung, beginn, typ FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $turnierdisziplin = $rows[0];
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator($turnierdisziplin->turnier_id))
- keinZugriff();
-
- if ($turnierdisziplin->typ == 0) {
- $query = "SELECT *"
- . ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), #__sportsmanager_turniermeldung_spieler_name.nachname, #__sportsmanager_spieler.nachname) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1) AS Nachname"
- . ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), #__sportsmanager_turniermeldung_spieler_name.vorname, #__sportsmanager_spieler.vorname) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1) AS Vorname"
- . ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), '', #__sportsmanager_spieler.spielernr) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1) AS Spielernr"
- . ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), #__sportsmanager_turniermeldung_spieler_name.vereinsname, (SELECT #__sportsmanager_verein.vereinsname FROM #__sportsmanager_verein, #__sportsmanager_mitglied_von_verein WHERE #__sportsmanager_mitglied_von_verein.spieler_id = #__sportsmanager_spieler.spieler_id AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_verein.ausgetreten AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten LIMIT 1)) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1) AS Verein";
- if ($format != 0)
- $query .= ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), 'M', #__sportsmanager_spieler.geschlecht) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1) AS Geschlecht";
- if ($ranglisteid != 0)
- $query .= ", COALESCE((SELECT punkte FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_rangliste_punkte ON #__sportsmanager_rangliste_punkte.rangliste_id = $ranglisteid AND #__sportsmanager_rangliste_punkte.spieler_id = #__sportsmanager_turniermeldung_spieler.spieler_id WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1), 0) AS Punkte";
- $query .= "\n FROM #__sportsmanager_turniermeldung"
- . "\n WHERE turnierdisziplin_id = $turnierdisziplinid AND rundenstufe = '20'"
- . "\n ORDER BY " . ($ranglisteid != 0 ? "Punkte DESC, " : "") . "Nachname, Vorname";
- }
- else {
- $query = "SELECT (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), #__sportsmanager_turniermeldung_spieler_name.nachname, #__sportsmanager_spieler.nachname) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1) AS Nachname1"
- . ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), #__sportsmanager_turniermeldung_spieler_name.vorname, #__sportsmanager_spieler.vorname) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1) AS Vorname1"
- . ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), '', #__sportsmanager_spieler.spielernr) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1) AS Spielernr1"
- . ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), #__sportsmanager_turniermeldung_spieler_name.vereinsname, (SELECT #__sportsmanager_verein.vereinsname FROM #__sportsmanager_verein, #__sportsmanager_mitglied_von_verein WHERE #__sportsmanager_mitglied_von_verein.spieler_id = #__sportsmanager_spieler.spieler_id AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_verein.ausgetreten AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten LIMIT 1)) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1) AS Verein1";
- if ($format != 0)
- $query .= ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), 'M', #__sportsmanager_spieler.geschlecht) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1) AS Geschlecht1";
- if ($ranglisteid != 0)
- $query .= ", COALESCE((SELECT punkte FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_rangliste_punkte ON #__sportsmanager_rangliste_punkte.rangliste_id = $ranglisteid AND #__sportsmanager_rangliste_punkte.spieler_id = #__sportsmanager_turniermeldung_spieler.spieler_id WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1), 0) AS Punkte1";
- $query .= ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), #__sportsmanager_turniermeldung_spieler_name.nachname, #__sportsmanager_spieler.nachname) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 1, 1) AS Nachname2"
- . ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), #__sportsmanager_turniermeldung_spieler_name.vorname, #__sportsmanager_spieler.vorname) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 1, 1) AS Vorname2"
- . ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), '', #__sportsmanager_spieler.spielernr) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 1, 1) AS Spielernr2"
- . ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), #__sportsmanager_turniermeldung_spieler_name.vereinsname, (SELECT #__sportsmanager_verein.vereinsname FROM #__sportsmanager_verein, #__sportsmanager_mitglied_von_verein WHERE #__sportsmanager_mitglied_von_verein.spieler_id = #__sportsmanager_spieler.spieler_id AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_verein.ausgetreten AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten LIMIT 1)) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 1, 1) AS Verein2";
- if ($format != 0)
- $query .= ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), 'M', #__sportsmanager_spieler.geschlecht) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 1, 1) AS Geschlecht2";
- if ($ranglisteid != 0) {
- $query .= ", COALESCE((SELECT punkte FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_rangliste_punkte ON #__sportsmanager_rangliste_punkte.rangliste_id = $ranglisteid AND #__sportsmanager_rangliste_punkte.spieler_id = #__sportsmanager_turniermeldung_spieler.spieler_id WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 1, 1), 0) AS Punkte2";
- if ($sortierung == 0) {
- $query .= ", COALESCE((SELECT punkte FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_rangliste_punkte ON #__sportsmanager_rangliste_punkte.rangliste_id = $ranglisteid AND #__sportsmanager_rangliste_punkte.spieler_id = #__sportsmanager_turniermeldung_spieler.spieler_id WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1), 0)"
- . "+ COALESCE((SELECT punkte FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_rangliste_punkte ON #__sportsmanager_rangliste_punkte.rangliste_id = $ranglisteid AND #__sportsmanager_rangliste_punkte.spieler_id = #__sportsmanager_turniermeldung_spieler.spieler_id WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 1, 1), 0) AS Summe";
- }
- else {
- $query .= ", GREATEST(COALESCE((SELECT punkte FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_rangliste_punkte ON #__sportsmanager_rangliste_punkte.rangliste_id = $ranglisteid AND #__sportsmanager_rangliste_punkte.spieler_id = #__sportsmanager_turniermeldung_spieler.spieler_id WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1), 0)"
- . ", COALESCE((SELECT punkte FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_rangliste_punkte ON #__sportsmanager_rangliste_punkte.rangliste_id = $ranglisteid AND #__sportsmanager_rangliste_punkte.spieler_id = #__sportsmanager_turniermeldung_spieler.spieler_id WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 1, 1), 0)) AS Maximum";
- }
- }
- $query .= "\n FROM #__sportsmanager_turniermeldung"
- . "\n WHERE turnierdisziplin_id = $turnierdisziplinid AND rundenstufe = '20'"
- . "\n ORDER BY " . ($ranglisteid != 0 ? ($sortierung == 0 ? "Summe DESC, " : "Maximum DESC, ") : "") . "Nachname1, Vorname1";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $voranmeldungen = $db->loadObjectList();
-
- /*
- if ($turnierdisziplin->typ == 0) {
- $query = "SELECT t1.nachname as Nachname, t1.vorname as Vorname, t1.spielernr as Spielernr"
- . ", COALESCE((SELECT #__sportsmanager_verein.vereinsname FROM #__sportsmanager_verein, #__sportsmanager_mitglied_von_verein WHERE #__sportsmanager_mitglied_von_verein.spieler_id = spieler_1_id AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_verein.ausgetreten AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten LIMIT 1), 'Keiner') AS Verein";
- if ($format != 0)
- $query .= ", t1.geschlecht as Geschlecht";
- if ($ranglisteid != 0)
- $query .= ", COALESCE((SELECT punkte FROM #__sportsmanager_rangliste_punkte WHERE rangliste_id = $ranglisteid AND #__sportsmanager_rangliste_punkte.spieler_id = spieler_1_id), 0) AS Punkte";
- }
- else {
- $query = "SELECT t1.nachname as Nachname1, t1.vorname as Vorname1, t1.spielernr as Spielernr1"
- . ", COALESCE((SELECT #__sportsmanager_verein.vereinsname FROM #__sportsmanager_verein, #__sportsmanager_mitglied_von_verein WHERE #__sportsmanager_mitglied_von_verein.spieler_id = spieler_1_id AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_verein.ausgetreten AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten LIMIT 1), 'Keiner') AS Verein1";
- if ($format != 0)
- $query .= ", t1.geschlecht as Geschlecht1";
- if ($ranglisteid != 0)
- $query .= ", COALESCE((SELECT punkte FROM #__sportsmanager_rangliste_punkte WHERE rangliste_id = $ranglisteid AND #__sportsmanager_rangliste_punkte.spieler_id = spieler_1_id), 0) AS Punkte1";
- $query .= ", t2.nachname as Nachname2, t2.vorname as Vorname2, t2.spielernr as Spielernr2"
- . ", COALESCE((SELECT #__sportsmanager_verein.vereinsname FROM #__sportsmanager_verein, #__sportsmanager_mitglied_von_verein WHERE #__sportsmanager_mitglied_von_verein.spieler_id = spieler_2_id AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_verein.ausgetreten AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten LIMIT 1), 'Keiner') AS Verein2";
- if ($format != 0)
- $query .= ", t2.geschlecht as Geschlecht2";
- if ($ranglisteid != 0)
- $query .= ", COALESCE((SELECT punkte FROM #__sportsmanager_rangliste_punkte WHERE rangliste_id = $ranglisteid AND #__sportsmanager_rangliste_punkte.spieler_id = spieler_2_id), 0) AS Punkte2";
- if ($ranglisteid != 0) {
- $query .= ", GREATEST(COALESCE((SELECT punkte FROM #__sportsmanager_rangliste_punkte WHERE rangliste_id = $ranglisteid AND #__sportsmanager_rangliste_punkte.spieler_id = spieler_1_id), 0), COALESCE((SELECT punkte FROM #__sportsmanager_rangliste_punkte WHERE rangliste_id = $ranglisteid AND #__sportsmanager_rangliste_punkte.spieler_id = spieler_2_id), 0)) AS Maximum";
- $query .= ", COALESCE((SELECT punkte FROM #__sportsmanager_rangliste_punkte WHERE rangliste_id = $ranglisteid AND #__sportsmanager_rangliste_punkte.spieler_id = spieler_1_id), 0) + COALESCE((SELECT punkte FROM #__sportsmanager_rangliste_punkte WHERE rangliste_id = $ranglisteid AND #__sportsmanager_rangliste_punkte.spieler_id = spieler_2_id), 0) AS Summe";
- }
- }
- $query .= "\n FROM #__sportsmanager_turniervoranmeldung"
- . "\n LEFT JOIN #__sportsmanager_spieler AS t1 ON t1.spieler_id = spieler_1_id"
- . "\n LEFT JOIN #__sportsmanager_spieler AS t2 ON t2.spieler_id = spieler_2_id"
- . "\n WHERE turnierdisziplin_id = $turnierdisziplinid"
- . "\n ORDER BY " . ($ranglisteid != 0 ? ($turnierdisziplin->typ == 0 ? "Punkte DESC, " : ($sortierung == 0 ? "Summe DESC, " : "Maximum DESC, ")) : "") . "t1.nachname, t1.vorname";
- $db->setQuery( $query );
- if (!$result = $db->execute()) { die($db->stderr(true)); }
- $voranmeldungen = $db->loadObjectList();
-*/
- $dateiname = 'Voranmeldungen ' . $turnierdisziplin->turnierbezeichnung . ' - ' . $turnierdisziplin->disziplin . '.csv';
- $dateiname = bereinigterDateiname($dateiname);
- ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind
- Header("Content-Type: text/x-csv");
- Header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
- Header('Content-Disposition: attachment; filename="' . $dateiname . '"');
- Header("Pragma: no-cache");
-
- if ($format == 0) {
- $trennzeichen = "\t";
-
- $header = "";
- foreach ($voranmeldungen[0] as $field => $value)
- $header .= $field . $trennzeichen;
-
- $data = "";
- foreach ($voranmeldungen as $row) {
- $line = '';
- foreach ($row as $value) {
- if ((!isset($value)) OR ($value == "")) {
- $value = $trennzeichen;
- }
- else {
- $value = str_replace('"', '""', $value);
- $value = str_replace("\t", ' ', $value);
- $value = str_replace("\r", '', $value);
- $value = str_replace("\n", ' ', $value);
- $value = '"' . $value . '"' . $trennzeichen;
- }
- $line .= $value;
- }
- $data .= trim($line) . "\n";
- }
- $data = str_replace("\r", "", $data);
-
- echo "sep=" . $trennzeichen . "\n" . $header . "\n" . $data;
- }
- else {
- $gesetzt = ($format - 1) * 4;
- if ($turnierdisziplin->typ == 0) {
- echo "1\r\n";
- echo "NAME1#VORNAME1#GESCHLECHT1#VEREIN1#PSEUDONYM#SETZPOSITION\r\n";
- }
- else {
- echo "2\r\n";
- echo "NAME1#VORNAME1#GESCHLECHT1#VEREIN1#NAME2#VORNAME2#GESCHLECHT2#VEREIN2#PSEUDONYM#SETZPOSITION\r\n";
- }
-
- $platz = 1;
- $punkte = 0;
- $tatsaechlicher_platz = 0;
- foreach ($voranmeldungen as $row) {
- $row_punkte = $ranglisteid != 0 ? ($turnierdisziplin->typ == 0 ? $row->Punkte : ($sortierung == 0 ? $row->Summe : $row->Maximum)) : 0;
- if ($row_punkte != $punkte) {
- $tatsaechlicher_platz = $platz;
- $punkte = $row_punkte;
- }
- if ($turnierdisziplin->typ == 0) {
- echo utf8_decode(str_replace("#", ' ', $row->Nachname)
- . "#" . str_replace("#", ' ', $row->Vorname)
- . "#" . ($row->Geschlecht == "M" ? "M" : "F")
- . "#" . str_replace("#", ' ', $row->Verein)
- . "#"
- . "#" . ($gesetzt != 0 && $tatsaechlicher_platz <= $gesetzt ? $tatsaechlicher_platz : "0") . "\r\n");
- }
- else {
- echo utf8_decode(str_replace("#", ' ', $row->Nachname1)
- . "#" . str_replace("#", ' ', $row->Vorname1)
- . "#" . ($row->Geschlecht1 == "M" ? "M" : "F")
- . "#" . str_replace("#", ' ', $row->Verein1)
- . "#" . str_replace("#", ' ', $row->Nachname2)
- . "#" . str_replace("#", ' ', $row->Vorname2)
- . "#" . ($row->Geschlecht2 == "M" ? "M" : "F")
- . "#" . str_replace("#", ' ', $row->Verein2)
- . "#"
- . "#" . ($gesetzt != 0 && $tatsaechlicher_platz <= $gesetzt ? $tatsaechlicher_platz : "0") . "\r\n");
- }
- $platz++;
- }
- }
-
- die();
-}
-
-function adminTurnierdisziplinMeldungenSpiele() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator())
- keinZugriff(true);
-
- $turnierdisziplinid = $jinput->get('turnierdisziplinid', 0, 'INT');
- if ($turnierdisziplinid == 0) die ("Wrong id!");
-
- $query = "SELECT #__sportsmanager_turnierdisziplin.turnierdisziplin_id, typ, turnier_id, disziplin, turnierbezeichnung, turnierort, beginn FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) != 1) die("Wrong id!");
- $disziplin = $rows[0];
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator($disziplin->turnier_id))
- keinZugriff(true);
-
- $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_turniermeldung WHERE turnierdisziplin_id = $turnierdisziplinid AND platz > 0), 1, 0)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $platzierung_anzeigen = $db->loadResult() > 0;
-
- $meldungen = array();
- $meldungenSpielerNamen = array();
- foreach (array(0, 1, 2, 3, 10, 20) as $rundenstufe) {
- /* Abfrage war erheblich zu langsam bei großem Bestand
- $query = "SELECT *"
- . ", (SELECT CONCAT_WS(', ', #__sportsmanager_spieler.nachname, #__sportsmanager_spieler.vorname, #__sportsmanager_turniermeldung_spieler_name.nachname, #__sportsmanager_turniermeldung_spieler_name.vorname) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1) AS name1"
- . ", (SELECT CONCAT_WS(', ', #__sportsmanager_spieler.nachname, #__sportsmanager_spieler.vorname, #__sportsmanager_turniermeldung_spieler_name.nachname, #__sportsmanager_turniermeldung_spieler_name.vorname) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 1, 1) AS name2"
- . ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), 0, 1) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1) AS verknuepft1"
- . ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), 0, 1) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 1, 1) AS verknuepft2"
- . "\n FROM #__sportsmanager_turniermeldung"
- . "\n WHERE turnierdisziplin_id = $turnierdisziplinid AND rundenstufe = '$rundenstufe'"
- . "\n ORDER BY platz, name1, name2";
- $db->setQuery( $query );
- if (!$result = $db->execute()) { die($db->stderr(true)); }
- $meldungen[$rundenstufe] = $db->loadObjectList();
-
- foreach ($meldungen[$rundenstufe] as $meldung) {
- $meldungenSpielerNamen[$meldung->turniermeldung_id] = $disziplin->typ == 0 ? NichtLeererString($meldung->verknuepft1 ? $meldung->name1 : hervorheben($meldung->name1)) : StringsZusammenfassen($meldung->verknuepft1 ? $meldung->name1 : hervorheben($meldung->name1), $meldung->verknuepft2 ? $meldung->name2 : hervorheben($meldung->name2));
- }
- */
-
- $query = "SELECT platz, turniermeldung_id"
- . "\n FROM #__sportsmanager_turniermeldung"
- . "\n WHERE turnierdisziplin_id = $turnierdisziplinid AND rundenstufe = '$rundenstufe'"
- . "\n ORDER BY platz, turniermeldung_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $meldungen[$rundenstufe] = $db->loadObjectList();
- }
-
- $query = "SELECT turniermeldung_id, spieler_id, IF(ISNULL(spieler_id), #__sportsmanager_turniermeldung_spieler_name.nachname, #__sportsmanager_spieler.nachname) AS nachname, IF(ISNULL(spieler_id), #__sportsmanager_turniermeldung_spieler_name.vorname, #__sportsmanager_spieler.vorname) AS vorname"
- . "\n FROM #__sportsmanager_turniermeldung"
- . "\n INNER JOIN #__sportsmanager_turniermeldung_spieler USING (turniermeldung_id)"
- . "\n LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id)"
- . "\n LEFT JOIN #__sportsmanager_spieler USING (spieler_id)"
- . "\n WHERE turnierdisziplin_id = $turnierdisziplinid"
- . "\n ORDER BY turniermeldung_spieler_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $meldungenSpieler = $db->loadObjectList();
-
- foreach ($meldungenSpieler as $s) {
- $spielername = $s->spieler_id == null ? hervorheben($s->nachname . ", " . $s->vorname) : ($s->nachname . ", " . $s->vorname);
- if (empty($meldungenSpielerNamen[$s->turniermeldung_id]))
- $meldungenSpielerNamen[$s->turniermeldung_id] = $spielername;
- else
- $meldungenSpielerNamen[$s->turniermeldung_id] = StringsZusammenfassen($meldungenSpielerNamen[$s->turniermeldung_id], $spielername);
- }
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_turnier_rundenstufe"
- . "\n WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $rundenstufen_details = array();
- foreach ($rows as $row) {
- $rundenstufen_details[$row->rundenstufe] = $row;
- }
-
- $spiele = array();
- foreach (array(1, 2, 3, 10) as $rundenstufe) {
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_turnierspiel"
- . "\n WHERE turnierdisziplin_id = $turnierdisziplinid AND rundenstufe = '$rundenstufe'"
- . "\n ORDER BY runde DESC, spiel_nummer";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spiele[$rundenstufe] = $db->loadObjectList();
- }
-
- HTML_sportsmanager_admin::adminTurnierdisziplinMeldungenSpiele($disziplin, $rundenstufen_details, $meldungen, $meldungenSpielerNamen, $spiele, $platzierung_anzeigen);
-}
-
-function adminTurnierdisziplinMeldungenSpieleAlleEntfernen() {
- $db =& getDatabase();
- global $_FILES;
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator())
- keinZugriff();
-
- $id = $jinput->get('turnierdisziplinid', 0, 'INT');
- $veranstalter_id = $jinput->get('veranstalterid', 0, 'INT');
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id);
-
- return;
- }
-
- // Sicherstellen, dass Turnierdisziplin zum Turnier gehört
- $query = "SELECT turnierdisziplin_id, disziplin, turnierbezeichnung, turnierort, beginn, typ, turnier_id FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $turnierdisziplin = $rows[0];
-
- if (benutzerZugriff("turniere_aendern"))
- $zugriffsebene = 2;
- else if (benutzerTurnierModerator($turnierdisziplin->turnier_id))
- $zugriffsebene = 1;
- else
- keinZugriff();
-
- $query = "LOCK TABLES #__sportsmanager_turnierdisziplin WRITE, #__sportsmanager_turnier READ, #__sportsmanager_turnierspiel WRITE, #__sportsmanager_turniermeldung_spieler WRITE, #__sportsmanager_turniermeldung_spieler_name WRITE, #__sportsmanager_turniermeldung WRITE, #__sportsmanager_spieler WRITE, #__sportsmanager_mitglied_von_verein READ, #__sportsmanager_verein READ, #__sportsmanager_turnier_rundenstufe WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT #__sportsmanager_turnierdisziplin.turnierdisziplin_id, disziplin, turnierbezeichnung, turnierort, beginn, elo_wertung FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $turnierdisziplin = $rows[0];
-
- $elo_aktualisieren = $turnierdisziplin->elo_wertung;
- $aktualisieren_ab_datum = !empty($turnierdisziplin->beginn) ? substr($turnierdisziplin->beginn, 0, 10) : null;
-
- $query = "DELETE FROM #__sportsmanager_turnierspiel WHERE turnierdisziplin_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE #__sportsmanager_turniermeldung_spieler_name FROM #__sportsmanager_turniermeldung_spieler_name, #__sportsmanager_turniermeldung_spieler, #__sportsmanager_turniermeldung WHERE #__sportsmanager_turniermeldung_spieler_name.turniermeldung_spieler_id = #__sportsmanager_turniermeldung_spieler.turniermeldung_spieler_id AND #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id AND turnierdisziplin_id = $id AND rundenstufe <> 20;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE #__sportsmanager_turniermeldung_spieler FROM #__sportsmanager_turniermeldung_spieler, #__sportsmanager_turniermeldung WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id AND turnierdisziplin_id = $id AND rundenstufe <> 20;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_turniermeldung WHERE turnierdisziplin_id = $id AND rundenstufe <> 20;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_turnier_rundenstufe WHERE turnierdisziplin_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- wannGespieltAktualisieren();
- if ($elo_aktualisieren)
- eloAktualisieren($aktualisieren_ab_datum);
- ranglisteAktualisieren(0, $id);
- einstufungAktualisieren();
-
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id);
-}
-
-function adminImportTurnierdisziplinMeldungenSpieleForm() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator())
- keinZugriff(true);
-
- $turnierdisziplinid = $jinput->get('turnierdisziplinid', 0, 'INT');
-
- $query = "SELECT #__sportsmanager_turnierdisziplin.turnierdisziplin_id, disziplin, turnierbezeichnung, turnierort, beginn, turnier_id FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $row = $rows[0];
-
- if (benutzerZugriff("turniere_aendern"))
- $zugriffsebene = 2;
- else if (benutzerTurnierModerator($row->turnier_id))
- $zugriffsebene = 1;
- else
- keinZugriff(true);
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_veranstalter"
- . "\n ORDER BY veranstalterbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstalter = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminImportTurnierdisziplinMeldungenSpieleForm($row, $veranstalter, $zugriffsebene);
-}
-
-function adminImportTurnierdisziplinMeldungenSpiele() {
- $db =& getDatabase();
- global $_FILES;
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator())
- keinZugriff();
-
- $id = $jinput->get('turnierdisziplinid', 0, 'INT');
- $veranstalter_id = $jinput->get('veranstalterid', 0, 'INT');
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id);
-
- return;
- }
-
- // Sicherstellen, dass Turnierdisziplin zum Turnier gehört
- $query = "SELECT turnierdisziplin_id, disziplin, turnierbezeichnung, turnierort, beginn, typ, turnier_id FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $turnierdisziplin = $rows[0];
-
- if (benutzerZugriff("turniere_aendern"))
- $zugriffsebene = 2;
- else if (benutzerTurnierModerator($turnierdisziplin->turnier_id))
- $zugriffsebene = 1;
- else
- keinZugriff();
-
- if ($zugriffsebene == 2 && $veranstalter_id != 0)
- $wertungsbedingung = "(SELECT COUNT(*) FROM #__sportsmanager_mitglied_von_verein LEFT JOIN #__sportsmanager_verein USING (verein_id) WHERE #__sportsmanager_mitglied_von_verein.spieler_id = #__sportsmanager_spieler.spieler_id AND veranstalter_id = $veranstalter_id) > 0 AND ";
- else
- $wertungsbedingung = "NOT ISNULL(aktueller_verein_id) AND ";
-
- $query = "LOCK TABLES #__sportsmanager_turnierdisziplin WRITE, #__sportsmanager_turnier READ, #__sportsmanager_turnierspiel WRITE, #__sportsmanager_turniermeldung_spieler WRITE, #__sportsmanager_turniermeldung_spieler_name WRITE, #__sportsmanager_turniermeldung WRITE, #__sportsmanager_spieler WRITE, #__sportsmanager_mitglied_von_verein READ, #__sportsmanager_verein READ, #__sportsmanager_turnier_rundenstufe WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT #__sportsmanager_turnierdisziplin.turnierdisziplin_id, disziplin, turnierbezeichnung, turnierort, beginn, elo_wertung FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $turnierdisziplin = $rows[0];
-
- $elo_aktualisieren = $turnierdisziplin->elo_wertung;
- $aktualisieren_ab_datum = !empty($turnierdisziplin->beginn) ? substr($turnierdisziplin->beginn, 0, 10) : null;
-
- if (!empty($_FILES["daten"]["tmp_name"])) {
- if (is_uploaded_file($_FILES["daten"]["tmp_name"])) {
- $query = "DELETE FROM #__sportsmanager_turnierspiel WHERE turnierdisziplin_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE #__sportsmanager_turniermeldung_spieler_name FROM #__sportsmanager_turniermeldung_spieler_name, #__sportsmanager_turniermeldung_spieler, #__sportsmanager_turniermeldung WHERE #__sportsmanager_turniermeldung_spieler_name.turniermeldung_spieler_id = #__sportsmanager_turniermeldung_spieler.turniermeldung_spieler_id AND #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id AND turnierdisziplin_id = $id AND rundenstufe <> 20;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE #__sportsmanager_turniermeldung_spieler FROM #__sportsmanager_turniermeldung_spieler, #__sportsmanager_turniermeldung WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id AND turnierdisziplin_id = $id AND rundenstufe <> 20;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_turniermeldung WHERE turnierdisziplin_id = $id AND rundenstufe <> 20;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_turnier_rundenstufe WHERE turnierdisziplin_id = $id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $handle = fopen($_FILES["daten"]["tmp_name"], "r");
- if (!$handle) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Die übergebene Datei kann nicht geöffnet werden.");
-
- return;
- }
- if (feof($handle)) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Die übergebene Datei ist leer.");
-
- return;
- }
- $titelzeile = chop(utf8_encode(fgets($handle, 4096)));
- if (substr($titelzeile, 0, 4) == "sep=") {
- $trennzeichen = substr($titelzeile, 4);
- if ($trennzeichen == "") // TAB am Ende wird aus irgendwelchen Gründen weggekürzt
- $trennzeichen = "\t";
- $titelzeile = chop(utf8_encode(fgets($handle, 4096)));
- }
- if (strpos($titelzeile, "\t") !== false)
- $trennzeichen = "\t";
- else if (strpos($titelzeile, ";") !== false)
- $trennzeichen = ";";
- else
- $trennzeichen = ",";
-
- $spalte = array();
- $titel = explode($trennzeichen, strtolower($titelzeile));
-
- foreach ($titel as $index => $bezeichnung) {
- if ($bezeichnung == "platz" || $bezeichnung == "platzierung")
- $spalte["platz"] = $index;
- else if ($bezeichnung == "itsf")
- $spalte["itsf"] = $index;
- else if ($bezeichnung == "name" || $bezeichnung == "nachname" || $bezeichnung == "name1" || $bezeichnung == "nachname1" || $bezeichnung == "nachname 1")
- $spalte["nachname1"] = $index;
- else if ($bezeichnung == "vorname" || $bezeichnung == "vorname1" || $bezeichnung == "vorname 1")
- $spalte["vorname1"] = $index;
- else if ($bezeichnung == "spielernr" || $bezeichnung == "spielernr1" || $bezeichnung == "spielernr. 1")
- $spalte["spielernr1"] = $index;
- else if ($bezeichnung == "verein" || $bezeichnung == "verein1" || $bezeichnung == "vereinsname" || $bezeichnung == "vereinsname1" || $bezeichnung == "vereinsname 1")
- $spalte["verein1"] = $index;
- else if ($bezeichnung == "name2" || $bezeichnung == "nachname2" || $bezeichnung == "nachname 2")
- $spalte["nachname2"] = $index;
- else if ($bezeichnung == "vorname2" || $bezeichnung == "vorname 2")
- $spalte["vorname2"] = $index;
- else if ($bezeichnung == "spielernr2" || $bezeichnung == "spielernr. 2")
- $spalte["spielernr2"] = $index;
- else if ($bezeichnung == "verein2" || $bezeichnung == "vereinsname2" || $bezeichnung == "vereinsname 2")
- $spalte["verein1"] = $index;
- }
-
- // CSV-Import
- if ((isset($spalte["platz"]) && isset($spalte["vorname1"]) && isset($spalte["nachname1"])) || isset($spalte["itsf"])) {
- $nichtGefundeneSpieler = "";
- $spielerMeldungen = array();
-
- $ist_doppel = false;
- if (isset($spalte["vorname2"]) && isset($spalte["nachname2"]))
- $ist_doppel = true;
-
- while (!feof($handle)) {
- $buffer = chop(utf8_encode(fgets($handle, 4096)));
- $daten = explode($trennzeichen, $buffer);
-
- foreach ($daten as $index => $wert) {
- $wert = trim($wert);
- $len = strlen($wert);
- if ($len < 2 || $wert[0] != '"' || $wert[$len - 1] != '"')
- $daten[$index] = $wert;
- else
- $daten[$index] = str_replace('""', '"', substr($wert, 1, $len - 2));
- }
-
- if (isset($spalte["itsf"])) {
- if (!isset($daten[$spalte["itsf"]]))
- continue;
- $itsf_daten = $daten[$spalte["itsf"]];
- if (empty($itsf_daten))
- continue;
-
- if (!$ist_doppel && strpos($itsf_daten, " - ") !== false) {
- if (count($spielerMeldungen) != 0)
- continue;
- $ist_doppel = true;
- }
-
- $nachname1 = "";
- $vorname1 = "";
- $spielernr1 = "";
- $verein1 = "";
- if ($ist_doppel) {
- $nachname2 = "";
- $vorname2 = "";
- $spielernr2 = "";
- $verein2 = "";
- }
-
- $itsf_felder = explode(" ", $itsf_daten);
- $position = 0; // 0: Platz, 1: Vorname1, 2: Nachname1, 3: Land1, 4: Vorname2, 5: Nachname2, 6: Land2
- foreach ($itsf_felder as $feld) {
- if ($position == 0) {
- if (!is_numeric($feld))
- break;
- $platz = $feld;
- $position++;
- continue;
- }
- if ($position == 1) {
- if (strtoupper($feld) != $feld) {
- if (!empty($vorname1))
- $vorname1 .= " ";
- $vorname1 .= $feld;
- continue;
- }
- $position = 2;
- }
- if ($position == 2) {
- if ($feld != "-" && substr($feld, 0, 1) != "(") {
- if (!empty($nachname1))
- $nachname1 .= " ";
- $nachname1 .= substr($feld, 0, 1) . strtolower(substr($feld, 1));
- continue;
- }
- $position = 3;
- }
- if ($position == 3) {
- if ($feld == "-")
- continue;
- if (substr($feld, 0, 1) == "(" && substr($feld, 4) == ")") {
- $verein1 = substr($feld, 1, 3);
- continue;
- }
- if (!$ist_doppel)
- break;
- $position = 4;
- }
- if ($position == 4) {
- if (strtoupper($feld) != $feld) {
- if (!empty($vorname2))
- $vorname2 .= " ";
- $vorname2 .= $feld;
- continue;
- }
- $position = 5;
- }
- if ($position == 5) {
- if ($feld != "-" && substr($feld, 0, 1) != "(") {
- if (ctype_digit($feld))
- continue;
- if (!empty($nachname2))
- $nachname2 .= " ";
- $nachname2 .= substr($feld, 0, 1) . strtolower(substr($feld, 1));
- continue;
- }
- $position = 6;
- }
- if ($position == 6) {
- if ($feld == "-")
- continue;
- if (substr($feld, 0, 1) == "(" && substr($feld, 4) == ")") {
- $verein2 = substr($feld, 1, 3);
- continue;
- }
- break;
- }
- }
-
- if (empty($platz) || empty($vorname1) || empty($nachname1))
- continue;
- if ($ist_doppel && (empty($vorname2) || empty($nachname2)))
- continue;
- }
- else {
- $platz = str_replace(".", "", $daten[$spalte["platz"]]);
- if (empty($platz))
- continue;
-
- if (!isset($daten[$spalte["vorname1"]]) || !isset($daten[$spalte["nachname1"]]))
- continue;
-
- $nachname1 = $daten[$spalte["nachname1"]];
- $vorname1 = $daten[$spalte["vorname1"]];
- $spielernr1 = isset($spalte["spielernr1"]) && isset($daten[$spalte["spielernr1"]]) ? $daten[$spalte["spielernr1"]] : "";
- $verein1 = isset($spalte["verein1"]) && isset($daten[$spalte["verein1"]]) ? $daten[$spalte["verein1"]] : "";
-
- if ($vorname1 == "" || $nachname1 == "")
- continue;
-
- if ($ist_doppel) {
- if (!isset($daten[$spalte["vorname2"]]) || !isset($daten[$spalte["nachname2"]]))
- continue;
-
- $nachname2 = $daten[$spalte["nachname2"]];
- $vorname2 = $daten[$spalte["vorname2"]];
- $spielernr2 = isset($spalte["spielernr2"]) && isset($daten[$spalte["spielernr2"]]) ? $daten[$spalte["spielernr2"]] : "";
- $verein2 = isset($spalte["verein2"]) && isset($daten[$spalte["verein2"]]) ? $daten[$spalte["verein2"]] : "";
-
- if ($vorname2 == "" || $nachname2 == "")
- continue;
- }
- }
-
- if ($ist_doppel) {
- // Spielernummern und -namen ermitteln
- $spieler2_id = null;
- if (!empty($spielernr2)) {
- $query = "SELECT spieler_id"
- . "\n FROM #__sportsmanager_spieler"
- . "\n WHERE " . $wertungsbedingung . "STRCMP(spielernr, '" . $db->escape($spielernr2) . "') = 0"
- . "\n LIMIT 2";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $s = $db->loadObjectList();
- if (count($s) == 1)
- $spieler2_id = $s[0]->spieler_id;
- }
- if ($spieler2_id == null) {
- $query = "SELECT spieler_id"
- . "\n FROM #__sportsmanager_spieler"
- . "\n WHERE " . $wertungsbedingung . "STRCMP(vorname, '" . $db->escape($vorname2) . "') = 0 AND STRCMP(nachname, '" . $db->escape($nachname2) . "') = 0"
- . "\n LIMIT 2";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $s = $db->loadObjectList();
- if (count($s) == 1)
- $spieler2_id = $s[0]->spieler_id;
- }
- }
-
- // Spielernummern und -namen ermitteln
- $spieler1_id = null;
- if (!empty($spielernr1)) {
- $query = "SELECT spieler_id"
- . "\n FROM #__sportsmanager_spieler"
- . "\n WHERE " . $wertungsbedingung . "STRCMP(spielernr, '" . $db->escape($spielernr1) . "') = 0"
- . "\n LIMIT 2";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $s = $db->loadObjectList();
- if (count($s) == 1)
- $spieler1_id = $s[0]->spieler_id;
- }
- if ($spieler1_id == null) {
- $query = "SELECT spieler_id"
- . "\n FROM #__sportsmanager_spieler"
- . "\n WHERE " . $wertungsbedingung . "STRCMP(vorname, '" . $db->escape($vorname1) . "') = 0 AND STRCMP(nachname, '" . $db->escape($nachname1) . "') = 0"
- . "\n LIMIT 2";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $s = $db->loadObjectList();
- if (count($s) == 1)
- $spieler1_id = $s[0]->spieler_id;
- }
-
- $spielerMeldung = array();
- $spielerMeldung["p"] = $platz;
- if ($spieler1_id == null) {
- $spielerMeldung["1n"] = $nachname1;
- $spielerMeldung["1v"] = $vorname1;
- $spielerMeldung["1vn"] = $verein1;
- }
- else
- $spielerMeldung["1"] = $spieler1_id;
-
- if ($ist_doppel) {
- if ($spieler2_id == null) {
- $spielerMeldung["2n"] = $nachname2;
- $spielerMeldung["2v"] = $vorname2;
- $spielerMeldung["2vn"] = $verein2;
- }
- else
- $spielerMeldung["2"] = $spieler2_id;
- }
- array_push($spielerMeldungen, $spielerMeldung);
- }
- fclose($handle);
-
- foreach ($spielerMeldungen as $spielerMeldung) {
- $platz = $spielerMeldung["p"];
- $spieler1_id = isset($spielerMeldung["1"]) ? $spielerMeldung["1"] : null;
- if ($ist_doppel)
- $spieler2_id = isset($spielerMeldung["2"]) ? $spielerMeldung["2"] : null;
-
- $query = "INSERT INTO #__sportsmanager_turniermeldung (turnierdisziplin_id, rundenstufe, platz)"
- . "\n VALUES ('$id', '0', '$platz');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $meldungId = $db->insertid();
-
- $query = "INSERT INTO #__sportsmanager_turniermeldung_spieler (turniermeldung_id, spieler_id)"
- . "\n VALUES ('$meldungId', " . ($spieler1_id != null ? "'$spieler1_id'" : "NULL") . ");";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $meldungSpielerId = $db->insertid();
-
- if ($spieler1_id == null) {
- $query = "INSERT INTO #__sportsmanager_turniermeldung_spieler_name (turniermeldung_spieler_id, nachname, vorname, vereinsname)"
- . "\n VALUES ('$meldungSpielerId', '" . $db->escape($spielerMeldung["1n"]) . "', '" . $db->escape($spielerMeldung["1v"]) . "', '" . $db->escape($spielerMeldung["1vn"]) . "');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- if ($ist_doppel) {
- $query = "INSERT INTO #__sportsmanager_turniermeldung_spieler (turniermeldung_id, spieler_id)"
- . "\n VALUES ('$meldungId', " . ($spieler2_id != null ? "'$spieler2_id'" : "NULL") . ");";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $meldungSpielerId = $db->insertid();
-
- if ($spieler2_id == null) {
- $query = "INSERT INTO #__sportsmanager_turniermeldung_spieler_name (turniermeldung_spieler_id, nachname, vorname, vereinsname)"
- . "\n VALUES ('$meldungSpielerId', '" . $db->escape($spielerMeldung["2n"]) . "', '" . $db->escape($spielerMeldung["2v"]) . "', '" . $db->escape($spielerMeldung["2vn"]) . "');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
- }
- else { // XML-Import
- fclose($handle);
-
- // Daten zu Vorrunde laden
- $disziplinVorrunde = null;
- if (!empty($_FILES["daten_vorrunde"]["tmp_name"])) {
- if (is_uploaded_file($_FILES["daten_vorrunde"]["tmp_name"])) {
- // $disziplinVorrunde = new DOMIT_Document();
- // $success = $disziplinVorrunde->loadXML($_FILES["daten_vorrunde"]["tmp_name"]);
- $disziplinVorrunde = new DOMDocument();
- $disziplinVorrunde->recover = true;
- $success = $disziplinVorrunde->load($_FILES["daten_vorrunde"]["tmp_name"]);
- if (!$success) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei ist keine XML-Datei.");
-
- return;
- }
- }
- }
-
- // Daten zu Zusatzrunde laden
- $disziplinZusatzrunde = null;
- if (!empty($_FILES["daten_zusatzrunde"]["tmp_name"])) {
- if (is_uploaded_file($_FILES["daten_zusatzrunde"]["tmp_name"])) {
- // $disziplinZusatzrunde = new DOMIT_Document();
- // $success = $disziplinZusatzrunde->loadXML($_FILES["daten_zusatzrunde"]["tmp_name"]);
- $disziplinZusatzrunde = new DOMDocument();
- $disziplinZusatzrunde->recover = true;
- $success = $disziplinZusatzrunde->load($_FILES["daten_zusatzrunde"]["tmp_name"]);
- if (!$success) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei ist keine XML-Datei.");
-
- return;
- }
- }
- }
-
- // Daten zu 2. Zusatzrunde laden
- $disziplinZusatzrunde2 = null;
- if (!empty($_FILES["daten_zusatzrunde2"]["tmp_name"])) {
- if (is_uploaded_file($_FILES["daten_zusatzrunde2"]["tmp_name"])) {
- // $disziplinZusatzrunde2 = new DOMIT_Document();
- // $success = $disziplinZusatzrunde2->loadXML($_FILES["daten_zusatzrunde2"]["tmp_name"]);
- $disziplinZusatzrunde2 = new DOMDocument();
- $disziplinZusatzrunde2->recover = true;
- $success = $disziplinZusatzrunde2->load($_FILES["daten_zusatzrunde2"]["tmp_name"]);
- if (!$success) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei ist keine XML-Datei.");
-
- return;
- }
- }
- }
-
- // Daten zu Hauptrunde laden
- // $disziplin = new DOMIT_Document();
- // $success = $disziplin->loadXML($_FILES["daten"]["tmp_name"]);
- $disziplin = new DOMDocument();
- $disziplin->recover = true;
- $success = $disziplin->load($_FILES["daten"]["tmp_name"]);
- if (!$success) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei ist keine XML-Datei.");
-
- return;
- }
-
- if ($disziplinVorrunde != null) {
- $matchingNodes =& $disziplinVorrunde->getElementsByTagName("disziplin");
- if ($matchingNodes == null) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei enthaelt keine Disziplin.");
-
- return;
- }
- // if ($matchingNodes->getLength() != 1) {
- if ($matchingNodes->length != 1) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei darf nur eine Disziplin enthalten.");
-
- return;
- }
- }
-
- if ($disziplinZusatzrunde != null) {
- $matchingNodes =& $disziplinZusatzrunde->getElementsByTagName("disziplin");
- if ($matchingNodes == null) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei enthaelt keine Disziplin.");
-
- return;
- }
- // if ($matchingNodes->getLength() != 1) {
- if ($matchingNodes->length != 1) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei darf nur eine Disziplin enthalten.");
-
- return;
- }
- }
-
- if ($disziplinZusatzrunde2 != null) {
- $matchingNodes =& $disziplinZusatzrunde2->getElementsByTagName("disziplin");
- if ($matchingNodes == null) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei enthaelt keine Disziplin.");
-
- return;
- }
- // if ($matchingNodes->getLength() != 1) {
- if ($matchingNodes->length != 1) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei darf nur eine Disziplin enthalten.");
-
- return;
- }
- }
-
- $matchingNodes =& $disziplin->getElementsByTagName("disziplin");
- if ($matchingNodes == null) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Die uebergebene Datei enthaelt keine Disziplin.");
-
- return;
- }
- // if ($matchingNodes->getLength() != 1) {
- if ($matchingNodes->length != 1) {
- /*
- $handle = fopen ($_FILES["daten"]["tmp_name"], "r");
- while (!feof($handle)) {
- $buffer = chop(utf8_encode(fgets($handle, 4096)));
- echo htmlentities_utf8($buffer) . "
";
- }
- fclose($handle);
- echo "...
";
- */
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Die uebergebene Datei darf nur eine Disziplin enthalten.");
-
- return;
- }
-
- // Spieler-Ids über Spielerliste ermitteln
- $meldungenSpieler = array();
- $meldungenPlatz = array();
- foreach (array(0, 1, 2, 3, 10) as $rundenstufe)
- $meldungenPlatz[$rundenstufe] = array();
- //$meldungenVerein = array();
- $meldungenIds = array();
- $matchingNodes =& $disziplin->getElementsByTagName("meldung");
- if ($matchingNodes != null) {
- // $totalHauptrunde = $matchingNodes->getLength();
- $totalHauptrunde = $matchingNodes->length;
- for ($i = 0; $i < $totalHauptrunde; $i++) {
- $currNode =& $matchingNodes->item($i);
- // $meldungName = utf8_encode($currNode->getAttribute("name"));
- $meldungName = $currNode->getAttribute("name");
- $meldungPlatz = $currNode->getAttribute("platz");
- $meldungenSpieler[$meldungName] = array();
- $meldungenPlatz[0][$meldungName] = $meldungPlatz;
- $meldungenPlatz[1][$meldungName] = $meldungPlatz;
-
-// $spieler =& $currNode->firstChild;
-// while ($spieler != NULL) {
- $spielerNodes =& $currNode->getElementsByTagName("spieler");
- foreach ($spielerNodes as $spieler) {
- $spielernr = $spieler->getAttribute("spielerpass");
-
- if (!empty($spielernr)) {
- // Spielernummern und -namen ermitteln
- $query = "SELECT spieler_id"
- . "\n FROM #__sportsmanager_spieler"
- . "\n WHERE " . $wertungsbedingung . "STRCMP(spielernr, '$spielernr') = 0"
- . "\n LIMIT 2";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $s = $db->loadObjectList();
- $gefunden = count($s) == 1 ? $s[0]->spieler_id : null;
- }
- else
- $gefunden = null;
-
- if (!$gefunden) {
- // $spielerVorname = $spieler->hasAttribute("vorname") ? utf8_encode(trim($spieler->getAttribute("vorname"))) : "";
- // $spielerNachname = utf8_encode(trim($spieler->getAttribute("nachname")));
- // $spielerVerein = utf8_encode(trim($spieler->getAttribute("verein")));
- $spielerVorname = $spieler->hasAttribute("vorname") ? trim($spieler->getAttribute("vorname")) : "";
- $spielerNachname = trim($spieler->getAttribute("nachname"));
- $spielerVerein = trim($spieler->getAttribute("verein"));
-
- $query = "SELECT spieler_id"
- . "\n FROM #__sportsmanager_spieler"
- . "\n WHERE " . $wertungsbedingung . "STRCMP(nachname, '" . $db->escape($spielerNachname) . "') = 0 AND STRCMP(vorname, '" . $db->escape($spielerVorname) . "') = 0"
- . "\n LIMIT 2";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $s = $db->loadObjectList();
- $gefunden = count($s) == 1 ? $s[0]->spieler_id : null;
- }
-
- if ($gefunden != -1 && $gefunden != null)
- array_push($meldungenSpieler[$meldungName], $gefunden);
- else
- array_push($meldungenSpieler[$meldungName], array($spielerNachname, $spielerVorname, $spielerVerein));
-// $spieler =& $spieler->nextSibling;
- }
- }
-
- $neueMeldungenZusatzrunde = 0;
- if ($disziplinZusatzrunde != null) {
- $matchingNodesZusatzrunde =& $disziplinZusatzrunde->getElementsByTagName("meldung");
- if ($matchingNodesZusatzrunde != null) {
- //$totalZusatzrunde = $matchingNodesZusatzrunde->getLength();
- $totalZusatzrunde = $matchingNodesZusatzrunde->length;
- for ($i = 0; $i < $totalZusatzrunde; $i++) {
- $currNode =& $matchingNodesZusatzrunde->item($i);
- // $meldungName = utf8_encode($currNode->getAttribute("name"));
- $meldungName = $currNode->getAttribute("name");
- //if (!isset($meldungenVerein[$meldungName]))
- // $meldungenVerein[$meldungName] = utf8_encode($currNode->getAttribute("verein"));
- $meldungPlatz = $currNode->getAttribute("platz");
- $meldungenPlatz[2][$meldungName] = $meldungPlatz;
- if (!isset($meldungenSpieler[$meldungName])) {
- $neueMeldungenZusatzrunde++;
- $meldungenSpieler[$meldungName] = array();
- $meldungenPlatz[0][$meldungName] = $totalHauptrunde + $meldungPlatz;
-
- // $spieler =& $currNode->firstChild;
- // while ($spieler != NULL) {
- $spielerNodes =& $currNode->getElementsByTagName("spieler");
- foreach ($spielerNodes as $spieler) {
- $spielernr = $spieler->getAttribute("spielerpass");
-
- if (!empty($spielernr)) {
- // Spielernummern und -namen ermitteln
- $query = "SELECT spieler_id"
- . "\n FROM #__sportsmanager_spieler"
- . "\n WHERE " . $wertungsbedingung . "STRCMP(spielernr, '" . $db->escape($spielernr) . "') = 0"
- . "\n LIMIT 2";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $s = $db->loadObjectList();
- $gefunden = count($s) == 1 ? $s[0]->spieler_id : null;
- }
- else
- $gefunden = null;
-
- if (!$gefunden) {
- // $spielerVorname = $spieler->hasAttribute("vorname") ? utf8_encode(trim($spieler->getAttribute("vorname"))) : "";
- // $spielerNachname = utf8_encode(trim($spieler->getAttribute("nachname")));
- // $spielerVerein = utf8_encode(trim($spieler->getAttribute("verein")));
- $spielerVorname = $spieler->hasAttribute("vorname") ? trim($spieler->getAttribute("vorname")) : "";
- $spielerNachname = trim($spieler->getAttribute("nachname"));
- $spielerVerein = trim($spieler->getAttribute("verein"));
-
- $query = "SELECT spieler_id"
- . "\n FROM #__sportsmanager_spieler"
- . "\n WHERE " . $wertungsbedingung . "STRCMP(nachname, '" . $db->escape($spielerNachname) . "') = 0 AND STRCMP(vorname, '" . $db->escape($spielerVorname) . "') = 0"
- . "\n LIMIT 2";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $s = $db->loadObjectList();
- $gefunden = count($s) == 1 ? $s[0]->spieler_id : null;
- }
-
- if ($gefunden != -1 && $gefunden != null)
- array_push($meldungenSpieler[$meldungName], $gefunden);
- else
- array_push($meldungenSpieler[$meldungName], array($spielerNachname, $spielerVorname, $spielerVerein));
- // $spieler =& $spieler->nextSibling;
- }
- }
- }
- }
- }
- else
- $totalZusatzrunde = 0;
-
- $neueMeldungenZusatzrunde2 = 0;
- if ($disziplinZusatzrunde2 != null) {
- $matchingNodesZusatzrunde2 =& $disziplinZusatzrunde2->getElementsByTagName("meldung");
- if ($matchingNodesZusatzrunde2 != null) {
- // $totalZusatzrunde2 = $matchingNodesZusatzrunde2->getLength();
- $totalZusatzrunde2 = $matchingNodesZusatzrunde2->length;
- for ($i = 0; $i < $totalZusatzrunde2; $i++) {
- $currNode =& $matchingNodesZusatzrunde2->item($i);
- // $meldungName = utf8_encode($currNode->getAttribute("name"));
- $meldungName = $currNode->getAttribute("name");
- //if (!isset($meldungenVerein[$meldungName]))
- // $meldungenVerein[$meldungName] = utf8_encode($currNode->getAttribute("verein"));
- $meldungPlatz = $currNode->getAttribute("platz");
- $meldungenPlatz[3][$meldungName] = $meldungPlatz;
- if (!isset($meldungenSpieler[$meldungName])) {
- $neueMeldungenZusatzrunde2++;
- $meldungenSpieler[$meldungName] = array();
- $meldungenPlatz[0][$meldungName] = $totalHauptrunde + $neueMeldungenZusatzrunde + $meldungPlatz;
-
- // $spieler =& $currNode->firstChild;
- // while ($spieler != NULL) {
- $spielerNodes =& $currNode->getElementsByTagName("spieler");
- foreach ($spielerNodes as $spieler) {
- $spielernr = $spieler->getAttribute("spielerpass");
-
- if (!empty($spielernr)) {
- // Spielernummern und -namen ermitteln
- $query = "SELECT spieler_id"
- . "\n FROM #__sportsmanager_spieler"
- . "\n WHERE " . $wertungsbedingung . "STRCMP(spielernr, '" . $db->escape($spielernr) . "') = 0"
- . "\n LIMIT 2";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $s = $db->loadObjectList();
- $gefunden = count($s) == 1 ? $s[0]->spieler_id : null;
- }
- else
- $gefunden = null;
-
- if (!$gefunden) {
- // $spielerVorname = $spieler->hasAttribute("vorname") ? utf8_encode(trim($spieler->getAttribute("vorname"))) : "";
- // $spielerNachname = utf8_encode(trim($spieler->getAttribute("nachname")));
- // $spielerVerein = utf8_encode(trim($spieler->getAttribute("verein")));
- $spielerVorname = $spieler->hasAttribute("vorname") ? trim($spieler->getAttribute("vorname")) : "";
- $spielerNachname = trim($spieler->getAttribute("nachname"));
- $spielerVerein = trim($spieler->getAttribute("verein"));
-
- $query = "SELECT spieler_id"
- . "\n FROM #__sportsmanager_spieler"
- . "\n WHERE " . $wertungsbedingung . "STRCMP(nachname, '" . $db->escape($spielerNachname) . "') = 0 AND STRCMP(vorname, '" . $db->escape($spielerVorname) . "') = 0"
- . "\n LIMIT 2";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $s = $db->loadObjectList();
- $gefunden = count($s) == 1 ? $s[0]->spieler_id : null;
- }
-
- if ($gefunden != -1 && $gefunden != null)
- array_push($meldungenSpieler[$meldungName], $gefunden);
- else
- array_push($meldungenSpieler[$meldungName], array($spielerNachname, $spielerVorname, $spielerVerein));
- // $spieler =& $spieler->nextSibling;
- }
- }
- }
- }
- }
- else
- $totalZusatzrunde2 = 0;
-
- $disziplinVorrundeErsterPlatz = 0;
- if ($disziplinVorrunde != null) {
- $matchingNodesVorrunde =& $disziplinVorrunde->getElementsByTagName("meldung");
- if ($matchingNodesVorrunde != null) {
- // $totalVorrunde = $matchingNodesVorrunde->getLength();
- $totalVorrunde = $matchingNodesVorrunde->length;
- for ($i = 0; $i < $totalVorrunde; $i++) {
- $currNode =& $matchingNodesVorrunde->item($i);
- // $meldungName = utf8_encode($currNode->getAttribute("name"));
- $meldungName = $currNode->getAttribute("name");
- if (isset($meldungenSpieler[$meldungName]))
- continue;
- $meldungPlatz = $currNode->getAttribute("platz");
- if ($meldungPlatz < $disziplinVorrundeErsterPlatz || $disziplinVorrundeErsterPlatz == 0)
- $disziplinVorrundeErsterPlatz = $meldungPlatz;
- }
-
- for ($i = 0; $i < $totalVorrunde; $i++) {
- $currNode =& $matchingNodesVorrunde->item($i);
- // $meldungName = utf8_encode($currNode->getAttribute("name"));
- $meldungName = $currNode->getAttribute("name");
- //if (!isset($meldungenVerein[$meldungName]))
- // $meldungenVerein[$meldungName] = utf8_encode($currNode->getAttribute("verein"));
- $meldungPlatz = $currNode->getAttribute("platz");
- $meldungenPlatz[10][$meldungName] = $meldungPlatz;
- if ($disziplinVorrundeErsterPlatz == 0)
- $disziplinVorrundeErsterPlatz = $meldungPlatz;
- if (!isset($meldungenSpieler[$meldungName])) {
- $meldungenSpieler[$meldungName] = array();
- $meldungenPlatz[0][$meldungName] = $totalHauptrunde + $neueMeldungenZusatzrunde + $neueMeldungenZusatzrunde2 + $meldungPlatz - $disziplinVorrundeErsterPlatz + 1;
-
- // $spieler =& $currNode->firstChild;
- // while ($spieler != NULL) {
- $spielerNodes =& $currNode->getElementsByTagName("spieler");
- foreach ($spielerNodes as $spieler) {
- $spielernr = $spieler->getAttribute("spielerpass");
-
- if (!empty($spielernr)) {
- // Spielernummern und -namen ermitteln
- $query = "SELECT spieler_id"
- . "\n FROM #__sportsmanager_spieler"
- . "\n WHERE " . $wertungsbedingung . "STRCMP(spielernr, '" . $db->escape($spielernr) . "') = 0"
- . "\n LIMIT 2";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $s = $db->loadObjectList();
- $gefunden = count($s) == 1 ? $s[0]->spieler_id : null;
- }
- else
- $gefunden = null;
-
- if (!$gefunden) {
- // $spielerVorname = $spieler->hasAttribute("vorname") ? utf8_encode(trim($spieler->getAttribute("vorname"))) : "";
- // $spielerNachname = utf8_encode(trim($spieler->getAttribute("nachname")));
- // $spielerVerein = utf8_encode(trim($spieler->getAttribute("verein")));
- $spielerVorname = $spieler->hasAttribute("vorname") ? trim($spieler->getAttribute("vorname")) : "";
- $spielerNachname = trim($spieler->getAttribute("nachname"));
- $spielerVerein = trim($spieler->getAttribute("verein"));
-
- $query = "SELECT spieler_id"
- . "\n FROM #__sportsmanager_spieler"
- . "\n WHERE " . $wertungsbedingung . "STRCMP(nachname, '" . $db->escape($spielerNachname) . "') = 0 AND STRCMP(vorname, '" . $db->escape($spielerVorname) . "') = 0"
- . "\n LIMIT 2";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $s = $db->loadObjectList();
- $gefunden = count($s) == 1 ? $s[0]->spieler_id : null;
- }
-
- if ($gefunden != -1 && $gefunden != null)
- array_push($meldungenSpieler[$meldungName], $gefunden);
- else
- array_push($meldungenSpieler[$meldungName], array($spielerNachname, $spielerVorname, $spielerVerein));
- // $spieler =& $spieler->nextSibling;
- }
- }
- }
- }
- }
-
- // Meldungen speichern
- foreach ($meldungenSpieler as $meldungName => $spielerIds) {
- $meldungPlatz = $meldungenPlatz[0][$meldungName];
- $query = "INSERT INTO #__sportsmanager_turniermeldung (turnierdisziplin_id, rundenstufe, platz)"
- . "\n VALUES ('$id', '0', '$meldungPlatz');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $meldungId = $db->insertid();
- $meldungenIds[$meldungName] = $meldungId;
-
- foreach ($spielerIds as $spielerId) {
- $query = "INSERT INTO #__sportsmanager_turniermeldung_spieler (turniermeldung_id, spieler_id)"
- . "\n VALUES ('$meldungId', " . (!is_array($spielerId) ? "'$spielerId'" : "NULL") . ");";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $meldungSpielerId = $db->insertid();
-
- if (is_array($spielerId)) {
- $query = "INSERT INTO #__sportsmanager_turniermeldung_spieler_name (turniermeldung_spieler_id, nachname, vorname, vereinsname)"
- . "\n VALUES ('$meldungSpielerId', '" . $db->escape($spielerId[0]) . "', '" . $db->escape($spielerId[1]) . "', '" . $db->escape($spielerId[2]) . "');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
-
- $rundenstufen = array(0);
- $platzierungen = array(0 => $meldungenPlatz[0][$meldungName]);
- foreach (array(1, 2, 3, 10) as $rundenstufe) {
- if (isset($meldungenPlatz[$rundenstufe][$meldungName])) {
- array_push($rundenstufen, $rundenstufe);
- $platzierungen[$rundenstufe] = $meldungenPlatz[$rundenstufe][$meldungName];
- }
- }
- meldungsgruppe_verknuepfen($meldungId, $rundenstufen, $platzierungen);
- }
- }
-
- // Spiele speichern
- $totalVorrunde = 0;
- if ($disziplinVorrunde != null) {
- $matchingNodes =& $disziplinVorrunde->getElementsByTagName("runde");
- if ($matchingNodes != null) {
- // $totalVorrunde = $matchingNodes->getLength();
- $totalVorrunde = $matchingNodes->length;
- $ergebnis_saetze_maximum = 0;
- for ($i = 0; $i < $totalVorrunde; $i++) {
- $currNode =& $matchingNodes->item($i);
- $rundenNr = $currNode->getAttribute("no");
-
- // $spiel =& $currNode->firstChild;
- // while ($spiel != NULL) {
- $spielNodes =& $currNode->getElementsByTagName("spiel");
- foreach ($spielNodes as $spiel) {
- // $heim = utf8_encode($spiel->getAttribute("heim"));
- // $gast = utf8_encode($spiel->getAttribute("gast"));
- $heim = $spiel->getAttribute("heim");
- $gast = $spiel->getAttribute("gast");
-
- $heimGewonneneSaetze = 0;
- $gastGewonneneSaetze = 0;
- $ergebnis_detailliert = "";
- $ergebnis_saetze = 0;
- // $satz =& $spiel->firstChild;
- // while ($satz != NULL) {
- $satzNodes =& $spiel->getElementsByTagName("satz");
- foreach ($satzNodes as $satz) {
- $heimPunkte = $satz->getAttribute("heim");
- $gastPunkte = $satz->getAttribute("gast");
- if ($heimPunkte > $gastPunkte)
- $heimGewonneneSaetze++;
- else if ($heimPunkte < $gastPunkte)
- $gastGewonneneSaetze++;
- if ($heimPunkte > 1 || $gastPunkte > 1) {
- if (!empty($ergebnis_detailliert))
- $ergebnis_detailliert .= " ";
- $ergebnis_detailliert .= $heimPunkte . ":" . $gastPunkte;
- $ergebnis_saetze++;
- }
- // $satz =& $satz->nextSibling;
- }
- if ($ergebnis_saetze > $ergebnis_saetze_maximum)
- $ergebnis_saetze_maximum = $ergebnis_saetze;
-
- $heimId = $meldungenIds[$heim];
- $gastId = $meldungenIds[$gast];
- $spielNr = $i + 1;
- if ($heimGewonneneSaetze > $gastGewonneneSaetze)
- $ergebnis = 1;
- else if ($heimGewonneneSaetze < $gastGewonneneSaetze)
- $ergebnis = 2;
- else
- $ergebnis = 0;
-
- $query = "INSERT INTO #__sportsmanager_turnierspiel (turnierdisziplin_id, spiel_nummer, runde, rundenstufe, heim_meldung_id, gast_meldung_id, ergebnis, ergebnis_detailliert)"
- . "\n VALUES ('$id', '$spielNr', '$rundenNr', '10', '$heimId', '$gastId', '$ergebnis', " . (empty($ergebnis_detailliert) ? "null" : "'$ergebnis_detailliert'") . ");";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- // $spiel =& $spiel->nextSibling;
- }
- }
- if ($ergebnis_saetze_maximum > 0) {
- $query = "INSERT #__sportsmanager_turnier_rundenstufe"
- . "\n SET bezeichnung = '',"
- . "\n typ = null,"
- . "\n runden = null,"
- . "\n tabellenwertung = null,"
- . "\n saetze = " . ($ergebnis_saetze_maximum != 0 ? "'$ergebnis_saetze_maximum'" : "null") . ","
- . "\n tore = null,"
- . "\n spielfelder = null,"
- . "\n turnierdisziplin_id = '$id',"
- . "\n rundenstufe = '10'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
-
- // Spiele speichern
- $totalZusatzrunde = 0;
- if ($disziplinZusatzrunde != null) {
- $matchingNodes =& $disziplinZusatzrunde->getElementsByTagName("runde");
- if ($matchingNodes != null) {
- // $totalZusatzrunde = $matchingNodes->getLength();
- $totalZusatzrunde = $matchingNodes->length;
- $ergebnis_saetze_maximum = 0;
- for ($i = 0; $i < $totalZusatzrunde; $i++) {
- $currNode =& $matchingNodes->item($i);
- $rundenNr = $currNode->getAttribute("no");
-
- // $spiel =& $currNode->firstChild;
- // while ($spiel != NULL) {
- $spielNodes =& $currNode->getElementsByTagName("spiel");
- foreach ($spielNodes as $spiel) {
- // $heim = utf8_encode($spiel->getAttribute("heim"));
- // $gast = utf8_encode($spiel->getAttribute("gast"));
- $heim = $spiel->getAttribute("heim");
- $gast = $spiel->getAttribute("gast");
-
- $heimGewonneneSaetze = 0;
- $gastGewonneneSaetze = 0;
- $ergebnis_detailliert = "";
- $ergebnis_saetze = 0;
- // $satz =& $spiel->firstChild;
- // while ($satz != NULL) {
- $satzNodes =& $spiel->getElementsByTagName("satz");
- foreach ($satzNodes as $satz) {
- $heimPunkte = $satz->getAttribute("heim");
- $gastPunkte = $satz->getAttribute("gast");
- if ($heimPunkte > $gastPunkte)
- $heimGewonneneSaetze++;
- else if ($heimPunkte < $gastPunkte)
- $gastGewonneneSaetze++;
- if ($heimPunkte > 1 || $gastPunkte > 1) {
- if (!empty($ergebnis_detailliert))
- $ergebnis_detailliert .= " ";
- $ergebnis_detailliert .= $heimPunkte . ":" . $gastPunkte;
- $ergebnis_saetze++;
- }
- // $satz =& $satz->nextSibling;
- }
- if ($ergebnis_saetze > $ergebnis_saetze_maximum)
- $ergebnis_saetze_maximum = $ergebnis_saetze;
-
- $heimId = $meldungenIds[$heim];
- $gastId = $meldungenIds[$gast];
- $spielNr = $i + 1;
- if ($heimGewonneneSaetze > $gastGewonneneSaetze)
- $ergebnis = 1;
- else if ($heimGewonneneSaetze < $gastGewonneneSaetze)
- $ergebnis = 2;
- else
- $ergebnis = 0;
-
- $query = "INSERT INTO #__sportsmanager_turnierspiel (turnierdisziplin_id, spiel_nummer, runde, rundenstufe, heim_meldung_id, gast_meldung_id, ergebnis, ergebnis_detailliert)"
- . "\n VALUES ('$id', '$spielNr', '$rundenNr', '2', '$heimId', '$gastId', '$ergebnis', " . (empty($ergebnis_detailliert) ? "null" : "'$ergebnis_detailliert'") . ");";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- // $spiel =& $spiel->nextSibling;
- }
- }
- if ($ergebnis_saetze_maximum > 0) {
- $query = "INSERT #__sportsmanager_turnier_rundenstufe"
- . "\n SET bezeichnung = '',"
- . "\n typ = null,"
- . "\n runden = null,"
- . "\n tabellenwertung = null,"
- . "\n saetze = " . ($ergebnis_saetze_maximum != 0 ? "'$ergebnis_saetze_maximum'" : "null") . ","
- . "\n tore = null,"
- . "\n spielfelder = null,"
- . "\n turnierdisziplin_id = '$id',"
- . "\n rundenstufe = '2'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
-
- // Spiele speichern
- $totalZusatzrunde2 = 0;
- if ($disziplinZusatzrunde2 != null) {
- $matchingNodes =& $disziplinZusatzrunde2->getElementsByTagName("runde");
- if ($matchingNodes != null) {
- // $totalZusatzrunde2 = $matchingNodes->getLength();
- $totalZusatzrunde2 = $matchingNodes->length;
- $ergebnis_saetze_maximum = 0;
- for ($i = 0; $i < $totalZusatzrunde2; $i++) {
- $currNode =& $matchingNodes->item($i);
- $rundenNr = $currNode->getAttribute("no");
-
- // $spiel =& $currNode->firstChild;
- // while ($spiel != NULL) {
- $spielNodes =& $currNode->getElementsByTagName("spiel");
- foreach ($spielNodes as $spiel) {
- // $heim = utf8_encode($spiel->getAttribute("heim"));
- // $gast = utf8_encode($spiel->getAttribute("gast"));
- $heim = $spiel->getAttribute("heim");
- $gast = $spiel->getAttribute("gast");
-
- $heimGewonneneSaetze = 0;
- $gastGewonneneSaetze = 0;
- $ergebnis_detailliert = "";
- $ergebnis_saetze = 0;
- // $satz =& $spiel->firstChild;
- // while ($satz != NULL) {
- $satzNodes =& $spiel->getElementsByTagName("satz");
- foreach ($satzNodes as $satz) {
- $heimPunkte = $satz->getAttribute("heim");
- $gastPunkte = $satz->getAttribute("gast");
- if ($heimPunkte > $gastPunkte)
- $heimGewonneneSaetze++;
- else if ($heimPunkte < $gastPunkte)
- $gastGewonneneSaetze++;
- if ($heimPunkte > 1 || $gastPunkte > 1) {
- if (!empty($ergebnis_detailliert))
- $ergebnis_detailliert .= " ";
- $ergebnis_detailliert .= $heimPunkte . ":" . $gastPunkte;
- $ergebnis_saetze++;
- }
- // $satz =& $satz->nextSibling;
- }
- if ($ergebnis_saetze > $ergebnis_saetze_maximum)
- $ergebnis_saetze_maximum = $ergebnis_saetze;
-
- $heimId = $meldungenIds[$heim];
- $gastId = $meldungenIds[$gast];
- $spielNr = $i + 1;
- if ($heimGewonneneSaetze > $gastGewonneneSaetze)
- $ergebnis = 1;
- else if ($heimGewonneneSaetze < $gastGewonneneSaetze)
- $ergebnis = 2;
- else
- $ergebnis = 0;
-
- $query = "INSERT INTO #__sportsmanager_turnierspiel (turnierdisziplin_id, spiel_nummer, runde, rundenstufe, heim_meldung_id, gast_meldung_id, ergebnis, ergebnis_detailliert)"
- . "\n VALUES ('$id', '$spielNr', '$rundenNr', '3', '$heimId', '$gastId', '$ergebnis', " . (empty($ergebnis_detailliert) ? "null" : "'$ergebnis_detailliert'") . ");";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- // $spiel =& $spiel->nextSibling;
- }
- }
- if ($ergebnis_saetze_maximum > 0) {
- $query = "INSERT #__sportsmanager_turnier_rundenstufe"
- . "\n SET bezeichnung = '',"
- . "\n typ = null,"
- . "\n runden = null,"
- . "\n tabellenwertung = null,"
- . "\n saetze = " . ($ergebnis_saetze_maximum != 0 ? "'$ergebnis_saetze_maximum'" : "null") . ","
- . "\n tore = null,"
- . "\n spielfelder = null,"
- . "\n turnierdisziplin_id = '$id',"
- . "\n rundenstufe = '3'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
-
- $matchingNodes =& $disziplin->getElementsByTagName("runde");
- if ($matchingNodes != null) {
- // $total = $matchingNodes->getLength();
- $total = $matchingNodes->length;
- $ergebnis_saetze_maximum = 0;
- for ($i = 0; $i < $total; $i++) {
- $currNode =& $matchingNodes->item($i);
- $rundenNr = $currNode->getAttribute("no");
-
- // $spiel =& $currNode->firstChild;
- // while ($spiel != NULL) {
- $spielNodes =& $currNode->getElementsByTagName("spiel");
- foreach ($spielNodes as $spiel) {
- // $heim = utf8_encode($spiel->getAttribute("heim"));
- // $gast = utf8_encode($spiel->getAttribute("gast"));
- $heim = $spiel->getAttribute("heim");
- $gast = $spiel->getAttribute("gast");
-
- $heimGewonneneSaetze = 0;
- $gastGewonneneSaetze = 0;
- $ergebnis_detailliert = "";
- $ergebnis_saetze = 0;
- // $satz =& $spiel->firstChild;
- // while ($satz != NULL) {
- $satzNodes =& $spiel->getElementsByTagName("satz");
- foreach ($satzNodes as $satz) {
- $heimPunkte = $satz->getAttribute("heim");
- $gastPunkte = $satz->getAttribute("gast");
- if ($heimPunkte > $gastPunkte)
- $heimGewonneneSaetze++;
- else if ($heimPunkte < $gastPunkte)
- $gastGewonneneSaetze++;
- if ($heimPunkte > 1 || $gastPunkte > 1) {
- if (!empty($ergebnis_detailliert))
- $ergebnis_detailliert .= " ";
- $ergebnis_detailliert .= $heimPunkte . ":" . $gastPunkte;
- $ergebnis_saetze++;
- }
- // $satz =& $satz->nextSibling;
- }
- if ($ergebnis_saetze > $ergebnis_saetze_maximum)
- $ergebnis_saetze_maximum = $ergebnis_saetze;
-
- $heimId = $meldungenIds[$heim];
- $gastId = $meldungenIds[$gast];
- $spielNr = $totalVorrunde + $i + 1;
- if ($heimGewonneneSaetze > $gastGewonneneSaetze)
- $ergebnis = 1;
- else if ($heimGewonneneSaetze < $gastGewonneneSaetze)
- $ergebnis = 2;
- else
- $ergebnis = 0;
-
- $query = "INSERT INTO #__sportsmanager_turnierspiel (turnierdisziplin_id, spiel_nummer, runde, rundenstufe, heim_meldung_id, gast_meldung_id, ergebnis, ergebnis_detailliert)"
- . "\n VALUES ('$id', '$spielNr', '$rundenNr', '1', '$heimId', '$gastId', '$ergebnis', " . (empty($ergebnis_detailliert) ? "null" : "'$ergebnis_detailliert'") . ");";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- // $spiel =& $spiel->nextSibling;
- }
- }
- if ($ergebnis_saetze_maximum > 0) {
- $query = "INSERT #__sportsmanager_turnier_rundenstufe"
- . "\n SET bezeichnung = '',"
- . "\n typ = null,"
- . "\n runden = null,"
- . "\n tabellenwertung = null,"
- . "\n saetze = " . ($ergebnis_saetze_maximum != 0 ? "'$ergebnis_saetze_maximum'" : "null") . ","
- . "\n tore = null,"
- . "\n spielfelder = null,"
- . "\n turnierdisziplin_id = '$id',"
- . "\n rundenstufe = '1'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
- }
- }
-
- foreach (array(1, 2, 3, 10) as $rundenstufe) {
- $query = "SELECT runde, COUNT(*) AS spiele"
- . "\n FROM #__sportsmanager_turnierspiel"
- . "\n WHERE turnierdisziplin_id = $id AND rundenstufe = $rundenstufe"
- . "\n GROUP BY runde"
- . "\n ORDER BY runde DESC";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $runden = $db->loadObjectList();
-
- if (count($runden) < 2
- || ($runden[0]->spiele != 1 && $runden[0]->spiele != 2)
- || $runden[1]->spiele != 2)
- continue;
- if (count($runden) >= 3
- && ($runden[2]->spiele > 4))
- continue;
- if (count($runden) >= 4
- && ($runden[2]->spiele != 4 || $runden[3]->spiele > 8))
- continue;
- if (count($runden) >= 5
- && ($runden[3]->spiele != 8 || $runden[4]->spiele > 16))
- continue;
-
- $query = "SELECT turnierspiel_id"
- . "\n FROM #__sportsmanager_turnierspiel"
- . "\n WHERE turnierdisziplin_id = $id AND rundenstufe = $rundenstufe AND runde = " . $runden[0]->runde
- . "\n ORDER BY turnierspiel_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $query = "UPDATE #__sportsmanager_turnierspiel"
- . "\n SET runde = '19999'"
- . "\n WHERE turnierspiel_id = '" . $rows[0]->turnierspiel_id . "'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if (count($rows) >= 2) {
- $query = "UPDATE #__sportsmanager_turnierspiel"
- . "\n SET runde = '19998'"
- . "\n WHERE turnierspiel_id = '" . $rows[1]->turnierspiel_id . "'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- for ($i = 1; $i < count($runden) && $i <= 6; $i++) {
- $query = "UPDATE #__sportsmanager_turnierspiel"
- . "\n SET runde = '" . (19998 - $i) . "'"
- . "\n WHERE turnierdisziplin_id = $id AND rundenstufe = $rundenstufe AND runde = " . $runden[$i]->runde;
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- wannGespieltAktualisieren();
- if ($elo_aktualisieren)
- eloAktualisieren($aktualisieren_ab_datum);
- ranglisteAktualisieren(0, $id);
- einstufungAktualisieren();
-
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id);
-}
-
-function adminEditTurnierdisziplinSpiel() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator())
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- $turnierdisziplinid = $jinput->get('turnierdisziplinid', 0, 'INT');
- $rundenstufe = $jinput->get('rundenstufe', 0, 'INT');
- if ($rundenstufe != 10 && $rundenstufe != 1 && $rundenstufe != 2 && $rundenstufe != 3) die("Wrong id!");
-
- // Sicherstellen, dass Turnierdisziplin zu Turnier gehört
- $query = "SELECT #__sportsmanager_turnierdisziplin.turnierdisziplin_id, disziplin, typ, turnierbezeichnung, turnierort, beginn, turnier_id FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) != 1) die("Wrong id!");
- $disziplin = $rows[0];
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator($disziplin->turnier_id))
- keinZugriff(true);
-
- if (empty($id))
- $row = null;
- else {
- $query = "SELECT * FROM #__sportsmanager_turnierspiel WHERE turnierspiel_id = $id AND turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $row = $rows[0];
- }
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_turnier_rundenstufe"
- . "\n WHERE turnierdisziplin_id = $turnierdisziplinid AND rundenstufe = $rundenstufe";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- $rundenstufen_details = count($rows) >= 1 ? $rows[0] : null;
-
- $query = "SELECT *"
- . ", (SELECT CONCAT_WS(', ', #__sportsmanager_spieler.nachname, #__sportsmanager_spieler.vorname, #__sportsmanager_turniermeldung_spieler_name.nachname, #__sportsmanager_turniermeldung_spieler_name.vorname) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1) AS name1"
- . ", (SELECT CONCAT_WS(', ', #__sportsmanager_spieler.nachname, #__sportsmanager_spieler.vorname, #__sportsmanager_turniermeldung_spieler_name.nachname, #__sportsmanager_turniermeldung_spieler_name.vorname) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 1, 1) AS name2"
- . ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), 0, 1) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1) AS verknuepft1"
- . ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), 0, 1) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 1, 1) AS verknuepft2"
- . "\n FROM #__sportsmanager_turniermeldung"
- . "\n WHERE turnierdisziplin_id = $turnierdisziplinid AND (rundenstufe = '$rundenstufe'" . ($rundenstufe != 0 ? " OR rundenstufe = 0" : "") . ")"
- . "\n ORDER BY rundenstufe, name1, name2";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $meldungen = $db->loadObjectList();
-
- /*
- $query = "SELECT turniermeldung_id, spieler_id, IF(ISNULL(spieler_id), #__sportsmanager_turniermeldung_spieler_name.nachname, #__sportsmanager_spieler.nachname) AS nachname, IF(ISNULL(spieler_id), #__sportsmanager_turniermeldung_spieler_name.vorname, #__sportsmanager_spieler.vorname) AS vorname, "
- . "\n IF(ISNULL(spieler_id), #__sportsmanager_turniermeldung_spieler_name.vereinsname, (SELECT #__sportsmanager_verein.vereinsname FROM #__sportsmanager_verein, #__sportsmanager_mitglied_von_verein WHERE #__sportsmanager_mitglied_von_verein.spieler_id = #__sportsmanager_spieler.spieler_id AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_verein.ausgetreten AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten LIMIT 1)) AS vereinsname"
- . "\n FROM #__sportsmanager_turniermeldung"
- . "\n INNER JOIN #__sportsmanager_turniermeldung_spieler USING (turniermeldung_id)"
- . "\n LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id)"
- . "\n LEFT JOIN #__sportsmanager_spieler USING (spieler_id)"
- . "\n WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery( $query );
- if (!$result = $db->execute()) { die($db->stderr(true)); }
- $meldungenSpieler = $db->loadObjectList();
-
- $meldungenSpielerNamen = array();
- foreach ($meldungenSpieler as $s) {
- if (!isset($meldungenSpielerNamen[$s->turniermeldung_id]))
- $meldungenSpielerNamen[$s->turniermeldung_id] = $s->nachname . ", " . $s->vorname;
- else
- $meldungenSpielerNamen[$s->turniermeldung_id] .= " / " . $s->nachname . ", " . $s->vorname;
- }
-
- asort($meldungenSpielerNamen);
-*/
- HTML_sportsmanager_admin::adminEditTurnierdisziplinSpiel($row, $disziplin, $rundenstufen_details, $meldungen, $rundenstufe);
-}
-
-function adminSaveTurnierdisziplinSpiel() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator())
- keinZugriff();
-
- $id = $jinput->get('id', 0, 'INT');
- $ergebnis = $jinput->get('ergebnis', 0, 'INT');
- $ergebnis_punkte_heim = $jinput->get('ergebnis_punkte_heim', array(), 'ARRAY');
- $ergebnis_punkte_gast = $jinput->get('ergebnis_punkte_gast', array(), 'ARRAY');
- $turnierdisziplinid = $jinput->get('turnierdisziplinid', 0, 'INT');
- $spiel_nummer = $jinput->get('spiel_nummer', 0, 'INT');
- $rundenstufe = $jinput->get('rundenstufe', 0, 'INT');
- if ($rundenstufe != 10 && $rundenstufe != 1 && $rundenstufe != 2 && $rundenstufe != 3) die("Wrong id!");
- $rundentyp = $jinput->get('rundentyp', -1, 'INT');
- $runde = max(min(abs($jinput->get('runde', 1, 'INT')), $rundentyp == -2 ? 99 : 9999), 1);
- $platzierung_ende = max(min(abs($jinput->get('platzierung_ende', 0, 'INT')), $runde + 99), 1);
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $turnierdisziplinid . '#sid' . $id);
-
- return;
- }
-
- // Sicherstellen, dass Turnierdisziplin zu Turnier gehört
- $query = "SELECT turnier_id FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) != 1) die("Wrong id!");
- $turnierdisziplin = $rows[0];
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator($turnierdisziplin->turnier_id))
- keinZugriff();
-
- $ergebnis_detailliert = "";
- $saetze_heim = 0;
- $saetze_gast = 0;
- for ($i = 0; $i < count($ergebnis_punkte_heim); $i++) {
- if (($ergebnis_punkte_heim[$i] == 0 || empty($ergebnis_punkte_heim[$i])) && ($ergebnis_punkte_gast[$i] == 0 || empty($ergebnis_punkte_gast[$i])))
- continue;
- if (!empty($ergebnis_detailliert))
- $ergebnis_detailliert .= " ";
- $punkte_heim = empty($ergebnis_punkte_heim[$i]) ? "0" : $ergebnis_punkte_heim[$i];
- $punkte_gast = empty($ergebnis_punkte_gast[$i]) ? "0" : $ergebnis_punkte_gast[$i];
- if ($punkte_heim > $punkte_gast)
- $saetze_heim++;
- else if ($punkte_gast > $punkte_heim)
- $saetze_gast++;
- $ergebnis_detailliert .= $punkte_heim . ":" . $punkte_gast;
- }
- if ($saetze_heim > 0 || $saetze_gast > 0)
- $ergebnis = $saetze_heim > $saetze_gast ? 1 : ($saetze_heim < $saetze_gast ? 2 : 0);
-
- if ($rundentyp >= 10000)
- $runde = $rundentyp;
- else if ($rundentyp == -2)
- $runde = 20000 + ((99 - abs($platzierung_ende - $runde)) * 100) + 99 - min($runde, $platzierung_ende);
- else if ($hauptrunde && $rundentyp == 0)
- $runde = 0;
-
- $gewinner_meldung_id = $jinput->get('gewinner_meldung_id', 0, 'INT');
- $verlierer_meldung_id = $jinput->get('verlierer_meldung_id', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_turnierdisziplin READ, #__sportsmanager_turnier READ, #__sportsmanager_turnierspiel WRITE";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT #__sportsmanager_turnierdisziplin.turnierdisziplin_id, disziplin, turnierbezeichnung, turnierort, beginn, elo_wertung FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $turnierdisziplin = $rows[0];
-
- $elo_aktualisieren = $turnierdisziplin->elo_wertung;
- $aktualisieren_ab_datum = !empty($turnierdisziplin->beginn) ? substr($turnierdisziplin->beginn, 0, 10) : null;
-
- if ($id == 0) {
- $query = "INSERT INTO #__sportsmanager_turnierspiel (turnierdisziplin_id, spiel_nummer, runde, rundenstufe, heim_meldung_id, gast_meldung_id, ergebnis, ergebnis_detailliert) VALUES ('$turnierdisziplinid', " . ($spiel_nummer != 0 ? "'$spiel_nummer'" : "NULL") . ", '$runde', '$rundenstufe', '$gewinner_meldung_id', '$verlierer_meldung_id', '$ergebnis', " . (empty($ergebnis_detailliert) ? "null" : "'$ergebnis_detailliert'") . ")";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
- }
- else {
- $query = "UPDATE #__sportsmanager_turnierspiel"
- . "\n SET spiel_nummer = " . ($spiel_nummer != 0 ? "'$spiel_nummer'" : "NULL") . ","
- . "\n runde = '$runde',"
- . "\n heim_meldung_id = '$gewinner_meldung_id',"
- . "\n gast_meldung_id = '$verlierer_meldung_id',"
- . "\n ergebnis = '$ergebnis',"
- . "\n ergebnis_detailliert = " . (empty($ergebnis_detailliert) ? "null" : "'$ergebnis_detailliert'")
- . "\n WHERE turnierspiel_id = $id AND turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- wannGespieltAktualisieren();
- if ($elo_aktualisieren) {
- eloAktualisieren($aktualisieren_ab_datum);
- einstufungAktualisieren();
- }
-
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $turnierdisziplinid . '#sid' . $id);
-}
-
-function adminRemoveTurnierdisziplinSpiel() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator())
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- $turnierdisziplinid = $jinput->get('turnierdisziplinid', 0, 'INT');
-
- // Sicherstellen, dass Turnierdisziplin zu Turnier gehört
- $query = "SELECT turnier_id FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) != 1) die("Wrong id!");
- $turnierdisziplin = $rows[0];
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator($turnierdisziplin->turnier_id))
- keinZugriff(true);
-
- $query = "LOCK TABLES #__sportsmanager_turnierdisziplin READ, #__sportsmanager_turnier READ, #__sportsmanager_turnierspiel WRITE";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT #__sportsmanager_turnierdisziplin.turnierdisziplin_id, disziplin, turnierbezeichnung, turnierort, beginn, elo_wertung FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $turnierdisziplin = $rows[0];
-
- $elo_aktualisieren = $turnierdisziplin->elo_wertung;
- $aktualisieren_ab_datum = !empty($turnierdisziplin->beginn) ? substr($turnierdisziplin->beginn, 0, 10) : null;
-
- $query = "DELETE FROM #__sportsmanager_turnierspiel WHERE turnierspiel_id = $id AND turnierdisziplin_id = $turnierdisziplinid;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($elo_aktualisieren) {
- eloAktualisieren($aktualisieren_ab_datum);
- einstufungAktualisieren();
- }
-
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $turnierdisziplinid);
-}
-
-function adminEditTurnierdisziplinRunde() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator())
- keinZugriff(true);
-
- $runde = $jinput->get('runde', 0, 'INT');
- $rundenstufe = $jinput->get('rundenstufe', 0, 'INT');
- if ($rundenstufe != 10 && $rundenstufe != 1 && $rundenstufe != 2 && $rundenstufe != 3) die("Wrong id!");
- $id = $jinput->get('id', 0, 'INT');
- $turnierdisziplinid = $jinput->get('turnierdisziplinid', 0, 'INT');
-
- // Sicherstellen, dass Turnierdisziplin zu Turnier gehört
- $query = "SELECT turnier_id FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $turnierdisziplin = $rows[0];
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator($turnierdisziplin->turnier_id))
- keinZugriff(true);
-
- $query = "SELECT #__sportsmanager_turnierdisziplin.turnierdisziplin_id, disziplin, turnierbezeichnung, turnierort, beginn FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $turnierdisziplin = $rows[0];
-
- HTML_sportsmanager_admin::adminEditTurnierdisziplinRunde($runde, $rundenstufe, $id, $turnierdisziplin);
-}
-
-function adminSaveTurnierdisziplinRunde() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator())
- keinZugriff();
-
- $id = $jinput->get('id', 0, 'INT');
- $turnierdisziplinid = $jinput->get('turnierdisziplinid', 0, 'INT');
- $runde_alt = $jinput->get('runde_alt', 0, 'INT');
- $rundenstufe = $jinput->get('rundenstufe', 0, 'INT');
- if ($rundenstufe != 10 && $rundenstufe != 1 && $rundenstufe != 2 && $rundenstufe != 3) die("Wrong id!");
- $rundentyp = $jinput->get('rundentyp', -1, 'INT');
- $runde = max(min(abs($jinput->get('runde', 1, 'INT')), $rundentyp == -2 ? 99 : 9999), 1);
- $platzierung_ende = max(min(abs($jinput->get('platzierung_ende', 0, 'INT')), $runde + 99), 1);
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $turnierdisziplinid . '#sid' . $id);
-
- return;
- }
-
- // Sicherstellen, dass Turnierdisziplin zu Turnier gehört
- $query = "SELECT turnier_id FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $turnierdisziplin = $rows[0];
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator($turnierdisziplin->turnier_id))
- keinZugriff();
-
- if ($rundentyp >= 10000)
- $runde = $rundentyp;
- else if ($rundentyp == -2)
- $runde = 20000 + ((99 - abs($platzierung_ende - $runde)) * 100) + 99 - min($runde, $platzierung_ende);
- else if ($runde_alt >= 0 && $rundentyp == 0)
- $runde = 0;
- if ($runde_alt < 0)
- $runde = -$runde;
-
- if ($runde != $runde_alt) {
- $query = "UPDATE #__sportsmanager_turnierspiel"
- . "\n SET runde = '$runde'"
- . "\n WHERE turnierdisziplin_id = $turnierdisziplinid AND runde = $runde_alt AND rundenstufe = $rundenstufe";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $turnierdisziplinid . '#sid' . $id);
-}
-
-function adminEditTurnierdisziplinMeldung() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator())
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- $turnierdisziplinid = $jinput->get('turnierdisziplinid', 0, 'INT');
- $weitere = $jinput->get('weitere', 0, 'INT');
- $rundenstufe = $jinput->get('rundenstufe', 0, 'INT');
- if ($rundenstufe != 0 && $rundenstufe != 20 && $rundenstufe != 10 && $rundenstufe != 1 && $rundenstufe != 2 && $rundenstufe != 3) die("Wrong id!");
-
- $query = "SELECT turnierdisziplin_id, disziplin, turnierbezeichnung, turnierort, beginn, typ, turnier_id FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $turnierdisziplin = $rows[0];
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator($turnierdisziplin->turnier_id))
- keinZugriff(true);
-
- $rundenstufen = array();
- $platzierungen = array(0 => "0", 1 => "0", 2 => "0", 3 => "0", 10 => "0", 20 => "0");
- if ($id == null) {
- $row = null;
- $meldung = null;
- $meldung_spieler = null;
-
- $query = "SELECT * FROM #__sportsmanager_turniermeldung WHERE turnierdisziplin_id = $turnierdisziplinid ORDER BY rundenstufe, platz DESC";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- if (count($rows) > 0) {
- array_push($rundenstufen, $rows[0]->rundenstufe);
- $platzierungen[$rows[0]->rundenstufe] = $rows[0]->platz;
- }
- }
- else {
- $query = "SELECT * FROM #__sportsmanager_turniermeldung WHERE turniermeldung_id = $id AND turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $meldung = $rows[0];
-
- if ($meldung->meldungsgruppe_id != null) {
- $query = "SELECT * FROM #__sportsmanager_turniermeldung WHERE turnierdisziplin_id = $meldung->turnierdisziplin_id AND meldungsgruppe_id = $meldung->meldungsgruppe_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- foreach ($rows as $row) {
- array_push($rundenstufen, $row->rundenstufe);
- $platzierungen[$row->rundenstufe] = $row->platz;
- }
- }
- else {
- array_push($rundenstufen, $meldung->rundenstufe);
- $platzierungen[$meldung->rundenstufe] = $meldung->platz;
- }
-
- $rundenstufe = $meldung->rundenstufe;
-
- $query = "SELECT spieler_id, IF(ISNULL(spieler_id), #__sportsmanager_turniermeldung_spieler_name.nachname, #__sportsmanager_spieler.nachname) AS nachname, IF(ISNULL(spieler_id), #__sportsmanager_turniermeldung_spieler_name.vorname, #__sportsmanager_spieler.vorname) AS vorname, "
- . "\n IF(ISNULL(spieler_id), #__sportsmanager_turniermeldung_spieler_name.vereinsname, (SELECT #__sportsmanager_verein.vereinsname FROM #__sportsmanager_verein, #__sportsmanager_mitglied_von_verein WHERE #__sportsmanager_mitglied_von_verein.spieler_id = #__sportsmanager_spieler.spieler_id AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_verein.ausgetreten AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten LIMIT 1)) AS vereinsname"
- . "\n FROM #__sportsmanager_turniermeldung_spieler"
- . "\n LEFT JOIN #__sportsmanager_spieler USING (spieler_id)"
- . "\n LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id)"
- . "\n WHERE turniermeldung_id = $meldung->turniermeldung_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $meldung_spieler = $db->loadObjectList();
- }
-
- $query = "SELECT DISTINCT spieler_id, vorname, nachname, spielernr"
- . "\n FROM #__sportsmanager_spieler"
- . "\n WHERE NOT ISNULL(aktueller_verein_id)"
- . "\n ORDER BY nachname, vorname";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spieler = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminEditTurnierdisziplinMeldung($meldung, $rundenstufe, $meldung_spieler, $turnierdisziplin, $spieler, $rundenstufen, $platzierungen, $weitere);
-}
-
-function adminSaveTurnierdisziplinMeldung() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator())
- keinZugriff();
-
- $id = $jinput->get('id', 0, 'INT');
- $turnierdisziplinid = $jinput->get('turnierdisziplinid', 0, 'INT');
- $spieler_1_id = $jinput->get('spieler_1_id', 0, 'INT');
- $spieler_1_nachname = $db->escape($jinput->get('spieler_1_nachname', '', 'RAW'));
- $spieler_1_vorname = $db->escape($jinput->get('spieler_1_vorname', '', 'RAW'));
- $spieler_1_verein = $db->escape($jinput->get('spieler_1_verein', '', 'RAW'));
- $spieler_2_id = $jinput->get('spieler_2_id', 0, 'INT');
- $spieler_2_nachname = $db->escape($jinput->get('spieler_2_nachname', '', 'RAW'));
- $spieler_2_vorname = $db->escape($jinput->get('spieler_2_vorname', '', 'RAW'));
- $spieler_2_verein = $db->escape($jinput->get('spieler_2_verein', '', 'RAW'));
- $weitere = $jinput->get('weitere', 0, 'INT');
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $turnierdisziplinid . '#mid' . $id);
-
- return;
- }
-
- $rundenstufen = $jinput->get('rundenstufen', array(), 'ARRAY');
- $platzierungen = $jinput->get('platzierungen', array(), 'ARRAY');
- $platzierungen = array(0 => $platzierungen[0], 1 => $platzierungen[1], 2 => $platzierungen[2], 3 => $platzierungen[3], 10 => $platzierungen[4], 20 => 0);
-
- $query = "SELECT turnier_id FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $turnierdisziplin = $rows[0];
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator($turnierdisziplin->turnier_id))
- keinZugriff(true);
-
- $query = "LOCK TABLES #__sportsmanager_turnierdisziplin READ, #__sportsmanager_spieler READ, #__sportsmanager_turniermeldung WRITE, #__sportsmanager_turniermeldung_spieler WRITE, #__sportsmanager_turniermeldung_spieler_name WRITE, #__sportsmanager_turnierspiel WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- /*
- if ($platz > 0 && ($spieler_1_id != 0 || $spieler_2_id != 0)) {
- $query = "SELECT COUNT(*) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_turniermeldung USING (turniermeldung_id) WHERE platz > 0 AND rundenstufe = $rundenstufe AND #__sportsmanager_turniermeldung.turniermeldung_id != $id AND turnierdisziplin_id = $turnierdisziplinid";
- if ($spieler_1_id != 0 && $spieler_2_id != 0)
- $query .= " AND (#__sportsmanager_turniermeldung_spieler.spieler_id = $spieler_1_id OR #__sportsmanager_turniermeldung_spieler.spieler_id = $spieler_2_id)";
- else if ($spieler_1_id != 0)
- $query .= " AND #__sportsmanager_turniermeldung_spieler.spieler_id = $spieler_1_id";
- else
- $query .= " AND #__sportsmanager_turniermeldung_spieler.spieler_id = $spieler_2_id";
- $db->setQuery( $query );
- if (!$result = $db->execute()) { die($db->stderr(true)); }
- if ($db->loadResult() > 0) {
- $query = "UNLOCK TABLES;";
- $db->setQuery( $query );
- if (!$result = $db->execute()) { die($db->stderr(true)); }
-
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $turnierdisziplinid, "Die Meldung wurde nicht gespeichert, da zu mindestens einem der Spieler bereits eine Platzierung bei einer anderen Meldung eingetragen ist.");
- }
- }
- */
-
- $query = "SELECT * FROM #__sportsmanager_turnierdisziplin WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $turnierdisziplin = $rows[0];
-
- $elo_aktualisieren = $turnierdisziplin->elo_wertung;
- $aktualisieren_ab_datum = !empty($turnierdisziplin->beginn) ? substr($turnierdisziplin->beginn, 0, 10) : null;
-
- if ($id == 0) {
- $rundenstufe = count($rundenstufen) > 0 ? $rundenstufen[0] : 0;
- $platz = $platzierungen[$rundenstufe];
-
- $query = "INSERT INTO #__sportsmanager_turniermeldung (turnierdisziplin_id, rundenstufe, platz)"
- . "\n VALUES ('$turnierdisziplinid', '$rundenstufe', " . ($platz != 0 ? "'$platz'" : "NULL") . ");";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $id = $db->insertid();
-
- $query = "INSERT INTO #__sportsmanager_turniermeldung_spieler (turniermeldung_id, spieler_id)"
- . "\n VALUES ('$id', " . ($spieler_1_id != 0 ? "'$spieler_1_id'" : "NULL") . ");";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $turniermeldung_spieler_id = $db->insertid();
-
- if ($spieler_1_id == 0) {
- $query = "INSERT INTO #__sportsmanager_turniermeldung_spieler_name (turniermeldung_spieler_id, nachname, vorname, vereinsname)"
- . "\n VALUES ($turniermeldung_spieler_id, '$spieler_1_nachname', '$spieler_1_vorname', '$spieler_1_verein');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- if ($turnierdisziplin->typ == 1) {
- $query = "INSERT INTO #__sportsmanager_turniermeldung_spieler (turniermeldung_id, spieler_id)"
- . "\n VALUES ('$id', " . ($spieler_2_id != 0 ? "'$spieler_2_id'" : "NULL") . ");";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $turniermeldung_spieler_id = $db->insertid();
-
- if ($spieler_2_id == 0) {
- $query = "INSERT INTO #__sportsmanager_turniermeldung_spieler_name (turniermeldung_spieler_id, nachname, vorname, vereinsname)"
- . "\n VALUES ($turniermeldung_spieler_id, '$spieler_2_nachname', '$spieler_2_vorname', '$spieler_2_verein');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
- else {
- $query = "SELECT * FROM #__sportsmanager_turniermeldung"
- . "\n WHERE turniermeldung_id = $id AND turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $meldung = $rows[0];
-
- $rundenstufe = $meldung->rundenstufe;
- $platz = $platzierungen[$rundenstufe];
-
- $query = "UPDATE #__sportsmanager_turniermeldung"
- . "\n SET platz = " . ($platz != 0 ? "'$platz'" : "NULL")
- . "\n WHERE turniermeldung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT * FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE turniermeldung_id = $id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- if ($rows[0]->spieler_id == 0 && $spieler_1_id == 0) {
- $query = "UPDATE #__sportsmanager_turniermeldung_spieler_name"
- . "\n SET nachname = '$spieler_1_nachname',"
- . "\n vorname = '$spieler_1_vorname',"
- . "\n vereinsname = '$spieler_1_verein'"
- . "\n WHERE turniermeldung_spieler_name_id = " . $rows[0]->turniermeldung_spieler_name_id;
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else if ($rows[0]->spieler_id == 0 && $spieler_1_id != 0) {
- $query = "DELETE FROM #__sportsmanager_turniermeldung_spieler_name"
- . "\n WHERE turniermeldung_spieler_name_id = " . $rows[0]->turniermeldung_spieler_name_id;
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else if ($rows[0]->spieler_id != 0 && $spieler_1_id == 0) {
- $query = "INSERT INTO #__sportsmanager_turniermeldung_spieler_name (turniermeldung_spieler_id, nachname, vorname, vereinsname)"
- . "\n VALUES (" . $rows[0]->turniermeldung_spieler_id . ", '$spieler_1_nachname', '$spieler_1_vorname', '$spieler_1_verein');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $query = "UPDATE #__sportsmanager_turniermeldung_spieler"
- . "\n SET spieler_id = " . ($spieler_1_id != 0 ? "'$spieler_1_id'" : "NULL")
- . "\n WHERE turniermeldung_spieler_id = " . $rows[0]->turniermeldung_spieler_id;
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($turnierdisziplin->typ == 1) {
- if ($rows[1]->spieler_id == 0 && $spieler_2_id == 0) {
- $query = "UPDATE #__sportsmanager_turniermeldung_spieler_name"
- . "\n SET nachname = '$spieler_2_nachname',"
- . "\n vorname = '$spieler_2_vorname',"
- . "\n vereinsname = '$spieler_2_verein'"
- . "\n WHERE turniermeldung_spieler_name_id = " . $rows[1]->turniermeldung_spieler_name_id;
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else if ($rows[1]->spieler_id == 0 && $spieler_2_id != 0) {
- $query = "DELETE FROM #__sportsmanager_turniermeldung_spieler_name"
- . "\n WHERE turniermeldung_spieler_name_id = " . $rows[1]->turniermeldung_spieler_name_id;
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else if ($rows[1]->spieler_id != 0 && $spieler_2_id == 0) {
- $query = "INSERT INTO #__sportsmanager_turniermeldung_spieler_name (turniermeldung_spieler_id, nachname, vorname, vereinsname)"
- . "\n VALUES (" . $rows[1]->turniermeldung_spieler_id . ", '$spieler_2_nachname', '$spieler_2_vorname', '$spieler_2_verein');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $query = "UPDATE #__sportsmanager_turniermeldung_spieler"
- . "\n SET spieler_id = " . ($spieler_2_id != 0 ? "'$spieler_2_id'" : "NULL")
- . "\n WHERE turniermeldung_spieler_id = " . $rows[1]->turniermeldung_spieler_id;
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
-
- meldungsgruppe_verknuepfen($id, $rundenstufen, $platzierungen);
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- wannGespieltAktualisieren();
- if ($elo_aktualisieren)
- eloAktualisieren($aktualisieren_ab_datum);
- ranglisteAktualisieren(0, $turnierdisziplinid);
- einstufungAktualisieren();
-
- if (!$weitere)
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $turnierdisziplinid . '#mid' . $id);
- else
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldung_edit&turnierdisziplinid=' . $turnierdisziplinid . '&id=' . $id . '&weitere=1');
-}
-
-function adminRemoveTurnierdisziplinMeldung() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator())
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- $turnierdisziplinid = $jinput->get('turnierdisziplinid', 0, 'INT');
-
- $query = "SELECT turnier_id FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $turnierdisziplin = $rows[0];
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator($turnierdisziplin->turnier_id))
- keinZugriff(true);
-
- $query = "LOCK TABLES #__sportsmanager_turniermeldung WRITE, #__sportsmanager_turniermeldung_spieler_name WRITE, #__sportsmanager_turniermeldung_spieler WRITE, #__sportsmanager_turnierspiel WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- // Sicherstellen, dass Meldung zur Turnierdisziplin und damit zum Turnier gehört
- $query = "SELECT * FROM #__sportsmanager_turniermeldung"
- . "\n WHERE turniermeldung_id = $id AND turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $meldung = $rows[0];
-
- meldungssgruppe_entfernen($id);
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- ranglisteAktualisieren(0, $turnierdisziplinid);
- einstufungAktualisieren();
-
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $turnierdisziplinid);
-}
-
-function adminVerknuepfenTurnierdisziplinMeldungForm() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator())
- keinZugriff(true);
-
- $turnierdisziplinid = $jinput->get('turnierdisziplinid', 0, 'INT');
-
- $query = "SELECT #__sportsmanager_turnierdisziplin.turnierdisziplin_id, typ, turnier_id, disziplin, turnierbezeichnung, turnierort, beginn FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) != 1) die("Wrong id!");
- $disziplin = $rows[0];
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator($disziplin->turnier_id))
- keinZugriff(true);
-
- $meldungen = array();
- foreach (array(0, 1, 2, 3, 10, 20) as $rundenstufe) {
- $query = "SELECT *"
- . ", (SELECT CONCAT_WS(', ', #__sportsmanager_spieler.nachname, #__sportsmanager_spieler.vorname, #__sportsmanager_turniermeldung_spieler_name.nachname, #__sportsmanager_turniermeldung_spieler_name.vorname) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1) AS name1"
- . ", (SELECT CONCAT_WS(', ', #__sportsmanager_spieler.nachname, #__sportsmanager_spieler.vorname, #__sportsmanager_turniermeldung_spieler_name.nachname, #__sportsmanager_turniermeldung_spieler_name.vorname) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 1, 1) AS name2"
- . ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), 0, 1) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1) AS verknuepft1"
- . ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), 0, 1) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 1, 1) AS verknuepft2"
- . ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), #__sportsmanager_turniermeldung_spieler_name.vereinsname, (SELECT #__sportsmanager_verein.vereinsname FROM #__sportsmanager_verein, #__sportsmanager_mitglied_von_verein WHERE #__sportsmanager_mitglied_von_verein.spieler_id = #__sportsmanager_spieler.spieler_id AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_verein.ausgetreten AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten LIMIT 1)) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 0, 1) AS vereinsname1"
- . ", (SELECT IF(ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id), #__sportsmanager_turniermeldung_spieler_name.vereinsname, (SELECT #__sportsmanager_verein.vereinsname FROM #__sportsmanager_verein, #__sportsmanager_mitglied_von_verein WHERE #__sportsmanager_mitglied_von_verein.spieler_id = #__sportsmanager_spieler.spieler_id AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_verein.ausgetreten AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten LIMIT 1)) FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_spieler USING (spieler_id) LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE #__sportsmanager_turniermeldung_spieler.turniermeldung_id = #__sportsmanager_turniermeldung.turniermeldung_id ORDER BY turniermeldung_spieler_id LIMIT 1, 1) AS vereinsname2"
- . "\n FROM #__sportsmanager_turniermeldung"
- . "\n WHERE turnierdisziplin_id = $turnierdisziplinid AND rundenstufe = '$rundenstufe'"
- . "\n ORDER BY platz, name1, name2";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $meldungen[$rundenstufe] = $db->loadObjectList();
- }
- HTML_sportsmanager_admin::adminVerknuepfenTurnierdisziplinMeldung($disziplin, $meldungen);
-}
-
-function adminVerknuepfenTurnierdisziplinMeldung() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator())
- keinZugriff();
-
- $ids = array();
- foreach (array(0, 1, 2, 3, 10, 20) as $rundenstufe)
- $ids[$rundenstufe] = $jinput->get('ids' . $rundenstufe, array(), 'ARRAY');
- $turnierdisziplinid = $jinput->get('turnierdisziplinid', 0, 'INT');
- if ($turnierdisziplinid == 0) die("Missing id!");
- $rundenstufen = $jinput->get('rundenstufen', array(), 'ARRAY');
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $turnierdisziplinid);
-
- return;
- }
-
- // Sicherstellen, dass Turnierdisziplin zu Turnier gehört
- $query = "SELECT turnier_id FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) != 1) die("Wrong id!");
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator($rows[0]->turnier_id))
- keinZugriff();
-
- $query = "LOCK TABLES #__sportsmanager_turnierdisziplin READ, #__sportsmanager_spieler READ, #__sportsmanager_turniermeldung WRITE, #__sportsmanager_turniermeldung_spieler WRITE, #__sportsmanager_turniermeldung_spieler_name WRITE, #__sportsmanager_turnierspiel WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- foreach (array(0, 1, 2, 3, 10, 20) as $rundenstufe) {
- foreach ($ids[$rundenstufe] as $meldung_id) {
- // Sicherstellen, dass Meldung zu Turnierdisziplin und damit zu Turnier gehört
- $query = "SELECT * FROM #__sportsmanager_turniermeldung WHERE turniermeldung_id = $meldung_id AND turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
-
- meldungsgruppe_erweitern($meldung_id, $rundenstufen);
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- ranglisteAktualisieren(0, $turnierdisziplinid);
- einstufungAktualisieren();
-
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $turnierdisziplinid);
-}
-
-function meldungsgruppe_erweitern($quelle_turniermeldung_id, $rundenstufen) {
- $db =& getDatabase();
-
- $query = "SELECT * FROM #__sportsmanager_turniermeldung"
- . "\n WHERE turniermeldung_id = $quelle_turniermeldung_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $quelle_meldung = $rows[0];
- $meldungsgruppe_id = $quelle_meldung->meldungsgruppe_id != null ? $quelle_meldung->meldungsgruppe_id : $quelle_turniermeldung_id;
-
- if ($quelle_meldung->meldungsgruppe_id != null) {
- $query = "SELECT DISTINCT rundenstufe FROM #__sportsmanager_turniermeldung"
- . "\n WHERE meldungsgruppe_id = $meldungsgruppe_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- foreach ($rows as $row) {
- if (!in_array($row->rundenstufe, $rundenstufen))
- array_push($rundenstufen, $row->rundenstufe);
- }
- }
- else {
- if (!in_array($quelle_meldung->rundenstufe, $rundenstufen))
- array_push($rundenstufen, $quelle_meldung->rundenstufe);
- }
-
- meldungsgruppe_verknuepfen($quelle_turniermeldung_id, $rundenstufen, null);
-}
-
-function meldungsgruppe_verknuepfen($quelle_turniermeldung_id, $rundenstufen, $platzierungen) {
- $db =& getDatabase();
-
- $query = "SELECT * FROM #__sportsmanager_turniermeldung"
- . "\n WHERE turniermeldung_id = $quelle_turniermeldung_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die("Wrong id!");
- $quelle_meldung = $rows[0];
- $meldungsgruppe_id = $quelle_meldung->meldungsgruppe_id != null ? $quelle_meldung->meldungsgruppe_id : $quelle_turniermeldung_id;
-
- $query = "SELECT * FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE turniermeldung_id = $quelle_turniermeldung_id ORDER BY turniermeldung_spieler_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $quelle_meldung_spieler = $db->loadObjectList();
-
- if ($quelle_meldung->meldungsgruppe_id == null && count($rundenstufen) > 1) {
- $query = "UPDATE #__sportsmanager_turniermeldung"
- . "\n SET meldungsgruppe_id = '$meldungsgruppe_id'"
- . "\n WHERE turniermeldung_id = $quelle_turniermeldung_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- foreach (array(0, 1, 2, 3, 10, 20) as $rundenstufe) {
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_turniermeldung"
- . "\n WHERE meldungsgruppe_id = '$meldungsgruppe_id' AND turnierdisziplin_id = '$quelle_meldung->turnierdisziplin_id' AND rundenstufe = '$rundenstufe'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- if (empty($rundenstufen) || !in_array($rundenstufe, $rundenstufen)) {
- if (count($rows) == 0)
- continue;
- $ziel_meldung = $rows[0];
-
- $query = "DELETE FROM #__sportsmanager_turnierspiel WHERE heim_meldung_id = $ziel_meldung->turniermeldung_id OR gast_meldung_id = $ziel_meldung->turniermeldung_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE #__sportsmanager_turniermeldung_spieler_name FROM #__sportsmanager_turniermeldung_spieler_name, #__sportsmanager_turniermeldung_spieler WHERE #__sportsmanager_turniermeldung_spieler_name.turniermeldung_spieler_id = #__sportsmanager_turniermeldung_spieler.turniermeldung_spieler_id AND turniermeldung_id = $ziel_meldung->turniermeldung_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_turniermeldung_spieler WHERE turniermeldung_id = $ziel_meldung->turniermeldung_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_turniermeldung WHERE turniermeldung_id = $ziel_meldung->turniermeldung_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else if ($quelle_meldung->rundenstufe == $rundenstufe) {
- continue;
- }
- else if (count($rows) == 0) {
- $platz = (empty($platzierungen) || !isset($platzierungen[$rundenstufe])) ? 0 : $platzierungen[$rundenstufe];
- $query = "INSERT INTO #__sportsmanager_turniermeldung (turnierdisziplin_id, meldungsgruppe_id, rundenstufe, platz)"
- . "\n VALUES ('$quelle_meldung->turnierdisziplin_id', " . (count($rundenstufen) > 1 ? "'$meldungsgruppe_id'" : "NULL") . ", '$rundenstufe', " . ($platz != 0 ? "'$platz'" : "NULL") . ");";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $ziel_turniermeldung_id = $db->insertid();
-
- for ($i = 0; $i < count($quelle_meldung_spieler); $i++) {
- $row = $quelle_meldung_spieler[$i];
- $query = "INSERT INTO #__sportsmanager_turniermeldung_spieler (turniermeldung_id, spieler_id)"
- . "\n VALUES ('$ziel_turniermeldung_id', " . ($row->spieler_id != null ? "'$row->spieler_id'" : "NULL") . ");";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $turniermeldung_spieler_id = $db->insertid();
-
- if ($row->spieler_id == null) {
- $query = "INSERT INTO #__sportsmanager_turniermeldung_spieler_name (turniermeldung_spieler_id, nachname, vorname, vereinsname)"
- . "\n VALUES ($turniermeldung_spieler_id, '" . $db->escape($row->nachname) . "', '" . $db->escape($row->vorname) . "', '" . $db->escape($row->vereinsname) . "');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
- else {
- $ziel_meldung = $rows[0];
- if (!empty($platzierungen)) {
- $platz = !isset($platzierungen[$rundenstufe]) ? 0 : $platzierungen[$rundenstufe];
- $query = "UPDATE #__sportsmanager_turniermeldung"
- . "\n SET platz = " . ($platz != 0 ? "'$platz'" : "NULL")
- . "\n WHERE turniermeldung_id = $ziel_meldung->turniermeldung_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $query = "SELECT * FROM #__sportsmanager_turniermeldung_spieler LEFT JOIN #__sportsmanager_turniermeldung_spieler_name USING (turniermeldung_spieler_id) WHERE turniermeldung_id = $ziel_meldung->turniermeldung_id ORDER BY turniermeldung_spieler_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $ziel_meldung_spieler = $db->loadObjectList();
- if (count($ziel_meldung_spieler) != count($quelle_meldung_spieler)) die("Wrong id!");
-
- for ($i = 0; $i < count($quelle_meldung_spieler); $i++) {
- $quelle_row = $quelle_meldung_spieler[$i];
- $ziel_row = $ziel_meldung_spieler[$i];
-
- $query = "UPDATE #__sportsmanager_turniermeldung_spieler"
- . "\n SET spieler_id = " . ($quelle_row->spieler_id != null ? "'$quelle_row->spieler_id'" : "NULL")
- . "\n WHERE turniermeldung_spieler_id = $ziel_row->turniermeldung_spieler_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if ($quelle_row->spieler_id == null && $ziel_row->spieler_id == null) {
- $query = "UPDATE #__sportsmanager_turniermeldung_spieler_name"
- . "\n SET nachname = '" . $db->escape($quelle_row->nachname) . "',"
- . "\n vorname = '" . $db->escape($quelle_row->vorname) . "',"
- . "\n vereinsname = '" . $db->escape($quelle_row->vereinsname) . "'"
- . "\n WHERE turniermeldung_spieler_name_id = $ziel_row->turniermeldung_spieler_name_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else if ($quelle_row->spieler_id == null && $ziel_row->spieler_id != null) {
- $query = "INSERT INTO #__sportsmanager_turniermeldung_spieler_name (turniermeldung_spieler_id, nachname, vorname, vereinsname)"
- . "\n VALUES ($ziel_row->turniermeldung_spieler_id, '" . $db->escape($quelle_row->nachname) . "', '" . $db->escape($quelle_row->vorname) . "', '" . $db->escape($quelle_row->vereinsname) . "');";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else if ($quelle_row->spieler_id != null && $ziel_row->spieler_id == null) {
- $query = "DELETE FROM #__sportsmanager_turniermeldung_spieler_name"
- . "\n WHERE turniermeldung_spieler_name_id = $ziel_row->turniermeldung_spieler_name_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
- }
- }
-
- $query = "SELECT COUNT(*)"
- . "\n FROM #__sportsmanager_turniermeldung"
- . "\n WHERE meldungsgruppe_id = $meldungsgruppe_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
-
- if ($n == 1) {
- $query = "UPDATE #__sportsmanager_turniermeldung"
- . "\n SET meldungsgruppe_id = NULL"
- . "\n WHERE meldungsgruppe_id = $meldungsgruppe_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-}
-
-function meldungssgruppe_entfernen($turniermeldung_id) {
- $db =& getDatabase();
-
- $query = "SELECT * FROM #__sportsmanager_turniermeldung"
- . "\n WHERE turniermeldung_id = $turniermeldung_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 0) die("Wrong id!");
- $meldung = $rows[0];
- $meldungsgruppe_id = $meldung->meldungsgruppe_id != null ? $meldung->meldungsgruppe_id : $turniermeldung_id;
-
- $query = "DELETE FROM #__sportsmanager_turnierspiel WHERE heim_meldung_id = $turniermeldung_id OR gast_meldung_id = $turniermeldung_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE #__sportsmanager_turniermeldung_spieler_name FROM #__sportsmanager_turniermeldung_spieler_name, #__sportsmanager_turniermeldung_spieler WHERE #__sportsmanager_turniermeldung_spieler_name.turniermeldung_spieler_id = #__sportsmanager_turniermeldung_spieler.turniermeldung_spieler_id AND turniermeldung_id = $turniermeldung_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_turniermeldung_spieler WHERE turniermeldung_id = $turniermeldung_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_turniermeldung WHERE turniermeldung_id = $turniermeldung_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT COUNT(*)"
- . "\n FROM #__sportsmanager_turniermeldung"
- . "\n WHERE meldungsgruppe_id = $meldungsgruppe_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $n = $db->loadResult();
-
- if ($n == 1) {
- $query = "UPDATE #__sportsmanager_turniermeldung"
- . "\n SET meldungsgruppe_id = NULL"
- . "\n WHERE meldungsgruppe_id = $meldungsgruppe_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-}
-
-function adminEditTurnierdisziplinRundenstufe() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator())
- keinZugriff(true);
-
- $turnierdisziplinid = $jinput->get('turnierdisziplinid', 0, 'INT');
- $rundenstufe = $jinput->get('rundenstufe', 0, 'INT');
- if ($rundenstufe != 10 && $rundenstufe != 1 && $rundenstufe != 2 && $rundenstufe != 3) die("Wrong id!");
-
- $query = "SELECT turnierdisziplin_id, disziplin, turnierbezeichnung, turnierort, beginn, typ, turnier_id FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $turnierdisziplin = $rows[0];
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator($turnierdisziplin->turnier_id))
- keinZugriff(true);
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_turnier_rundenstufe"
- . "\n WHERE turnierdisziplin_id = $turnierdisziplinid AND rundenstufe = $rundenstufe";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- $rundenstufen_details = count($rows) >= 1 ? $rows[0] : null;
-
- HTML_sportsmanager_admin::adminEditTurnierdisziplinRundenstufe($turnierdisziplin, $rundenstufe, $rundenstufen_details);
-}
-
-function adminSaveTurnierdisziplinRundenstufe() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator())
- keinZugriff();
-
- $turnierdisziplinid = $jinput->get('turnierdisziplinid', 0, 'INT');
- $rundenstufe = $jinput->get('rundenstufe', 0, 'INT');
- if ($rundenstufe != 10 && $rundenstufe != 1 && $rundenstufe != 2 && $rundenstufe != 3) die("Wrong id!");
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $turnierdisziplinid);
-
- return;
- }
-
- $bezeichnung = $db->escape($jinput->get('bezeichnung', '', 'RAW'));
- $typ = $jinput->get('typ', 0, 'INT');
- $runden = $jinput->get('runden', 0, 'INT');
- $tabellenwertung = $jinput->get('tabellenwertung', 0, 'INT');
- $saetze = $jinput->get('saetze', 0, 'INT');
- $tore = $jinput->get('tore', 0, 'INT');
- $spielfelder_erstes = $jinput->get('spielfelder_erstes', 0, 'INT');
- $spielfelder_letztes = $jinput->get('spielfelder_letztes', 0, 'INT');
-
- // Sicherstellen, dass Turnierdisziplin zum Turnier gehört
- $query = "SELECT turnier_id FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $turnierdisziplin = $rows[0];
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator($turnierdisziplin->turnier_id))
- keinZugriff();
-
- $query = "LOCK TABLES #__sportsmanager_turnierdisziplin READ, #__sportsmanager_turnier_rundenstufe WRITE, #__sportsmanager_turnierspiel WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT * FROM #__sportsmanager_turnierdisziplin WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $turnierdisziplin = $rows[0];
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_turnier_rundenstufe"
- . "\n WHERE turnierdisziplin_id = $turnierdisziplinid AND rundenstufe = $rundenstufe";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- $rundenstufen_details = count($rows) >= 1 ? $rows[0] : null;
-
- if ($rundenstufen_details == null) {
- $query = "INSERT #__sportsmanager_turnier_rundenstufe"
- . "\n SET bezeichnung = '$bezeichnung',"
- . "\n typ = " . ($typ != 0 ? "'$typ'" : "null") . ","
- . "\n runden = " . ($runden != 0 ? "'$runden'" : "null") . ","
- . "\n tabellenwertung = " . ($tabellenwertung != 0 ? "'$tabellenwertung'" : "null") . ","
- . "\n saetze = " . ($saetze != 0 ? "'$saetze'" : "null") . ","
- . "\n tore = " . ($tore != 0 ? "'$tore'" : "null") . ","
- . "\n spielfelder = null,"
- . "\n turnierdisziplin_id = '$turnierdisziplinid',"
- . "\n rundenstufe = '$rundenstufe'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else {
- $query = "UPDATE #__sportsmanager_turnier_rundenstufe"
- . "\n SET bezeichnung = '$bezeichnung',"
- . "\n typ = " . ($typ != 0 ? "'$typ'" : "null") . ","
- . "\n runden = " . ($runden != 0 ? "'$runden'" : "null") . ","
- . "\n tabellenwertung = " . ($tabellenwertung != 0 ? "'$tabellenwertung'" : "null") . ","
- . "\n saetze = " . ($saetze != 0 ? "'$saetze'" : "null") . ","
- . "\n tore = " . ($tore != 0 ? "'$tore'" : "null") . ","
- . "\n spielfelder = null"
- . "\n WHERE turnierdisziplin_id = $turnierdisziplinid AND rundenstufe = $rundenstufe";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- if (($rundenstufen_details->typ == null && $typ != 0) || ($rundenstufen_details->typ != null && $typ != 0 && $rundenstufen_details->typ != $typ)) {
- $query = "DELETE FROM #__sportsmanager_turnierspiel WHERE turnierdisziplin_id = $turnierdisziplinid AND rundenstufe = $rundenstufe;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- else if ($rundenstufen_details->saetze != null && $rundenstufen_details->saetze > $saetze) {
- $query = "UPDATE #__sportsmanager_turnierspiel"
- . "\n SET ergebnis_detailliert = null"
- . "\n WHERE turnierdisziplin_id = $turnierdisziplinid AND rundenstufe = $rundenstufe";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $turnierdisziplinid);
-}
-
-function adminRemoveTurnierdisziplinRundenstufe() {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator())
- keinZugriff();
-
- $turnierdisziplinid = $jinput->get('turnierdisziplinid', 0, 'INT');
- $rundenstufe = $jinput->get('rundenstufe', 0, 'INT');
- if ($rundenstufe != 10 && $rundenstufe != 1 && $rundenstufe != 2 && $rundenstufe != 3) die("Wrong id!");
-
- // Sicherstellen, dass Turnierdisziplin zum Turnier gehört
- $query = "SELECT turnier_id FROM #__sportsmanager_turnierdisziplin INNER JOIN #__sportsmanager_turnier USING (turnier_id) WHERE turnierdisziplin_id = $turnierdisziplinid";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $turnierdisziplin = $rows[0];
-
- if (!benutzerZugriff("turniere_aendern") && !benutzerTurnierModerator($turnierdisziplin->turnier_id))
- keinZugriff();
-
- $query = "DELETE FROM #__sportsmanager_turnier_rundenstufe"
- . "\n WHERE turnierdisziplin_id = $turnierdisziplinid AND rundenstufe = $rundenstufe";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $turnierdisziplinid);
-}
-
-function adminSpielerExportBilderForm() {
- $db =& getDatabase();
-
- $ansprechpartner_bilder_bearbeiten = einstellungswert("ansprechpartner_spielerdaten") == "1" || einstellungswert("ansprechpartner_spielerdaten") == "3";
-
- if (benutzerZugriff("spieler_aendern"))
- $beschraenkter_zugriff = 0;
- else if (benutzerVeranstalterModerator() && $ansprechpartner_bilder_bearbeiten)
- $beschraenkter_zugriff = 1;
- else
- keinZugriff(true);
-
- if (!class_exists("ZipArchive") && !JArchive::getAdapter('zip')) {
- redirectSportsManagerURL('&task=admin_spieler', "Es steht keine Methode zur ZIP-Kompression zur Verfügung.");
-
- return;
- }
-
- $query = "SELECT DISTINCT veranstalter_id, #__sportsmanager_veranstalter.*"
- . "\n FROM #__sportsmanager_veranstalter";
- if ($beschraenkter_zugriff == 1)
- $query .= "\n WHERE" . veranstalterFilter("veranstalter_id IN");
- $query .= "\n ORDER BY veranstalterbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstalter = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminSpielerExportBilder($veranstalter, $beschraenkter_zugriff);
-}
-
-function adminSpielerExportBilder() {
- $db =& getDatabase();
- global $sportsmanager_joomla_path;
- $jinput = JFactory::getApplication()->input;
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_spieler');
-
- return;
- }
-
- $ansprechpartner_bilder_bearbeiten = einstellungswert("ansprechpartner_spielerdaten") == "1" || einstellungswert("ansprechpartner_spielerdaten") == "3";
-
- if (benutzerZugriff("spieler_aendern"))
- $beschraenkter_zugriff = 0;
- else if (benutzerVeranstalterModerator() && $ansprechpartner_bilder_bearbeiten)
- $beschraenkter_zugriff = 1;
- else
- keinZugriff();
-
- setMinMemoryLimit('256M');
- if (!ini_get('safe_mode'))
- set_time_limit(300);
-
- $filter = $jinput->get('filter', 0, 'INT');
- $veranstalter_id = $jinput->get('veranstalter_id', 0, 'INT');
- if ($veranstalter_id != 0) {
- $query = "SELECT veranstalterbezeichnung FROM #__sportsmanager_veranstalter WHERE veranstalter_id = $veranstalter_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $veranstalter = $rows[0];
- }
- else
- $veranstalter = null;
-
- if ($beschraenkter_zugriff == 1) {
- $query = "SELECT DISTINCT veranstalter_id"
- . "\n FROM #__sportsmanager_veranstalter"
- . "\n WHERE veranstalter_id = $veranstalter_id" . ($beschraenkter_zugriff == 1 ? (" AND" . veranstalterFilter("veranstalter_id IN")) : "")
- . "\n ORDER BY veranstalterbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstalter = $db->loadObjectList();
-
- if (count($veranstalter) == 0)
- keinZugriff();
- }
-
- $query = "LOCK TABLES #__sportsmanager_spieler READ, #__sportsmanager_verein READ, #__sportsmanager_mitglied_von_verein READ;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $ziel_bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'export';
- if (!JFolder::exists($ziel_bilder_pfad) && !JFolder::create($ziel_bilder_pfad, 0777)) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_spieler', "Der Ordner 'images/sportsmanager/export' konnte nicht neu erstellt werden.");
-
- return;
- }
-
- $alte_bilder = JFolder::files($ziel_bilder_pfad);
- foreach ($alte_bilder as $fn) {
- if (!JFile::delete($ziel_bilder_pfad . DIRECTORY_SEPARATOR . $fn)) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_spieler', "Im Ordner 'images/sportsmanager/export' konnten nicht alle Dateien gelöscht werden.rstellt werden.");
-
- return;
- }
- }
-
- $query = "SELECT spieler_id, vorname, nachname, spielernr"
- . "\n FROM #__sportsmanager_spieler";
- if ($veranstalter_id != 0)
- $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND veranstalter_id = $veranstalter_id GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- $query .= "\n WHERE NOT ISNULL(aktueller_verein_id)";
- if ($filter != 0)
- $query .= " AND NOT bild_ausblenden";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $spieler = $db->loadObjectList();
-
- $anzahlSpieler = 0;
- foreach ($spieler as $s) {
- $pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'spieler' . DIRECTORY_SEPARATOR . $s->spieler_id . '.';
- if (JFile::exists($pfad . 'png'))
- $ext = "png";
- else if (JFile::exists($pfad . 'jpg'))
- $ext = "jpg";
- else
- continue;
-
- if (!JFile::copy($pfad . $ext, $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'export' . DIRECTORY_SEPARATOR . 'Spieler ' . utf8_decode(bereinigterDateiname($s->nachname . ", " . $s->vorname . (!empty($s->spielernr) ? (" (" . $s->spielernr . ")") : "") . '.' . $ext)))) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_spieler', "Ein Bild (" . $s->spieler_id . ") konnte nicht an die Zielposition kopiert werden.");
-
- return;
- }
- $anzahlSpieler++;
- }
-
- /*
- $neue_bilder = JFolder::files($ziel_bilder_pfad);
- $zip_dateien = array();
- foreach($neue_bilder as $fn)
- array_push($zip_dateien, $ziel_bilder_pfad.DIRECTORY_SEPARATOR.$fn);
- $file = tempnam("tmp", "tar");
- $zip = JArchive::create( $file, $zip_dateien, 'zip', '', $ziel_bilder_pfad );;
-*/
-
- if (class_exists("ZipArchive")) {
- $file = tempnam("tmp", "zip");
- $zip = new ZipArchive();
- $zip->open($file, ZipArchive::OVERWRITE);
- $neue_bilder = JFolder::files($ziel_bilder_pfad);
- foreach ($neue_bilder as $fn)
- $zip->addFile($ziel_bilder_pfad . DIRECTORY_SEPARATOR . $fn, iconv("ISO-8859-1", "CP437", $fn));
- $zip->close();
- }
- else if (JArchive::getAdapter('zip')) {
- $zip_adapter = &JArchive::getAdapter('zip');
- $neue_bilder = JFolder::files($ziel_bilder_pfad);
- $zip_dateien = array();
- foreach ($neue_bilder as $fn) {
- $data = JFile::read($ziel_bilder_pfad . DIRECTORY_SEPARATOR . $fn);
- array_push($zip_dateien, array('name' => iconv("ISO-8859-1", "CP437", $fn), 'data' => $data));
- }
- $file = tempnam("tmp", "zip");
- $zip_adapter->create($file, $zip_dateien, array());
- }
- else {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_spieler', "Es steht keine Methode zur ZIP-Kompression zur Verfügung.");
-
- return;
- }
-
- foreach ($neue_bilder as $fn)
- JFile::delete($ziel_bilder_pfad . DIRECTORY_SEPARATOR . $fn);
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $dateiname = "Spielerbilder" . ($veranstalter != null ? (" " . utf8_decode($veranstalter->veranstalterbezeichnung)) : "") . ".zip";
- $dateiname = bereinigterDateiname($dateiname);
- ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind
- header("Content-Type: application/zip");
- header("Content-Length: " . filesize($file));
- header("Content-Disposition: attachment; filename=\"" . $dateiname . "\"");
- readfile($file);
- unlink($file);
- die();
-}
-
-function adminVereineExportBilderForm() {
- $db =& getDatabase();
-
- if (!benutzerZugriff("vereine_aendern"))
- keinZugriff(true);
-
- if (!class_exists("ZipArchive") && !JArchive::getAdapter('zip')) {
- redirectSportsManagerURL('&task=admin_vereine', "Es steht keine Methode zur ZIP-Kompression zur Verfügung.");
-
- return;
- }
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_veranstalter"
- . "\n ORDER BY veranstalterbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstalter = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminVereineExportBilder($veranstalter);
-}
-
-function adminVereineExportBilder() {
- $db =& getDatabase();
- global $sportsmanager_joomla_path;
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("vereine_aendern"))
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_vereine');
-
- return;
- }
-
- setMinMemoryLimit('256M');
- if (!ini_get('safe_mode'))
- set_time_limit(300);
-
- $veranstalter_id = $jinput->get('veranstalter_id', 0, 'INT');
- if ($veranstalter_id != 0) {
- $query = "SELECT veranstalterbezeichnung FROM #__sportsmanager_veranstalter WHERE veranstalter_id = $veranstalter_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) die ("Wrong id");
- $veranstalter = $rows[0];
- }
- else
- $veranstalter = null;
-
- $query = "LOCK TABLES #__sportsmanager_verein READ, #__sportsmanager_mitglied_von_verein READ;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $ziel_bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'export';
- if (!JFolder::exists($ziel_bilder_pfad) && !JFolder::create($ziel_bilder_pfad, 0777)) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_vereine', "Der Ordner 'images/sportsmanager/export' konnte nicht neu erstellt werden.");
-
- return;
- }
-
- $alte_bilder = JFolder::files($ziel_bilder_pfad);
- foreach ($alte_bilder as $fn) {
- if (!JFile::delete($ziel_bilder_pfad . DIRECTORY_SEPARATOR . $fn)) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_vereine', "Im Ordner 'images/sportsmanager/export' konnten nicht alle Dateien gelöscht werden.");
-
- return;
- }
- }
-
- $query = "SELECT verein_id, vereinsname"
- . "\n FROM #__sportsmanager_verein"
- . "\n WHERE NOT ausgetreten";
- if ($veranstalter_id != 0)
- $query .= " AND veranstalter_id = $veranstalter_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $vereine = $db->loadObjectList();
-
- $anzahlVereine = 0;
- foreach ($vereine as $v) {
- $pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'vereine' . DIRECTORY_SEPARATOR . $v->verein_id . '.';
- if (JFile::exists($pfad . 'png'))
- $ext = "png";
- else if (JFile::exists($pfad . 'jpg'))
- $ext = "jpg";
- else
- continue;
-
- if (!JFile::copy($pfad . $ext, $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'export' . DIRECTORY_SEPARATOR . 'Verein ' . utf8_decode(bereinigterDateiname($v->vereinsname)) . '.' . $ext)) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_vereine', "Ein Bild (" . $v->verein_id . ") konnte nicht an die Zielposition kopiert werden.");
-
- return;
- }
- $anzahlVereine++;
- }
- /*
- $neue_bilder = JFolder::files($ziel_bilder_pfad);
- $zip_dateien = array();
- foreach($neue_bilder as $fn)
- array_push($zip_dateien, $ziel_bilder_pfad.DIRECTORY_SEPARATOR.$fn);
- $file = tempnam("tmp", "tar");
- $zip = JArchive::create( $file, $zip_dateien, 'zip', '', $ziel_bilder_pfad );;
-*/
-
- if (class_exists("ZipArchive")) {
- $file = tempnam("tmp", "zip");
- $zip = new ZipArchive();
- $zip->open($file, ZipArchive::OVERWRITE);
- $neue_bilder = JFolder::files($ziel_bilder_pfad);
- foreach ($neue_bilder as $fn)
- $zip->addFile($ziel_bilder_pfad . DIRECTORY_SEPARATOR . $fn, iconv("ISO-8859-1", "CP437", $fn));
- $zip->close();
- }
- else if (JArchive::getAdapter('zip')) {
- $zip_adapter = &JArchive::getAdapter('zip');
- $neue_bilder = JFolder::files($ziel_bilder_pfad);
- $zip_dateien = array();
- foreach ($neue_bilder as $fn) {
- $data = JFile::read($ziel_bilder_pfad . DIRECTORY_SEPARATOR . $fn);
- array_push($zip_dateien, array('name' => iconv("ISO-8859-1", "CP437", $fn), 'data' => $data));
- }
- $file = tempnam("tmp", "zip");
- $zip_adapter->create($file, $zip_dateien, array());
- }
- else {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_vereine', "Es steht keine Methode zur ZIP-Kompression zur Verfügung.");
-
- return;
- }
-
- foreach ($neue_bilder as $fn)
- JFile::delete($ziel_bilder_pfad . DIRECTORY_SEPARATOR . $fn);
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $dateiname = "Vereinsbilder" . ($veranstalter != null ? (" " . utf8_decode($veranstalter->veranstalterbezeichnung)) : "") . ".zip";
- $dateiname = bereinigterDateiname($dateiname);
- ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind
- header("Content-Type: application/zip");
- header("Content-Length: " . filesize($file));
- header("Content-Disposition: attachment; filename=\"" . $dateiname . "\"");
- readfile($file);
- unlink($file);
- die();
-}
-
-function adminSpielerImportBilderForm() {
- $db =& getDatabase();
-
- $ansprechpartner_bilder_bearbeiten = einstellungswert("ansprechpartner_spielerdaten") == "1" || einstellungswert("ansprechpartner_spielerdaten") == "3";
-
- if (benutzerZugriff("spieler_aendern"))
- $beschraenkter_zugriff = 0;
- else if (benutzerVeranstalterModerator() && $ansprechpartner_bilder_bearbeiten)
- $beschraenkter_zugriff = 1;
- else
- keinZugriff(true);
-
- if (!class_exists("ZipArchive") && !JArchive::getAdapter('zip')) {
- redirectSportsManagerURL('&task=admin_spieler', "Es steht keine Methode zur ZIP-Kompression zur Verfügung.");
-
- return;
- }
-
- $query = "SELECT DISTINCT veranstalter_id, #__sportsmanager_veranstalter.*"
- . "\n FROM #__sportsmanager_veranstalter";
- if ($beschraenkter_zugriff == 1)
- $query .= "\n WHERE" . veranstalterFilter("veranstalter_id IN");
- $query .= "\n ORDER BY veranstalterbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstalter = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminSpielerImportBilder($veranstalter, $beschraenkter_zugriff);
-}
-
-function adminSpielerImportBilder() {
- $db =& getDatabase();
- global $_FILES;
- global $sportsmanager_joomla_path;
- $jinput = JFactory::getApplication()->input;
-
- $ansprechpartner_bilder_bearbeiten = einstellungswert("ansprechpartner_spielerdaten") == "1" || einstellungswert("ansprechpartner_spielerdaten") == "3";
-
- if (benutzerZugriff("spieler_aendern"))
- $beschraenkter_zugriff = 0;
- else if (benutzerVeranstalterModerator() && $ansprechpartner_bilder_bearbeiten)
- $beschraenkter_zugriff = 1;
- else
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_spieler');
-
- return;
- }
-
- $veranstalter_id = $jinput->get('veranstalter_id', 0, 'INT');
- $bilder_beibehalten = $jinput->get('bilder_beibehalten', 0, 'INT');
-
- if ($beschraenkter_zugriff == 1) {
- $query = "SELECT DISTINCT veranstalter_id"
- . "\n FROM #__sportsmanager_veranstalter"
- . "\n WHERE veranstalter_id = $veranstalter_id" . ($beschraenkter_zugriff == 1 ? (" AND" . veranstalterFilter("veranstalter_id IN")) : "")
- . "\n ORDER BY veranstalterbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstalter = $db->loadObjectList();
-
- if (count($veranstalter) == 0)
- keinZugriff();
- }
-
- $query = "LOCK TABLES #__sportsmanager_spieler READ, #__sportsmanager_verein READ, #__sportsmanager_mitglied_von_verein READ;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $quelle_bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'import';
- if (!JFolder::exists($quelle_bilder_pfad) && !JFolder::create($quelle_bilder_pfad, 0777)) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_spieler', "Der Ordner 'images/sportsmanager/import' existiert nicht.");
-
- return;
- }
-
- $alte_bilder = JFolder::files($quelle_bilder_pfad);
- foreach ($alte_bilder as $fn) {
- if (!JFile::delete($quelle_bilder_pfad . DIRECTORY_SEPARATOR . $fn)) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_spieler', "Im Ordner 'images/sportsmanager/import' konnten nicht alle Dateien gelöscht werden.");
-
- return;
- }
- }
- $alte_bilder = JFolder::folders($quelle_bilder_pfad);
- foreach ($alte_bilder as $fn) {
- if (!JFolder::delete($quelle_bilder_pfad . DIRECTORY_SEPARATOR . $fn)) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_spieler', "Im Ordner 'images/sportsmanager/import' konnten nicht alle Dateien gelöscht werden.");
-
- return;
- }
- }
-
- if (class_exists("ZipArchive")) {
- $zip = new ZipArchive;
- if (empty($_FILES["bilder_archiv"]["tmp_name"]) || !is_uploaded_file($_FILES["bilder_archiv"]["tmp_name"]) || $zip->open($_FILES["bilder_archiv"]["tmp_name"]) !== true) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_spieler', "Die ZIP-Datei kann nicht geöffnet werden (ZA).");
-
- return;
- }
-
- for ($i = 0; $i < $zip->numFiles; $i++) {
- $filename = $zip->getNameIndex($i);
- $fileinfo = pathinfo($filename);
- copy("zip://" . $_FILES["bilder_archiv"]["tmp_name"] . "#" . $filename, $quelle_bilder_pfad . DIRECTORY_SEPARATOR . $fileinfo['basename']);
- }
- $zip->close();
- }
- else if (JArchive::getAdapter('zip')) {
- $zip_adapter = &JArchive::getAdapter('zip');
- if (empty($_FILES["bilder_archiv"]["tmp_name"]) || !is_uploaded_file($_FILES["bilder_archiv"]["tmp_name"]) || !$zip_adapter->extract($_FILES["bilder_archiv"]["tmp_name"], $quelle_bilder_pfad)) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_spieler', "Die ZIP-Datei kann nicht geöffnet werden (Z).");
-
- return;
- }
- }
- else {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_spieler', "Es steht keine Methode zur ZIP-Kompression zur Verfügung.");
-
- return;
- }
-
- if (!ini_get('safe_mode'))
- set_time_limit(300);
-
- $anzahlSpieler = 0;
- $ziel_bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'spieler';
- $neue_bilder_alle = JFolder::files($quelle_bilder_pfad, '(?i)(\.jpg|\.png)$');
- foreach ($neue_bilder_alle as $index => $bild) {
- $ppos = strrpos($bild, ".");
- if ($ppos === false)
- continue;
- $len = strlen($bild);
- $ext = strtolower(substr($bild, $ppos + 1));
- if ($ext != "jpg" && $ext != "png")
- continue;
- $lpos = strrpos($bild, "(");
- $rpos = $lpos !== false ? strpos($bild, ")", $lpos + 1) : false;
- $spielernr = "";
- $name = "";
- if ($lpos !== false && $rpos !== false && $rpos - $lpos > 2) {
- $spielernr = substr($bild, $lpos + 1, $rpos - $lpos - 1);
- }
- else if (strpos($bild, ",") !== false) {
- $name = substr($bild, 0, $len - 4);
- }
- else
- $spielernr = substr($bild, 0, $len - 4);
-
- if (!empty($spielernr)) {
- // Spielernummern und -namen ermitteln
- $query = "SELECT spieler_id"
- . "\n FROM #__sportsmanager_spieler";
- if ($veranstalter_id != 0)
- $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND veranstalter_id = $veranstalter_id GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- $query .= "\n WHERE NOT ISNULL(aktueller_verein_id) AND STRCMP(spielernr, '" . $db->escape($spielernr) . "') = 0"
- . "\n LIMIT 2";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) != 1)
- continue;
- $spieler_id = $rows[0]->spieler_id;
- }
- else if (!empty($name)) {
- // Spielernummern und -namen ermitteln
- $query = "SELECT spieler_id"
- . "\n FROM #__sportsmanager_spieler";
- if ($veranstalter_id != 0)
- $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND veranstalter_id = $veranstalter_id GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
- $query .= "\n WHERE NOT ISNULL(aktueller_verein_id) AND STRCMP(CONCAT_WS(', ', nachname, vorname), '" . $db->escape($name) . "') = 0"
- . "\n LIMIT 2";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) != 1)
- continue;
- $spieler_id = $rows[0]->spieler_id;
- }
- else
- continue;
-
- if ($bilder_beibehalten) {
- $ziel_pfad = $ziel_bilder_pfad . DIRECTORY_SEPARATOR . $spieler_id . '.';
- if (JFile::exists($ziel_pfad . 'jpg') || JFile::exists($ziel_pfad . 'png'))
- continue;
- }
-
- $quelle_pfad = $quelle_bilder_pfad . DIRECTORY_SEPARATOR . $bild;
- $ziel_pfad = $ziel_bilder_pfad . DIRECTORY_SEPARATOR . $spieler_id . '.' . $ext;
- if (!files_identical($quelle_pfad, $ziel_pfad)) {
- bildLoeschen("spieler", $spieler_id);
- if (!bildKopierenAngepasst($quelle_pfad, $ziel_pfad, 180, 240, 1))
- continue;
- }
- $anzahlSpieler++;
- unset($neue_bilder_alle[$index]);
- }
-
- $alte_bilder = JFolder::files($quelle_bilder_pfad);
- foreach ($alte_bilder as $fn)
- JFile::delete($quelle_bilder_pfad . DIRECTORY_SEPARATOR . $fn);
- $alte_bilder = JFolder::folders($quelle_bilder_pfad);
- foreach ($alte_bilder as $fn)
- JFolder::delete($quelle_bilder_pfad . DIRECTORY_SEPARATOR . $fn);
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- sort($neue_bilder_alle);
-
- HTML_sportsmanager_admin::adminSpielerImportBilderBericht($anzahlSpieler, $neue_bilder_alle);
-}
-
-function adminVereineImportBilderForm() {
- $db =& getDatabase();
-
- if (!benutzerZugriff("vereine_aendern"))
- keinZugriff(true);
-
- if (!class_exists("ZipArchive") && !JArchive::getAdapter('zip')) {
- redirectSportsManagerURL('&task=admin_vereine', "Es steht keine Methode zur ZIP-Kompression zur Verfügung.");
-
- return;
- }
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_veranstalter"
- . "\n ORDER BY veranstalterbezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstalter = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminVereineImportBilder($veranstalter);
-}
-
-function adminVereineImportBilder() {
- $db =& getDatabase();
- global $_FILES;
- global $sportsmanager_joomla_path;
- $jinput = JFactory::getApplication()->input;
-
- if (!benutzerZugriff("vereine_aendern"))
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=admin_vereine');
-
- return;
- }
-
- $veranstalter_id = $jinput->get('veranstalter_id', 0, 'INT');
- $bilder_beibehalten = $jinput->get('bilder_beibehalten', 0, 'INT');
-
- $query = "LOCK TABLES #__sportsmanager_spieler READ, #__sportsmanager_verein READ, #__sportsmanager_mitglied_von_verein READ;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $quelle_bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'import';
- if (!JFolder::exists($quelle_bilder_pfad) && !JFolder::create($quelle_bilder_pfad, 0777)) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_uebersicht', "Der Ordner 'images/sportsmanager/import' existiert nicht.");
-
- return;
- }
-
- $alte_bilder = JFolder::files($quelle_bilder_pfad);
- foreach ($alte_bilder as $fn) {
- if (!JFile::delete($quelle_bilder_pfad . DIRECTORY_SEPARATOR . $fn)) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_vereine', "Im Ordner 'images/sportsmanager/import' konnten nicht alle Dateien gelöscht werden.");
-
- return;
- }
- }
- $alte_bilder = JFolder::folders($quelle_bilder_pfad);
- foreach ($alte_bilder as $fn) {
- if (!JFolder::delete($quelle_bilder_pfad . DIRECTORY_SEPARATOR . $fn)) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_uebersicht', "Im Ordner 'images/sportsmanager/import' konnten nicht alle Dateien gelöscht werden.");
-
- return;
- }
- }
-
- if (class_exists("ZipArchive")) {
- $zip = new ZipArchive;
- if (empty($_FILES["bilder_archiv"]["tmp_name"]) || !is_uploaded_file($_FILES["bilder_archiv"]["tmp_name"]) || $zip->open($_FILES["bilder_archiv"]["tmp_name"]) !== true) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_vereine', "Die ZIP-Datei kann nicht geöffnet werden (ZA).");
-
- return;
- }
-
- for ($i = 0; $i < $zip->numFiles; $i++) {
- $filename = $zip->getNameIndex($i);
- $fileinfo = pathinfo($filename);
- copy("zip://" . $_FILES["bilder_archiv"]["tmp_name"] . "#" . $filename, $quelle_bilder_pfad . DIRECTORY_SEPARATOR . $fileinfo['basename']);
- }
- $zip->close();
- }
- else if (JArchive::getAdapter('zip')) {
- $zip_adapter = &JArchive::getAdapter('zip');
- if (empty($_FILES["bilder_archiv"]["tmp_name"]) || !is_uploaded_file($_FILES["bilder_archiv"]["tmp_name"]) || !$zip_adapter->extract($_FILES["bilder_archiv"]["tmp_name"], $quelle_bilder_pfad)) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_uebersicht', "Die ZIP-Datei kann nicht geöffnet werden (Z).");
-
- return;
- }
- }
- else {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- redirectSportsManagerURL('&task=admin_vereine', "Es steht keine Methode zur ZIP-Kompression zur Verfügung.");
-
- return;
- }
-
- if (!ini_get('safe_mode'))
- set_time_limit(300);
-
- $anzahlVereine = 0;
- $ziel_bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'vereine';
- $neue_bilder_alle = JFolder::files($quelle_bilder_pfad, '(?i)(\.jpg|\.png)$');
- foreach ($neue_bilder_alle as $index => $bild) {
- $ppos = strrpos($bild, ".");
- if ($ppos === false)
- continue;
- $len = strlen($bild);
- $ext = strtolower(substr($bild, $ppos + 1));
- if ($ext != "jpg" && $ext != "png")
- continue;
- if (substr($bild, 0, 7) != "Verein ")
- continue;
- $name = substr($bild, 7, $len - 11);
- if (empty($name))
- continue;
-
- $query = "SELECT verein_id"
- . "\n FROM #__sportsmanager_verein"
- . "\n WHERE NOT ausgetreten AND STRCMP(vereinsname, '" . $db->escape($name) . "') = 0";
- if ($veranstalter_id != 0)
- $query .= " AND veranstalter_id = $veranstalter_id";
- $query .= "\n LIMIT 2";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) != 1)
- continue;
- $verein_id = $rows[0]->verein_id;
-
- if ($bilder_beibehalten) {
- $ziel_pfad = $ziel_bilder_pfad . DIRECTORY_SEPARATOR . $verein_id . '.';
- if (JFile::exists($ziel_pfad . 'jpg') || JFile::exists($ziel_pfad . 'png'))
- continue;
- }
-
- $quelle_pfad = $quelle_bilder_pfad . DIRECTORY_SEPARATOR . $bild;
- $ziel_pfad = $ziel_bilder_pfad . DIRECTORY_SEPARATOR . $verein_id . '.' . $ext;
- if (!files_identical($quelle_pfad, $ziel_pfad)) {
- bildLoeschen("vereine", $verein_id);
- if (!bildKopierenAngepasst($quelle_pfad, $ziel_pfad, 240, 240, 0))
- continue;
- }
- $anzahlVereine++;
- unset($neue_bilder_alle[$index]);
- }
-
- $alte_bilder = JFolder::files($quelle_bilder_pfad);
- foreach ($alte_bilder as $fn)
- JFile::delete($quelle_bilder_pfad . DIRECTORY_SEPARATOR . $fn);
- $alte_bilder = JFolder::folders($quelle_bilder_pfad);
- foreach ($alte_bilder as $fn)
- JFolder::delete($quelle_bilder_pfad . DIRECTORY_SEPARATOR . $fn);
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- sort($neue_bilder_alle);
-
- HTML_sportsmanager_admin::adminVereineImportBilderBericht($anzahlVereine, $neue_bilder_alle);
-}
-
-function adminTermine($admin_uebersicht) {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (benutzerZugriff("termine_aendern"))
- $zugriffsebene = 2;
- else if (einstellungswert("termine_beantragen") == "1" && !JFactory::getUser()->guest && !isExternalDatabase())
- $zugriffsebene = 1;
- else
- $zugriffsebene = 0;
-
- $filter_jahr = $jinput->get('filter_jahr', 0, 'INT');
- if (empty($filter_jahr))
- $filter_jahr = date('Y');
- $filter_veranstaltung = $jinput->get('filter_veranstaltung', '', 'RAW');
- $filter_zusatz = $jinput->get('filter_zusatz', '', 'RAW');
- $filter_land = $jinput->get('filter_land', '', 'RAW');
-
- $query = "SELECT DISTINCT YEAR(erster_tag) AS jahr"
- . "\n FROM #__sportsmanager_termin"
- . "\n ORDER BY erster_tag DESC";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $jahre = $db->loadObjectList();
-
- $jahr_gefunden = false;
- foreach ($jahre as $jahr) {
- if ($jahr->jahr == $filter_jahr) {
- $jahr_gefunden = true;
- break;
- }
- }
- if (!$jahr_gefunden && !empty($jahre))
- $filter_jahr = $jahre[0]->jahr;
-
- $query = "SELECT *, DATEDIFF(erster_tag, NOW()) AS datumsdifferenz, GROUP_CONCAT(zusatz ORDER BY zusatz SEPARATOR ', ') AS zusaetze"
- . "\n FROM #__sportsmanager_termin"
- . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)"
- . "\n LEFT JOIN #__sportsmanager_termin_zusatz USING (termin_id)"
- . "\n WHERE YEAR(erster_tag) = '$filter_jahr' AND status = 0 AND (typ = 0 OR typ = 1)";
- if (!empty($filter_veranstaltung))
- $query .= " AND bezeichnung = '" . $db->escape($filter_veranstaltung) . "'";
- if (!empty($filter_zusatz))
- $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) . "'";
- $query .= "\n GROUP BY termin_id"
- . "\n ORDER BY erster_tag, bezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $termine = $db->loadObjectList();
-
- $query = "SELECT termin_id, termin_symbol_id"
- . "\n FROM #__sportsmanager_termin"
- . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)"
- . "\n INNER JOIN #__sportsmanager_termin_symbolanzeige USING (termin_id)"
- . "\n WHERE YEAR(erster_tag) = '$filter_jahr' AND status = 0 AND (typ = 0 OR typ = 1)"
- . "\n ORDER BY termin_symbolanzeige_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $terminsymbole = $db->loadObjectList();
-
- $termineSymbole = array();
- foreach ($terminsymbole as $termin) {
- $termin_id = $termin->termin_id;
- $termin_symbol_id = $termin->termin_symbol_id;
- if (!isset($termineSymbole[$termin_id]))
- $termineSymbole[$termin_id] = array();
- array_push($termineSymbole[$termin_id], $termin_symbol_id);
- }
-
- $query = "SELECT COUNT(*)"
- . "\n FROM #__sportsmanager_termin_aktion"
- . "\n WHERE status = 2";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $anzahl_beantragte_termine = $db->loadResult();
-
- $query = "SELECT bezeichnung"
- . "\n FROM #__sportsmanager_termin"
- . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)"
- . "\n INNER JOIN #__sportsmanager_termin_bezeichnung USING (bezeichnung)"
- . "\n WHERE YEAR(erster_tag) = '$filter_jahr' AND status = 0 AND (typ = 0 OR typ = 1)"
- . "\n GROUP BY bezeichnung"
- . "\n ORDER BY bezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $veranstaltungen = $db->loadObjectList();
-
- $query = "SELECT bezeichnungszusatz, titel"
- . "\n FROM #__sportsmanager_termin"
- . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)"
- . "\n INNER JOIN #__sportsmanager_termin_zusatz USING (termin_id)"
- . "\n INNER JOIN #__sportsmanager_termin_bezeichnungszusatz ON bezeichnungszusatz = zusatz"
- . "\n WHERE YEAR(erster_tag) = '$filter_jahr' AND status = 0 AND (typ = 0 OR typ = 1)"
- . "\n GROUP BY bezeichnungszusatz"
- . "\n ORDER BY IF(titel = '', bezeichnungszusatz, titel)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $zusaetze = $db->loadObjectList();
-
- $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 GROUP BY land"
- . "\n ORDER BY land";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $laender = $db->loadObjectList();
-
- if (isJson()) {
- JSON_sportsmanager::JSON($termine);
- } 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());
-
- if (!$admin_uebersicht) {
- administrationFooter();
- }
- }
-}
-
-function adminEditTermin($admin_uebersicht) {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (benutzerZugriff("termine_aendern"))
- $zugriffsebene = 2;
- else if (einstellungswert("termine_beantragen") == "1" && !JFactory::getUser()->guest && !isExternalDatabase())
- $zugriffsebene = 1;
- else
- $zugriffsebene = 0;
-
- if ($zugriffsebene == 0)
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- $uebersicht = $jinput->get('uebersicht', 0, 'INT');
- $ueberarbeiten = $jinput->get('ueberarbeiten', 0, 'INT');
- $nur_beantragte = $jinput->get('nur_beantragte', 0, 'INT');
-
- if (empty($id)) {
- $termin = null;
- $terminsymbolanzeige = null;
- }
- else {
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_termin"
- . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)"
- . "\n WHERE termin_id = $id" . ($zugriffsebene != 2 ? " AND status = 0" : " AND (status = 0 OR status = 2)") . " AND (typ = 0 OR typ = 1)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) {
- redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . ($uebersicht ? 'termine' : 'termine_verlauf') . ($nur_beantragte ? '&nur_beantragte=1' : ''), "Der bisherige Termin existiert nicht mehr.");
-
- return;
- }
- $termin = $rows[0];
-
- $query = "SELECT termin_symbol_id"
- . "\n FROM #__sportsmanager_termin"
- . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)"
- . "\n INNER JOIN #__sportsmanager_termin_symbolanzeige USING (termin_id)"
- . "\n WHERE termin_id = $termin->termin_id"
- . "\n ORDER BY termin_symbolanzeige_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $terminsymbolanzeige = $db->loadObjectList();
- }
-
- $query = "SELECT termin_symbol_id, symboltitel, status"
- . "\n FROM #__sportsmanager_termin_symbol"
- . "\n ORDER BY status DESC, symboltitel";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $terminsymbole = $db->loadObjectList();
-
- $benachrichtigung_email = "";
- if (empty($id)) {
- $aktion_user =& JFactory::getUser();
- if (!empty($aktion_user->id) && !empty($aktion_user->email)) {
- $benachrichtigung_email = $aktion_user->email;
- }
- }
- else {
- $benachrichtigung_email = $termin->benachrichtigung_email;
- }
-
- $query = "SELECT * FROM #__sportsmanager_termin_bezeichnung ORDER BY bezeichnung";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $bezeichnungen = $db->loadObjectList();
-
- if (!empty($id)) {
- $bezeichnung_vorauswahl = null;
- }
- else {
- // Häufigste Bezeichnung suchen
- $query = "SELECT bezeichnung"
- . "\n FROM #__sportsmanager_termin"
- . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)"
- . "\n WHERE DATEDIFF(erster_tag, CURDATE()) >= -365 AND status = 0 AND (typ = 0 OR typ = 1)"
- . "\n GROUP BY bezeichnung"
- . "\n ORDER BY COUNT(*) DESC"
- . "\n LIMIT 1";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- $bezeichnung_vorauswahl = count($rows) > 0 ? $rows[0]->bezeichnung : null;
- }
-
- if (empty($id)) {
- $zusaetze = null;
- }
- else {
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_termin_zusatz"
- . "\n LEFT JOIN #__sportsmanager_termin_bezeichnungszusatz ON zusatz = bezeichnungszusatz"
- . "\n WHERE termin_id = $id AND ISNULL(termin_bezeichnungszusatz_id)"
- . "\n ORDER BY zusatz";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $zusaetze = $db->loadObjectList();
- }
-
- if (empty($id)) {
- $query = "SELECT *, NULL AS termin_zusatz_id"
- . "\n FROM #__sportsmanager_termin_bezeichnungszusatz"
- . "\n ORDER BY bezeichnungszusatz";
- }
- else {
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_termin_bezeichnungszusatz"
- . "\n LEFT JOIN #__sportsmanager_termin_zusatz ON termin_id = $id AND bezeichnungszusatz = zusatz"
- . "\n ORDER BY bezeichnungszusatz";
- }
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $bezeichnungszusaetze = $db->loadObjectList();
-
- $query = "SELECT * FROM #__sportsmanager_termin_bundesland ORDER BY bundesland";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $bundeslaender = $db->loadObjectList();
-
- $query = "SELECT * FROM #__sportsmanager_termin_land ORDER BY land";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $laender = $db->loadObjectList();
-
- HTML_sportsmanager_admin::adminEditTermin($termin, $terminsymbolanzeige, $terminsymbole, $benachrichtigung_email, $bezeichnungen, $zusaetze, $bezeichnungszusaetze, $bundeslaender, $laender, $zugriffsebene, $admin_uebersicht, $bezeichnung_vorauswahl, $uebersicht, $ueberarbeiten, $nur_beantragte);
-}
-
-function adminSaveTermin($admin_uebersicht) {
- $db =& getDatabase();
- global $_FILES;
- global $sportsmanager_joomla_path;
- $jinput = JFactory::getApplication()->input;
-
- if (benutzerZugriff("termine_aendern"))
- $zugriffsebene = 2;
- else if (einstellungswert("termine_beantragen") == "1" && !JFactory::getUser()->guest && !isExternalDatabase())
- $zugriffsebene = 1;
- else
- $zugriffsebene = 0;
-
- if ($zugriffsebene == 0 || isExternalDatabase())
- keinZugriff();
-
- $uebersicht = $jinput->get('uebersicht', 0, 'INT');
- $nur_beantragte = $jinput->get('nur_beantragte', 0, 'INT');
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . ($uebersicht ? 'termine' : 'termine_verlauf') . ($nur_beantragte ? '&nur_beantragte=1' : ''));
-
- return;
- }
-
- $id = $jinput->get('id', 0, 'INT');
- $vorhandener_termin = !empty($id);
- $erster_tag = normalisiertesDatum(sprintf("%04d-%02d-%02d", $jinput->get('erster_tag_jahr', 2000, 'INT'), $jinput->get('erster_tag_monat', 1, 'INT'), $jinput->get('erster_tag_tag', 1, 'INT')));
- $mehrtaegig = $jinput->get('mehrtaegig', 0, 'INT');
- if (!$mehrtaegig)
- $letzter_tag = $erster_tag;
- else
- $letzter_tag = normalisiertesDatum(sprintf("%04d-%02d-%02d", $jinput->get('letzter_tag_jahr', 2000, 'INT'), $jinput->get('letzter_tag_monat', 1, 'INT'), $jinput->get('letzter_tag_tag', 1, 'INT')));
- if (empty($erster_tag) || empty($letzter_tag)) die("Wrong date!");
- $bezeichnung = $db->escape(trim($jinput->get('bezeichnung', '', 'RAW')));
- $bezeichnungszusaetze = $jinput->get('bezeichnungszusaetze', array(), 'ARRAY');
- $bezeichnungszusatz_benutzerdefiniert = trim($jinput->get('bezeichnungszusatz_benutzerdefiniert', '', 'RAW'));
- if (!empty($bezeichnungszusatz_benutzerdefiniert))
- array_push($bezeichnungszusaetze, $bezeichnungszusatz_benutzerdefiniert);
- $ort = $db->escape(trim($jinput->get('ort', '', 'RAW')));
- $land = $db->escape(trim($jinput->get('land', '', 'RAW')));
- $beschreibung = $db->escape(trim($jinput->get('beschreibung', '', 'RAW')));
- $info = $jinput->get('info', 0, 'INT');
- $url = $info == 0 ? $db->escape(trim($jinput->get('url', '', 'RAW'))) : '';
- $email = $db->escape(trim($jinput->get('email', '', 'RAW')));
- $ergebnisse_url = $db->escape(trim($jinput->get('ergebnisse_url', '', 'RAW')));
- $bestaetigt = $jinput->get('bestaetigt', 0, 'INT');
- $kommentar = $db->escape(trim($jinput->get('kommentar', '', 'RAW')));
- $ueberarbeiten = $jinput->get('ueberarbeiten', 0, 'INT');
- $ergebnisse_live = $jinput->get('ergebnisse_live', 0, 'INT');
- $benachrichtigung_email = $db->escape(trim(str_replace(';', ',', $jinput->get('benachrichtigung_email', '', 'RAW'))));
-
- // Sicherstellen, dass Überarbeitenaktionen nur durchgeführt werden wenn tatsächlich ein bestehender Termin dahinter steht und der Benutzer Moderator ist
- if ($ueberarbeiten && (empty($id) || $zugriffsebene != 2))
- die ("Wrong id");
-
- $query = "LOCK TABLES #__sportsmanager_termin WRITE, #__sportsmanager_termin_aktion WRITE, #__sportsmanager_termin_zusatz WRITE, #__sportsmanager_termin_symbolanzeige WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $termin_bezug_id = 0;
- if (!empty($id)) {
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_termin"
- . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)"
- . "\n WHERE termin_id = $id" . ($zugriffsebene != 2 ? " AND status = 0" : " AND (status = 0 OR status = 2)") . " AND (typ = 0 OR typ = 1)";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . ($uebersicht ? 'termine' : 'termine_verlauf'), "Der bisherige Termin existiert nicht mehr.");
- }
- $termin = $rows[0];
- $termin_bezug_id = $termin->termin_bezug_id;
- }
-
- $query = "INSERT #__sportsmanager_termin"
- . "\n SET termin_bezug_id = '$termin_bezug_id',"
- . "\n erster_tag = '$erster_tag',"
- . "\n letzter_tag = '$letzter_tag',"
- . "\n bezeichnung = '$bezeichnung',"
- . "\n beschreibung = '$beschreibung',"
- . "\n ort = '$ort',"
- . "\n land = '$land',"
- . "\n url = '$url',"
- . "\n email = '$email',"
- . "\n ergebnisse_url = '$ergebnisse_url',"
- . "\n ergebnisse_live = '$ergebnisse_live',"
- . "\n bestaetigt = '$bestaetigt'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $neuer_termin_id = $db->insertid();
-
- foreach ($bezeichnungszusaetze as $bezeichnungszusatz) {
- $query = "INSERT #__sportsmanager_termin_zusatz"
- . "\n SET termin_id = $neuer_termin_id,"
- . "\n zusatz = '" . $db->escape($bezeichnungszusatz) . "'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- for ($i = 0; $i <= 5; $i++) {
- $symbol_id = JRequest::getInt('symbol_id_' . $i, 0);
- if ($symbol_id != 0) {
- $query = "INSERT #__sportsmanager_termin_symbolanzeige"
- . "\n SET termin_id = $neuer_termin_id,"
- . "\n termin_symbol_id = $symbol_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
- }
-
- if (!$vorhandener_termin) {
- $query = "UPDATE #__sportsmanager_termin"
- . "\n SET termin_bezug_id = $neuer_termin_id"
- . "\n WHERE termin_id = $neuer_termin_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'termine';
- $dokument_kopieren_gescheitert = 0;
- $info_dokument = $_FILES['info_dokument'];
- if ($info == 1 && !empty($id)) {
- $dokumente = JFolder::files($bilder_pfad, '^' . $id . ' ');
- if (empty($dokumente)) {
- $dokument_kopieren_gescheitert = 2;
- }
- else {
- $info_dokument_dateiname = substr($dokumente[0], strlen((string) $id) + 1);
- $quelle_pfad = $bilder_pfad . DIRECTORY_SEPARATOR . $dokumente[0];
- $ziel_pfad = $bilder_pfad . DIRECTORY_SEPARATOR . $neuer_termin_id . " " . $info_dokument_dateiname;
- if (!JFile::copy($quelle_pfad, $ziel_pfad))
- $dokument_kopieren_gescheitert = 2;
- }
- }
- else if ($info == 2 && isset($info_dokument) && !$info_dokument['error']) {
- $info_dokument_dateiname = JFile::makeSafe($info_dokument["name"]);
- if ($info_dokument["size"] > 8388608) {
- $dokument_kopieren_gescheitert = 1;
- }
- else {
- $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'termine';
- $ziel_pfad = $bilder_pfad . DIRECTORY_SEPARATOR . $neuer_termin_id . " " . $info_dokument_dateiname;
- if (!JFile::upload($info_dokument["tmp_name"], $ziel_pfad))
- $dokument_kopieren_gescheitert = 2;
- }
- }
-
- if (!empty($dokument_kopieren_gescheitert)) {
- $query = "DELETE FROM #__sportsmanager_termin_symbolanzeige WHERE termin_id = $neuer_termin_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_termin_zusatz WHERE termin_id = $neuer_termin_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "DELETE FROM #__sportsmanager_termin WHERE termin_id = $neuer_termin_id;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine', "Der Termin wurde nicht erstellt weil der Anhang " . ($dokument_kopieren_gescheitert == 1 ? "zu groß ist." : "nicht kopiert werden konnte."));
-
- return;
- }
-
- if ($vorhandener_termin && $zugriffsebene != 1) {
- $query = "SELECT DISTINCT termin_id"
- . "\n FROM #__sportsmanager_termin_aktion"
- . "\n INNER JOIN #__sportsmanager_termin USING (termin_id)"
- . "\n WHERE termin_bezug_id = $termin_bezug_id AND " . ($ueberarbeiten ? "(status = 0 OR termin_id = $id)" : "status = 0") . ";";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'termine';
- foreach ($rows as $row) {
- $dokumente = JFolder::files($bilder_pfad, '^' . $row->termin_id . ' ');
- foreach ($dokumente as $dokument)
- JFile::delete($bilder_pfad . DIRECTORY_SEPARATOR . $dokument);
- }
-
- $query = "UPDATE #__sportsmanager_termin_aktion"
- . "\n INNER JOIN #__sportsmanager_termin USING (termin_id)"
- . "\n SET status = 1"
- . "\n WHERE termin_bezug_id = $termin_bezug_id AND " . ($ueberarbeiten ? "(status = 0 OR termin_id = $id)" : "status = 0") . ";";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $user_id = JFactory::getUser()->id;
- $query = "INSERT #__sportsmanager_termin_aktion"
- . "\n SET termin_id = $neuer_termin_id,"
- . "\n typ = '" . ($vorhandener_termin ? 1 : 0) . "'," // 0: Hinzufügen, 1: Ändern, 2: Entfernen
- . "\n benachrichtigung_email = '$benachrichtigung_email',"
- . "\n aktion_user_id = '" . ($ueberarbeiten ? $termin->aktion_user_id : $user_id) . "',"
- . "\n aktion_zeitpunkt = " . ($ueberarbeiten ? ("'$termin->aktion_zeitpunkt'") : "NOW()") . ","
- . "\n aktion_kommentar = '" . ($ueberarbeiten ? $db->escape($termin->aktion_kommentar) : $kommentar) . "',"
- . "\n moderation_user_id = " . ($zugriffsebene != 1 ? "'$user_id'" : "NULL") . ","
- . "\n moderation_zeitpunkt = " . ($zugriffsebene != 1 ? "NOW()" : "NULL") . ","
- . "\n moderation_kommentar = '" . ($ueberarbeiten ? $kommentar : "") . "',"
- . "\n status = " . ($zugriffsebene != 1 ? "0" : "2"); // 0: Akzeptiert, 1: Archiviert, 2: Beantragt, 3: Abgelehnt
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $termin_aktion_id = $db->insertid();
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- termineEmailBenachrichtigung($termin_aktion_id, $ueberarbeiten);
-
- if ($zugriffsebene == 1) {
- HTML_sportsmanager_admin::adminTermineBeantragtBestaetigung($admin_uebersicht);
- }
- else {
- redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . ($uebersicht ? 'termine' : 'termine_verlauf') . ($nur_beantragte ? '&nur_beantragte=1' : ''));
- }
-}
-
-function adminRemoveTerminForm($admin_uebersicht) {
- $db =& getDatabase();
- $jinput = JFactory::getApplication()->input;
-
- if (benutzerZugriff("termine_aendern"))
- $zugriffsebene = 2;
- else if (einstellungswert("termine_beantragen") == "1" && !JFactory::getUser()->guest && !isExternalDatabase())
- $zugriffsebene = 1;
- else
- $zugriffsebene = 0;
-
- if ($zugriffsebene == 0 || isExternalDatabase())
- keinZugriff(true);
-
- $id = $jinput->get('id', 0, 'INT');
- $nur_beantragte = $jinput->get('nur_beantragte', 0, 'INT');
-
- $query = "SELECT #__sportsmanager_termin.*, #__sportsmanager_termin_aktion.*, GROUP_CONCAT(zusatz ORDER BY zusatz SEPARATOR ', ') AS zusaetze"
- . "\n FROM #__sportsmanager_termin"
- . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)"
- . "\n LEFT JOIN #__sportsmanager_termin_zusatz USING (termin_id)"
- . "\n WHERE termin_id = $id AND status = 0 AND (typ = 0 OR typ = 1)"
- . "\n GROUP BY #__sportsmanager_termin_aktion.termin_aktion_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) {
- redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine', "Der bisherige Termin existiert nicht mehr.");
- }
- $terminaktion = $rows[0];
-
- HTML_sportsmanager_admin::adminRemoveTermin($terminaktion, $nur_beantragte, $zugriffsebene, $admin_uebersicht);
-}
-
-function adminRemoveTermin($admin_uebersicht) {
- $db =& getDatabase();
- global $sportsmanager_joomla_path;
- $jinput = JFactory::getApplication()->input;
-
- if (benutzerZugriff("termine_aendern"))
- $zugriffsebene = 2;
- else if (einstellungswert("termine_beantragen") == "1" && !JFactory::getUser()->guest && !isExternalDatabase())
- $zugriffsebene = 1;
- else
- $zugriffsebene = 0;
-
- if ($zugriffsebene == 0 || isExternalDatabase())
- keinZugriff();
-
- if ($jinput->get('cancel', false, 'BOOL')) {
- redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine');
-
- return;
- }
-
- $id = $jinput->get('id', 0, 'INT');
- $kommentar = $db->escape(trim($jinput->get('kommentar', '', 'RAW')));
-
- $query = "LOCK TABLES #__sportsmanager_termin WRITE, #__sportsmanager_termin_aktion WRITE;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- $query = "SELECT *"
- . "\n FROM #__sportsmanager_termin_aktion"
- . "\n INNER JOIN #__sportsmanager_termin USING (termin_id)"
- . "\n WHERE termin_id = $id AND status = 0 AND (typ = 0 OR typ = 1);";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) {
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine', "Der bisherige Termin existiert nicht mehr.");
- }
- $termin = $rows[0];
- $termin_bezug_id = $termin->termin_bezug_id;
-
- if ($zugriffsebene != 1) {
- $query = "SELECT DISTINCT termin_id"
- . "\n FROM #__sportsmanager_termin_aktion"
- . "\n INNER JOIN #__sportsmanager_termin USING (termin_id)"
- . "\n WHERE termin_bezug_id = $termin_bezug_id AND status = 0;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
-
- $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'termine';
- foreach ($rows as $row) {
- $dokumente = JFolder::files($bilder_pfad, '^' . $row->termin_id . ' ');
- foreach ($dokumente as $dokument)
- JFile::delete($bilder_pfad . DIRECTORY_SEPARATOR . $dokument);
- }
-
- $query = "UPDATE #__sportsmanager_termin_aktion"
- . "\n INNER JOIN #__sportsmanager_termin USING (termin_id)"
- . "\n SET status = 1"
- . "\n WHERE termin_bezug_id = $termin_bezug_id AND status = 0;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- }
-
- $user_id = JFactory::getUser()->id;
- $query = "INSERT #__sportsmanager_termin_aktion"
- . "\n SET termin_id = $id,"
- . "\n typ = '2'," // 0: Hinzufügen, 1: Ändern, 2: Entfernen
- . "\n aktion_user_id = '$user_id',"
- . "\n aktion_zeitpunkt = NOW(),"
- . "\n aktion_kommentar = '$kommentar',"
- . "\n moderation_user_id = " . ($zugriffsebene != 1 ? "'$user_id'" : "NULL") . ","
- . "\n moderation_zeitpunkt = " . ($zugriffsebene != 1 ? "NOW()" : "NULL") . ","
- . "\n moderation_kommentar = '',"
- . "\n status = " . ($zugriffsebene != 1 ? "0" : "2"); // 0: Akzeptiert, 1: Archiviert, 2: Beantragt, 3: Abgelehnt
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $termin_aktion_id = $db->insertid();
-
- $query = "UNLOCK TABLES;";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
-
- termineEmailBenachrichtigung($termin_aktion_id);
-
- if ($zugriffsebene == 1) {
- HTML_sportsmanager_admin::adminTermineBeantragtBestaetigung($admin_uebersicht);
- }
- else {
- redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine');
- }
-}
-
-// $aktion = 0: Beantragt, 1: ...
-function termineEmailBenachrichtigung($termin_aktion_id, $ueberarbeiten = false) {
- $db =& getDatabase();
- $app = &JFactory::getApplication();
-
- $query = "SELECT #__sportsmanager_termin.*, #__sportsmanager_termin_aktion.*, aktion_user.name AS aktion_user_name, aktion_user.email AS aktion_user_email, moderation_user.name AS moderation_user_name, moderation_user.email AS moderation_user_email, GROUP_CONCAT(zusatz ORDER BY zusatz SEPARATOR ', ') AS zusaetze"
- . "\n FROM #__sportsmanager_termin"
- . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)"
- . "\n LEFT JOIN #__sportsmanager_termin_zusatz USING (termin_id)"
- . "\n LEFT JOIN #__users AS aktion_user ON aktion_user_id = aktion_user.id"
- . "\n LEFT JOIN #__users AS moderation_user ON moderation_user_id = moderation_user.id"
- . "\n WHERE termin_aktion_id = $termin_aktion_id"
- . "\n GROUP BY #__sportsmanager_termin.termin_id";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- if (count($rows) < 1) return false;
- $terminaktion = $rows[0];
-
- $benachrichtigung_moderatoren_informieren = array();
- $benachrichtigung_moderatoren_aendern = array();
- $query = "SELECT DISTINCT email, IF(EXISTS(SELECT * FROM #__sportsmanager_moderator_zugriff AS m2 WHERE zugriff = 'termine_aendern' AND m2.moderator_id = #__sportsmanager_moderator_zugriff.moderator_id), 1, 0) AS termine_aendern"
- . "\n FROM #__sportsmanager_moderator"
- . "\n INNER JOIN #__sportsmanager_moderator_zugriff USING (moderator_id)"
- . "\n INNER JOIN #__users ON moderator_user_id = id"
- . "\n WHERE zugriff = 'termine_benachrichtigung'";
- $db->setQuery($query);
- if (!$result = $db->execute()) {
- die($db->stderr(true));
- }
- $rows = $db->loadObjectList();
- foreach ($rows as $row) {
- if ($row->termine_aendern)
- array_push($benachrichtigung_moderatoren_aendern, $row->email);
- else
- array_push($benachrichtigung_moderatoren_informieren, $row->email);
- }
-
- $benachrichtigung_benutzer = array();
- $aktion_user =& JFactory::getUser($terminaktion->aktion_user_id);
- if (($terminaktion->status == 2 && !empty($aktion_user->id) && !empty($aktion_user->email)) || ($terminaktion->status != 2 && !empty($aktion_user->id) && !empty($aktion_user->email) && ($terminaktion->aktion_user_id != $terminaktion->moderation_user_id || $terminaktion->aktion_zeitpunkt != $terminaktion->moderation_zeitpunkt)))
- array_push($benachrichtigung_benutzer, $aktion_user->email);
- $benachrichtigung_emails = explode(",", $terminaktion->benachrichtigung_email);
- $benachrichtigung_alle_low = array_map('strtolower', array_merge($benachrichtigung_benutzer, $benachrichtigung_moderatoren_aendern, $benachrichtigung_moderatoren_informieren));
- foreach ($benachrichtigung_emails as $email) {
- $email_trimmed = trim($email);
- if (!in_array(strtolower($email_trimmed), $benachrichtigung_alle_low))
- array_push($benachrichtigung_benutzer, $email_trimmed);
- }
-
- $termin_beschreibung = "
Das " . htmlentities_utf8($aktion[$terminaktion->typ]) . " des folgenden Termins wurde beantragt und wird nun von den Moderatoren geprüft. Sobald der Termin bearbeitet wurde, wird eine E-Mail-Benachrichtigung verschickt.
"; - $body .= "Das " . htmlentities_utf8($aktion[$terminaktion->typ]) . " des folgenden Termins wurde " . ($terminaktion->status == 0 ? ($ueberarbeiten ? "in überarbeiteter Form akzeptiert" : "akzeptiert") : "abgelehnt") . ".
"; - $body .= "Termin " . htmlentities_utf8($aktion[$terminaktion->typ]) . " beantragt:
\r\n"; - } - else if ($terminaktion->status == 0) { - $subject = "Termin " . $aktion[$terminaktion->typ] . " akzeptiert von " . $terminaktion->moderation_user_name . ": " . $terminaktion->bezeichnung . " am " . FormatierterTermin($terminaktion->erster_tag, $terminaktion->letzter_tag, true); - $body = "Termin " . htmlentities_utf8($aktion[$terminaktion->typ]) . " akzeptiert:
"; - } - else { - $subject = "Termin " . $aktion[$terminaktion->typ] . " abgelehnt von " . $terminaktion->moderation_user_name . ": " . $terminaktion->bezeichnung . " am " . FormatierterTermin($terminaktion->erster_tag, $terminaktion->letzter_tag, true); - $body = "Termin " . htmlentities_utf8($aktion[$terminaktion->typ]) . " abgelehnt:
"; - } - $body .= "Bitte termin_aktion_id, -1) . "\">hier klicken, um den Termin zu moderieren.
\r\n"; - foreach ($benachrichtigung_moderatoren_aendern as $email) - JFactory::getMailer()->sendMail($from, $fromname, $email, $subject, $body, $mode, $cc, $bcc, $attachment, $replyto, $replytoname); -} - -function adminTerminModerieren($admin_uebersicht) { - $db =& getDatabase(); - global $sportsmanager_joomla_path; - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("termine_aendern") || isExternalDatabase()) - keinZugriff(); - - $id = $jinput->get('id', 0, 'INT'); - $nur_beantragte = $jinput->get('nur_beantragte', 0, 'INT'); - $uebersicht = $jinput->get('uebersicht', 0, 'INT'); - - if ($jinput->get('cancel', false, 'BOOL')) { - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . ($uebersicht ? 'termine' : 'termine_verlauf') . ($nur_beantragte ? '&nur_beantragte=1' : '')); - - return; - } - - if ($jinput->get('ueberarbeiten', false, 'BOOL')) { - $termin_id = $jinput->get('termin_id', 0, 'INT'); - - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termin_edit&ueberarbeiten=1&id=' . $termin_id . ($nur_beantragte ? '&nur_beantragte=1' : '')); - - return; - } - - $akzeptieren = $jinput->get('akzeptieren', false, 'BOOL'); - $kommentar = $db->escape(trim($jinput->get('kommentar', '', 'RAW'))); - - $query = "LOCK TABLES #__sportsmanager_termin WRITE, #__sportsmanager_termin_aktion WRITE;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - $query = "SELECT *" - . "\n FROM #__sportsmanager_termin" - . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)" - . "\n WHERE termin_aktion_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die ("Wrong id"); - $terminaktion = $rows[0]; - $termin_bezug_id = $terminaktion->termin_bezug_id; - - if ($terminaktion->status != 2) { - $query = "UNLOCK TABLES;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . ($uebersicht ? 'termine' : 'termine_verlauf') . ($nur_beantragte ? '&nur_beantragte=1' : ''), "Die Moderation wurde nicht umgesetzt weil der Termin nicht mehr im Beantragt-Status war."); - } - - $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'termine'; - if ($akzeptieren) { - $query = "SELECT DISTINCT termin_id" - . "\n FROM #__sportsmanager_termin_aktion" - . "\n INNER JOIN #__sportsmanager_termin USING (termin_id)" - . "\n WHERE termin_bezug_id = $termin_bezug_id AND status = 0;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - - $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'termine'; - foreach ($rows as $row) { - $dokumente = JFolder::files($bilder_pfad, '^' . $row->termin_id . ' '); - foreach ($dokumente as $dokument) - JFile::delete($bilder_pfad . DIRECTORY_SEPARATOR . $dokument); - } - - if ($terminaktion->typ == 2) { - $dokumente = JFolder::files($bilder_pfad, '^' . $terminaktion->termin_id . ' '); - foreach ($dokumente as $dokument) - JFile::delete($bilder_pfad . DIRECTORY_SEPARATOR . $dokument); - } - - $query = "UPDATE #__sportsmanager_termin_aktion" - . "\n INNER JOIN #__sportsmanager_termin USING (termin_id)" - . "\n SET status = 1" - . "\n WHERE termin_bezug_id = $termin_bezug_id AND status = 0;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - else { - if ($terminaktion->typ != 2) { - $dokumente = JFolder::files($bilder_pfad, '^' . $terminaktion->termin_id . ' '); - foreach ($dokumente as $dokument) - JFile::delete($bilder_pfad . DIRECTORY_SEPARATOR . $dokument); - } - } - - $user_id = JFactory::getUser()->id; - $query = "UPDATE #__sportsmanager_termin_aktion" - . "\n INNER JOIN #__sportsmanager_termin USING (termin_id)" - . "\n SET status = " . ($akzeptieren ? 0 : 3) . "," - . "\n moderation_user_id = $user_id," - . "\n moderation_zeitpunkt = NOW()," - . "\n moderation_kommentar = '$kommentar'" - . "\n WHERE termin_aktion_id = $id;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - $query = "UNLOCK TABLES;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - termineEmailBenachrichtigung($id); - - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . ($uebersicht ? 'termine' : 'termine_verlauf') . ($nur_beantragte ? '&nur_beantragte=1' : '')); -} - -function adminTermineVerlauf($admin_uebersicht) { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(true); - - $nur_beantragte = $jinput->get('nur_beantragte', 0, 'INT'); - - if ($nur_beantragte) { - $query = "SELECT #__sportsmanager_termin.*, #__sportsmanager_termin_aktion.*, DATEDIFF(erster_tag, NOW()) AS datumsdifferenz, aktion_user.name AS aktion_user_name, moderation_user.name AS moderation_user_name, GROUP_CONCAT(zusatz ORDER BY zusatz SEPARATOR ', ') AS zusaetze" - . "\n FROM #__sportsmanager_termin" - . "\n LEFT JOIN #__sportsmanager_termin_aktion USING (termin_id)" - . "\n LEFT JOIN #__sportsmanager_termin_zusatz USING (termin_id)" - . "\n LEFT JOIN #__users AS aktion_user ON aktion_user_id = aktion_user.id" - . "\n LEFT JOIN #__users AS moderation_user ON moderation_user_id = moderation_user.id" - . "\n WHERE status = 2" - . "\n GROUP BY #__sportsmanager_termin_aktion.termin_aktion_id" - . "\n ORDER BY aktion_zeitpunkt, bezeichnung" - . "\n LIMIT 1000"; - } - else { - $query = "SELECT #__sportsmanager_termin.*, #__sportsmanager_termin_aktion.*, DATEDIFF(erster_tag, NOW()) AS datumsdifferenz, aktion_user.name AS aktion_user_name, moderation_user.name AS moderation_user_name, GROUP_CONCAT(zusatz ORDER BY zusatz SEPARATOR ', ') AS zusaetze" - . "\n FROM #__sportsmanager_termin" - . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)" - . "\n LEFT JOIN #__sportsmanager_termin_zusatz USING (termin_id)" - . "\n LEFT JOIN #__users AS aktion_user ON aktion_user_id = aktion_user.id" - . "\n LEFT JOIN #__users AS moderation_user ON moderation_user_id = moderation_user.id" - . "\n GROUP BY #__sportsmanager_termin_aktion.termin_aktion_id" - . "\n ORDER BY aktion_zeitpunkt DESC, bezeichnung" - . "\n LIMIT 1000"; - } - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $terminaktionen = $db->loadObjectList(); - - HTML_sportsmanager_admin::adminTermineVerlauf($terminaktionen, $nur_beantragte, $admin_uebersicht); -} - -function terminDokument() { - $db =& getDatabase(); - global $sportsmanager_joomla_path; - $jinput = JFactory::getApplication()->input; - - $id = $jinput->get('id', 0, 'INT'); - $bezug_id = $jinput->get('bezug_id', 0, 'INT'); - - if (benutzerZugriff("termine_aendern") || benutzerZugriff("termine_benachrichtigung")) - $zugriffsebene = 1; - else - $zugriffsebene = 0; - - if (!empty($bezug_id)) { - $query = "SELECT termin_id" - . "\n FROM #__sportsmanager_termin" - . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)" - . "\n WHERE termin_bezug_id = $bezug_id AND status = 0 AND (typ = 0 OR typ = 1)"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - $termin_vorhanden = count($rows) > 0; - if ($termin_vorhanden) - $id = $rows[0]->termin_id; - } - else { - $query = "SELECT IF (EXISTS (SELECT *" - . "\n FROM #__sportsmanager_termin" - . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)" - . "\n WHERE termin_id = $id" . ($zugriffsebene == 0 ? " AND status = 0 AND (typ = 0 OR typ = 1)" : "") . "), 1, 0)"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $termin_vorhanden = $db->loadResult(); - } - - if (!$termin_vorhanden) - keinZugriff(true); - - $pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'termine'; - $dokumente = JFolder::files($pfad, '^' . $id . ' '); - - if (empty($dokumente)) { - redirectSportsManagerURL(null, "Der Anhang existiert nicht mehr."); - - return; - } - - $extension = strtolower(JFile::getExt($dokumente[0])); - if ($extension == "pdf") - $mm_type = "application/pdf"; - else - $mm_type = "application/octet-stream"; - - ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind - header("Pragma: public"); - header("Expires: 0"); - header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); - header("Cache-Control: public"); - header("Content-Description: File Transfer"); - header("Content-Type: " . $mm_type); - header("Content-Length: " . (string) (filesize($pfad . DIRECTORY_SEPARATOR . $dokumente[0]))); - header('Content-Disposition: inline; filename="' . substr($dokumente[0], strlen((string) $id) + 1) . '"'); - header("Content-Transfer-Encoding: binary\n"); - - readfile($pfad . DIRECTORY_SEPARATOR . $dokumente[0]); - - exit(); -} - -function adminTerminDetails($admin_uebersicht) { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(true); - - $id = $jinput->get('id', 0, 'INT'); - $nur_beantragte = $jinput->get('nur_beantragte', 0, 'INT'); - $uebersicht = $jinput->get('uebersicht', 0, 'INT'); - - $query = "SELECT #__sportsmanager_termin.*, #__sportsmanager_termin_aktion.*, aktion_user.name AS aktion_user_name, aktion_user.email AS aktion_user_email, moderation_user.name AS moderation_user_name, moderation_user.email AS moderation_user_email, GROUP_CONCAT(zusatz ORDER BY zusatz SEPARATOR ', ') AS zusaetze" - . "\n FROM #__sportsmanager_termin" - . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)" - . "\n LEFT JOIN #__sportsmanager_termin_zusatz USING (termin_id)" - . "\n LEFT JOIN #__users AS aktion_user ON aktion_user_id = aktion_user.id" - . "\n LEFT JOIN #__users AS moderation_user ON moderation_user_id = moderation_user.id" - . "\n WHERE termin_aktion_id = $id" - . "\n GROUP BY #__sportsmanager_termin_aktion.termin_aktion_id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die ("Wrong id"); - $terminaktion = $rows[0]; - - $query = "SELECT #__sportsmanager_termin.*, #__sportsmanager_termin_aktion.*, DATEDIFF(erster_tag, NOW()) AS datumsdifferenz, aktion_user.name AS aktion_user_name, moderation_user.name AS moderation_user_name, GROUP_CONCAT(zusatz ORDER BY zusatz SEPARATOR ', ') AS zusaetze" - . "\n FROM #__sportsmanager_termin" - . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)" - . "\n LEFT JOIN #__sportsmanager_termin_zusatz USING (termin_id)" - . "\n LEFT JOIN #__users AS aktion_user ON aktion_user_id = aktion_user.id" - . "\n LEFT JOIN #__users AS moderation_user ON moderation_user_id = moderation_user.id" - . "\n WHERE termin_bezug_id = $terminaktion->termin_bezug_id" - . "\n GROUP BY #__sportsmanager_termin_aktion.termin_aktion_id" - . "\n ORDER BY aktion_zeitpunkt DESC, bezeichnung"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $terminaktionen = $db->loadObjectList(); - - HTML_sportsmanager_admin::adminTerminDetails($terminaktion, $terminaktionen, $nur_beantragte, $admin_uebersicht, $uebersicht, isExternalDatabase()); -} - -function adminTermineBezeichnungen($admin_uebersicht) { - $db =& getDatabase(); - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(true); - - $query = "SELECT *" - . "\n FROM #__sportsmanager_termin_bezeichnung" - . "\n ORDER BY bezeichnung"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $bezeichnungen = $db->loadObjectList(); - - HTML_sportsmanager_admin::adminTermineBezeichnungen($bezeichnungen, $admin_uebersicht); -} - -function adminEditTermineBezeichnung($admin_uebersicht) { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(true); - - $id = $jinput->get('id', 0, 'INT'); - - if (empty($id)) { - $bezeichnung = null; - } - else { - $query = "SELECT * FROM #__sportsmanager_termin_bezeichnung WHERE termin_bezeichnung_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die ("Wrong id"); - $bezeichnung = $rows[0]; - } - - HTML_sportsmanager_admin::adminEditTermineBezeichnung($bezeichnung, $admin_uebersicht); -} - -function adminSaveTermineBezeichnung($admin_uebersicht) { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(); - - if ($jinput->get('cancel', false, 'BOOL')) { - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_bezeichnungen'); - - return; - } - - $id = $jinput->get('id', 0, 'INT'); - $bezeichnung = $db->escape(trim($jinput->get('bezeichnung', '', 'RAW'))); - $termine_umbenennen = $jinput->get('termine_umbenennen', 0, 'INT'); - - $query = "LOCK TABLES #__sportsmanager_termin WRITE, #__sportsmanager_termin_bezeichnung WRITE;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - if (!empty($id) && $termine_umbenennen) { - $query = "SELECT * FROM #__sportsmanager_termin_bezeichnung WHERE termin_bezeichnung_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die ("Wrong id"); - $alte_bezeichnung = $db->escape($rows[0]->bezeichnung); - - $query = "UPDATE #__sportsmanager_termin" - . "\n SET bezeichnung = '$bezeichnung'" - . "\n WHERE bezeichnung = '$alte_bezeichnung'"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - - $query = "SELECT * FROM #__sportsmanager_termin_bezeichnung WHERE bezeichnung = '$bezeichnung' AND termin_bezeichnung_id != $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - // Datenbankeintrag verwerfen, falls Bezeichnung schon existiert - if (count($rows) > 0) { - if (!empty($id)) { - $query = "DELETE FROM #__sportsmanager_termin_bezeichnung WHERE termin_bezeichnung_id = $id;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - } - else { - if (empty($id)) { - $query = "INSERT #__sportsmanager_termin_bezeichnung" - . "\n SET bezeichnung = '$bezeichnung'"; - } - else { - $query = "UPDATE #__sportsmanager_termin_bezeichnung" - . "\n SET bezeichnung = '$bezeichnung'" - . "\n WHERE termin_bezeichnung_id = $id"; - } - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - - $query = "UNLOCK TABLES;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_bezeichnungen'); -} - -function adminRemoveTermineBezeichnung($admin_uebersicht) { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(true); - - $id = $jinput->get('id', 0, 'INT'); - - $query = "DELETE FROM #__sportsmanager_termin_bezeichnung WHERE termin_bezeichnung_id = $id;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_bezeichnungen'); -} - -function adminTermineBezeichnungszusaetze($admin_uebersicht) { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(true); - - $query = "SELECT *" - . "\n FROM #__sportsmanager_termin_bezeichnungszusatz" - . "\n ORDER BY bezeichnungszusatz"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $bezeichnungszusaetze = $db->loadObjectList(); - - HTML_sportsmanager_admin::adminTermineBezeichnungszusaetze($bezeichnungszusaetze, $admin_uebersicht); -} - -function adminEditTermineBezeichnungszusatz($admin_uebersicht) { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(true); - - $id = $jinput->get('id', 0, 'INT'); - - if (empty($id)) { - $bezeichnungszusatz = null; - } - else { - $query = "SELECT * FROM #__sportsmanager_termin_bezeichnungszusatz WHERE termin_bezeichnungszusatz_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die ("Wrong id"); - $bezeichnungszusatz = $rows[0]; - } - - HTML_sportsmanager_admin::adminEditTermineBezeichnungszusatz($bezeichnungszusatz, $admin_uebersicht); -} - -function adminSaveTermineBezeichnungszusatz($admin_uebersicht) { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(); - - if ($jinput->get('cancel', false, 'BOOL')) { - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_bezeichnungszusaetze'); - - return; - } - - $id = $jinput->get('id', 0, 'INT'); - $bezeichnungszusatz = $db->escape(trim($jinput->get('bezeichnungszusatz', '', 'RAW'))); - $titel = $db->escape(trim($jinput->get('titel', '', 'RAW'))); - $termine_umbenennen = $jinput->get('termine_umbenennen', 0, 'INT'); - - $query = "LOCK TABLES #__sportsmanager_termin WRITE, #__sportsmanager_termin_bezeichnungszusatz WRITE, #__sportsmanager_termin_zusatz WRITE;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - if (!empty($id) && $termine_umbenennen) { - $query = "SELECT * FROM #__sportsmanager_termin_bezeichnungszusatz WHERE termin_bezeichnungszusatz_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die ("Wrong id"); - $alter_bezeichnungszusatz = $db->escape($rows[0]->bezeichnungszusatz); - - $query = "UPDATE #__sportsmanager_termin_zusatz" - . "\n SET zusatz = '$bezeichnungszusatz'" - . "\n WHERE zusatz = '$alter_bezeichnungszusatz'"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - - $query = "SELECT * FROM #__sportsmanager_termin_bezeichnungszusatz WHERE bezeichnungszusatz = '$bezeichnungszusatz' AND termin_bezeichnungszusatz_id != $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - // Datenbankeintrag verwerfen, falls Bezeichnungszusatz schon existiert - if (count($rows) > 0) { - if (!empty($id)) { - $query = "DELETE FROM #__sportsmanager_termin_bezeichnungszusatz WHERE termin_bezeichnungszusatz_id = $id;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - } - else { - if (empty($id)) { - $query = "INSERT #__sportsmanager_termin_bezeichnungszusatz" - . "\n SET bezeichnungszusatz = '$bezeichnungszusatz'," - . "\n titel = '$titel'"; - } - else { - $query = "UPDATE #__sportsmanager_termin_bezeichnungszusatz" - . "\n SET bezeichnungszusatz = '$bezeichnungszusatz'," - . "\n titel = '$titel'" - . "\n WHERE termin_bezeichnungszusatz_id = $id"; - } - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - - $query = "UNLOCK TABLES;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_bezeichnungszusaetze'); -} - -function adminRemoveTermineBezeichnungszusatz($admin_uebersicht) { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(true); - - $id = $jinput->get('id', 0, 'INT'); - - $query = "DELETE FROM #__sportsmanager_termin_bezeichnungszusatz WHERE termin_bezeichnungszusatz_id = $id;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_bezeichnungszusaetze'); -} - -function adminTermineBundeslaender($admin_uebersicht) { - $db =& getDatabase(); - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(true); - - $query = "SELECT *" - . "\n FROM #__sportsmanager_termin_bundesland" - . "\n ORDER BY bundesland"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $bundeslaender = $db->loadObjectList(); - - HTML_sportsmanager_admin::adminTermineBundeslaender($bundeslaender, $admin_uebersicht); -} - -function adminEditTermineBundesland($admin_uebersicht) { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(true); - - $id = $jinput->get('id', 0, 'INT'); - - if (empty($id)) { - $bundesland = null; - } - else { - $query = "SELECT * FROM #__sportsmanager_termin_bundesland WHERE termin_bundesland_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die ("Wrong id"); - $bundesland = $rows[0]; - } - - HTML_sportsmanager_admin::adminEditTermineBundesland($bundesland, $admin_uebersicht); -} - -function adminSaveTermineBundesland($admin_uebersicht) { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(); - - if ($jinput->get('cancel', false, 'BOOL')) { - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_bundeslaender'); - - return; - } - - $id = $jinput->get('id', 0, 'INT'); - $bundesland = $db->escape(trim($jinput->get('bundesland', '', 'RAW'))); - $termine_umbenennen = $jinput->get('termine_umbenennen', 0, 'INT'); - - $query = "LOCK TABLES #__sportsmanager_termin WRITE, #__sportsmanager_termin_bundesland WRITE;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - if ($termine_umbenennen) { - $query = "SELECT * FROM #__sportsmanager_termin_bundesland WHERE termin_bundesland_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die ("Wrong id"); - $altes_bundesland = $db->escape($rows[0]->bundesland); - - $query = "UPDATE #__sportsmanager_termin" - . "\n SET land = '$bundesland'" - . "\n WHERE land = '$altes_bundesland'"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - - $query = "SELECT * FROM #__sportsmanager_termin_bundesland WHERE bundesland = '$bundesland' AND termin_bundesland_id != $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - // Datenbankeintrag verwerfen, falls Bundesland schon existiert - if (count($rows) > 0) { - if (!empty($id)) { - $query = "DELETE FROM #__sportsmanager_termin_bundesland WHERE termin_bundesland_id = $id;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - } - else { - if (empty($id)) { - $query = "INSERT #__sportsmanager_termin_bundesland" - . "\n SET bundesland = '$bundesland'"; - } - else { - $query = "UPDATE #__sportsmanager_termin_bundesland" - . "\n SET bundesland = '$bundesland'" - . "\n WHERE termin_bundesland_id = $id"; - } - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - - $query = "UNLOCK TABLES;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_bundeslaender'); -} - -function adminRemoveTermineBundesland($admin_uebersicht) { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(true); - - $id = $jinput->get('id', 0, 'INT'); - - $query = "DELETE FROM #__sportsmanager_termin_bundesland WHERE termin_bundesland_id = $id;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_bundeslaender'); -} - -function adminTermineLaender($admin_uebersicht) { - $db =& getDatabase(); - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(true); - - $query = "SELECT *" - . "\n FROM #__sportsmanager_termin_land" - . "\n ORDER BY land"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $laender = $db->loadObjectList(); - - HTML_sportsmanager_admin::adminTermineLaender($laender, $admin_uebersicht); -} - -function adminEditTermineLand($admin_uebersicht) { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(true); - - $id = $jinput->get('id', 0, 'INT'); - - if (empty($id)) { - $land = null; - } - else { - $query = "SELECT * FROM #__sportsmanager_termin_land WHERE termin_land_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die ("Wrong id"); - $land = $rows[0]; - } - - HTML_sportsmanager_admin::adminEditTermineLand($land, $admin_uebersicht); -} - -function adminSaveTermineLand($admin_uebersicht) { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(); - - if ($jinput->get('cancel', false, 'BOOL')) { - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_laender'); - - return; - } - - $id = $jinput->get('id', 0, 'INT'); - $land = $db->escape(trim($jinput->get('land', '', 'RAW'))); - $termine_umbenennen = $jinput->get('termine_umbenennen', 0, 'INT'); - - $query = "LOCK TABLES #__sportsmanager_termin WRITE, #__sportsmanager_termin_land WRITE;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - if ($termine_umbenennen) { - $query = "SELECT * FROM #__sportsmanager_termin_land WHERE termin_land_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die ("Wrong id"); - $altes_bundesland = $db->escape($rows[0]->bundesland); - - $query = "UPDATE #__sportsmanager_termin" - . "\n SET land = '$land'" - . "\n WHERE land = '$altes_land'"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - - $query = "SELECT * FROM #__sportsmanager_termin_land WHERE land = '$land' AND termin_land_id != $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - // Datenbankeintrag verwerfen, falls Bundesland schon existiert - if (count($rows) > 0) { - if (!empty($id)) { - $query = "DELETE FROM #__sportsmanager_termin_land WHERE termin_land_id = $id;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - } - else { - if (empty($id)) { - $query = "INSERT #__sportsmanager_termin_land" - . "\n SET land = '$land'"; - } - else { - $query = "UPDATE #__sportsmanager_termin_land" - . "\n SET land = '$land'" - . "\n WHERE termin_land_id = $id"; - } - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - - $query = "UNLOCK TABLES;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_laender'); -} - -function adminRemoveTermineLand($admin_uebersicht) { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(); - - $id = $jinput->get('id', 0, 'INT'); - - $query = "DELETE FROM #__sportsmanager_termin_land WHERE termin_land_id = $id;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_laender'); -} - -function adminTermineSymbole($admin_uebersicht) { - $db =& getDatabase(); - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(true); - - $query = "SELECT *" - . "\n FROM #__sportsmanager_termin_symbol" - . "\n ORDER BY status DESC, symboltitel"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $symbole = $db->loadObjectList(); - - HTML_sportsmanager_admin::adminTermineSymbole($symbole, $admin_uebersicht); -} - -function adminEditTermineSymbol($admin_uebersicht) { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(true); - - $id = $jinput->get('id', 0, 'INT'); - - if (empty($id)) { - $symbol = null; - } - else { - $query = "SELECT * FROM #__sportsmanager_termin_symbol WHERE termin_symbol_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die ("Wrong id"); - $symbol = $rows[0]; - } - - HTML_sportsmanager_admin::adminEditTermineSymbol($symbol, $admin_uebersicht); -} - -function adminSaveTermineSymbol($admin_uebersicht) { - $db =& getDatabase(); - global $_FILES; - global $sportsmanager_joomla_path; - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(); - - if (JRequest::getBool('cancel')) { - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_symbole'); - - return; - } - - $id = $jinput->get('id', 0, 'INT'); - $symboltitel = $db->escape(trim($jinput->get('symboltitel', '', 'RAW'))); - $bildbeibehalten = $jinput->get('bildbeibehalten', 0, 'INT'); - $status = $jinput->get('status', 0, 'INT'); - - if ($id == 0) { - $query = "INSERT INTO #__sportsmanager_termin_symbol (symboltitel,status)" - . "\n VALUES ('$symboltitel', '$status');"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $id = $db->insertid(); - } - else { - $query = "UPDATE #__sportsmanager_termin_symbol" - . "\n SET symboltitel = '$symboltitel', " - . "\n status = '$status'" - . "\n WHERE termin_symbol_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - - if ($bildbeibehalten == 0) { - bildLoeschen('terminsymbole', $id); - - if (!empty($_FILES["bild"]["tmp_name"])) { - if (is_uploaded_file($_FILES["bild"]["tmp_name"])) { - $size = getimagesize($_FILES["bild"]["tmp_name"]); - if ($size == false - || ($size[2] != IMAGETYPE_JPEG && $size[2] != IMAGETYPE_PNG) - || ($size[0] > 8192 || $size[1] > 8192)) { - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_symbole', JText::_('COM_SPORTSMANAGER_PLAYER_WRONG_IMAGE_FORMAT')); - - return; - } - $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'terminsymbole'; - if (!JFile::copy($_FILES["bild"]["tmp_name"], $bilder_pfad . DIRECTORY_SEPARATOR . $id . ($size[2] == IMAGETYPE_PNG ? '.png' : '.jpg'))) { - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_symbole', JText::_('COM_SPORTSMANAGER_IMAGE_COULD_NOT_COPIED')); - - return; - } - } - } - } - - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_symbole'); -} - -function adminRemoveTermineSymbol($admin_uebersicht) { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("termine_aendern")) - keinZugriff(); - - $id = $jinput->get('id', 0, 'INT'); - - $query = "LOCK TABLES #__sportsmanager_termin_symbolanzeige WRITE, #__sportsmanager_termin_symbol WRITE;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - $query = "DELETE FROM #__sportsmanager_termin_symbolanzeige WHERE termin_symbol_id = $id;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - $query = "DELETE FROM #__sportsmanager_termin_symbol WHERE termin_symbol_id = $id;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - bildLoeschen("terminsymbole", $id); - - $query = "UNLOCK TABLES;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_symbole'); -} - -function adminEditIndividualwettbewerb() { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - $id = $jinput->get('id', 0, 'INT'); - $vorlage = $jinput->get('vorlage', 0, 'INT'); - if (!benutzerZugriff("individualwettbewerbe_aendern")) - keinZugriff(true); - - if ($id == 0) - $row = null; - else { - $query = "SELECT * FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die("Wrong id!"); - $row = $rows[0]; - } - - $query = "SELECT * FROM #__sportsmanager_veranstalter ORDER BY veranstalterbezeichnung"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $veranstalter = $db->loadObjectList(); - - $query = "SELECT nummer, bezeichnung FROM #__sportsmanager_kategorie WHERE typ = 6 ORDER BY nummer"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows_kategorien = $db->loadObjectList(); - - $kategorien = array(); - foreach ($rows_kategorien as $kategorie) - $kategorien[$kategorie->nummer] = $kategorie->bezeichnung; - - $query = "SELECT * FROM #__sportsmanager_saison ORDER BY saisonbezeichnung DESC"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $saisons = $db->loadObjectList(); - - if (empty($id)) { - $berechtigt_fuer_individualwettbewerb = array(); - } - else { - $query = "SELECT #__sportsmanager_berechtigt_fuer_individualwettbewerb.* FROM #__sportsmanager_berechtigt_fuer_individualwettbewerb, #__users WHERE berechtigt_user_id = id AND berechtigt_individualwettbewerb_id = $id ORDER BY username, name"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $berechtigt_fuer_individualwettbewerb = $db->loadObjectList(); - } - - $query = "SELECT * FROM #__users ORDER BY name, username"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $users = $db->loadObjectList(); - - HTML_sportsmanager_admin::adminEditIndividualwettbewerb($row, $veranstalter, $kategorien, $saisons, $users, $berechtigt_fuer_individualwettbewerb, $vorlage); -} - -function adminSaveIndividualwettbewerb() { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("individualwettbewerbe_aendern")) - keinZugriff(); - - $id = $jinput->get('id', 0, 'INT'); - $vorlage = $jinput->get('vorlage', 0, 'INT'); - $veranstalterid = $jinput->get('veranstalterid', 0, 'INT'); - $bezeichnung = $db->escape(trim($jinput->get('bezeichnung', '', 'RAW'))); - $saison_id = $jinput->get('saison_id', 0, 'INT'); - $saetze = $jinput->get('saetze', 0, 'INT'); - $tore = $jinput->get('tore', 0, 'INT'); - $tabellenwertung = $jinput->get('tabellenwertung', 0, 'INT'); - $elo_wertung = $jinput->get('elo_wertung', 0, 'INT'); - $status = $jinput->get('status', 0, 'INT'); - $reihenfolge = $jinput->get('reihenfolge', 0, 'INT'); - $kategorie = $jinput->get('kategorie', 0, 'INT'); - $berechtigt_fuer_individualwettbewerb_user_ids = array(); - for ($i = 1; $i <= 6; $i++) { - $berechtigt_user_id = $jinput->get('berechtigt_fuer_individualwettbewerb_user_' . $i . '_id', 0, 'INT'); - if (!empty($berechtigt_user_id) && !in_array($berechtigt_user_id, $berechtigt_fuer_individualwettbewerb_user_ids)) - array_push($berechtigt_fuer_individualwettbewerb_user_ids, $berechtigt_user_id); - } - - $query = "LOCK TABLES #__sportsmanager_individualwettbewerb WRITE, #__sportsmanager_individualwettbewerb_spiel READ, #__sportsmanager_berechtigt_fuer_individualwettbewerb WRITE, #__sportsmanager_individualwettbewerb_platzierung READ, #__sportsmanager_individualwettbewerb_ausgangsplatzierung WRITE;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - $elo_aktualisieren = false; - if ($vorlage) { - $query = "SELECT * FROM #__sportsmanager_individualwettbewerb_platzierung WHERE individualwettbewerb_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - - $query = "INSERT #__sportsmanager_individualwettbewerb" - . "\n SET veranstalter_id = '$veranstalterid'," - . "\n bezeichnung = '$bezeichnung'," - . "\n saison_id = '$saison_id'," - . "\n saetze = " . ($saetze != 0 ? "'$saetze'" : "null") . "," - . "\n tore = " . ($tore != 0 ? "'$tore'" : "null") . "," - . "\n tabellenwertung = '$tabellenwertung'," - . "\n elo_wertung = '$elo_wertung'," - . "\n status = '$status'," - . "\n reihenfolge = '$reihenfolge'," - . "\n kategorie = '$kategorie'"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $id = $db->insertid(); - - foreach ($rows as $row) { - $query = "INSERT #__sportsmanager_individualwettbewerb_ausgangsplatzierung" - . "\n SET individualwettbewerb_id = '$id'," - . "\n spieler_id = '" . $row->spieler_id . "'," - . "\n platz = '" . $row->platz . "'"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - } - else if ($id == 0) { - $query = "INSERT #__sportsmanager_individualwettbewerb" - . "\n SET veranstalter_id = '$veranstalterid'," - . "\n bezeichnung = '$bezeichnung'," - . "\n saison_id = '$saison_id'," - . "\n saetze = " . ($saetze != 0 ? "'$saetze'" : "null") . "," - . "\n tore = " . ($tore != 0 ? "'$tore'" : "null") . "," - . "\n tabellenwertung = '$tabellenwertung'," - . "\n elo_wertung = '$elo_wertung'," - . "\n status = '$status'," - . "\n reihenfolge = '$reihenfolge'," - . "\n kategorie = '$kategorie'"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $id = $db->insertid(); - } - else { - $query = "SELECT * FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) { - $query = "UNLOCK TABLES;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - redirectSportsManagerURL('&task=admin_uebersicht', "Der Individualwettbewerb existiert nicht mehr!"); - - return; - } - $row = $rows[0]; - - $query = "UPDATE #__sportsmanager_individualwettbewerb" - . "\n SET veranstalter_id = '$veranstalterid'," - . "\n bezeichnung = '$bezeichnung'," - . "\n saison_id = '$saison_id'," - . "\n saetze = " . ($saetze != 0 ? "'$saetze'" : "null") . "," - . "\n tore = " . ($tore != 0 ? "'$tore'" : "null") . "," - . "\n tabellenwertung = '$tabellenwertung'," - . "\n elo_wertung = '$elo_wertung'," - . "\n status = '$status'," - . "\n reihenfolge = '$reihenfolge'," - . "\n kategorie = '$kategorie'" - . "\n WHERE individualwettbewerb_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - if (($elo_wertung != 0 && $status != 0) != ($row->elo_wertung != 0 && $row->status != 0)) - $elo_aktualisieren = true; - } - - $query = "DELETE FROM #__sportsmanager_berechtigt_fuer_individualwettbewerb WHERE berechtigt_individualwettbewerb_id = $id"; - if (!empty($berechtigt_fuer_individualwettbewerb_user_ids)) - $query .= " AND berechtigt_user_id NOT IN (" . implode($berechtigt_fuer_individualwettbewerb_user_ids, ", ") . ")"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - $query = "SELECT * FROM #__sportsmanager_berechtigt_fuer_individualwettbewerb WHERE berechtigt_individualwettbewerb_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - - foreach ($rows as $row) { - $index = array_search($row->berechtigt_user_id, $berechtigt_fuer_individualwettbewerb_user_ids); - if ($index !== false) { - unset($berechtigt_fuer_individualwettbewerb_user_ids[$index]); - } - } - - foreach ($berechtigt_fuer_individualwettbewerb_user_ids as $berechtigt_user_id) { - $query = "INSERT INTO #__sportsmanager_berechtigt_fuer_individualwettbewerb (berechtigt_user_id, berechtigt_individualwettbewerb_id) VALUES ('$berechtigt_user_id', '$id');"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - - $query = "SELECT DATE(MIN(zeitpunkt)) FROM #__sportsmanager_individualwettbewerb_spiel WHERE individualwettbewerb_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $aktualisieren_ab_datum = $db->loadResult(); - - $query = "UNLOCK TABLES;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - if ($elo_aktualisieren && $aktualisieren_ab_datum != null) { - eloAktualisieren($aktualisieren_ab_datum); - einstufungAktualisieren(); - } - - individualwettbewerbTabelleAktualisieren($id); - spielerstatistikAktualisieren(0, 0, $id); - - redirectSportsManagerURL('&task=admin_uebersicht'); -} - -function individualwettbewerbTabelleAktualisieren($id = null) { - $db =& getDatabase(); - - $query = "LOCK TABLES #__sportsmanager_individualwettbewerb READ, #__sportsmanager_individualwettbewerb_spiel READ, #__sportsmanager_individualwettbewerb_platzierung WRITE, #__sportsmanager_individualwettbewerb_ausgangsplatzierung READ;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - $query = "SELECT * FROM #__sportsmanager_individualwettbewerb"; - if (!empty($id)) - $query .= "\n WHERE individualwettbewerb_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $individualwettbewerbe = $db->loadObjectList(); - - foreach ($individualwettbewerbe as $individualwettbewerb) { - $individualwettbewerb_id = $individualwettbewerb->individualwettbewerb_id; - if ($individualwettbewerb->tabellenwertung == 0) { - $query = "DELETE FROM #__sportsmanager_individualwettbewerb_platzierung WHERE individualwettbewerb_id = $individualwettbewerb_id;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - continue; - } - - $query = "SELECT heim_spieler_1_id, heim_spieler_2_id, gast_spieler_1_id, gast_spieler_2_id, ergebnis FROM #__sportsmanager_individualwettbewerb_spiel" - . "\n WHERE individualwettbewerb_id = $individualwettbewerb_id" - . "\n ORDER BY zeitpunkt, individualwettbewerb_spiel_id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $spiele = $db->loadObjectList(); - - $query = "SELECT *" - . "\n FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung" - . "\n WHERE individualwettbewerb_id = $individualwettbewerb_id" - . "\n ORDER BY platz"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $ausgangsplatzierungen = $db->loadObjectList(); - - $platzierungen = array(); - foreach ($ausgangsplatzierungen as $ausgangsplatzierung) - array_push($platzierungen, $ausgangsplatzierung->spieler_id); - - foreach ($spiele as $spiel) { - if ($spiel->ergebnis == 0) - continue; - if ($spiel->heim_spieler_2_id != null) // Bis auf Weiteres keine Doppelspiele für Tabelle berücksichtigen - continue; - $sieger_spieler_id = $spiel->ergebnis == 1 ? $spiel->heim_spieler_1_id : $spiel->gast_spieler_1_id; - $verlierer_spieler_id = $spiel->ergebnis != 1 ? $spiel->heim_spieler_1_id : $spiel->gast_spieler_1_id; - - if (!in_array($verlierer_spieler_id, $platzierungen)) - array_push($platzierungen, $verlierer_spieler_id); - - $sieger_platzierung = array_search($sieger_spieler_id, $platzierungen); - $verlierer_platzierung = array_search($verlierer_spieler_id, $platzierungen); - if ($sieger_platzierung !== false) { - if ($sieger_platzierung < $verlierer_platzierung) - continue; - array_splice($platzierungen, $sieger_platzierung, 1); - } - array_splice($platzierungen, $verlierer_platzierung, 0, $sieger_spieler_id); - } - - $query = "SELECT * FROM #__sportsmanager_individualwettbewerb_platzierung" - . "\n WHERE individualwettbewerb_id = $individualwettbewerb_id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $platzierungen_vorhanden = $db->loadObjectList(); - - $platzierungen_uebrig = $platzierungen; - foreach ($platzierungen_vorhanden as $platzierung_vorhanden) { - $index = array_search($platzierung_vorhanden->spieler_id, $platzierungen); - if ($index !== false) { - $platz = $index + 1; - if ($platzierung_vorhanden->platz != $platz) { - $query = "UPDATE #__sportsmanager_individualwettbewerb_platzierung" - . "\n SET platz = '$platz'" - . "\n WHERE individualwettbewerb_platzierung_id = " . $platzierung_vorhanden->individualwettbewerb_platzierung_id; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - - $index_uebrig = array_search($platzierung_vorhanden->spieler_id, $platzierungen_uebrig); - unset($platzierungen_uebrig[$index_uebrig]); - } - else { - $query = "DELETE FROM #__sportsmanager_individualwettbewerb_platzierung WHERE individualwettbewerb_platzierung_id = " . $platzierung_vorhanden->individualwettbewerb_platzierung_id; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - } - - foreach ($platzierungen_uebrig as $platzierung_uebrig) { - $index = array_search($platzierung_uebrig, $platzierungen); - $platz = $index + 1; - $query = "INSERT #__sportsmanager_individualwettbewerb_platzierung" - . "\n SET individualwettbewerb_id = '$individualwettbewerb_id'," - . "\n spieler_id = '$platzierung_uebrig'," - . "\n platz = '$platz'"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - } - - $query = "UNLOCK TABLES;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } -} - -function adminRemoveIndividualwettbewerb() { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("individualwettbewerbe_aendern")) - keinZugriff(true); - - $id = $jinput->get('id', 0, 'INT'); - - $query = "LOCK TABLES #__sportsmanager_individualwettbewerb WRITE, #__sportsmanager_individualwettbewerb_spiel WRITE, #__sportsmanager_individualwettbewerb_platzierung WRITE, #__sportsmanager_individualwettbewerb_ausgangsplatzierung WRITE, #__sportsmanager_berechtigt_fuer_individualwettbewerb WRITE;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - $query = "SELECT * FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) { - $query = "UNLOCK TABLES;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - redirectSportsManagerURL('&task=admin_uebersicht', "Der Individualwettbewerb existiert nicht mehr!"); - - return; - } - $row = $rows[0]; - - $query = "SELECT DATE(MIN(zeitpunkt)) FROM #__sportsmanager_individualwettbewerb_spiel WHERE individualwettbewerb_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $aktualisieren_ab_datum = $db->loadResult(); - - $query = "DELETE FROM #__sportsmanager_berechtigt_fuer_individualwettbewerb WHERE berechtigt_individualwettbewerb_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - $query = "DELETE FROM #__sportsmanager_individualwettbewerb_spiel WHERE individualwettbewerb_id = $id;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - $query = "DELETE FROM #__sportsmanager_individualwettbewerb_platzierung WHERE individualwettbewerb_id = $id;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - $query = "DELETE FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE individualwettbewerb_id = $id;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - $query = "DELETE FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $id;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - $query = "UNLOCK TABLES;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - wannGespieltAktualisieren(); - if ($row->elo_wertung && $aktualisieren_ab_datum != null) { - eloAktualisieren($aktualisieren_ab_datum); - einstufungAktualisieren(); - } - spielerstatistikAktualisieren(0, 0, $id); - - redirectSportsManagerURL('&task=admin_uebersicht'); -} - -function adminIndividualwettbewerbSpiele() { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - $individualwettbewerbid = $jinput->get('individualwettbewerbid', 0, 'INT'); - if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator()) - keinZugriff(true); - - $query = "SELECT * FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $individualwettbewerbid"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die("Wrong id!"); - $row = $rows[0]; - - if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator($individualwettbewerbid)) - keinZugriff(true); - - $query = "SELECT *," - . " theim1.vorname AS heim_spieler_1_vorname, theim1.nachname AS heim_spieler_1_nachname," - . " theim2.vorname AS heim_spieler_2_vorname, theim2.nachname AS heim_spieler_2_nachname," - . " tgast1.vorname AS gast_spieler_1_vorname, tgast1.nachname AS gast_spieler_1_nachname," - . " tgast2.vorname AS gast_spieler_2_vorname, tgast2.nachname AS gast_spieler_2_nachname" - . "\n FROM #__sportsmanager_individualwettbewerb_spiel" - . "\n LEFT JOIN #__sportsmanager_spieler AS theim1 ON theim1.spieler_id = heim_spieler_1_id" - . "\n LEFT JOIN #__sportsmanager_spieler AS theim2 ON theim2.spieler_id = heim_spieler_2_id" - . "\n LEFT JOIN #__sportsmanager_spieler AS tgast1 ON tgast1.spieler_id = gast_spieler_1_id" - . "\n LEFT JOIN #__sportsmanager_spieler AS tgast2 ON tgast2.spieler_id = gast_spieler_2_id" - . "\n WHERE individualwettbewerb_id = $individualwettbewerbid" - . "\n ORDER BY zeitpunkt DESC, individualwettbewerb_spiel_id DESC"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $spiele = $db->loadObjectList(); - - if ($row->tabellenwertung) { - $query = "SELECT spieler_id, nachname, vorname, vereinsname, aktueller_verein_id, platz, bild_ausblenden" - . "\n FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung" - . "\n INNER JOIN #__sportsmanager_spieler USING (spieler_id)" - . "\n LEFT JOIN #__sportsmanager_verein ON aktueller_verein_id = verein_id" - . "\n WHERE individualwettbewerb_id = $individualwettbewerbid" - . "\n ORDER BY platz, nachname, vorname"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $ausgangsplatzierungen = $db->loadObjectList(); - } - else { - $ausgangsplatzierungen = null; - } - - HTML_sportsmanager_admin::adminIndividualwettbewerbSpiele($row, $spiele, $ausgangsplatzierungen); -} - -function adminEditIndividualwettbewerbSpiel() { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator()) - keinZugriff(true); - - $individualwettbewerbid = $jinput->get('individualwettbewerbid', 0, 'INT'); - $query = "SELECT * FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $individualwettbewerbid"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die("Wrong id!"); - $individualwettbewerb = $rows[0]; - - if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator($individualwettbewerbid)) - keinZugriff(true); - - $id = $jinput->get('id', 0, 'INT'); - $typ = $jinput->get('typ', 0, 'RAW'); - - if (empty($id)) { - $row = null; - $spiel_spieler_ids = null; - } - else { - $query = "SELECT * FROM #__sportsmanager_individualwettbewerb_spiel WHERE individualwettbewerb_spiel_id = $id AND individualwettbewerb_id = $individualwettbewerbid"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die("Wrong id!"); - $row = $rows[0]; - - $spiel_spieler_ids = array($row->heim_spieler_1_id, $row->gast_spieler_1_id); - if ($row->heim_spieler_2_id != null) - array_push($spiel_spieler_ids, $row->heim_spieler_2_id, $row->gast_spieler_2_id); - $typ = $row->heim_spieler_2_id != null ? "doppel" : "einzel"; - } - - $query = "SELECT DISTINCT spieler_id, vorname, nachname, spielernr" - . "\n FROM #__sportsmanager_spieler" - . "\n WHERE NOT ISNULL(aktueller_verein_id)" . (!empty($spiel_spieler_ids) ? (" OR spieler_id IN (" . implode($spiel_spieler_ids, ", ") . ")") : "") - . "\n ORDER BY nachname, vorname"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $spieler = $db->loadObjectList(); - - HTML_sportsmanager_admin::adminEditIndividualwettbewerbSpiel($row, $typ, $individualwettbewerb, $spieler); -} - -function adminSaveIndividualwettbewerbSpiel() { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - $individualwettbewerbid = $jinput->get('individualwettbewerbid', 0, 'INT'); - if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator($individualwettbewerbid)) - keinZugriff(); - - $id = $jinput->get('id', 0, 'INT'); - $typ = $jinput->get('typ', 0, 'RAW'); - - if ($jinput->get('cancel', false, 'BOOL')) { - redirectSportsManagerURL('&task=admin_individualwettbewerb_spiele&individualwettbewerbid=' . $individualwettbewerbid . '#sid' . $id); - - return; - } - - $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); - - if ($zeitpunkt == null) { - redirectSportsManagerURL('&task=admin_individualwettbewerb_spiele&individualwettbewerbid=' . $individualwettbewerbid . '#sid' . id, "Es muss ein gültiges Datum angegeben werden."); - - return; - } - - $ergebnis_punkte_heim = $jinput->get('ergebnis_punkte_heim', array(), 'ARRAY'); - $ergebnis_punkte_gast = $jinput->get('ergebnis_punkte_gast', array(), 'ARRAY'); - - $ergebnis_detailliert = ""; - $saetze_heim = 0; - $saetze_gast = 0; - for ($i = 0; $i < count($ergebnis_punkte_heim); $i++) { - if (($ergebnis_punkte_heim[$i] == 0 || empty($ergebnis_punkte_heim[$i])) && ($ergebnis_punkte_gast[$i] == 0 || empty($ergebnis_punkte_gast[$i]))) - continue; - if (!empty($ergebnis_detailliert)) - $ergebnis_detailliert .= " "; - $punkte_heim = empty($ergebnis_punkte_heim[$i]) ? "0" : $ergebnis_punkte_heim[$i]; - $punkte_gast = empty($ergebnis_punkte_gast[$i]) ? "0" : $ergebnis_punkte_gast[$i]; - if ($punkte_heim > $punkte_gast) - $saetze_heim++; - else if ($punkte_gast > $punkte_heim) - $saetze_gast++; - $ergebnis_detailliert .= $punkte_heim . ":" . $punkte_gast; - } - $ergebnis = $saetze_heim > $saetze_gast ? 1 : ($saetze_heim < $saetze_gast ? 2 : 0); - - $heim_spieler_1_id = $jinput->get('heim_spieler_1_id', 0, 'INT'); - $heim_spieler_2_id = $jinput->get('heim_spieler_2_id', 0, 'INT'); - $gast_spieler_1_id = $jinput->get('gast_spieler_1_id', 0, 'INT'); - $gast_spieler_2_id = $jinput->get('gast_spieler_2_id', 0, 'INT'); - - $query = "LOCK TABLES #__sportsmanager_individualwettbewerb READ, #__sportsmanager_individualwettbewerb_spiel WRITE, #__sportsmanager_spieler READ"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - if (empty($id)) - $spiel = null; - else { - $query = "SELECT * FROM #__sportsmanager_individualwettbewerb_spiel WHERE individualwettbewerb_spiel_id = $id AND individualwettbewerb_id = $individualwettbewerbid"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die("Wrong id!"); - $spiel = $rows[0]; - - $typ = $spiel->heim_spieler_2_id != null ? "doppel" : "einzel"; - } - - if (empty($heim_spieler_1_id) || empty($gast_spieler_1_id) || ($typ != "einzel" && (empty($heim_spieler_2_id) || empty($gast_spieler_2_id)))) { - $query = "UNLOCK TABLES;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - redirectSportsManagerURL('&task=admin_individualwettbewerb_spiele&individualwettbewerbid=' . $individualwettbewerbid . '#sid' . id, "Es müssen Spieler ausgewählt werden."); - - return; - } - - $query = "SELECT * FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $individualwettbewerbid"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die("Wrong id!"); - $individualwettbewerb = $rows[0]; - - $elo_aktualisieren = $individualwettbewerb->elo_wertung; - $aktualisieren_ab_datum = $zeitpunkt; - - if ($id == 0) { - $query = "INSERT #__sportsmanager_individualwettbewerb_spiel" - . "\n SET individualwettbewerb_id = $individualwettbewerbid," - . "\n zeitpunkt = '$zeitpunkt'," - . "\n heim_spieler_1_id = '$heim_spieler_1_id'," - . "\n heim_spieler_2_id = " . ($typ != "einzel" ? "'$heim_spieler_2_id'" : "NULL") . "," - . "\n gast_spieler_1_id = '$gast_spieler_1_id'," - . "\n gast_spieler_2_id = " . ($typ != "einzel" ? "'$gast_spieler_2_id'" : "NULL") . "," - . "\n ergebnis = '$ergebnis'," - . "\n ergebnis_detailliert = " . (empty($ergebnis_detailliert) ? "null" : "'$ergebnis_detailliert'"); - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $id = $db->insertid(); - } - else { - $query = "UPDATE #__sportsmanager_individualwettbewerb_spiel" - . "\n SET zeitpunkt = '$zeitpunkt'," - . "\n heim_spieler_1_id = '$heim_spieler_1_id'," - . "\n heim_spieler_2_id = " . ($typ != "einzel" ? "'$heim_spieler_2_id'" : "NULL") . "," - . "\n gast_spieler_1_id = '$gast_spieler_1_id'," - . "\n gast_spieler_2_id = " . ($typ != "einzel" ? "'$gast_spieler_2_id'" : "NULL") . "," - . "\n ergebnis = '$ergebnis'," - . "\n ergebnis_detailliert = " . (empty($ergebnis_detailliert) ? "null" : "'$ergebnis_detailliert'") - . "\n WHERE individualwettbewerb_spiel_id = $id AND individualwettbewerb_id = $individualwettbewerbid"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - - $query = "UNLOCK TABLES;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - individualwettbewerbTabelleAktualisieren($individualwettbewerbid); - - wannGespieltAktualisieren(); - if ($elo_aktualisieren) { - eloAktualisieren($aktualisieren_ab_datum); - einstufungAktualisieren(); - } - spielerstatistikAktualisieren(0, 0, $individualwettbewerbid); - - redirectSportsManagerURL('&task=admin_individualwettbewerb_spiele&individualwettbewerbid=' . $individualwettbewerbid . '#sid' . $id); -} - -function adminRemoveIndividualwettbewerbSpiel() { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - $id = $jinput->get('id', 0, 'INT'); - $individualwettbewerbid = $jinput->get('individualwettbewerbid', 0, 'INT'); - if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator($individualwettbewerbid)) - keinZugriff(true); - - $query = "LOCK TABLES #__sportsmanager_individualwettbewerb READ, #__sportsmanager_individualwettbewerb_spiel WRITE"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - $query = "SELECT * FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $individualwettbewerbid"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die("Wrong id!"); - $individualwettbewerb = $rows[0]; - - $query = "SELECT * FROM #__sportsmanager_individualwettbewerb_spiel WHERE individualwettbewerb_spiel_id = $id AND individualwettbewerb_id = $individualwettbewerbid"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die("Wrong id!"); - $spiel = $rows[0]; - - $elo_aktualisieren = $individualwettbewerb->elo_wertung; - $aktualisieren_ab_datum = $spiel->zeitpunkt; - - $query = "DELETE FROM #__sportsmanager_individualwettbewerb_spiel WHERE individualwettbewerb_spiel_id = $id AND individualwettbewerb_id = $individualwettbewerbid;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - $query = "UNLOCK TABLES;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - individualwettbewerbTabelleAktualisieren($individualwettbewerbid); - - wannGespieltAktualisieren(); - if ($elo_aktualisieren && $aktualisieren_ab_datum != null) { - eloAktualisieren($aktualisieren_ab_datum); - einstufungAktualisieren(); - } - spielerstatistikAktualisieren(0, 0, $individualwettbewerbid); - - redirectSportsManagerURL('&task=admin_individualwettbewerb_spiele&individualwettbewerbid=' . $individualwettbewerbid); -} - -function adminEditIndividualwettbewerbAusgangsplatzierung() { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator()) - keinZugriff(true); - - $individualwettbewerbid = $jinput->get('individualwettbewerbid', 0, 'INT'); - $query = "SELECT * FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $individualwettbewerbid"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die("Wrong id!"); - $individualwettbewerb = $rows[0]; - - if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator($individualwettbewerbid)) - keinZugriff(true); - - if (!$individualwettbewerb->tabellenwertung) die("Wrong id!"); - - $id = $jinput->get('id', 0, 'INT'); - $typ = $jinput->get('typ', 0, 'RAW'); - - $query = "SELECT spieler_id, nachname, vorname, vereinsname, aktueller_verein_id, platz, bild_ausblenden" - . "\n FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung" - . "\n INNER JOIN #__sportsmanager_spieler USING (spieler_id)" - . "\n LEFT JOIN #__sportsmanager_verein ON aktueller_verein_id = verein_id" - . "\n WHERE individualwettbewerb_id = $individualwettbewerbid" - . "\n ORDER BY platz, nachname, vorname"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $ausgangsplatzierungen = $db->loadObjectList(); - - $row = null; - if (!empty($id)) { - foreach ($ausgangsplatzierungen as $ausgangsplatzierung) { - if ($ausgangsplatzierung->spieler_id == $id) { - $row = $ausgangsplatzierung; - break; - } - } - if ($row == null) die("Wrong id!"); - } - - $query = "SELECT DISTINCT spieler_id, vorname, nachname, spielernr" - . "\n FROM #__sportsmanager_spieler" - . "\n WHERE NOT ISNULL(aktueller_verein_id)" . (!empty($spiel_spieler_ids) ? (" OR spieler_id IN (" . implode($spiel_spieler_ids, ", ") . ")") : "") - . "\n ORDER BY nachname, vorname"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $spieler = $db->loadObjectList(); - - HTML_sportsmanager_admin::adminEditIndividualwettbewerbAusgangsplatzierung($row, $individualwettbewerb, $ausgangsplatzierungen, $spieler); -} - -function adminSaveIndividualwettbewerbAusgangsplatzierung() { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - $individualwettbewerbid = $jinput->get('individualwettbewerbid', 0, 'INT'); - if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator($individualwettbewerbid)) - keinZugriff(); - - $id = $jinput->get('id', 0, 'INT'); - $nach_id = $jinput->get('nach_id', 0, 'INT'); - - if ($jinput->get('cancel', false, 'BOOL')) { - redirectSportsManagerURL('&task=admin_individualwettbewerb_spiele&individualwettbewerbid=' . $individualwettbewerbid . '#pid' . $id); - - return; - } - - if ($id == $nach_id) { - redirectSportsManagerURL('&task=admin_individualwettbewerb_spiele&individualwettbewerbid=' . $individualwettbewerbid . '#pid' . $id); - - return; - } - - $query = "LOCK TABLES #__sportsmanager_individualwettbewerb READ, #__sportsmanager_individualwettbewerb_ausgangsplatzierung WRITE, #__sportsmanager_spieler READ"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - $query = "SELECT * FROM #__sportsmanager_spieler WHERE spieler_id = $id"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die("Wrong id!"); - - $query = "SELECT *" - . "\n FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung" - . "\n WHERE individualwettbewerb_id = $individualwettbewerbid" - . "\n ORDER BY platz"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $ausgangsplatzierungen = $db->loadObjectList(); - - $platzierungen = array(); - foreach ($ausgangsplatzierungen as $ausgangsplatzierung) - array_push($platzierungen, $ausgangsplatzierung->spieler_id); - - if (!empty($nach_id) && !in_array($nach_id, $platzierungen)) die("Wrong id!"); - - $id_platzierung = array_search($id, $platzierungen); - if ($id_platzierung !== false) - array_splice($platzierungen, $id_platzierung, 1); - $nach_id_platzierung = !empty($nach_id) ? (array_search($nach_id, $platzierungen) + 1) : 0; - array_splice($platzierungen, $nach_id_platzierung, 0, $id); - - $platzierungen_uebrig = $platzierungen; - foreach ($ausgangsplatzierungen as $platzierung_vorhanden) { - $index = array_search($platzierung_vorhanden->spieler_id, $platzierungen); - if ($index !== false) { - $platz = $index + 1; - if ($platzierung_vorhanden->platz != $platz) { - $query = "UPDATE #__sportsmanager_individualwettbewerb_ausgangsplatzierung" - . "\n SET platz = '$platz'" - . "\n WHERE individualwettbewerb_ausgangsplatzierung_id = " . $platzierung_vorhanden->individualwettbewerb_ausgangsplatzierung_id; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - - $index_uebrig = array_search($platzierung_vorhanden->spieler_id, $platzierungen_uebrig); - unset($platzierungen_uebrig[$index_uebrig]); - } - else { - $query = "DELETE FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE individualwettbewerb_ausgangsplatzierung_id = " . $platzierung_vorhanden->individualwettbewerb_ausgangsplatzierung_id; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - } - - foreach ($platzierungen_uebrig as $platzierung_uebrig) { - $index = array_search($platzierung_uebrig, $platzierungen); - $platz = $index + 1; - $query = "INSERT #__sportsmanager_individualwettbewerb_ausgangsplatzierung" - . "\n SET individualwettbewerb_id = '$individualwettbewerbid'," - . "\n spieler_id = '$platzierung_uebrig'," - . "\n platz = '$platz'"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - - $query = "UNLOCK TABLES;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - individualwettbewerbTabelleAktualisieren($individualwettbewerbid); - - redirectSportsManagerURL('&task=admin_individualwettbewerb_spiele&individualwettbewerbid=' . $individualwettbewerbid . '#pid' . $id); -} - -function adminRemoveIndividualwettbewerbAusgangsplatzierung() { - $db =& getDatabase(); - $jinput = JFactory::getApplication()->input; - - $id = $jinput->get('id', 0, 'INT'); - $individualwettbewerbid = $jinput->get('individualwettbewerbid', 0, 'INT'); - if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator($individualwettbewerbid)) - keinZugriff(true); - - $query = "LOCK TABLES #__sportsmanager_individualwettbewerb READ, #__sportsmanager_individualwettbewerb_ausgangsplatzierung WRITE"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - $query = "SELECT * FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $individualwettbewerbid"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $rows = $db->loadObjectList(); - if (count($rows) < 1) die("Wrong id!"); - - $query = "SELECT *" - . "\n FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung" - . "\n WHERE individualwettbewerb_id = $individualwettbewerbid" - . "\n ORDER BY platz"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - $ausgangsplatzierungen = $db->loadObjectList(); - - $platzierungen = array(); - foreach ($ausgangsplatzierungen as $ausgangsplatzierung) - array_push($platzierungen, $ausgangsplatzierung->spieler_id); - - if (!empty($nach_id) && !in_array($nach_id, $platzierungen)) die("Wrong id!"); - - $id_platzierung = array_search($id, $platzierungen); - if ($id_platzierung !== false) - array_splice($platzierungen, $id_platzierung, 1); - - foreach ($ausgangsplatzierungen as $platzierung_vorhanden) { - $index = array_search($platzierung_vorhanden->spieler_id, $platzierungen); - if ($index !== false) { - $platz = $index + 1; - if ($platzierung_vorhanden->platz != $platz) { - $query = "UPDATE #__sportsmanager_individualwettbewerb_ausgangsplatzierung" - . "\n SET platz = '$platz'" - . "\n WHERE individualwettbewerb_ausgangsplatzierung_id = " . $platzierung_vorhanden->individualwettbewerb_ausgangsplatzierung_id; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - } - else { - $query = "DELETE FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE individualwettbewerb_ausgangsplatzierung_id = " . $platzierung_vorhanden->individualwettbewerb_ausgangsplatzierung_id; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - } - } - - $query = "UNLOCK TABLES;"; - $db->setQuery($query); - if (!$result = $db->execute()) { - die($db->stderr(true)); - } - - individualwettbewerbTabelleAktualisieren($individualwettbewerbid); - - redirectSportsManagerURL('&task=admin_individualwettbewerb_spiele&individualwettbewerbid=' . $individualwettbewerbid); -} - - -?> +input; + + if (!benutzerModerator() && !benutzerVeranstaltungModerator() && !benutzerTurnierModerator() && !benutzerIndividualwettbewerbModerator()) + keinZugriff(true); + + $unabhaengige_ansicht = empty($content) || $content == "administration"; + + $filter_saison_id = $jinput->get('filter_saison_id', 0, 'INT'); + if ($filter_saison_id == 0) + $filter_saison_id = $jinput->cookie->get('sportsmanager_filter_saison_id', 0, 'INT'); + + $query = "SELECT saison_id, saisonbezeichnung" + . "\n FROM #__sportsmanager_saison" + . "\n ORDER BY saisonbezeichnung DESC"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $saisons = $db->loadObjectList(); + + if (count($saisons) != 0) { + $gefunden = false; + foreach ($saisons as $saison) { + if ($saison->saison_id == $filter_saison_id) { + $gefunden = true; + break; + } + } + if (!$gefunden) + $filter_saison_id = $saisons[0]->saison_id; + } + + $beschraenkter_zugriff_veranstaltungen = benutzerZugriff("mannschaftswettbewerb_aendern") ? 0 : 1; + if ($beschraenkter_zugriff_veranstaltungen) { + $query = "SELECT t1.*, t2.veranstalterbezeichnung, t2.veranstalterkuerzel," + . "\n (SELECT COUNT(*) FROM #__sportsmanager_team AS tt1 WHERE tt1.veranstaltung_id = t1.veranstaltung_id) AS teams," + . "\n (SELECT COUNT(*) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_team AS tt2 ON tt1.heim_team_id = tt2.team_id WHERE tt2.veranstaltung_id = t1.veranstaltung_id) AS begegnungen" + . "\n FROM #__sportsmanager_veranstaltung AS t1" + . "\n LEFT JOIN #__sportsmanager_veranstalter AS t2 ON t1.veranstalter_id = t2.veranstalter_id" + . "\n WHERE " . veranstaltungFilter("t1.veranstaltung_id IN") + . ($filter_saison_id != 0 ? " AND saison_id = $filter_saison_id" : "") + . "\n ORDER BY t1.reihenfolge, t1.letzter_tag DESC, t1.bezeichnung, t1.kategorie"; + } + else { + $query = "SELECT t1.*, t2.veranstalterbezeichnung, t2.veranstalterkuerzel," + . "\n (SELECT COUNT(*) FROM #__sportsmanager_team AS tt1 WHERE tt1.veranstaltung_id = t1.veranstaltung_id) AS teams," + . "\n (SELECT COUNT(*) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_team AS tt2 ON tt1.heim_team_id = tt2.team_id WHERE tt2.veranstaltung_id = t1.veranstaltung_id) AS begegnungen" + . "\n FROM #__sportsmanager_veranstaltung AS t1" + . "\n LEFT JOIN #__sportsmanager_veranstalter AS t2 ON t1.veranstalter_id = t2.veranstalter_id" + . ($filter_saison_id != 0 ? "\n WHERE saison_id = $filter_saison_id" : "") + . "\n ORDER BY t1.reihenfolge, t1.letzter_tag DESC, t1.bezeichnung, t1.kategorie"; + } + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $veranstaltungen = $db->loadObjectList(); + + $query = "SELECT *," + . "\n (SELECT COUNT(*) FROM #__sportsmanager_bestenliste_veranstaltung AS t2 WHERE t1.bestenliste_id = t2.bestenliste_id) + (SELECT COUNT(*) FROM #__sportsmanager_bestenliste_individualwettbewerb AS t2 WHERE t1.bestenliste_id = t2.bestenliste_id) AS veranstaltungen" + . "\n FROM #__sportsmanager_bestenliste AS t1" + . ($filter_saison_id != 0 ? "\n WHERE saison_id = $filter_saison_id" : "") + . "\n ORDER BY t1.reihenfolge, t1.letzter_tag DESC, t1.bezeichnung, t1.kategorie"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $spielerstatistiken = $db->loadObjectList(); + + $beschraenkter_zugriff_turniere = benutzerZugriff("turniere_aendern") ? 0 : 1; + if ($beschraenkter_zugriff_turniere) { + $query = "SELECT #__sportsmanager_turnier.*, veranstalterbezeichnung, veranstalterkuerzel, GROUP_CONCAT(disziplintitel ORDER BY disziplintitel SEPARATOR ', ') AS disziplinen, COUNT(turnierdisziplin_id) AS disziplinen_anzahl, COALESCE(SUM(meldung_vorhanden), 0) AS disziplinen_mit_meldung_anzahl" + . "\n FROM #__sportsmanager_turnier" + . "\n LEFT JOIN ((SELECT turnier_id, turnierdisziplin_id, status, IF(COALESCE(kuerzel, '') <> '', kuerzel, disziplin) AS disziplintitel, IF(EXISTS(SELECT * FROM #__sportsmanager_turniermeldung WHERE #__sportsmanager_turniermeldung.turnierdisziplin_id = #__sportsmanager_turnierdisziplin.turnierdisziplin_id), 1, 0) AS meldung_vorhanden FROM #__sportsmanager_turnierdisziplin) AS turnierdisziplin) USING (turnier_id)" + . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)" + . "\n WHERE " . turnierFilter("#__sportsmanager_turnier.turnier_id IN") + . ($filter_saison_id != 0 ? " AND saison_id = $filter_saison_id" : "") + . "\n GROUP BY turnier_id" + . "\n ORDER BY erster_tag DESC, turnierbezeichnung"; + } + else { + $query = "SELECT #__sportsmanager_turnier.*, veranstalterbezeichnung, veranstalterkuerzel, GROUP_CONCAT(disziplintitel ORDER BY disziplintitel SEPARATOR ', ') AS disziplinen, COUNT(turnierdisziplin_id) AS disziplinen_anzahl, COALESCE(SUM(meldung_vorhanden), 0) AS disziplinen_mit_meldung_anzahl" + . "\n FROM #__sportsmanager_turnier" + . "\n LEFT JOIN ((SELECT turnier_id, turnierdisziplin_id, status, IF(COALESCE(kuerzel, '') <> '', kuerzel, disziplin) AS disziplintitel, IF(EXISTS(SELECT * FROM #__sportsmanager_turniermeldung WHERE #__sportsmanager_turniermeldung.turnierdisziplin_id = #__sportsmanager_turnierdisziplin.turnierdisziplin_id), 1, 0) AS meldung_vorhanden FROM #__sportsmanager_turnierdisziplin) AS turnierdisziplin) USING (turnier_id)" + . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)" + . ($filter_saison_id != 0 ? "\n WHERE saison_id = $filter_saison_id" : "") + . "\n GROUP BY turnier_id" + . "\n ORDER BY erster_tag DESC, turnierbezeichnung"; + } + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $turniere = $db->loadObjectList(); + + $beschraenkter_zugriff_individualwettbewerbe = benutzerZugriff("individualwettbewerbe_aendern") ? 0 : 1; + if ($beschraenkter_zugriff_individualwettbewerbe) { + $query = "SELECT #__sportsmanager_individualwettbewerb.*, veranstalterbezeichnung, veranstalterkuerzel," + . "\n (SELECT COUNT(*) FROM #__sportsmanager_individualwettbewerb_spiel WHERE individualwettbewerb_id = #__sportsmanager_individualwettbewerb.individualwettbewerb_id) AS spiele" + . "\n FROM #__sportsmanager_individualwettbewerb" + . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)" + . "\n WHERE " . individualwettbewerbFilter("individualwettbewerb_id IN") + . ($filter_saison_id != 0 ? " AND saison_id = $filter_saison_id" : "") + . "\n ORDER BY reihenfolge, bezeichnung, kategorie"; + } + else { + $query = "SELECT #__sportsmanager_individualwettbewerb.*, veranstalterbezeichnung, veranstalterkuerzel," + . "\n (SELECT COUNT(*) FROM #__sportsmanager_individualwettbewerb_spiel WHERE individualwettbewerb_id = #__sportsmanager_individualwettbewerb.individualwettbewerb_id) AS spiele" + . "\n FROM #__sportsmanager_individualwettbewerb" + . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)" + . ($filter_saison_id != 0 ? "\n WHERE saison_id = $filter_saison_id" : "") + . "\n ORDER BY reihenfolge, bezeichnung, kategorie"; + } + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $individualwettbewerbe = $db->loadObjectList(); + + $query = "SELECT *," + . "\n (SELECT COUNT(*) FROM #__sportsmanager_rangliste_turnierdisziplin AS t2 WHERE t1.rangliste_id = t2.rangliste_id) AS turnierdisziplinen" + . "\n FROM #__sportsmanager_rangliste AS t1" + . ($filter_saison_id != 0 ? "\n WHERE saison_id = $filter_saison_id" : "") + . "\n ORDER BY t1.reihenfolge, t1.letzter_tag DESC, t1.bezeichnung, t1.kategorie"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $ranglisten = $db->loadObjectList(); + + $statistik = array(); + + $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_saison), 1, 0)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $statistik["saisons"] = $db->loadResult(); + + $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_teamspiel_modus), 1, 0)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $statistik["teamspielmodi"] = $db->loadResult(); + + $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_veranstalter), 1, 0)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $statistik["veranstalter"] = $db->loadResult(); + + $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_rangliste_system), 1, 0)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $statistik["ranglistensysteme"] = $db->loadResult(); + + $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_turnierdisziplin), 1, 0)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $statistik["turnierdisziplinen"] = $db->loadResult(); + + $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb), 1, 0)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $statistik["individualwettbewerbe"] = $db->loadResult(); + + HTML_sportsmanager_admin::adminUebersicht($veranstaltungen, $spielerstatistiken, $turniere, $ranglisten, $individualwettbewerbe, $statistik, $saisons, $filter_saison_id, $unabhaengige_ansicht, isExternalDatabase()); +} + +function adminVerteiler() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("verteiler_aendern") && !benutzerZugriff("verteiler_lesen")) + keinZugriff(true); + + $filter_saison_id = $jinput->get('filter_saison_id', 0, 'INT'); + if ($filter_saison_id == 0) + $filter_saison_id = $jinput->cookie->get('sportsmanager_filter_saison_id', 0, 'INT'); + + $query = "SELECT saison_id, saisonbezeichnung" + . "\n FROM #__sportsmanager_saison" + . "\n ORDER BY saisonbezeichnung DESC"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $saisons = $db->loadObjectList(); + + if (count($saisons) != 0) { + $gefunden = false; + foreach ($saisons as $saison) { + if ($saison->saison_id == $filter_saison_id) { + $gefunden = true; + break; + } + } + if (!$gefunden) + $filter_saison_id = $saisons[0]->saison_id; + } + + $query = "SELECT *" + . "\n FROM #__sportsmanager_verteiler" + . "\n ORDER BY bezeichnung"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $verteiler = $db->loadObjectList(); + + $query = "SELECT *" + . "\n FROM #__sportsmanager_veranstalter" + . "\n ORDER BY veranstalterbezeichnung"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $organisationen = $db->loadObjectList(); + + $organisationen_mailverteiler = array(); + foreach ($organisationen as $organisation) { + $query = "SELECT vorname, nachname, email" + . "\n FROM #__sportsmanager_vereinsansprechpartner" + . "\n LEFT JOIN #__sportsmanager_verein USING (verein_id)" + . "\n WHERE " . ($organisation->veranstalter_id != null ? "veranstalter_id = $organisation->veranstalter_id" : "ISNULL(veranstalter_id)") + . " AND NOT ausgetreten AND email != ''" + . "\n ORDER BY vorname, nachname, email"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + + $organisationen_mailverteiler[$organisation->veranstalter_id] = ""; + $organisationen_mailverteiler[$organisation->veranstalter_id . "p"] = ""; + foreach ($rows as $row) { + $organisationen_mailverteiler[$organisation->veranstalter_id] .= (!empty($organisationen_mailverteiler[$organisation->veranstalter_id]) ? "; " : "") . $row->email; + $organisationen_mailverteiler[$organisation->veranstalter_id . "p"] .= (!empty($organisationen_mailverteiler[$organisation->veranstalter_id . "p"]) ? "; " : "") . "\"" . $row->vorname . " " . $row->nachname . "\" <" . $row->email . ">"; + } + } + + $query = "SELECT t1.*, veranstalterbezeichnung" + . "\n FROM #__sportsmanager_veranstaltung AS t1" + . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)" + . ($filter_saison_id != 0 ? "\n WHERE saison_id = $filter_saison_id" : "") + . "\n ORDER BY t1.reihenfolge, t1.letzter_tag DESC, bezeichnung, t1.kategorie"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $veranstaltungen = $db->loadObjectList(); + + $veranstaltungen_mailverteiler = array(); + foreach ($veranstaltungen as $veranstaltung) { + $query = "SELECT vorname, nachname, email" + . "\n FROM #__sportsmanager_teamansprechpartner, #__sportsmanager_team" + . "\n WHERE veranstaltung_id = $veranstaltung->veranstaltung_id AND #__sportsmanager_teamansprechpartner.team_id = #__sportsmanager_team.team_id AND email != ''" + . "\n ORDER BY vorname, nachname, email"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + + $veranstaltungen_mailverteiler[$veranstaltung->veranstaltung_id] = ""; + $veranstaltungen_mailverteiler[$veranstaltung->veranstaltung_id . "p"] = ""; + foreach ($rows as $row) { + $veranstaltungen_mailverteiler[$veranstaltung->veranstaltung_id] .= (!empty($veranstaltungen_mailverteiler[$veranstaltung->veranstaltung_id]) ? "; " : "") . $row->email; + $veranstaltungen_mailverteiler[$veranstaltung->veranstaltung_id . "p"] .= (!empty($veranstaltungen_mailverteiler[$veranstaltung->veranstaltung_id . "p"]) ? "; " : "") . "\"" . $row->vorname . " " . $row->nachname . "\" <" . $row->email . ">"; + } + } + + HTML_sportsmanager_admin::adminVerteiler($verteiler, $organisationen, $organisationen_mailverteiler, $veranstaltungen, $veranstaltungen_mailverteiler, $saisons, $filter_saison_id, benutzerZugriff("verteiler_aendern")); +} + +function adminEditVerteiler() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("verteiler_aendern")) + keinZugriff(true); + + $id = $jinput->get('id', 0, 'INT'); + if ($id == null) + $row = null; + else { + $query = "SELECT * FROM #__sportsmanager_verteiler WHERE verteiler_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die("Wrong id!"); + $row = $rows[0]; + } + + HTML_sportsmanager_admin::adminEditVerteiler($row); +} + +function adminSaveVerteiler() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("verteiler_aendern")) + keinZugriff(); + + if ($jinput->get('cancel', false, 'BOOL')) { + redirectSportsManagerURL('&task=admin_verteiler'); + + return; + } + + $id = $jinput->get('id', 0, 'INT'); + $bezeichnung = $db->escape(trim($jinput->get('bezeichnung', '', 'RAW'))); + $verteiler = $db->escape(trim($jinput->get('verteiler', '', 'RAW'))); + if ($id == 0) + $query = "INSERT INTO #__sportsmanager_verteiler (bezeichnung, verteiler) VALUES ('$bezeichnung', '$verteiler');"; + else { + $query = "UPDATE #__sportsmanager_verteiler" + . "\n SET bezeichnung = '$bezeichnung'," + . "\n verteiler = '$verteiler'" + . "\n WHERE verteiler_id = $id"; + } + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + redirectSportsManagerURL('&task=admin_verteiler'); +} + +function adminRemoveVerteiler() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("verteiler_aendern")) + keinZugriff(true); + + $id = $jinput->get('id', 0, 'INT'); + + $query = "DELETE FROM #__sportsmanager_verteiler WHERE verteiler_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=admin_verteiler'); +} + +function adminRechnungen() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("rechnungen_aendern")) + keinZugriff(true); + + $filter_saison_id = $jinput->get('filter_saison_id', 0, 'INT'); + if ($filter_saison_id == 0) + $filter_saison_id = $jinput->cookie->get('sportsmanager_filter_saison_id', 0, 'INT'); + + $query = "SELECT saison_id, saisonbezeichnung" + . "\n FROM #__sportsmanager_saison" + . "\n ORDER BY saisonbezeichnung DESC"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $saisons = $db->loadObjectList(); + + if (count($saisons) == 0) + die("Wrong id!"); + + $gefunden = false; + foreach ($saisons as $saison) { + if ($saison->saison_id == $filter_saison_id) { + $filter_saison = $saison; + $gefunden = true; + break; + } + } + if (!$gefunden) { + $filter_saison_id = $saisons[0]->saison_id; + $saison = $saisons[0]; + } + + $query = "SELECT #__sportsmanager_rechnung.*, IF(ISNULL(#__sportsmanager_verein.verein_id), #__sportsmanager_veranstalter.veranstalterbezeichnung, #__sportsmanager_verein.vereinsname) AS zuordnungbezeichnung," + . " (SELECT COUNT(*) FROM #__sportsmanager_rechnung_spieler WHERE #__sportsmanager_rechnung_spieler.rechnung_id = #__sportsmanager_rechnung.rechnung_id) AS mitglieder" + . "\n FROM #__sportsmanager_rechnung" + . "\n LEFT JOIN #__sportsmanager_verein USING (verein_id)" + . "\n LEFT JOIN #__sportsmanager_veranstalter ON #__sportsmanager_rechnung.veranstalter_id = #__sportsmanager_veranstalter.veranstalter_id" + . "\n WHERE saison_id = $filter_saison_id" + . "\n ORDER BY bezeichnung, zuordnungbezeichnung, notiz"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rechnungen = $db->loadObjectList(); + + $query = "SELECT DISTINCT IF(ISNULL(#__sportsmanager_verein.verein_id), #__sportsmanager_veranstalter.veranstalter_id, #__sportsmanager_verein.verein_id) AS zuordnung_id, IF(ISNULL(#__sportsmanager_verein.verein_id), #__sportsmanager_veranstalter.veranstalterbezeichnung, #__sportsmanager_verein.vereinsname) AS zuordnungbezeichnung," + . " IF(ISNULL(#__sportsmanager_verein.verein_id), IF(ISNULL(#__sportsmanager_veranstalter.veranstalter_id), 0," + . "\n (SELECT COUNT(DISTINCT spieler_id)" + . "\n FROM #__sportsmanager_veranstalter AS va1" + . "\n LEFT JOIN #__sportsmanager_verein AS ve1 USING (veranstalter_id)" + . "\n LEFT JOIN #__sportsmanager_mitglied_von_verein AS mve1 USING (verein_id)" + . "\n WHERE va1.veranstalter_id = #__sportsmanager_veranstalter.veranstalter_id AND NOT ve1.ausgetreten AND NOT mve1.ausgetreten AND mve1.spieler_id NOT IN (SELECT DISTINCT spieler_id FROM #__sportsmanager_rechnung AS re1 INNER JOIN #__sportsmanager_rechnung_spieler AS res1 ON re1.rechnung_id = res1.rechnung_id WHERE saison_id = $filter_saison_id))" + . ")," + . "\n (SELECT COUNT(DISTINCT spieler_id)" + . "\n FROM #__sportsmanager_verein AS ve1" + . "\n LEFT JOIN #__sportsmanager_mitglied_von_verein AS mve1 USING (verein_id)" + . "\n WHERE ve1.verein_id = #__sportsmanager_verein.verein_id AND NOT ve1.ausgetreten AND NOT mve1.ausgetreten AND mve1.spieler_id NOT IN (SELECT DISTINCT spieler_id FROM #__sportsmanager_rechnung AS re1 INNER JOIN #__sportsmanager_rechnung_spieler AS res1 ON re1.rechnung_id = res1.rechnung_id WHERE saison_id = $filter_saison_id))" + . ") AS neuzugaenge" +// . " (SELECT COUNT(*) FROM #__sportsmanager_rechnung_spieler WHERE #__sportsmanager_rechnung_spieler.rechnung_id = #__sportsmanager_rechnung.rechnung_id) AS mitglieder" + . "\n FROM #__sportsmanager_rechnung" + . "\n LEFT JOIN #__sportsmanager_verein USING (verein_id)" + . "\n LEFT JOIN #__sportsmanager_veranstalter ON #__sportsmanager_rechnung.veranstalter_id = #__sportsmanager_veranstalter.veranstalter_id" + . "\n WHERE saison_id = $filter_saison_id" + . "\n HAVING neuzugaenge > 0" + . "\n ORDER BY zuordnungbezeichnung"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $neuzugaenge = $db->loadObjectList(); + + $query = "SELECT DISTINCT IF(ISNULL(#__sportsmanager_verein.verein_id), #__sportsmanager_veranstalter.veranstalter_id, #__sportsmanager_verein.verein_id) AS zuordnung_id, IF(ISNULL(#__sportsmanager_verein.verein_id), #__sportsmanager_veranstalter.veranstalterbezeichnung, #__sportsmanager_verein.vereinsname) AS zuordnungbezeichnung," + . " IF(ISNULL(#__sportsmanager_verein.verein_id), IF(ISNULL(#__sportsmanager_veranstalter.veranstalter_id), 0," + . "\n (SELECT COUNT(DISTINCT spieler_id)" + . "\n FROM #__sportsmanager_veranstalter AS va1" + . "\n INNER JOIN #__sportsmanager_verein AS ve1 USING (veranstalter_id)" + . "\n INNER JOIN #__sportsmanager_mitglied_von_verein AS mve1 USING (verein_id)" + . "\n INNER JOIN #__sportsmanager_rechnung_spieler USING (spieler_id)" + . "\n INNER JOIN #__sportsmanager_rechnung USING (rechnung_id)" + . "\n WHERE #__sportsmanager_rechnung.saison_id = $filter_saison_id AND #__sportsmanager_rechnung.veranstalter_id = #__sportsmanager_veranstalter.veranstalter_id)" + . ")," + . "\n (SELECT COUNT(DISTINCT spieler_id)" + . "\n FROM #__sportsmanager_verein AS ve1" + . "\n INNER JOIN #__sportsmanager_mitglied_von_verein AS mve1 USING (verein_id)" + . "\n INNER JOIN #__sportsmanager_rechnung_spieler USING (spieler_id)" + . "\n INNER JOIN #__sportsmanager_rechnung USING (rechnung_id)" + . "\n WHERE #__sportsmanager_rechnung.saison_id = $filter_saison_id AND #__sportsmanager_rechnung.verein_id = #__sportsmanager_verein.verein_id)" + . ") AS mitglieder" +// . " (SELECT COUNT(*) FROM #__sportsmanager_rechnung_spieler WHERE #__sportsmanager_rechnung_spieler.rechnung_id = #__sportsmanager_rechnung.rechnung_id) AS mitglieder" + . "\n FROM #__sportsmanager_rechnung" + . "\n LEFT JOIN #__sportsmanager_verein USING (verein_id)" + . "\n LEFT JOIN #__sportsmanager_veranstalter ON #__sportsmanager_rechnung.veranstalter_id = #__sportsmanager_veranstalter.veranstalter_id" + . "\n WHERE saison_id = $filter_saison_id" + . "\n ORDER BY zuordnungbezeichnung"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $aufsummierung = $db->loadObjectList(); + + HTML_sportsmanager_admin::adminRechnungen($rechnungen, $neuzugaenge, $aufsummierung, $saisons, $filter_saison_id, $saison); +} + +function adminEditRechnung() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("rechnungen_aendern")) + keinZugriff(true); + + $id = $jinput->get('id', 0, 'INT'); + if ($id == null) + $row = null; + else { + $query = "SELECT #__sportsmanager_rechnung.*, IF(ISNULL(#__sportsmanager_verein.verein_id), #__sportsmanager_veranstalter.veranstalterbezeichnung, #__sportsmanager_verein.vereinsname) AS zuordnungbezeichnung" + . "\n FROM #__sportsmanager_rechnung" + . "\n LEFT JOIN #__sportsmanager_verein USING (verein_id)" + . "\n LEFT JOIN #__sportsmanager_veranstalter ON #__sportsmanager_rechnung.veranstalter_id = #__sportsmanager_veranstalter.veranstalter_id" + . "\n WHERE rechnung_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die("Wrong id!"); + $row = $rows[0]; + } + + $query = "SELECT *" + . "\n FROM #__sportsmanager_veranstalter" + . "\n ORDER BY veranstalterbezeichnung"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $veranstalter = $db->loadObjectList(); + + $query = "SELECT #__sportsmanager_verein.verein_id, #__sportsmanager_verein.veranstalter_id, vereinsname, veranstalterbezeichnung" + . "\n FROM #__sportsmanager_verein" + . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)" + . "\n WHERE NOT ausgetreten" + . "\n ORDER BY veranstalterbezeichnung, vereinsname"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $vereine = $db->loadObjectList(); + + HTML_sportsmanager_admin::adminEditRechnung($row, $veranstalter, $vereine); +} + +function adminSaveRechnung() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("rechnungen_aendern")) + keinZugriff(); + + if ($jinput->get('cancel', false, 'BOOL')) { + redirectSportsManagerURL('&task=admin_rechnungen'); + + return; + } + + $filter_saison_id = $jinput->get('filter_saison_id', 0, 'INT'); + if ($filter_saison_id == 0) + $filter_saison_id = $jinput->cookie->get('sportsmanager_filter_saison_id', 0, 'INT'); + + $query = "SELECT saison_id, saisonbezeichnung" + . "\n FROM #__sportsmanager_saison" + . "\n ORDER BY saisonbezeichnung DESC"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $saisons = $db->loadObjectList(); + + if (count($saisons) != 0) { + $gefunden = false; + foreach ($saisons as $saison) { + if ($saison->saison_id == $filter_saison_id) { + $gefunden = true; + break; + } + } + if (!$gefunden) + $filter_saison_id = $saisons[0]->saison_id; + } + + if ($filter_saison_id == 0) + die ("Wrong id"); + + $id = $jinput->get('id', 0, 'INT'); + $bezeichnung = $db->escape(trim($jinput->get('bezeichnung', '', 'RAW'))); + $notiz = $db->escape(trim($jinput->get('notiz', '', 'RAW'))); + $veranstalterid = $db->escape($jinput->get('veranstalterid', 0, 'RAW')); + $mitgliedsstatus = $jinput->get('mitgliedsstatus', 0, 'INT'); + $wertungskategorie = $jinput->get('wertungskategorie', 0, 'INT'); + if ($id == 0) { + $filter_mitgliedsstatus = ""; + for ($i = 1; $i <= 3; $i++) { + if (pow(2, $i) & $mitgliedsstatus) { + if (!empty($filter_mitgliedsstatus)) + $filter_mitgliedsstatus .= " OR "; + $filter_mitgliedsstatus .= "mitgliedsstatus = " . $i; + } + } + if (!empty($filter_mitgliedsstatus)) + $filter_mitgliedsstatus = " AND (" . $filter_mitgliedsstatus . ")"; + $filter_kategorie = ""; + if ($wertungskategorie != 15) { + $kategorien = array(); + foreach (array(1 => "H", 2 => "D", 4 => "J", 8 => "S") as $b => $wert) { + if ($b & $wertungskategorie) + array_push($kategorien, "\"" . $wert . "\""); + } + $jahr = date("Y"); + if (!empty($kategorien)) + $filter_kategorie = " AND IF(ISNULL(geburtsjahr), IF(geschlecht = 'M', 'H', 'D'), IF(" . ($jahr - 18) . " <= geburtsjahr, 'J', IF(" . ($jahr - 50) . " > geburtsjahr, 'S', IF(geschlecht = 'M', 'H', 'D')))) IN (" . implode(", ", $kategorien) . ")"; + else + $filter_kategorie = " AND FALSE"; + } + if (strlen($veranstalterid) > 1 && $veranstalterid[0] == "v") { + $verein_id = substr($veranstalterid, 1); + $query = "INSERT INTO #__sportsmanager_rechnung (saison_id, bezeichnung, notiz, verein_id, mitgliedsstatus, wertungskategorie) VALUES ('$filter_saison_id', '$bezeichnung', '$notiz', '$verein_id', '$mitgliedsstatus', '$wertungskategorie');"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $id = $db->insertid(); + + $query = "INSERT INTO #__sportsmanager_rechnung_spieler (spieler_id, rechnung_id)" + . "\n SELECT DISTINCT #__sportsmanager_mitglied_von_verein.spieler_id, '$id'" + . "\n FROM #__sportsmanager_mitglied_von_verein" + . "\n LEFT JOIN #__sportsmanager_spieler USING (spieler_id)" + . "\n WHERE #__sportsmanager_mitglied_von_verein.verein_id = $verein_id" . $filter_mitgliedsstatus . $filter_kategorie . " AND spieler_id NOT IN (SELECT DISTINCT #__sportsmanager_rechnung_spieler.spieler_id FROM #__sportsmanager_rechnung INNER JOIN #__sportsmanager_rechnung_spieler ON #__sportsmanager_rechnung.rechnung_id = #__sportsmanager_rechnung_spieler.rechnung_id WHERE saison_id = $filter_saison_id)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + else if (strlen($veranstalterid) > 1 && $veranstalterid[0] == "a") { + $veranstalter_id = substr($veranstalterid, 1); + $query = "SELECT verein_id, (SELECT COUNT(*) FROM #__sportsmanager_mitglied_von_verein WHERE #__sportsmanager_mitglied_von_verein.verein_id = #__sportsmanager_verein.verein_id AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten) AS mitglieder" + . "\n FROM #__sportsmanager_verein" + . "\n WHERE veranstalter_id = $veranstalter_id AND not ausgetreten" + . "\n ORDER BY mitglieder, vereinsname"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $veranstalter = $db->loadObjectList(); + + foreach ($veranstalter as $row) { + $verein_id = $row->verein_id; + $query = "INSERT INTO #__sportsmanager_rechnung (saison_id, bezeichnung, notiz, verein_id, mitgliedsstatus) VALUES ('$filter_saison_id', '$bezeichnung', '$notiz', '$verein_id', '$mitgliedsstatus');"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $id = $db->insertid(); + + $query = "INSERT INTO #__sportsmanager_rechnung_spieler (spieler_id, rechnung_id)" + . "\n SELECT DISTINCT #__sportsmanager_mitglied_von_verein.spieler_id, '$id'" + . "\n FROM #__sportsmanager_mitglied_von_verein" + . "\n LEFT JOIN #__sportsmanager_spieler USING (spieler_id)" + . "\n WHERE #__sportsmanager_mitglied_von_verein.verein_id = $verein_id" . $filter_mitgliedsstatus . $filter_kategorie . " AND spieler_id NOT IN (SELECT DISTINCT #__sportsmanager_rechnung_spieler.spieler_id FROM #__sportsmanager_rechnung INNER JOIN #__sportsmanager_rechnung_spieler ON #__sportsmanager_rechnung.rechnung_id = #__sportsmanager_rechnung_spieler.rechnung_id WHERE saison_id = $filter_saison_id)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + } + else if ($veranstalterid == "0") { + $query = "SELECT veranstalter_id, (SELECT COUNT(*) FROM #__sportsmanager_verein LEFT JOIN #__sportsmanager_mitglied_von_verein USING (verein_id) WHERE #__sportsmanager_verein.veranstalter_id = #__sportsmanager_veranstalter.veranstalter_id AND NOT #__sportsmanager_verein.ausgetreten AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten) AS mitglieder" + . "\n FROM #__sportsmanager_veranstalter" + . "\n ORDER BY mitglieder, veranstalterbezeichnung"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $veranstalter = $db->loadObjectList(); + + foreach ($veranstalter as $row) { + $veranstalterid = $row->veranstalter_id; + $query = "INSERT INTO #__sportsmanager_rechnung (saison_id, bezeichnung, notiz, veranstalter_id, mitgliedsstatus) VALUES ('$filter_saison_id', '$bezeichnung', '$notiz', '$veranstalterid', '$mitgliedsstatus');"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $id = $db->insertid(); + + $query = "INSERT INTO #__sportsmanager_rechnung_spieler (spieler_id, rechnung_id)" + . "\n SELECT DISTINCT #__sportsmanager_mitglied_von_verein.spieler_id, '$id'" + . "\n FROM #__sportsmanager_veranstalter" + . "\n LEFT JOIN #__sportsmanager_verein USING (veranstalter_id)" + . "\n LEFT JOIN #__sportsmanager_mitglied_von_verein USING (verein_id)" + . "\n LEFT JOIN #__sportsmanager_spieler USING (spieler_id)" + . "\n WHERE #__sportsmanager_veranstalter.veranstalter_id = $veranstalterid AND NOT #__sportsmanager_verein.ausgetreten" . $filter_mitgliedsstatus . $filter_kategorie . " AND spieler_id NOT IN (SELECT DISTINCT #__sportsmanager_rechnung_spieler.spieler_id FROM #__sportsmanager_rechnung INNER JOIN #__sportsmanager_rechnung_spieler ON #__sportsmanager_rechnung.rechnung_id = #__sportsmanager_rechnung_spieler.rechnung_id WHERE saison_id = $filter_saison_id)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + } + else { + $query = "INSERT INTO #__sportsmanager_rechnung (saison_id, bezeichnung, notiz, veranstalter_id, mitgliedsstatus) VALUES ('$filter_saison_id', '$bezeichnung', '$notiz', '$veranstalterid', '$mitgliedsstatus');"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $id = $db->insertid(); + $query = "INSERT INTO #__sportsmanager_rechnung_spieler (spieler_id, rechnung_id)" + . "\n SELECT DISTINCT #__sportsmanager_mitglied_von_verein.spieler_id, '$id'" + . "\n FROM #__sportsmanager_veranstalter" + . "\n LEFT JOIN #__sportsmanager_verein USING (veranstalter_id)" + . "\n LEFT JOIN #__sportsmanager_mitglied_von_verein USING (verein_id)" + . "\n LEFT JOIN #__sportsmanager_spieler USING (spieler_id)" + . "\n WHERE #__sportsmanager_veranstalter.veranstalter_id = $veranstalterid AND NOT #__sportsmanager_verein.ausgetreten" . $filter_mitgliedsstatus . $filter_kategorie . " AND spieler_id NOT IN (SELECT DISTINCT #__sportsmanager_rechnung_spieler.spieler_id FROM #__sportsmanager_rechnung INNER JOIN #__sportsmanager_rechnung_spieler ON #__sportsmanager_rechnung.rechnung_id = #__sportsmanager_rechnung_spieler.rechnung_id WHERE saison_id = $filter_saison_id)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + } + else { + $query = "UPDATE #__sportsmanager_rechnung" + . "\n SET bezeichnung = '$bezeichnung'," + . "\n notiz = '$notiz'" + . "\n WHERE rechnung_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + redirectSportsManagerURL('&task=admin_rechnungen'); +} + +function adminRemoveRechnung() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("rechnungen_aendern")) + keinZugriff(true); + + $id = $jinput->get('id', 0, 'INT'); + + $query = "LOCK TABLES #__sportsmanager_rechnung WRITE, #__sportsmanager_rechnung_spieler WRITE;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "DELETE FROM #__sportsmanager_rechnung_spieler WHERE rechnung_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "DELETE FROM #__sportsmanager_rechnung WHERE rechnung_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=admin_rechnungen'); +} + +function adminEinstellungen() { + $db =& getDatabase(); + + if (!benutzerZugriff("basiseinstellungen_aendern")) + keinZugriff(true); + + $query = "SELECT * FROM #__sportsmanager_einstellungen"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + + $einstellungen = array(); + foreach ($rows as $row) + $einstellungen[$row->name] = $row->wert; + + HTML_sportsmanager_admin::adminEinstellungen($einstellungen); +} + +function adminSaveEinstellungen() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("basiseinstellungen_aendern")) + keinZugriff(); + + if ($jinput->get('cancel', false, 'BOOL')) { + redirectSportsManagerURL('&task=admin_uebersicht'); + + return; + } + + $basis_spielernr = $db->escape(trim($jinput->get('basis_spielernr', '', 'RAW'))); + $ansprechpartner_ausblenden = $jinput->get('ansprechpartner_ausblenden', 0, 'INT'); + $ansprechpartner_spielerdaten = $jinput->get('ansprechpartner_spielerdaten', 0, 'INT'); + $ansprechpartner_importieren = $jinput->get('ansprechpartner_importieren', 0, 'INT'); + $ansprechpartner_exportieren = $jinput->get('ansprechpartner_exportieren', 0, 'INT'); + $spielerliste_elo = $jinput->get('spielerliste_elo', 0, 'INT'); + $termine_beantragen = $jinput->get('termine_beantragen', 0, 'INT'); + $spielerimport_persoenliche_daten_vorauswahl = $jinput->get('spielerimport_persoenliche_daten_vorauswahl', 0, 'INT'); + + $api_push_key = $jinput->get('api_push_key', '', 'RAW'); + + /* + $twitter_benutzername = $db->escape(trim( $jinput->get('twitter_benutzername', '', 'RAW') )); + $twitter_kennwort = !empty($twitter_benutzername) ? $db->escape(trim( $jinput->get('twitter_kennwort', '', 'RAW') )) : ""; + */ + + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'basis_spielernr'" + . ", wert = '$basis_spielernr'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'termine_beantragen'" + . ", wert = '$termine_beantragen'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'spielerliste_elo'" + . ", wert = '$spielerliste_elo'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'ansprechpartner_ausblenden'" + . ", wert = '$ansprechpartner_ausblenden'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'ansprechpartner_spielerdaten'" + . ", wert = '$ansprechpartner_spielerdaten'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'ansprechpartner_importieren'" + . ", wert = '$ansprechpartner_importieren'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'ansprechpartner_exportieren'" + . ", wert = '$ansprechpartner_exportieren'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'spielerimport_persoenliche_daten_vorauswahl'" + . ", wert = '$spielerimport_persoenliche_daten_vorauswahl'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "REPLACE #__sportsmanager_einstellungen SET name = 'api_push_key', wert = '$api_push_key'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + /* + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'twitter_benutzername'" + . ", wert = '$twitter_benutzername'"; + $db->setQuery($query); + if (!$result = $db->execute()) { die($db->stderr(true)); } + + if (empty($twitter_benutzername) || !empty($twitter_kennwort)) { + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'twitter_kennwort'" + . ", wert = '$twitter_kennwort'"; + $db->setQuery($query); + if (!$result = $db->execute()) { die($db->stderr(true)); } + } + */ + + redirectSportsManagerURL('&task=admin_uebersicht'); +} + +function adminDatenbank() { + $db =& getDatabase(true); + + if (!benutzerZugriff("basiseinstellungen_aendern")) + keinZugriff(true); + + $query = "SELECT * FROM #__sportsmanager_einstellungen"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + + $einstellungen = array(); + foreach ($rows as $row) + $einstellungen[$row->name] = $row->wert; + + HTML_sportsmanager_admin::adminDatenbank($einstellungen); +} + +function adminSaveDatenbank() { + $db =& getDatabase(true); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("basiseinstellungen_aendern")) + keinZugriff(); + + if ($jinput->get('cancel', false, 'BOOL')) { + redirectSportsManagerURL('&task=admin_uebersicht'); + + return; + } + + $database_driver = $db->escape(trim($jinput->get('database_driver', '', 'RAW'))); + $database_host = $db->escape(trim($jinput->get('database_host', '', 'RAW'))); + $database_user = $db->escape(trim($jinput->get('database_user', '', 'RAW'))); + $database_password = $db->escape(trim($jinput->get('database_password', '', 'RAW'))); + $database_database = $db->escape(trim($jinput->get('database_database', '', 'RAW'))); + $database_prefix = $db->escape(trim($jinput->get('database_prefix', '', 'RAW'))); + $joomla_path = $db->escape(trim($jinput->get('joomla_path', '', 'RAW'))); + $joomla_path = $joomla_path == "/" && $joomla_path != "\\" ? $joomla_path : rtrim(rtrim($joomla_path, "\\"), "/"); + $joomla_url = $db->escape(trim($jinput->get('joomla_url', '', 'RAW'))); + if (strlen($joomla_url) > 0 && substr($joomla_url, strlen($joomla_url) - 1, 1) != "/") + $joomla_url .= "/"; + + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'database_driver'" + . ", wert = '$database_driver'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'database_host'" + . ", wert = '$database_host'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'database_user'" + . ", wert = '$database_user'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'database_password'" + . ", wert = '$database_password'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'database_database'" + . ", wert = '$database_database'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'database_prefix'" + . ", wert = '$database_prefix'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'joomla_path'" + . ", wert = '$joomla_path'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'joomla_url'" + . ", wert = '$joomla_url'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=admin_uebersicht'); +} + +function adminSpieler($admin_uebersicht) { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + $ansprechpartner_importieren = einstellungswert("ansprechpartner_importieren"); + $ansprechpartner_exportieren = einstellungswert("ansprechpartner_exportieren"); + $ansprechpartner_spielerdaten = einstellungswert("ansprechpartner_spielerdaten"); + $ansprechpartner_spielerdaten_bearbeiten = $ansprechpartner_spielerdaten == "1" || $ansprechpartner_spielerdaten == "2" || $ansprechpartner_spielerdaten == "3"; + $ansprechpartner_bilder_bearbeiten = $ansprechpartner_spielerdaten == "1" || $ansprechpartner_spielerdaten == "3"; + + if (benutzerZugriff("spieler_aendern")) + $beschraenkter_zugriff = 0; + else if (benutzerVeranstalterModerator()) + $beschraenkter_zugriff = 1; + else if (benutzerVereinModerator()) + $beschraenkter_zugriff = 2; + else + keinZugriff(true); + + $filter = $jinput->get('filter', '', 'RAW'); + if (empty($filter)) + $filter = $jinput->get('spezialfilter', '', 'RAW'); + + $anzahlSpieler = array(); + $query = "SELECT COUNT(DISTINCT spieler_id)" + . "\n FROM #__sportsmanager_spieler"; + if ($beschraenkter_zugriff == 0) + $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 1 GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)"; + if ($beschraenkter_zugriff == 1) + $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 1 AND" . veranstalterFilter("#__sportsmanager_verein.veranstalter_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)"; + else if ($beschraenkter_zugriff == 2) + $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 1 AND" . vereinFilter("#__sportsmanager_verein.verein_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $anzahlSpieler["aktiv"] = $db->loadResult(); + $jahr = date("Y"); + $db->setQuery($query . "\n WHERE " . ($jahr - 18) . " <= geburtsjahr"); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $anzahlSpieler["J aktiv"] = $db->loadResult(); + $db->setQuery($query . "\n WHERE " . ($jahr - 50) . " > geburtsjahr"); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $anzahlSpieler["S aktiv"] = $db->loadResult(); + $db->setQuery($query . "\n WHERE geschlecht = 'M' AND (ISNULL(geburtsjahr) OR (" . ($jahr - 18) . " > geburtsjahr AND " . ($jahr - 50) . " <= geburtsjahr))"); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $anzahlSpieler["H aktiv"] = $db->loadResult(); + $db->setQuery($query . "\n WHERE geschlecht <> 'M' AND (ISNULL(geburtsjahr) OR (" . ($jahr - 18) . " > geburtsjahr AND " . ($jahr - 50) . " <= geburtsjahr))"); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $anzahlSpieler["D aktiv"] = $db->loadResult(); + + $query = "SELECT COUNT(DISTINCT spieler_id)" + . "\n FROM #__sportsmanager_spieler"; + if ($beschraenkter_zugriff == 0) + $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 2 GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)"; + if ($beschraenkter_zugriff == 1) + $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 2 AND" . veranstalterFilter("#__sportsmanager_verein.veranstalter_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)"; + else if ($beschraenkter_zugriff == 2) + $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 2 AND" . vereinFilter("#__sportsmanager_verein.verein_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $anzahlSpieler["eingeschraenkt"] = $db->loadResult(); + + $query = "SELECT COUNT(DISTINCT spieler_id)" + . "\n FROM #__sportsmanager_spieler"; + if ($beschraenkter_zugriff == 0) + $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 3 GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)"; + if ($beschraenkter_zugriff == 1) + $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 3 AND" . veranstalterFilter("#__sportsmanager_verein.veranstalter_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)"; + else if ($beschraenkter_zugriff == 2) + $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 3 AND" . vereinFilter("#__sportsmanager_verein.verein_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $anzahlSpieler["passiv"] = $db->loadResult(); + + $search = stripslashes($filter); + if ($beschraenkter_zugriff == 0 && $search == "_____DOPPELT") { + $jahr = date("Y"); + $query = "SELECT #__sportsmanager_spieler.spieler_id, vorname, nachname, geschlecht, pseudonym, aktueller_verein_id, spielernr, lizenznr, geburtsjahr," + . "\n IF(ISNULL(geburtsjahr), IF(geschlecht = 'M', 'H', 'D'), IF(" . ($jahr - 18) . " <= geburtsjahr, 'J', IF(" . ($jahr - 50) . " > geburtsjahr, 'S', IF(geschlecht = 'M', 'H', 'D')))) AS kategorie," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_teamspiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teamspiele," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_turniermeldung_spieler WHERE #__sportsmanager_turniermeldung_spieler.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS turniermeldungen," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_mitglied_von_team WHERE #__sportsmanager_mitglied_von_team.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teammitgliedschaften," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_spiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbspiele," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE #__sportsmanager_individualwettbewerb_ausgangsplatzierung.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbausgangsplatzierungen," + . "\n vereinsname" + . "\n FROM (SELECT COUNT(*) AS identische_namen, nachname, vorname" + . "\n FROM #__sportsmanager_spieler" + . "\n GROUP BY nachname, vorname" + . "\n HAVING identische_namen > 1) AS identische_namen" + . "\n INNER JOIN #__sportsmanager_spieler USING (nachname, vorname)" + . "\n LEFT JOIN #__sportsmanager_verein ON aktueller_verein_id = verein_id" + . "\n ORDER BY nachname, vorname"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + } + else if ($beschraenkter_zugriff == 0 && $search == "_____DOPPELT_JAHR") { + $jahr = date("Y"); + $query = "SELECT #__sportsmanager_spieler.spieler_id, vorname, nachname, geschlecht, pseudonym, aktueller_verein_id, spielernr, lizenznr, geburtsjahr," + . "\n IF(ISNULL(geburtsjahr), IF(geschlecht = 'M', 'H', 'D'), IF(" . ($jahr - 18) . " <= geburtsjahr, 'J', IF(" . ($jahr - 50) . " > geburtsjahr, 'S', IF(geschlecht = 'M', 'H', 'D')))) AS kategorie," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_teamspiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teamspiele," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_turniermeldung_spieler WHERE #__sportsmanager_turniermeldung_spieler.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS turniermeldungen," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_mitglied_von_team WHERE #__sportsmanager_mitglied_von_team.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teammitgliedschaften," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_spiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbspiele," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE #__sportsmanager_individualwettbewerb_ausgangsplatzierung.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbausgangsplatzierungen," + . "\n vereinsname" + . "\n FROM (SELECT COUNT(*) AS identische_namen, nachname, vorname, geburtsjahr" + . "\n FROM #__sportsmanager_spieler" + . "\n GROUP BY nachname, vorname, geburtsjahr" + . "\n HAVING identische_namen > 1) AS identische_namen" + . "\n INNER JOIN #__sportsmanager_spieler USING (nachname, vorname, geburtsjahr)" + . "\n LEFT JOIN #__sportsmanager_verein ON aktueller_verein_id = verein_id" + . "\n ORDER BY nachname, vorname, geburtsjahr"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + } + else if ($beschraenkter_zugriff == 0 && $search == "_____KEINE_SPIELERNR") { + $jahr = date("Y"); + $query = "SELECT #__sportsmanager_spieler.spieler_id, vorname, nachname, geschlecht, pseudonym, aktueller_verein_id, spielernr, lizenznr, geburtsjahr," + . "\n IF (ISNULL(geburtsjahr), IF(geschlecht = 'M', 'H', 'D'), IF(" . ($jahr - 18) . " <= geburtsjahr, 'J', IF(" . ($jahr - 50) . " > geburtsjahr, 'S', IF(geschlecht = 'M', 'H', 'D')))) AS kategorie," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_teamspiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teamspiele," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_turniermeldung_spieler WHERE #__sportsmanager_turniermeldung_spieler.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS turniermeldungen," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_mitglied_von_team WHERE #__sportsmanager_mitglied_von_team.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teammitgliedschaften," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_spiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbspiele," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE #__sportsmanager_individualwettbewerb_ausgangsplatzierung.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbausgangsplatzierungen," + . "\n vereinsname" + . "\n FROM #__sportsmanager_spieler" + . "\n LEFT JOIN #__sportsmanager_verein ON aktueller_verein_id = verein_id" + . "\n WHERE #__sportsmanager_spieler.spielernr = ''" + . "\n ORDER BY nachname, vorname"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + } + else if (isset($search) && $search != "" && ($beschraenkter_zugriff == 0 || $ansprechpartner_spielerdaten_bearbeiten)) { + $searchEscapedWildcards = strpos($search, "*") !== false ? ($db->escape(trim(mb_strtolower(str_replace("*", "%", $search), 'UTF-8')))) : ("%" . $db->escape(trim(mb_strtolower($search, 'UTF-8'))) . "%"); + $searchEscaped = $db->escape(trim($search)); + + $jahr = date("Y"); + $query = "SELECT #__sportsmanager_spieler.spieler_id, vorname, nachname, geschlecht, pseudonym, aktueller_verein_id, spielernr, lizenznr, geburtsjahr," + . "\n IF(ISNULL(geburtsjahr), IF(geschlecht = 'M', 'H', 'D'), IF(" . ($jahr - 18) . " <= geburtsjahr, 'J', IF(" . ($jahr - 50) . " > geburtsjahr, 'S', IF(geschlecht = 'M', 'H', 'D')))) AS kategorie," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_teamspiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teamspiele," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_turniermeldung_spieler WHERE #__sportsmanager_turniermeldung_spieler.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS turniermeldungen," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_mitglied_von_team WHERE #__sportsmanager_mitglied_von_team.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teammitgliedschaften," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_spiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbspiele," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE #__sportsmanager_individualwettbewerb_ausgangsplatzierung.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbausgangsplatzierungen," + . "\n vereinsname" + . "\n FROM #__sportsmanager_spieler"; + if ($beschraenkter_zugriff == 1) + $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND" . veranstalterFilter("#__sportsmanager_verein.veranstalter_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)"; + else if ($beschraenkter_zugriff == 2) + $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND" . vereinFilter("#__sportsmanager_verein.verein_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)"; + else + $query .= "\n LEFT JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)"; + $query .= "\n LEFT JOIN #__sportsmanager_verein ON aktueller_verein_id = verein_id"; + $query .= "\n WHERE (CONCAT_WS(', ', nachname, vorname) LIKE '$searchEscapedWildcards' OR CONCAT_WS(' ', vorname, nachname) LIKE '$searchEscapedWildcards' OR spielernr = '$searchEscaped' OR lizenznr = '$searchEscaped')"; + $query .= "\n ORDER BY nachname, vorname LIMIT 101"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + + if (count($rows) > 100) { + redirectSportsManagerURL('&task=admin_spieler', "Mehr als 100 Spieler gefunden, bitte genaueren Filter verwenden."); + + return; + } + } + else if ($anzahlSpieler["aktiv"] <= 100 && ($beschraenkter_zugriff == 0 || $ansprechpartner_spielerdaten_bearbeiten)) { + $jahr = date("Y"); + $query = "SELECT #__sportsmanager_spieler.spieler_id, vorname, nachname, geschlecht, pseudonym, aktueller_verein_id, spielernr, lizenznr, geburtsjahr," + . "\n IF(ISNULL(geburtsjahr), IF(geschlecht = 'M', 'H', 'D'), IF(" . ($jahr - 18) . " <= geburtsjahr, 'J', IF(" . ($jahr - 50) . " > geburtsjahr, 'S', IF(geschlecht = 'M', 'H', 'D')))) AS kategorie," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_teamspiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teamspiele," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_turniermeldung_spieler WHERE #__sportsmanager_turniermeldung_spieler.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS turniermeldungen," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_mitglied_von_team WHERE #__sportsmanager_mitglied_von_team.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS teammitgliedschaften," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_spiel WHERE heim_spieler_1_id = #__sportsmanager_spieler.spieler_id OR heim_spieler_2_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_1_id = #__sportsmanager_spieler.spieler_id OR gast_spieler_2_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbspiele," + . "\n IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE #__sportsmanager_individualwettbewerb_ausgangsplatzierung.spieler_id = #__sportsmanager_spieler.spieler_id), 1, 0) AS individualwettbewerbausgangsplatzierungen," + . "\n vereinsname" + . "\n FROM #__sportsmanager_spieler"; + if ($beschraenkter_zugriff == 1) + $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND" . veranstalterFilter("#__sportsmanager_verein.veranstalter_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)"; + else if ($beschraenkter_zugriff == 2) + $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND" . vereinFilter("#__sportsmanager_verein.verein_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)"; + else + $query .= "\n LEFT JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)"; + $query .= "\n LEFT JOIN #__sportsmanager_verein ON aktueller_verein_id = verein_id"; + $query .= "\n ORDER BY nachname, vorname LIMIT 101"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + + if (count($rows) > 100) + $rows = null; + } + else + $rows = null; + + $statistik = array(); + + $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_spieler WHERE NOT ISNULL(spielernr) AND spielernr <> ''), 1, 0)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $statistik["spielernr_national"] = $db->loadResult(); + + $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_spieler WHERE NOT ISNULL(lizenznr) AND lizenznr <> ''), 1, 0)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $statistik["spielernr_international"] = $db->loadResult(); + + HTML_sportsmanager_admin::adminSpieler($filter, $rows, $anzahlSpieler, $admin_uebersicht, $beschraenkter_zugriff, $ansprechpartner_importieren, $ansprechpartner_exportieren, $ansprechpartner_spielerdaten_bearbeiten, $ansprechpartner_bilder_bearbeiten, $statistik); +} + +function adminEditSpieler() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + $ansprechpartner_spielerdaten = einstellungswert("ansprechpartner_spielerdaten"); + $ansprechpartner_spielerdaten_bearbeiten = $ansprechpartner_spielerdaten == "1" || $ansprechpartner_spielerdaten == "2" || $ansprechpartner_spielerdaten == "3"; + + if (benutzerZugriff("spieler_aendern")) + $beschraenkter_zugriff = 0; + else if (benutzerVeranstalterModerator() && $ansprechpartner_spielerdaten_bearbeiten) + $beschraenkter_zugriff = 1; + else if (benutzerVereinModerator() && $ansprechpartner_spielerdaten_bearbeiten) + $beschraenkter_zugriff = 2; + else + keinZugriff(true); + + $filter = $jinput->get('filter', '', 'RAW'); + $id = $jinput->get('id', 0, 'INT'); + if ($id == 0) + $spieler = null; + else { + $query = "SELECT * FROM #__sportsmanager_spieler WHERE spieler_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) == 1) + $spieler = $rows[0]; + else + $spieler = null; + } + + if ($beschraenkter_zugriff != 0) { + if ($id == 0) + keinZugriff(true); + if ($beschraenkter_zugriff == 1) + $query = "SELECT IF(EXISTS(SELECT * FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id AND " . veranstalterFilter("#__sportsmanager_verein.veranstalter_id IN") . "AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_verein.ausgetreten), 1, 0)"; + else // $beschraenkter_zugriff == 2 + $query = "SELECT IF(EXISTS(SELECT * FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id AND " . vereinFilter("#__sportsmanager_verein.verein_id IN") . "AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_verein.ausgetreten), 1, 0)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $n = $db->loadResult(); + if ($n == 0) + keinZugriff(true); + } + + // Vereine ermitteln + $query = "SELECT #__sportsmanager_verein.verein_id, vereinsname, ausgetreten AS verein_ausgetreten, veranstalterbezeichnung" + . "\n FROM #__sportsmanager_verein" + . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)" + . "\n ORDER BY veranstalterbezeichnung, vereinsname"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $vereine = $db->loadObjectList(); + + $vereinsmitgliedschaften = null; + if (!empty($id)) { + $query = "SELECT DISTINCT verein_id, mitgliedsstatus" + . "\n FROM #__sportsmanager_verein" + . "\n INNER JOIN (SELECT verein_id, mitgliedsstatus FROM #__sportsmanager_mitglied_von_verein WHERE spieler_id = $id) AS mitgliedschaft USING (verein_id)" + . "\n ORDER BY IF(mitgliedsstatus <> 0, 0, 1), mitgliedsstatus, vereinsname"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $vereinsmitgliedschaften = $db->loadObjectList(); + } + + // Nächste Spieler-Nr. ermitteln + $query = "SELECT * FROM #__sportsmanager_einstellungen WHERE name = 'basis_spielernr'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) == 0) + die("Fehler: Inkonsistenz in den MySQL-Tabellen!"); + $naechste_spielernr = $rows[0]->wert; + if (empty($naechste_spielernr)) + $naechste_spielernr = "1"; + + for ($i = strlen($naechste_spielernr) - 1; $i >= 0; $i--) { + if ($naechste_spielernr[$i] < '0' || $naechste_spielernr[$i] > '9') + break; + } + $spielernr_praefix = substr($naechste_spielernr, 0, $i + 1); + + $query = "SELECT spielernr" + . "\n FROM #__sportsmanager_spieler" + . "\n WHERE Left(spielernr, " . strlen($spielernr_praefix) . ") = '" . $db->escape($spielernr_praefix) . "'" + . "\n ORDER BY LENGTH(spielernr) DESC, spielernr DESC"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) > 0) { + $naechste_spielernr = $rows[0]->spielernr; + for ($i = strlen($naechste_spielernr) - 1; $i >= 0; $i--) { + if ($naechste_spielernr[$i] < '0' || $naechste_spielernr[$i] > '9') { + $naechste_spielernr = substr($naechste_spielernr, 0, $i + 1) . "1" . substr($naechste_spielernr, $i + 1); + break; + } + if ($naechste_spielernr[$i] <= '8') { + $naechste_spielernr[$i] = $naechste_spielernr[$i] + 1; + break; + } + // $naechste_spielernr[$i] == '9' + $naechste_spielernr[$i] = '0'; + } + if ($i < 0) + $naechste_spielernr = "1" . $naechste_spielernr; + } + + HTML_sportsmanager_admin::adminEditSpieler($spieler, $naechste_spielernr, $filter, $vereine, $vereinsmitgliedschaften, $beschraenkter_zugriff, $ansprechpartner_spielerdaten); +} + +function adminSaveSpieler() { + $db =& getDatabase(); + global $_FILES; + global $sportsmanager_joomla_path; + $jinput = JFactory::getApplication()->input; + + $ansprechpartner_spielerdaten = einstellungswert("ansprechpartner_spielerdaten"); + $ansprechpartner_spielerdaten_bearbeiten = $ansprechpartner_spielerdaten == "1" || $ansprechpartner_spielerdaten == "2" || $ansprechpartner_spielerdaten == "3"; + + if (benutzerZugriff("spieler_aendern")) + $beschraenkter_zugriff = 0; + else if (benutzerVeranstalterModerator() && $ansprechpartner_spielerdaten_bearbeiten) + $beschraenkter_zugriff = 1; + else if (benutzerVereinModerator() && $ansprechpartner_spielerdaten_bearbeiten) + $beschraenkter_zugriff = 2; + else + keinZugriff(); + + $filter = $jinput->get('filter', '', 'RAW'); + $id = $jinput->get('id', 0, 'INT'); + $vorname = $db->escape(trim($jinput->get('vorname', '', 'RAW'))); + $nachname = $db->escape(trim($jinput->get('nachname', '', 'RAW'))); + $lizenz = $db->escape(trim($jinput->get('lizenz', '', 'RAW'))); + $pseudonym = $db->escape(trim($jinput->get('pseudonym', '', 'RAW'))); + $geschlecht = $db->escape(trim($jinput->get('geschlecht', 'M', 'RAW'))); + $geburtsdatum = 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'))); + $geburtsjahr = $jinput->get('datum_jahr', 0, 'INT') == 0 ? null : sprintf("%d", $jinput->get('datum_jahr', 0, 'INT')); + $strasse = $db->escape(trim($jinput->get('strasse', '', 'RAW'))); + $plz = $db->escape(trim($jinput->get('plz', '', 'RAW'))); + $ort = $db->escape(trim($jinput->get('ort', '', 'RAW'))); + $landeskennung = $db->escape(trim($jinput->get('landeskennung', '', 'RAW'))); + $telefon = $db->escape(trim($jinput->get('telefon', '', 'RAW'))); + $mobil = $db->escape(trim($jinput->get('mobil', '', 'RAW'))); + $email = $db->escape(trim($jinput->get('email', '', 'RAW'))); + $spielernr = $db->escape(trim($jinput->get('spielernr', '', 'RAW'))); + $lizenznr = $db->escape(trim($jinput->get('lizenznr', '', 'RAW'))); + $bild_ausblenden = $jinput->get('bild_ausblenden', 0, 'INT'); + $bildbeibehalten = $jinput->get('bildbeibehalten', 0, 'INT'); + $elo_startwert_einzel = max(min($jinput->get('elo_startwert_einzel', 0, 'INT'), 9999), 0); + $elo_startwert_doppel = max(min($jinput->get('elo_startwert_doppel', 0, 'INT'), 9999), 0); + $vereinsauswahl_anzahl = $jinput->get('vereinsauswahl_anzahl', 0, 'INT'); + + if ($jinput->get('cancel', false, 'BOOL')) { + redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter) . '#id' . $id); + + return; + } + + $vereinsmitgliedschaften = array(); + $verein_mitgliedsstatus = array(); + for ($i = 0; $i < $vereinsauswahl_anzahl; $i++) { + $verein_id = $jinput->get('verein_id_' . $i, 0, 'INT'); + if (empty($verein_id)) + continue; + array_push($vereinsmitgliedschaften, $verein_id); + array_push($verein_mitgliedsstatus, $jinput->get('verein_mitgliedsstatus_' . $i, 0, 'INT')); + } + + if ($beschraenkter_zugriff != 0) { + if ($id == 0) + keinZugriff(true); + if ($beschraenkter_zugriff == 1) + $query = "SELECT IF(EXISTS(SELECT * FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id AND " . veranstalterFilter("#__sportsmanager_verein.veranstalter_id IN") . "AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_verein.ausgetreten), 1, 0)"; + else // $beschraenkter_zugriff == 2 + $query = "SELECT IF(EXISTS(SELECT * FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id AND " . vereinFilter("#__sportsmanager_verein.verein_id IN") . "AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id AND NOT #__sportsmanager_verein.ausgetreten), 1, 0)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $n = $db->loadResult(); + if ($n == 0) + keinZugriff(); + } + + $query = "LOCK TABLES #__sportsmanager_spieler WRITE, #__sportsmanager_mitglied_von_verein WRITE, #__sportsmanager_verein READ, #__sportsmanager_berechtigt_fuer_verein READ, #__sportsmanager_berechtigt_fuer_veranstalter READ;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + if (strlen($spielernr) > 0) { + $query = "SELECT COUNT(*) FROM #__sportsmanager_spieler WHERE spielernr = '$spielernr' AND spieler_id != $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $n = $db->loadResult(); + if ($n > 0) { + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=admin_spieler', JText::_('COM_SPORTSMANAGER_PLAYER_NO_USED')); + + return; + } + } + + $rangliste_aktualisieren = false; + $elo_aktualisieren = false; + // Vereinsmitgliedschaften prüfen und ggf. aktualisieren + if ($id != 0 && !$beschraenkter_zugriff) { + $query = "SELECT verein_id, #__sportsmanager_mitglied_von_verein.ausgetreten, mitgliedsstatus" + . "\n FROM #__sportsmanager_mitglied_von_verein" + . "\n INNER JOIN #__sportsmanager_verein USING (verein_id)" + . "\n WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $bestehende_vereinsmitgliedschaften = $db->loadObjectList(); + + foreach ($bestehende_vereinsmitgliedschaften as $bestehende_vereinsmitgliedschaft) { + $ist_mitglied = false; + foreach ($vereinsmitgliedschaften as $verein_id) { + if ($bestehende_vereinsmitgliedschaft->verein_id == $verein_id) { + $ist_mitglied = true; + break; + } + } + if (!$ist_mitglied) { + $query = "DELETE FROM #__sportsmanager_mitglied_von_verein WHERE verein_id = $bestehende_vereinsmitgliedschaft->verein_id AND spieler_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + //if ($id != 0) + // $rangliste_und_elo_aktualisieren = TRUE; + } + } + + foreach ($vereinsmitgliedschaften as $index => $verein_id) { + $ist_mitglied = false; + foreach ($bestehende_vereinsmitgliedschaften as $bestehende_vereinsmitgliedschaft) { + if ($bestehende_vereinsmitgliedschaft->verein_id == $verein_id) { + $ist_mitglied = true; + $mitgliedsstatus = $bestehende_vereinsmitgliedschaft->mitgliedsstatus; + break; + } + } + if (!$ist_mitglied) { + $query = "SELECT COUNT(*)" + . "\n FROM #__sportsmanager_verein" + . "\n WHERE verein_id = $verein_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $n = $db->loadResult(); + + if ($n > 0) { + $query = "INSERT INTO #__sportsmanager_mitglied_von_verein (spieler_id, verein_id, mitgliedsstatus, ausgetreten) VALUES ('$id', '$verein_id', '" . ($verein_mitgliedsstatus[$index]) . "', " . ($verein_mitgliedsstatus[$index] == 0 ? "TRUE" : "FALSE") . ");"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + // if ($id != 0) + // $rangliste_und_elo_aktualisieren = TRUE; + } + } + else if ($mitgliedsstatus != $verein_mitgliedsstatus[$index]) { + $query = "UPDATE #__sportsmanager_mitglied_von_verein" + . "\n SET mitgliedsstatus = '" . ($verein_mitgliedsstatus[$index]) . "'," + . "\n ausgetreten = " . ($verein_mitgliedsstatus[$index] == 0 ? "TRUE" : "FALSE") + . "\n WHERE verein_id = $verein_id AND spieler_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + // if ($id != 0) + // $rangliste_und_elo_aktualisieren = TRUE; + } + } + } + + if ($id == 0 && !$beschraenkter_zugriff) { + $query = "INSERT INTO #__sportsmanager_spieler " + . "(vorname, nachname, lizenz, pseudonym, geschlecht, geburtsdatum, geburtsjahr, strasse, plz, ort, landeskennung, telefon, mobil, email, spielernr, lizenznr, elo_einzel_startwert, elo_doppel_startwert, bild_ausblenden) " + . "VALUES ('$vorname', " + . "'$nachname', " + . "'$lizenz', " + . "'$pseudonym', " + . "'$geschlecht', " + . ($geburtsdatum == null ? "NULL" : "'$geburtsdatum'") . ", " + . ($geburtsjahr == null ? "NULL" : "'$geburtsjahr'") . ", " + . "'$strasse', " + . "'$plz', " + . "'$ort', " + . "'$landeskennung', " + . "'$telefon', " + . "'$mobil', " + . "'$email', " + . "'$spielernr', " + . "'$lizenznr', " + . "'$elo_startwert_einzel', " + . "'$elo_startwert_doppel', " + . ($bild_ausblenden ? "TRUE" : "FALSE") . ");"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $id = $db->insertid(); + + // Vereinsmitgliedschaften erzeugen + foreach ($vereinsmitgliedschaften as $index => $verein_id) { + $query = "SELECT COUNT(*)" + . "\n FROM #__sportsmanager_verein" + . "\n WHERE verein_id = $verein_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $n = $db->loadResult(); + + if ($n > 0) { + $query = "INSERT INTO #__sportsmanager_mitglied_von_verein (spieler_id, verein_id, mitgliedsstatus, ausgetreten) VALUES ('$id', '$verein_id', '" . ($verein_mitgliedsstatus[$index]) . "', " . ($verein_mitgliedsstatus[$index] == 0 ? "TRUE" : "FALSE") . ");"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + } + } + if ($id != 0 && (!$beschraenkter_zugriff || $ansprechpartner_spielerdaten == "1" || $ansprechpartner_spielerdaten == "2")) { + + $query = "SELECT * FROM #__sportsmanager_spieler WHERE spieler_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) { + redirectSportsManagerURL('&task=admin_spieler', "Der Spieler existiert nicht mehr!"); + + return; + } + $spieler = $rows[0]; + + if ($spieler->elo_einzel_startwert != $elo_startwert_einzel || $spieler->elo_doppel_startwert != $elo_startwert_doppel) + $elo_aktualisieren = true; + + $query = "UPDATE #__sportsmanager_spieler" + . "\n SET pseudonym = '$pseudonym'," + . "\n strasse = '$strasse'," + . "\n plz = '$plz'," + . "\n ort = '$ort'," + . "\n landeskennung = '$landeskennung'," + . "\n telefon = '$telefon'," + . "\n mobil = '$mobil'," + . "\n bild_ausblenden = " . ($bild_ausblenden ? "TRUE" : "FALSE") . ","; + if (!$beschraenkter_zugriff) { + $query .= "\n vorname = '$vorname'," + . "\n nachname = '$nachname'," + . "\n lizenz = '$lizenz'," + . "\n geschlecht = '$geschlecht'," + . "\n geburtsdatum = " . ($geburtsdatum == null ? "NULL" : "'$geburtsdatum'") . "," + . "\n geburtsjahr = " . ($geburtsjahr == null ? "NULL" : "'$geburtsjahr'") . "," + . "\n spielernr = '$spielernr'," + . "\n lizenznr = '$lizenznr'," + . "\n elo_einzel_startwert = " . ($elo_startwert_einzel == null ? "NULL" : "'$elo_startwert_einzel'") . "," + . "\n elo_doppel_startwert = " . ($elo_startwert_doppel == null ? "NULL" : "'$elo_startwert_doppel'") . ","; + } + $query .= "\n email = '$email'" + . "\n WHERE spieler_id = $id"; + + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + if ($geburtsjahr != $spieler->geburtsjahr || $geschlecht != $spieler->geschlecht) + $rangliste_aktualisieren = true; + } + + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + if ($elo_aktualisieren) + eloAktualisieren($spieler->erstmals_gespielt); + + if ($bildbeibehalten == 0 && (!$beschraenkter_zugriff || $ansprechpartner_spielerdaten == "1" || $ansprechpartner_spielerdaten == "3")) { + bildLoeschen('spieler', $id); + + if (!empty($_FILES["bild"]["tmp_name"])) { + if (is_uploaded_file($_FILES["bild"]["tmp_name"])) { + $size = getimagesize($_FILES["bild"]["tmp_name"]); + if ($size == false + || ($size[2] != IMAGETYPE_JPEG && $size[2] != IMAGETYPE_PNG) + || ($size[0] < 60 || $size[1] < 60 || $size[0] > 8192 || $size[1] > 8192)) { + redirectSportsManagerURL('&task=admin_spieler', JText::_('COM_SPORTSMANAGER_PLAYER_WRONG_IMAGE_FORMAT')); + + return; + } + $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'spieler'; + if (!bildKopierenAngepasst($_FILES["bild"]["tmp_name"], $bilder_pfad . DIRECTORY_SEPARATOR . $id . ($size[2] == IMAGETYPE_PNG ? '.png' : '.jpg'), 180, 240, 1)) { + redirectSportsManagerURL('&task=admin_spieler', JText::_('COM_SPORTSMANAGER_IMAGE_COULD_NOT_COPIED')); + + return; + } + } + } + } + + aktuellerVereinAktualisieren($id); + if ($rangliste_aktualisieren) { + ranglisteAktualisieren(0, 0, $id); + einstufungAktualisieren(); + } + + redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter) . '#id' . $id); +} + +function adminRemoveSpieler() { + $db =& getDatabase(); + global $sportsmanager_joomla_path; + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("spieler_aendern")) + keinZugriff(true); + + $filter = $jinput->get('filter', '', 'RAW'); + $id = $jinput->get('id', 0, 'INT'); + + $query = "LOCK TABLES #__sportsmanager_teamspiel READ, #__sportsmanager_turniermeldung_spieler READ, #__sportsmanager_mitglied_von_team WRITE, #__sportsmanager_mitglied_von_verein WRITE, #__sportsmanager_individualwettbewerb_spiel WRITE, #__sportsmanager_individualwettbewerb_ausgangsplatzierung WRITE, #__sportsmanager_spieler WRITE;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_teamspiel WHERE heim_spieler_1_id = $id OR heim_spieler_2_id = $id OR gast_spieler_1_id = $id OR gast_spieler_2_id = $id), 1, 0)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $n = $db->loadResult(); + if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS')); + + $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_turniermeldung_spieler WHERE spieler_id = $id), 1, 0)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $n = $db->loadResult(); + if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS')); + + $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_mitglied_von_team WHERE spieler_id = $id), 1, 0)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $n = $db->loadResult(); + if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS')); + + $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_spiel WHERE heim_spieler_1_id = $id OR heim_spieler_2_id = $id OR gast_spieler_1_id = $id OR gast_spieler_2_id = $id), 1, 0)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $n = $db->loadResult(); + if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS')); + + $query = "SELECT IF (EXISTS (SELECT * FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE spieler_id = $id), 1, 0)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $n = $db->loadResult(); + if ($n > 0) die(JText::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS')); + + $query = "DELETE FROM #__sportsmanager_mitglied_von_verein WHERE spieler_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "DELETE FROM #__sportsmanager_spieler WHERE spieler_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + bildLoeschen("spieler", $id); + + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + spielerstatistikAktualisieren(); + + redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter)); +} + +function adminGroomingMehrfacheMitgliedschaften() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("spieler_aendern")) + keinZugriff(true); + + $query = "SELECT spieler_id, COUNT(*) AS mehrfach" + . "\n FROM #__sportsmanager_mitglied_von_verein" + . "\n GROUP BY spieler_id, verein_id" + . "\n HAVING mehrfach > 1" + . "\n ORDER BY spieler_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $mitglieder = $db->loadObjectList(); + + foreach ($mitglieder as $mitglied) { + $query = "SELECT mitglied_von_verein_id, verein_id" + . "\n FROM #__sportsmanager_mitglied_von_verein" + . "\n WHERE spieler_id = $mitglied->spieler_id" + . "\n ORDER BY verein_id, ausgetreten, mitgliedsstatus"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + + $mitglied_verein_id = -1; + foreach ($rows as $row) { + if ($mitglied_verein_id != $row->verein_id) { + $mitglied_verein_id = $row->verein_id; + continue; + } + $query = "DELETE FROM #__sportsmanager_mitglied_von_verein WHERE mitglied_von_verein_id = '$row->mitglied_von_verein_id';"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + } + + redirectSportsManagerURL('&task=admin_uebersicht'); +} + +function adminSpielerZusammenlegenForm() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("spieler_aendern")) + keinZugriff(true); + + $filter = $jinput->get('filter', '', 'RAW'); + + $query = "SELECT spieler_id, vorname, nachname, spielernr, aktueller_verein_id" + . "\n FROM #__sportsmanager_spieler" + . "\n ORDER BY nachname, vorname, spielernr, aktueller_verein_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $spieler = $db->loadObjectList(); + + HTML_sportsmanager_admin::adminSpielerZusammenlegen($spieler, $filter); +} + +function adminSpielerZusammenlegen() { + $db =& getDatabase(); + global $_FILES; + global $sportsmanager_joomla_path; + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("spieler_aendern")) + keinZugriff(); + + $spieler_beizubehalten_id = $jinput->get('spieler_beizubehalten_id', 0, 'INT'); + $spieler_zu_entfernen_id = $jinput->get('spieler_zu_entfernen_id', 0, 'INT'); + $filter = $jinput->get('filter', '', 'RAW'); + + if ($jinput->get('cancel', false, 'BOOL')) { + redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter)); + + return; + } + + if ($spieler_beizubehalten_id == $spieler_zu_entfernen_id) { + redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter) . '#id' . $spieler_beizubehalten_id, "Zum Zusammanlegen müssen zwei unterschiedliche Spieler gewählt werden"); + + return; + } + + if (!ini_get('safe_mode')) + set_time_limit(300); + + $query = "LOCK TABLES #__sportsmanager_spieler WRITE, #__sportsmanager_mitglied_von_verein WRITE, #__sportsmanager_mitglied_von_team WRITE, #__sportsmanager_teamspiel WRITE, #__sportsmanager_turniermeldung_spieler WRITE, #__sportsmanager_rangliste_punkte WRITE, #__sportsmanager_rangliste_turnierdisziplin_punkte WRITE, #__sportsmanager_individualwettbewerb_spiel WRITE, #__sportsmanager_individualwettbewerb_ausgangsplatzierung WRITE;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "SELECT * FROM #__sportsmanager_spieler WHERE spieler_id = $spieler_beizubehalten_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) { + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter), "Beizubehaltender Spieler existiert nicht."); + } + $spieler_beizubehalten = $rows[0]; + + $query = "SELECT * FROM #__sportsmanager_spieler WHERE spieler_id = $spieler_zu_entfernen_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) { + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter) . '#id' . $spieler_beizubehalten_id, "Zu entfernender Spieler existiert nicht."); + } + $spieler_zu_entfernen = $rows[0]; + + $query = "DELETE FROM #__sportsmanager_rangliste_turnierdisziplin_punkte" + . "\n WHERE spieler_id = $spieler_zu_entfernen_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "DELETE FROM #__sportsmanager_rangliste_punkte" + . "\n WHERE spieler_id = $spieler_zu_entfernen_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "UPDATE #__sportsmanager_turniermeldung_spieler" + . "\n SET spieler_id = $spieler_beizubehalten_id" + . "\n WHERE spieler_id = $spieler_zu_entfernen_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "UPDATE #__sportsmanager_teamspiel" + . "\n SET heim_spieler_1_id = $spieler_beizubehalten_id" + . "\n WHERE heim_spieler_1_id = $spieler_zu_entfernen_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "UPDATE #__sportsmanager_teamspiel" + . "\n SET heim_spieler_2_id = $spieler_beizubehalten_id" + . "\n WHERE heim_spieler_2_id = $spieler_zu_entfernen_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "UPDATE #__sportsmanager_teamspiel" + . "\n SET gast_spieler_1_id = $spieler_beizubehalten_id" + . "\n WHERE gast_spieler_1_id = $spieler_zu_entfernen_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "UPDATE #__sportsmanager_teamspiel" + . "\n SET gast_spieler_2_id = $spieler_beizubehalten_id" + . "\n WHERE gast_spieler_2_id = $spieler_zu_entfernen_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "UPDATE #__sportsmanager_individualwettbewerb_spiel" + . "\n SET heim_spieler_1_id = $spieler_beizubehalten_id" + . "\n WHERE heim_spieler_1_id = $spieler_zu_entfernen_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "UPDATE #__sportsmanager_individualwettbewerb_spiel" + . "\n SET heim_spieler_2_id = $spieler_beizubehalten_id" + . "\n WHERE heim_spieler_2_id = $spieler_zu_entfernen_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "UPDATE #__sportsmanager_individualwettbewerb_spiel" + . "\n SET gast_spieler_1_id = $spieler_beizubehalten_id" + . "\n WHERE gast_spieler_1_id = $spieler_zu_entfernen_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "UPDATE #__sportsmanager_individualwettbewerb_spiel" + . "\n SET gast_spieler_2_id = $spieler_beizubehalten_id" + . "\n WHERE gast_spieler_2_id = $spieler_zu_entfernen_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "SELECT DISTINCT individualwettbewerb_id" + . "\n FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung" + . "\n WHERE spieler_id = $spieler_zu_entfernen_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $individualwettbewerbe = $db->loadObjectList(); + + foreach ($individualwettbewerbe as $individualwettbewerb) { + $individualwettbewerbid = $individualwettbewerb->individualwettbewerb_id; + + $query = "SELECT *" + . "\n FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung" + . "\n WHERE individualwettbewerb_id = $individualwettbewerbid" + . "\n ORDER BY platz"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $ausgangsplatzierungen = $db->loadObjectList(); + + $platzierungen = array(); + foreach ($ausgangsplatzierungen as $ausgangsplatzierung) + array_push($platzierungen, $ausgangsplatzierung->spieler_id); + + $spieler_beizubehalten_platzierung = array_search($spieler_beizubehalten_id, $platzierungen); + $spieler_zu_entfernen_platzierung = array_search($spieler_zu_entfernen_id, $platzierungen); + if ($spieler_beizubehalten_platzierung !== false && $spieler_zu_entfernen_platzierung !== false) + array_splice($platzierungen, $spieler_zu_entfernen_platzierung, 1); + else if ($spieler_beizubehalten_platzierung === false) + array_splice($platzierungen, $spieler_zu_entfernen_platzierung, 1, $spieler_beizubehalten_id); + + $platzierungen_uebrig = $platzierungen; + foreach ($ausgangsplatzierungen as $platzierung_vorhanden) { + $index = array_search($platzierung_vorhanden->spieler_id, $platzierungen); + if ($index !== false) { + $platz = $index + 1; + if ($platzierung_vorhanden->platz != $platz) { + $query = "UPDATE #__sportsmanager_individualwettbewerb_ausgangsplatzierung" + . "\n SET platz = '$platz'" + . "\n WHERE individualwettbewerb_ausgangsplatzierung_id = " . $platzierung_vorhanden->individualwettbewerb_ausgangsplatzierung_id; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + $index_uebrig = array_search($platzierung_vorhanden->spieler_id, $platzierungen_uebrig); + unset($platzierungen_uebrig[$index_uebrig]); + } + else { + $query = "DELETE FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE individualwettbewerb_ausgangsplatzierung_id = " . $platzierung_vorhanden->individualwettbewerb_ausgangsplatzierung_id; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + } + + foreach ($platzierungen_uebrig as $platzierung_uebrig) { + $index = array_search($platzierung_uebrig, $platzierungen); + $platz = $index + 1; + $query = "INSERT #__sportsmanager_individualwettbewerb_ausgangsplatzierung" + . "\n SET individualwettbewerb_id = '$individualwettbewerbid'," + . "\n spieler_id = '$platzierung_uebrig'," + . "\n platz = '$platz'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + } + + $query = "UPDATE #__sportsmanager_mitglied_von_team" + . "\n SET spieler_id = $spieler_beizubehalten_id" + . "\n WHERE spieler_id = $spieler_zu_entfernen_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "SELECT mitglied_von_verein_id, verein_id" + . "\n FROM #__sportsmanager_mitglied_von_verein" + . "\n WHERE spieler_id = $spieler_beizubehalten_id OR spieler_id = $spieler_zu_entfernen_id" + . "\n ORDER BY verein_id, ausgetreten, IF(spieler_id = $spieler_beizubehalten_id, 0, 1), mitgliedsstatus"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + + $mitglied_verein_id = -1; + foreach ($rows as $row) { + if ($mitglied_verein_id != $row->verein_id) { + $mitglied_verein_id = $row->verein_id; + continue; + } + $query = "DELETE FROM #__sportsmanager_mitglied_von_verein WHERE mitglied_von_verein_id = '$row->mitglied_von_verein_id';"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + $query = "UPDATE #__sportsmanager_mitglied_von_verein" + . "\n SET spieler_id = $spieler_beizubehalten_id" + . "\n WHERE spieler_id = $spieler_zu_entfernen_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "DELETE FROM #__sportsmanager_spieler WHERE spieler_id = $spieler_zu_entfernen_id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'spieler'; + $neues_bild_pfad = $bilder_pfad . DIRECTORY_SEPARATOR . $spieler_beizubehalten_id . '.'; + + if (!JFile::exists($neues_bild_pfad . 'png') && !JFile::exists($neues_bild_pfad . 'jpg')) { + $altes_bild_pfad = $bilder_pfad . DIRECTORY_SEPARATOR . $spieler_zu_entfernen_id . '.'; + + if (JFile::exists($altes_bild_pfad . 'png')) + JFile::copy($altes_bild_pfad . 'png', $neues_bild_pfad . 'png'); + else if (JFile::exists($altes_bild_pfad . 'jpg')) + JFile::copy($altes_bild_pfad . 'jpg', $neues_bild_pfad . 'jpg'); + } + + bildLoeschen("spieler", $spieler_zu_entfernen_id); + + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + if (!empty($spieler_zu_entfernen->erstmals_gespielt)) { + wannGespieltAktualisieren(); + individualwettbewerbTabelleAktualisieren(); + eloAktualisieren($spieler_zu_entfernen->erstmals_gespielt); + } + spielerstatistikAktualisieren(); + aktuellerVereinAktualisieren($spieler_beizubehalten_id); + ranglisteAktualisieren(); + einstufungAktualisieren(); + + redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter) . '#id' . $spieler_beizubehalten_id); +} + +function adminRemoveInaktiveSpielerForm() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("spieler_aendern")) + keinZugriff(true); + + $filter = $jinput->get('filter', '', 'RAW'); + + $query = "SELECT #__sportsmanager_spieler.spieler_id, vorname, nachname, spielernr, lizenznr" + . "\n FROM #__sportsmanager_spieler" + . "\n LEFT JOIN #__sportsmanager_turniermeldung_spieler USING (spieler_id)" + . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_ausgangsplatzierung USING (spieler_id)" + . "\n LEFT JOIN #__sportsmanager_mitglied_von_team USING (spieler_id)" + . "\n LEFT JOIN #__sportsmanager_teamspiel AS teamspiel1 ON #__sportsmanager_spieler.spieler_id = teamspiel1.heim_spieler_1_id" + . "\n LEFT JOIN #__sportsmanager_teamspiel AS teamspiel2 ON #__sportsmanager_spieler.spieler_id = teamspiel2.heim_spieler_2_id" + . "\n LEFT JOIN #__sportsmanager_teamspiel AS teamspiel3 ON #__sportsmanager_spieler.spieler_id = teamspiel3.gast_spieler_1_id" + . "\n LEFT JOIN #__sportsmanager_teamspiel AS teamspiel4 ON #__sportsmanager_spieler.spieler_id = teamspiel4.gast_spieler_2_id" + . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_spiel AS individualspiel1 ON #__sportsmanager_spieler.spieler_id = individualspiel1.heim_spieler_1_id" + . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_spiel AS individualspiel2 ON #__sportsmanager_spieler.spieler_id = individualspiel2.heim_spieler_2_id" + . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_spiel AS individualspiel3 ON #__sportsmanager_spieler.spieler_id = individualspiel3.gast_spieler_1_id" + . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_spiel AS individualspiel4 ON #__sportsmanager_spieler.spieler_id = individualspiel4.gast_spieler_2_id" + . "\n WHERE ISNULL(aktueller_verein_id)" + . "\n AND ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id)" + . "\n AND ISNULL(#__sportsmanager_individualwettbewerb_ausgangsplatzierung.spieler_id)" + . "\n AND ISNULL(#__sportsmanager_mitglied_von_team.team_id)" + . "\n AND ISNULL(teamspiel1.heim_spieler_1_id)" + . "\n AND ISNULL(teamspiel2.heim_spieler_2_id)" + . "\n AND ISNULL(teamspiel3.gast_spieler_1_id)" + . "\n AND ISNULL(teamspiel4.gast_spieler_2_id)" + . "\n AND ISNULL(individualspiel1.heim_spieler_1_id)" + . "\n AND ISNULL(individualspiel2.heim_spieler_2_id)" + . "\n AND ISNULL(individualspiel3.gast_spieler_1_id)" + . "\n AND ISNULL(individualspiel4.gast_spieler_2_id)" + . "\n ORDER BY nachname, vorname"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $spieler = $db->loadObjectList(); + + HTML_sportsmanager_admin::adminRemoveInaktiveSpieler($spieler, $filter); +} + +function adminRemoveInaktiveSpieler() { + $db =& getDatabase(); + global $sportsmanager_joomla_path; + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("spieler_aendern")) + keinZugriff(); + + $spieler_beizubehalten_ids = $jinput->get('spielerids', array(), 'ARRAY'); + $filter = $jinput->get('filter', '', 'RAW'); + + if ($jinput->get('cancel', false, 'BOOL')) { + redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter)); + + return; + } + + $query = "LOCK TABLES #__sportsmanager_teamspiel AS teamspiel1 READ, #__sportsmanager_teamspiel AS teamspiel2 READ, #__sportsmanager_teamspiel AS teamspiel3 READ, #__sportsmanager_teamspiel AS teamspiel4 READ, #__sportsmanager_turniermeldung_spieler READ, #__sportsmanager_mitglied_von_team WRITE, #__sportsmanager_mitglied_von_verein WRITE, #__sportsmanager_individualwettbewerb_spiel AS individualspiel1 WRITE, #__sportsmanager_individualwettbewerb_spiel AS individualspiel2 WRITE, #__sportsmanager_individualwettbewerb_spiel AS individualspiel3 WRITE, #__sportsmanager_individualwettbewerb_spiel AS individualspiel4 WRITE, #__sportsmanager_individualwettbewerb_ausgangsplatzierung WRITE, #__sportsmanager_spieler WRITE;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "SELECT #__sportsmanager_spieler.spieler_id" + . "\n FROM #__sportsmanager_spieler" + . "\n LEFT JOIN #__sportsmanager_turniermeldung_spieler USING (spieler_id)" + . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_ausgangsplatzierung USING (spieler_id)" + . "\n LEFT JOIN #__sportsmanager_mitglied_von_team USING (spieler_id)" + . "\n LEFT JOIN #__sportsmanager_teamspiel AS teamspiel1 ON #__sportsmanager_spieler.spieler_id = teamspiel1.heim_spieler_1_id" + . "\n LEFT JOIN #__sportsmanager_teamspiel AS teamspiel2 ON #__sportsmanager_spieler.spieler_id = teamspiel2.heim_spieler_2_id" + . "\n LEFT JOIN #__sportsmanager_teamspiel AS teamspiel3 ON #__sportsmanager_spieler.spieler_id = teamspiel3.gast_spieler_1_id" + . "\n LEFT JOIN #__sportsmanager_teamspiel AS teamspiel4 ON #__sportsmanager_spieler.spieler_id = teamspiel4.gast_spieler_2_id" + . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_spiel AS individualspiel1 ON #__sportsmanager_spieler.spieler_id = individualspiel1.heim_spieler_1_id" + . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_spiel AS individualspiel2 ON #__sportsmanager_spieler.spieler_id = individualspiel2.heim_spieler_2_id" + . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_spiel AS individualspiel3 ON #__sportsmanager_spieler.spieler_id = individualspiel3.gast_spieler_1_id" + . "\n LEFT JOIN #__sportsmanager_individualwettbewerb_spiel AS individualspiel4 ON #__sportsmanager_spieler.spieler_id = individualspiel4.gast_spieler_2_id" + . "\n WHERE ISNULL(aktueller_verein_id)" + . "\n AND ISNULL(#__sportsmanager_turniermeldung_spieler.spieler_id)" + . "\n AND ISNULL(#__sportsmanager_individualwettbewerb_ausgangsplatzierung.spieler_id)" + . "\n AND ISNULL(#__sportsmanager_mitglied_von_team.team_id)" + . "\n AND ISNULL(teamspiel1.heim_spieler_1_id)" + . "\n AND ISNULL(teamspiel2.heim_spieler_2_id)" + . "\n AND ISNULL(teamspiel3.gast_spieler_1_id)" + . "\n AND ISNULL(teamspiel4.gast_spieler_2_id)" + . "\n AND ISNULL(individualspiel1.heim_spieler_1_id)" + . "\n AND ISNULL(individualspiel2.heim_spieler_2_id)" + . "\n AND ISNULL(individualspiel3.gast_spieler_1_id)" + . "\n AND ISNULL(individualspiel4.gast_spieler_2_id)" + . "\n ORDER BY nachname, vorname"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $spieler = $db->loadObjectList(); + + $bilder_spieler_ids = array(); + + foreach ($spieler AS $s) { + $id = $s->spieler_id; + + if (in_array($id, $spieler_beizubehalten_ids)) + continue; + + array_push($bilder_spieler_ids, $id); + + $query = "DELETE FROM #__sportsmanager_mitglied_von_verein WHERE spieler_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "DELETE FROM #__sportsmanager_spieler WHERE spieler_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + spielerstatistikAktualisieren(); + + foreach ($bilder_spieler_ids AS $id) + bildLoeschen("spieler", $id); + + redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter) . '#id' . $spieler_beizubehalten_id); +} + +function adminImportSpielerForm() { + $db =& getDatabase(); + + $ansprechpartner_importieren = einstellungswert("ansprechpartner_importieren"); + + if (benutzerZugriff("spieler_aendern")) + $beschraenkter_zugriff = 0; + else if (($ansprechpartner_importieren == 1 || $ansprechpartner_importieren == 2) && benutzerVeranstalterModerator()) + $beschraenkter_zugriff = 1; +// else if (benutzerVereinModerator()) +// $beschraenkter_zugriff = 2; + else + keinZugriff(true); + + HTML_sportsmanager_admin::adminImportSpieler(); +} + +function adminImportSpielerDetailsForm() { + $db =& getDatabase(); + global $_FILES; + $jinput = JFactory::getApplication()->input; + + $ansprechpartner_importieren = einstellungswert("ansprechpartner_importieren"); + + if (benutzerZugriff("spieler_aendern")) + $beschraenkter_zugriff = 0; + else if (($ansprechpartner_importieren == 1 || $ansprechpartner_importieren == 2) && benutzerVeranstalterModerator()) + $beschraenkter_zugriff = 1; +// else if (benutzerVereinModerator()) +// $beschraenkter_zugriff = 2; + else + keinZugriff(); + + if ($jinput->get('cancel', false, 'BOOL')) { + redirectSportsManagerURL('&task=admin_spieler'); + + return; + } + + $query = "SELECT DISTINCT session_id" + . "\n FROM #__sportsmanager_spieler_import" + . "\n WHERE session_id < SUBTIME(NOW(), '00:05:00')"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + + foreach ($rows as $row) { + $query = "DELETE FROM #__sportsmanager_spieler_import" + . "\n WHERE session_id = '$row->session_id'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + if (empty($_FILES["daten"]["tmp_name"]) || !is_uploaded_file($_FILES["daten"]["tmp_name"])) { + redirectSportsManagerURL('&task=admin_spieler', JText::_('COM_SPORTSMANAGER_NO_FILE_SPECIFIED')); + + return; + } + + $handle = fopen($_FILES["daten"]["tmp_name"], "r"); + if (!$handle) { + redirectSportsManagerURL('&task=admin_spieler', JText::_('COM_SPORTSMANAGER_COULD_NOT_OPEN_FILE')); + + return; + } + if (feof($handle)) { + redirectSportsManagerURL('&task=admin_spieler', JText::_('COM_SPORTSMANAGER_FILE_IS_EMPTY')); + + return; + } + + $titelzeile = chop(utf8_encode(fgets($handle, 4096))); + if (substr($titelzeile, 0, 4) == "sep=") { + $trennzeichen = substr($titelzeile, 4); + if ($trennzeichen == "") // TAB am Ende wird aus irgendwelchen Gründen weggekürzt + $trennzeichen = "\t"; + $titelzeile = chop(utf8_encode(fgets($handle, 4096))); + } + else if ($titelzeile == "NAME#VORNAME#GESCHLECHT#VEREIN#STRASSE#PLZ/ORT#TELEFON#FAX#MOBILE#EMAIL#BEMERKUNG#SPIELERPASS#GEBURTSDATUM") + $trennzeichen = "#"; + else if (strpos($titelzeile, "\t") !== false) + $trennzeichen = "\t"; + else if (strpos($titelzeile, ";") !== false) + $trennzeichen = ";"; + else + $trennzeichen = ","; + + $spalte = array(); + + if (substr($titelzeile, 0, 14) == ";All licensees" || substr($titelzeile, 0, 24) == ";All validated licensees") { + // ITSF-Export + $lizenz_import = true; + $buffer = $titelzeile; + while (!feof($handle) && strpos($buffer, "Profession") === false) + $buffer = chop(utf8_encode(fgets($handle, 4096))); + $spalte["nachname"] = 3; + $spalte["vorname"] = 2; + $spalte["geschlecht"] = 1; + $spalte["spielernr"] = 6; + $spalte["lizenznr"] = 0; + $spalte["geburtsjahr"] = 5; + } + else { + $lizenz_import = false; + $titel = explode($trennzeichen, strtolower($titelzeile)); + + foreach ($titel as $index => $bezeichnung) { + $bezeichnung = trim($bezeichnung); + $len = strlen($bezeichnung); + if ($len >= 2 && $bezeichnung[0] == '"' && $bezeichnung[$len - 1] == '"') + $bezeichnung = trim(str_replace('""', '"', substr($bezeichnung, 1, $len - 2))); + + if ($bezeichnung == "name" || $bezeichnung == "nachname") + $spalte["nachname"] = $index; + else if ($bezeichnung == "vorname") + $spalte["vorname"] = $index; + else if ($bezeichnung == "name, vorname" || $bezeichnung == "name,vorname") + $spalte["name,vorname"] = $index; + else if ($bezeichnung == "pseudonym") + $spalte["pseudonym"] = $index; + else if ($bezeichnung == "geschlecht" || $bezeichnung == "anrede") + $spalte["geschlecht"] = $index; + else if ($bezeichnung == "spielernr" || $bezeichnung == "spielernr." || $bezeichnung == "spielerpass") + $spalte["spielernr"] = $index; + else if ($bezeichnung == "spielernr alt" || $bezeichnung == "spielernr. alt" || $bezeichnung == "spielernr_alt") + $spalte["spielernr_alt"] = $index; + else if ($bezeichnung == "lizenznr" || $bezeichnung == "lizenznr.") + $spalte["lizenznr"] = $index; + else if ($bezeichnung == "organisation") + $spalte["organisation"] = $index; + else if ($bezeichnung == "vereinssitz") + $spalte["vereinssitz"] = $index; + else if ($bezeichnung == "vereinsname" || $bezeichnung == "verein") + $spalte["vereinsname"] = $index; + else if ($bezeichnung == "mannschaft" || $bezeichnung == "teamname") + $spalte["teamname"] = $index; + else if ($bezeichnung == "geburtsdatum") + $spalte["geburtsdatum"] = $index; + else if ($bezeichnung == "geburtsjahr") + $spalte["geburtsjahr"] = $index; + else if ($bezeichnung == "email" || $bezeichnung == "e-mail") + $spalte["email"] = $index; + else if (substr($bezeichnung, 0, 4) == "stra") + $spalte["strasse"] = $index; + else if ($bezeichnung == "plz/ort") + $spalte["plz/ort"] = $index; + else if ($bezeichnung == "plz") + $spalte["plz"] = $index; + else if ($bezeichnung == "ort") + $spalte["ort"] = $index; + else if ($bezeichnung == "landeskennung") + $spalte["landeskennung"] = $index; + else if ($bezeichnung == "telefon") + $spalte["telefon"] = $index; + else if ($bezeichnung == "mobil") + $spalte["mobil"] = $index; + else if ($bezeichnung == "beruf") + $spalte["beruf"] = $index; + else if ($bezeichnung == "austritt" || $bezeichnung == "ausgetreten") + $spalte["ausgetreten"] = $index; + else if ($bezeichnung == "mitgliedsstatus") + $spalte["mitgliedsstatus"] = $index; + } + + if (((!isset($spalte["nachname"]) || !isset($spalte["vorname"])) && !isset($spalte["name,vorname"])) || !isset($spalte["spielernr"])) { + redirectSportsManagerURL('&task=admin_spieler', "Die übergebene Datei ist keine Spielerdatei."); + + return; + } + } + + $session_id = date('Y-m-d H:i:s'); + +// $veranstalter_import = array(); + + while (!feof($handle)) { + $buffer = chop(utf8_encode(fgets($handle, 4096))); + $daten = explode($trennzeichen, $buffer); + + foreach ($daten as $index => $wert) { + $wert = trim($wert); + $len = strlen($wert); + if ($len < 2 || $wert[$len - 1] != '"' || !($wert[0] == '"' || ($wert[0] == '=' && $wert[1] == '"'))) + $daten[$index] = $wert; + else if ($wert[0] == '"') + $daten[$index] = trim(str_replace('""', '"', substr($wert, 1, $len - 2))); + else + $daten[$index] = trim(str_replace('""', '"', substr($wert, 2, $len - 3))); + } + + if (isset($spalte["vorname"]) && isset($spalte["nachname"]) && isset($daten[$spalte["vorname"]]) && isset($daten[$spalte["nachname"]])) { + $nachname = $daten[$spalte["nachname"]]; + $vorname = $daten[$spalte["vorname"]]; + } + else if (isset($spalte["name,vorname"]) && isset($daten[$spalte["name,vorname"]])) { + $pos = strpos($daten[$spalte["name,vorname"]], ","); + if ($pos === false) + continue; + $nachname = trim(substr($daten[$spalte["name,vorname"]], 0, $pos)); + $vorname = trim(substr($daten[$spalte["name,vorname"]], $pos + 1)); + } + else + continue; + + if ($vorname == "" || $nachname == "") + continue; + + $mitgliedsstatus = 1; + if (isset($spalte["mitgliedsstatus"]) && isset($daten[$spalte["mitgliedsstatus"]]) && !empty($daten[$spalte["mitgliedsstatus"]])) { + $s = strtolower($daten[$spalte["mitgliedsstatus"]]); + if ($s == "ausgetreten") + $mitgliedsstatus = 0; + else if ($s == "passiv") + $mitgliedsstatus = 3; + else if (substr($s, 0, 9) == "eingeschr") + $mitgliedsstatus = 2; + } + else if (isset($spalte["ausgetreten"]) && isset($daten[$spalte["ausgetreten"]]) && !empty($daten[$spalte["ausgetreten"]])) { + if (strtolower($daten[$spalte["ausgetreten"]]) == "ja") + $mitgliedsstatus = 0; + } + + if ($mitgliedsstatus == 0) + continue; + + $geschlecht = isset($spalte["geschlecht"]) && isset($daten[$spalte["geschlecht"]]) ? (($daten[$spalte["geschlecht"]][0] == "M" || $daten[$spalte["geschlecht"]][0] == "m" || $daten[$spalte["geschlecht"]][0] == "H" || $daten[$spalte["geschlecht"]][0] == "h") ? "M" : "W") : "M"; + $spielernr = isset($spalte["spielernr"]) && isset($daten[$spalte["spielernr"]]) ? trim($daten[$spalte["spielernr"]]) : ""; + if (!empty($spielernr) && !ctype_digit(substr($spielernr, strlen($spielernr) - 1, 1))) + $spielernr = ""; + $spielernr_alt = isset($spalte["spielernr_alt"]) && isset($daten[$spalte["spielernr_alt"]]) ? trim($daten[$spalte["spielernr_alt"]]) : ""; + $lizenznr = isset($spalte["lizenznr"]) && isset($daten[$spalte["lizenznr"]]) ? $daten[$spalte["lizenznr"]] : ""; + if (!empty($lizenznr) && !ctype_digit(substr($lizenznr, strlen($lizenznr) - 1, 1))) + $lizenznr = ""; + $pseudonym = isset($spalte["pseudonym"]) && isset($daten[$spalte["pseudonym"]]) ? $daten[$spalte["pseudonym"]] : ""; + $organisation = isset($spalte["organisation"]) && isset($daten[$spalte["organisation"]]) ? $daten[$spalte["organisation"]] : ""; + $vereinssitz = isset($spalte["vereinssitz"]) && isset($daten[$spalte["vereinssitz"]]) ? $daten[$spalte["vereinssitz"]] : ""; + $vereinsname = isset($spalte["vereinsname"]) && isset($daten[$spalte["vereinsname"]]) ? $daten[$spalte["vereinsname"]] : ""; + $geburtsdatum = isset($spalte["geburtsdatum"]) && isset($daten[$spalte["geburtsdatum"]]) ? normalisiertesDatum($daten[$spalte["geburtsdatum"]]) : null; + $geburtsjahr = isset($spalte["geburtsjahr"]) && isset($daten[$spalte["geburtsjahr"]]) ? $daten[$spalte["geburtsjahr"]] : null; + if (empty($geburtsjahr) || !ctype_digit($geburtsjahr) || $geburtsjahr < 1800) + $geburtsjahr = null; + $email = isset($spalte["email"]) && isset($daten[$spalte["email"]]) ? $daten[$spalte["email"]] : ""; + $strasse = isset($spalte["strasse"]) && isset($daten[$spalte["strasse"]]) ? $daten[$spalte["strasse"]] : ""; + if (isset($spalte["plz/ort"]) && isset($daten[$spalte["plz/ort"]])) { + $pos = strpos($daten[$spalte["plz/ort"]], ' '); + if ($pos == false) { + $plz = ""; + $ort = ""; + } + else { + $plz = substr($daten[$spalte["plz/ort"]], 0, $pos); + $ort = substr($daten[$spalte["plz/ort"]], $pos + 1); + } + } + else { + $plz = ""; + $ort = ""; + } + if (isset($spalte["plz"])) + $plz = isset($daten[$spalte["plz"]]) ? $daten[$spalte["plz"]] : ""; + if (isset($spalte["ort"])) + $ort = isset($daten[$spalte["ort"]]) ? $daten[$spalte["ort"]] : ""; + $landeskennung = isset($spalte["landeskennung"]) && isset($daten[$spalte["landeskennung"]]) ? $daten[$spalte["landeskennung"]] : ""; + $telefon = isset($spalte["telefon"]) && isset($daten[$spalte["telefon"]]) ? $daten[$spalte["telefon"]] : ""; + $mobil = isset($spalte["mobil"]) && isset($daten[$spalte["mobil"]]) ? $daten[$spalte["mobil"]] : ""; + $beruf = isset($spalte["beruf"]) && isset($daten[$spalte["beruf"]]) ? $daten[$spalte["beruf"]] : ""; + + $query = "INSERT #__sportsmanager_spieler_import" + . "\n SET session_id = '" . $db->escape($session_id) . "'," + . "\n vorname = '" . $db->escape($vorname) . "'," + . "\n nachname = '" . $db->escape($nachname) . "'"; + if (isset($spalte["spielernr"])) + $query .= ",\n spielernr = '" . $db->escape($spielernr) . "'"; + if (isset($spalte["spielernr_alt"])) + $query .= ",\n spielernr_alt = '" . $db->escape($spielernr_alt) . "'"; + if (isset($spalte["lizenznr"])) + $query .= ",\n lizenznr = '" . $db->escape($lizenznr) . "'"; + if (isset($spalte["pseudonym"])) + $query .= ",\n pseudonym = '" . $db->escape($pseudonym) . "'"; + $query .= ",\n geschlecht = '" . $db->escape($geschlecht) . "'"; + if (isset($spalte["geburtsdatum"])) + $query .= ",\n geburtsdatum = " . ($geburtsdatum == null ? "NULL" : ("'" . $db->escape($geburtsdatum) . "'")); + if (isset($spalte["geburtsjahr"]) || isset($spalte["geburtsdatum"])) + $query .= ",\n geburtsjahr = " . ($geburtsjahr == null ? ($geburtsdatum == null ? "NULL" : ("YEAR('" . $db->escape($geburtsdatum) . "')")) : ("'" . $db->escape($geburtsjahr) . "'")); + if (isset($spalte["strasse"])) + $query .= ",\n strasse = '" . $db->escape($strasse) . "'"; + if (isset($spalte["plz"])) + $query .= ",\n plz = '" . $db->escape($plz) . "'"; + if (isset($spalte["ort"])) + $query .= ",\n ort = '" . $db->escape($ort) . "'"; + if (isset($spalte["landeskennung"])) + $query .= ",\n landeskennung = '" . $db->escape($landeskennung) . "'"; + if (isset($spalte["telefon"])) + $query .= ",\n telefon = '" . $db->escape($telefon) . "'"; + if (isset($spalte["mobil"])) + $query .= ",\n mobil = '" . $db->escape($mobil) . "'"; + if (isset($spalte["email"])) + $query .= ",\n email = '" . $db->escape($email) . "'"; + if (isset($spalte["vereinsname"])) + $query .= ",\n vereinsname = '" . $db->escape($vereinsname) . "'"; + if (isset($spalte["vereinssitz"])) + $query .= ",\n vereinssitz = '" . $db->escape($vereinssitz) . "'"; + if (isset($spalte["organisation"])) + $query .= ",\n veranstalterbezeichnung = '" . $db->escape($organisation) . "'"; + $query .= ",\n mitgliedsstatus = '" . $mitgliedsstatus . "'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + +// if (!isset($veranstalter_import[$organisation])) +// $veranstalter_import[$organisation] = TRUE; + } + fclose($handle); + + if ($lizenz_import) { + $query = "SELECT COUNT(*)" + . "\n FROM #__sportsmanager_spieler_import" + . "\n INNER JOIN #__sportsmanager_spieler USING (spielernr)" + . "\n WHERE session_id = '" . $db->escape($session_id) . "' AND #__sportsmanager_spieler_import.spielernr <> '' AND #__sportsmanager_spieler_import.lizenznr <> ''"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $lizenzen_aktualisiert = $db->loadResult(); + + $query = "UPDATE #__sportsmanager_spieler_import" + . "\n INNER JOIN #__sportsmanager_spieler USING (spielernr)" + . "\n SET #__sportsmanager_spieler.lizenznr = #__sportsmanager_spieler_import.lizenznr" + . "\n WHERE session_id = '" . $db->escape($session_id) . "' AND #__sportsmanager_spieler_import.spielernr <> '' AND #__sportsmanager_spieler_import.lizenznr <> ''"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "DELETE FROM #__sportsmanager_spieler_import" + . "\n WHERE session_id = '" . $db->escape($session_id) . "'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + HTML_sportsmanager_admin::adminImportSpielerBericht($lizenzen_aktualisiert, array(), 0, array(), array(), array(), false, redirectSessionIdEmpty() ? null : redirectSessionIdSetzen()); + + return; + } + + $spalten = array(); + if (isset($spalte["pseudonym"])) + array_push($spalten, "pseudonym"); + if (isset($spalte["geschlecht"])) + array_push($spalten, "geschlecht"); + if (isset($spalte["spielernr"])) + array_push($spalten, "spielernr"); + if (isset($spalte["spielernr_alt"])) + array_push($spalten, "spielernr_alt"); + if (isset($spalte["lizenznr"])) + array_push($spalten, "lizenznr"); + if (isset($spalte["organisation"])) + array_push($spalten, "organisation"); + if (isset($spalte["vereinssitz"])) + array_push($spalten, "vereinssitz"); + if (isset($spalte["vereinsname"])) + array_push($spalten, "vereinsname"); + if (isset($spalte["geburtsdatum"])) + array_push($spalten, "geburtsdatum"); + if (isset($spalte["geburtsjahr"]) || isset($spalte["geburtsdatum"])) + array_push($spalten, "geburtsjahr"); + if (isset($spalte["email"])) + array_push($spalten, "email"); + if (isset($spalte["strasse"])) + array_push($spalten, "strasse"); + if (isset($spalte["strasse"])) + array_push($spalten, "strasse"); + if (isset($spalte["plz/ort"]) || isset($spalte["plz"])) + array_push($spalten, "plz"); + if (isset($spalte["plz/ort"]) || isset($spalte["ort"])) + array_push($spalten, "ort"); + if (isset($spalte["landeskennung"])) + array_push($spalten, "landeskennung"); + if (isset($spalte["telefon"])) + array_push($spalten, "telefon"); + if (isset($spalte["mobil"])) + array_push($spalten, "mobil"); + array_push($spalten, "mitgliedsstatus"); + + $query = "SELECT *" + . "\n FROM #__sportsmanager_veranstalter"; + if ($beschraenkter_zugriff) + $query .= "\n WHERE" . veranstalterFilter("veranstalter_id IN"); + $query .= "\n ORDER BY veranstalterbezeichnung"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $veranstalter = $db->loadObjectList(); + + $query = "SELECT DISTINCT veranstalterbezeichnung" + . "\n FROM #__sportsmanager_spieler_import" + . "\n WHERE session_id = '" . $db->escape($session_id) . "'" + . "\n ORDER BY veranstalterbezeichnung"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $veranstalter_import = $db->loadObjectList(); + + $veranstalter_zugehoerigkeit = array(); + foreach ($veranstalter_import as $v) { + $query = "SELECT #__sportsmanager_veranstalter.veranstalter_id, COUNT(*) AS spieler" + . "\n FROM #__sportsmanager_spieler_import" + . "\n INNER JOIN #__sportsmanager_spieler ON #__sportsmanager_spieler_import.spielernr = #__sportsmanager_spieler.spielernr" + . "\n INNER JOIN #__sportsmanager_mitglied_von_verein USING (spieler_id)" + . "\n INNER JOIN #__sportsmanager_verein USING (verein_id)" + . "\n INNER JOIN #__sportsmanager_veranstalter USING (veranstalter_id)" + . "\n WHERE session_id = '" . $db->escape($session_id) . "' AND #__sportsmanager_spieler_import.spielernr != '' AND " . (empty($v->veranstalterbezeichnung) ? "ISNULL(#__sportsmanager_spieler_import.veranstalterbezeichnung)" : ("#__sportsmanager_spieler_import.veranstalterbezeichnung = '" . $db->escape($v->veranstalterbezeichnung) . "'")) . " AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten" + . "\n GROUP BY #__sportsmanager_veranstalter.veranstalter_id" + . "\n ORDER BY spieler DESC" + . "\n LIMIT 1"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + + if (count($rows) > 0) + $veranstalter_zugehoerigkeit[$v->veranstalterbezeichnung] = $rows[0]->veranstalter_id; + } + + $query = "SELECT DISTINCT vereinsname, veranstalterbezeichnung" + . "\n FROM #__sportsmanager_spieler_import" + . "\n WHERE session_id = '" . $db->escape($session_id) . "'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $vereine_import = $db->loadObjectList(); + $vereine_import_anzahl = count($vereine_import); + + $query = "SELECT COUNT(*)" + . "\n FROM #__sportsmanager_verein"; + if ($beschraenkter_zugriff) + $query .= "\n WHERE" . veranstalterFilter("veranstalter_id IN"); + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $vereine_aktuell_anzahl = $db->loadResult(); + + if (!$beschraenkter_zugriff && count($vereine_import) == 1) { + $verein_import = $vereine_import[0]->vereinsname; + $query = "SELECT #__sportsmanager_verein.verein_id, vereinsname, veranstalterbezeichnung" + . "\n FROM #__sportsmanager_verein" + . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)" + . "\n WHERE NOT ausgetreten" + . "\n ORDER BY veranstalterbezeichnung, vereinsname"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $vereine = $db->loadObjectList(); + } + else { + $verein_import = ""; + $vereine = array(); + } + + HTML_sportsmanager_admin::adminImportSpielerDetails($beschraenkter_zugriff, $ansprechpartner_importieren, $veranstalter, $veranstalter_import, $veranstalter_zugehoerigkeit, $session_id, implode(",", $spalten), $verein_import, $vereine, einstellungswert("spielerimport_persoenliche_daten_vorauswahl"), $vereine_import_anzahl, $vereine_aktuell_anzahl); +} + +function adminImportSpielerVorschau() { + $db =& getDatabase(); + global $_FILES; + $jinput = JFactory::getApplication()->input; + + $ansprechpartner_importieren = einstellungswert("ansprechpartner_importieren"); + + if (benutzerZugriff("spieler_aendern")) + $beschraenkter_zugriff = 0; + else if (($ansprechpartner_importieren == 1 || $ansprechpartner_importieren == 2) && benutzerVeranstalterModerator()) + $beschraenkter_zugriff = 1; +// else if (benutzerVereinModerator()) +// $beschraenkter_zugriff = 2; + else + keinZugriff(); + + if ($jinput->get('cancel', false, 'BOOL')) { + redirectSportsManagerURL('&task=admin_spieler'); + + return; + } + + if (!ini_get('safe_mode')) + set_time_limit(300); + + $session_id = $jinput->get('session_id', '', 'RAW'); + + $query = "SELECT DISTINCT veranstalterbezeichnung" + . "\n FROM #__sportsmanager_spieler_import" + . "\n WHERE session_id = '" . $db->escape($session_id) . "'" + . "\n ORDER BY veranstalterbezeichnung"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $veranstalter_import = $db->loadObjectList(); + + $spalten = array(); + foreach (explode(",", $jinput->get('spalten', '', 'RAW')) as $s) + $spalten[$s] = true; + $veranstalter = array(); + $n = 1; + foreach ($veranstalter_import as $v) { + $veranstalter_id = $jinput->get('veranstalter_' . $n . '_id', '', 'INT'); + if (!$beschraenkter_zugriff || (!empty($veranstalter_id) && benutzerVeranstalterModerator($veranstalter_id))) + $veranstalter[$v->veranstalterbezeichnung] = $veranstalter_id; + else + $veranstalter[$v->veranstalterbezeichnung] = ""; + $n++; + } + + $spielernr_aendern = false; + if (isset($spalten["spielernr_alt"])) { + $query = "SELECT nachname, vorname, spielernr, spielernr_alt" + . "\n FROM #__sportsmanager_spieler_import" + . "\n WHERE session_id = '" . $db->escape($session_id) . "' AND mitgliedsstatus <> 0 AND spielernr != spielernr_alt AND NOT ISNULL(spielernr) AND NOT ISNULL(spielernr_alt) AND spielernr != '' AND spielernr_alt != ''" + . "\n LIMIT 1"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $spielervergleich = $db->loadObjectList(); + + if (count($spielervergleich) > 0) { + $spielernr_aendern = true; + $s1 = $spielervergleich[0]; + $query = "SELECT nachname, vorname, spielernr" + . "\n FROM #__sportsmanager_spieler" + . "\n WHERE spielernr = '$s1->spielernr'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $spieler = $db->loadObjectList(); + + if (count($spieler) > 0) { + $s2 = $spieler[0]; + if ($s1->vorname == $s2->vorname && $s1->nachname == $s1->nachname) { + $query = "UPDATE #__sportsmanager_spieler_import" + . "\n SET spielernr_alt = NULL"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $spielernr_aendern = false; + } + } + + if ($spielernr_aendern) { + $query = "SELECT nachname, vorname" + . "\n FROM" + . "\n (SELECT nachname, vorname, spielernr, spielernr_alt" + . "\n FROM #__sportsmanager_spieler_import" + . "\n WHERE session_id = '" . $db->escape($session_id) . "' AND mitgliedsstatus <> 0 AND spielernr != spielernr_alt AND NOT ISNULL(spielernr) AND NOT ISNULL(spielernr_alt) AND spielernr != '' AND spielernr_alt != '') AS import" + . "\n INNER JOIN" + . "\n (SELECT spielernr" + . "\n FROM #__sportsmanager_spieler" + . "\n ) AS bestand" + . "\n ON bestand.spielernr = import.spielernr" + . "\n WHERE NOT EXISTS(SELECT * FROM #__sportsmanager_spieler_import WHERE spielernr_alt = bestand.spielernr AND spielernr != spielernr_alt AND NOT ISNULL(spielernr) AND NOT ISNULL(spielernr_alt) AND spielernr != '' AND spielernr_alt != '')" + . "\n ORDER BY nachname, vorname"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $konflikte = $db->loadObjectList(); + + if (count($konflikte) > 0) { + HTML_sportsmanager_admin::adminImportSpielerFehler($konflikte); + + return; + } + } + } + } + + $query = "SELECT #__sportsmanager_spieler_import.*, #__sportsmanager_spieler.spieler_id, IF(#__sportsmanager_spieler.nachname != #__sportsmanager_spieler_import.nachname, #__sportsmanager_spieler.nachname, NULL) AS nachname_alt, IF(#__sportsmanager_spieler.vorname != #__sportsmanager_spieler_import.vorname, #__sportsmanager_spieler.vorname, NULL) AS vorname_alt," + . "\n IF(#__sportsmanager_spieler_import.spielernr = '', (SELECT COUNT(*) FROM #__sportsmanager_spieler AS t1 WHERE (#__sportsmanager_spieler_import.vorname = t1.vorname AND #__sportsmanager_spieler_import.nachname = t1.nachname AND ((ISNULL(#__sportsmanager_spieler_import.geburtsjahr) AND ISNULL(t1.geburtsjahr)) OR #__sportsmanager_spieler_import.geburtsjahr = t1.geburtsjahr))), 0) AS namensgleich" + . "\n FROM #__sportsmanager_spieler_import" + . "\n LEFT JOIN #__sportsmanager_spieler ON #__sportsmanager_spieler_import.spielernr != '' AND " . ($spielernr_aendern ? "IF(NOT ISNULL(#__sportsmanager_spieler_import.spielernr_alt) AND #__sportsmanager_spieler_import.spielernr_alt != '', #__sportsmanager_spieler_import.spielernr_alt = #__sportsmanager_spieler.spielernr, #__sportsmanager_spieler_import.spielernr = #__sportsmanager_spieler.spielernr)" : "#__sportsmanager_spieler_import.spielernr = #__sportsmanager_spieler.spielernr") + . "\n WHERE session_id = '" . $db->escape($session_id) . "'" + . "\n HAVING namensgleich > 0 OR NOT ISNULL(nachname_alt) OR NOT ISNULL(vorname_alt)" + // "namensgleich" kann in der "ORDER"-Anweisung" nicht verwendet werden, da MySQL 5.0.x dies nicht akzeptiert + . "\n ORDER BY IF(#__sportsmanager_spieler_import.spielernr = '', (SELECT COUNT(*) FROM #__sportsmanager_spieler AS t1 WHERE (#__sportsmanager_spieler_import.vorname = t1.vorname AND #__sportsmanager_spieler_import.nachname = t1.nachname AND ((ISNULL(#__sportsmanager_spieler_import.geburtsjahr) AND ISNULL(t1.geburtsjahr)) OR #__sportsmanager_spieler_import.geburtsjahr = t1.geburtsjahr))), 0) > 0 DESC, nachname, vorname"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $spieler_import = $db->loadObjectList(); + + $import_verweigern = false; + if ($beschraenkter_zugriff) { + $eintraege_zugeordnet = 0; + $eintraege_nicht_zugeordnet = 0; + foreach ($spieler_import as $s) { + if ($s->namensgleich > 0) { + $import_verweigern = true; + break; + } + $p1 = $p2 = 100; + if ($s->nachname_alt != null) + similar_text($s->nachname, $s->nachname_alt, $p1); + if ($s->vorname_alt != null) + similar_text($s->vorname, $s->vorname_alt, $p2); + if (floor($p1) < 75 && floor($p2) < 75) { + $p1 = $p2 = 100; + if ($s->nachname_alt != null) + similar_text($s->vorname, $s->nachname_alt, $p1); + if ($s->vorname_alt != null) + similar_text($s->nachname, $s->vorname_alt, $p2); + if (floor($p1) < 75 && floor($p2) < 75) { + $import_verweigern = true; + break; + } + } + } + if (!$import_verweigern) { + $query = "SELECT SUM(IF(ISNULL(spieler_id), 0, 1)) AS zugeordnet, SUM(IF(ISNULL(spieler_id), 1, 0)) AS nicht_zugeordnet" + . "\n FROM #__sportsmanager_spieler_import" + . "\n LEFT JOIN #__sportsmanager_spieler ON #__sportsmanager_spieler_import.spielernr != '' AND " . ($spielernr_aendern ? "IF(NOT ISNULL(#__sportsmanager_spieler_import.spielernr_alt) AND #__sportsmanager_spieler_import.spielernr_alt != '', #__sportsmanager_spieler_import.spielernr_alt = #__sportsmanager_spieler.spielernr, #__sportsmanager_spieler_import.spielernr = #__sportsmanager_spieler.spielernr)" : "#__sportsmanager_spieler_import.spielernr = #__sportsmanager_spieler.spielernr") + . "\n WHERE session_id = '" . $db->escape($session_id) . "'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $spieler_zugeordnet = $db->loadObjectList(); + + if (count($spieler_zugeordnet) > 0 && $spieler_zugeordnet[0]->nicht_zugeordnet > ($spieler_zugeordnet[0]->zugeordnet / 2)) + $import_verweigern = true; + } + } + + if ($import_verweigern) { + $query = "DELETE FROM #__sportsmanager_spieler_import" + . "\n WHERE session_id = '" . $db->escape($session_id) . "'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + HTML_sportsmanager_admin::adminImportSpielerVorschau($import_verweigern, $spieler_import, $veranstalter, $session_id, $jinput->get('persoenliche_daten', 0, 'INT'), $jinput->get('lizenznr_beibehalten', 0, 'INT'), $jinput->get('spalten', '', 'RAW')); +} + +function adminImportSpieler() { + $db =& getDatabase(); + global $_FILES; + $jinput = JFactory::getApplication()->input; + + $ansprechpartner_importieren = einstellungswert("ansprechpartner_importieren"); + + if (benutzerZugriff("spieler_aendern")) + $beschraenkter_zugriff = 0; + else if (($ansprechpartner_importieren == 1 || $ansprechpartner_importieren == 2) && benutzerVeranstalterModerator()) + $beschraenkter_zugriff = 1; +// else if (benutzerVereinModerator()) +// $beschraenkter_zugriff = 2; + else + keinZugriff(); + + if ($jinput->get('cancel', false, 'BOOL')) { + redirectSportsManagerURL('&task=admin_spieler'); + + return; + } + + if (!ini_get('safe_mode')) + set_time_limit(300); + + + if (!$beschraenkter_zugriff || $ansprechpartner_importieren != 1) + $persoenliche_daten = $jinput->get('persoenliche_daten', 0, 'INT'); // 0: "Vor- und Nachname, Geschlecht, Spielernr., Lizenznr.", 1: "Vor- und Nachname, Geschlecht, Spielernr., Lizenznr., Geburtsdatum", "Alle" + else + $persoenliche_daten = 0; + $lizenznr_beibehalten = $jinput->get('lizenznr_beibehalten', 0, 'INT'); + + $session_id = $jinput->get('session_id', '', 'RAW'); + $query = "SELECT DISTINCT veranstalterbezeichnung" + . "\n FROM #__sportsmanager_spieler_import" + . "\n WHERE session_id = '" . $db->escape($session_id) . "'" + . "\n ORDER BY veranstalterbezeichnung"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $veranstalter_import = $db->loadObjectList(); + + $spalten = array(); + foreach (explode(",", $jinput->get('spalten', '', 'RAW')) as $s) + $spalten[$s] = true; + $veranstalter = array(); + $n = 1; + $verein_explizit = 0; + foreach ($veranstalter_import as $v) { + if (isset($_POST["veranstalter_" . $n . "_id"])) { + $veranstalter_id = $jinput->get('veranstalter_' . $n . '_id', '', 'INT'); + if (!$beschraenkter_zugriff || (!empty($veranstalter_id) && benutzerVeranstalterModerator($veranstalter_id))) { + if ($veranstalter_id == "") + $veranstalter_id = -1; + else if ($veranstalter_id < 0) { + $verein_explizit = abs($veranstalter_id); + break; + } + else + $veranstalter_id = intval($veranstalter_id); + $veranstalter[$v->veranstalterbezeichnung] = $veranstalter_id; + } + else { + $veranstalter[$v->veranstalterbezeichnung] = -1; + } + } + $n++; + } + + $query = "LOCK TABLES #__sportsmanager_einstellungen READ, #__sportsmanager_spieler WRITE, #__sportsmanager_spieler AS tt1 READ, #__sportsmanager_spieler AS tt2 READ, #__sportsmanager_spieler_import WRITE, #__sportsmanager_spieler_import AS it1 READ, #__sportsmanager_mitglied_von_verein WRITE, #__sportsmanager_mitglied_von_verein AS t1 READ, #__sportsmanager_verein WRITE, #__sportsmanager_veranstalter READ;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + /* + // TODO: Importinhalt um Spielernummern ergänzen, dann UPDATE aller gegebenen Spalten. So kein Vorgehen Spieler für Spieler erforderlich. + + Immer Spieler neu hinzufügen, wenn Spieler über Spielernr. nicht gefunden werden konnte, d.h. + wenn keine Spielernr. vorhanden, dann Spielernr. generieren + sonst Spielernr. übernehmen + +*/ + + if (isset($spalten["spielernr_alt"])) { + $query = "SELECT nachname, vorname" + . "\n FROM" + . "\n (SELECT nachname, vorname, spielernr, spielernr_alt" + . "\n FROM #__sportsmanager_spieler_import" + . "\n WHERE session_id = '" . $db->escape($session_id) . "' AND mitgliedsstatus <> 0 AND spielernr != spielernr_alt AND NOT ISNULL(spielernr) AND NOT ISNULL(spielernr_alt) AND spielernr != '' AND spielernr_alt != '') AS import" + . "\n INNER JOIN" + . "\n (SELECT spielernr" + . "\n FROM #__sportsmanager_spieler" + . "\n ) AS bestand" + . "\n ON bestand.spielernr = import.spielernr" + . "\n WHERE NOT EXISTS(SELECT * FROM #__sportsmanager_spieler_import AS it1 WHERE spielernr_alt = bestand.spielernr AND spielernr != spielernr_alt AND NOT ISNULL(spielernr) AND NOT ISNULL(spielernr_alt) AND spielernr != '' AND spielernr_alt != '')" + . "\n ORDER BY nachname, vorname"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $konflikte = $db->loadObjectList(); + + if (count($konflikte) > 0) { + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + HTML_sportsmanager_admin::adminImportSpielerFehler($konflikte); + + return; + } + + $query = "UPDATE #__sportsmanager_spieler" + . "\n INNER JOIN #__sportsmanager_spieler_import ON NOT ISNULL(spielernr_alt) AND spielernr_alt != '' AND spielernr_alt = #__sportsmanager_spieler.spielernr" + . "\n SET #__sportsmanager_spieler.spielernr = #__sportsmanager_spieler_import.spielernr" + . "\n WHERE session_id = '" . $db->escape($session_id) . "' AND mitgliedsstatus <> 0 AND #__sportsmanager_spieler.spielernr = #__sportsmanager_spieler_import.spielernr_alt"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + $query = "SELECT IF(EXISTS(" + . "\n SELECT * FROM #__sportsmanager_spieler" + . "\n INNER JOIN #__sportsmanager_spieler_import ON NOT ISNULL(#__sportsmanager_spieler_import.spielernr) AND #__sportsmanager_spieler_import.spielernr != '' AND #__sportsmanager_spieler_import.spielernr = #__sportsmanager_spieler.spielernr" + . "\n WHERE #__sportsmanager_spieler_import.geschlecht != #__sportsmanager_spieler.geschlecht OR #__sportsmanager_spieler_import.geburtsjahr != #__sportsmanager_spieler.geburtsjahr" + . "\n), 1, 0)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $kategorie_potentiell_geaendert = $db->loadResult(); + + $query = "SELECT #__sportsmanager_spieler_import.*, #__sportsmanager_spieler.spieler_id, IF(#__sportsmanager_spieler.nachname != #__sportsmanager_spieler_import.nachname, #__sportsmanager_spieler.nachname, NULL) AS nachname_alt, IF(#__sportsmanager_spieler.vorname != #__sportsmanager_spieler_import.vorname, #__sportsmanager_spieler.vorname, NULL) AS vorname_alt," + . "\n IF(#__sportsmanager_spieler_import.spielernr = '', (SELECT COUNT(*) FROM #__sportsmanager_spieler AS tt1 WHERE (#__sportsmanager_spieler_import.vorname = tt1.vorname AND #__sportsmanager_spieler_import.nachname = tt1.nachname AND ((ISNULL(#__sportsmanager_spieler_import.geburtsjahr) AND ISNULL(tt1.geburtsjahr)) OR #__sportsmanager_spieler_import.geburtsjahr = tt1.geburtsjahr))), 0) AS namensgleich" + . "\n FROM #__sportsmanager_spieler_import" + . "\n LEFT JOIN #__sportsmanager_spieler ON #__sportsmanager_spieler_import.spielernr != '' AND #__sportsmanager_spieler_import.spielernr = #__sportsmanager_spieler.spielernr" + . "\n WHERE session_id = '" . $db->escape($session_id) . "' AND 1 = 1" + // "namensgleich", "nachname_alt", "vorname_alt" kann in der "ORDER"-Anweisung" nicht verwendet werden, da MySQL 5.0.x dies nicht akzeptiert + // . "\n ORDER BY IF(#__sportsmanager_spieler_import.spielernr = '', (SELECT COUNT(*) FROM #__sportsmanager_spieler AS tt2 WHERE (#__sportsmanager_spieler_import.vorname = tt2.vorname AND #__sportsmanager_spieler_import.nachname = tt2.nachname AND ((ISNULL(#__sportsmanager_spieler_import.geburtsjahr) AND ISNULL(tt2.geburtsjahr)) OR #__sportsmanager_spieler_import.geburtsjahr = tt2.geburtsjahr))), 0) > 0 DESC, IF(NOT ISNULL(nachname_alt) OR NOT ISNULL(vorname_alt), 0, 1), nachname, vorname"; + . "\n ORDER BY IF(#__sportsmanager_spieler_import.spielernr = '', (SELECT COUNT(*) FROM #__sportsmanager_spieler AS tt2 WHERE (#__sportsmanager_spieler_import.vorname = tt2.vorname AND #__sportsmanager_spieler_import.nachname = tt2.nachname AND ((ISNULL(#__sportsmanager_spieler_import.geburtsjahr) AND ISNULL(tt2.geburtsjahr)) OR #__sportsmanager_spieler_import.geburtsjahr = tt2.geburtsjahr))), 0) > 0 DESC, IF(NOT ISNULL(IF(#__sportsmanager_spieler.nachname != #__sportsmanager_spieler_import.nachname, #__sportsmanager_spieler.nachname, NULL)) OR NOT ISNULL(IF(#__sportsmanager_spieler.vorname != #__sportsmanager_spieler_import.vorname, #__sportsmanager_spieler.vorname, NULL)), 0, 1), nachname, vorname"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $spieler_import = $db->loadObjectList(); + + if (empty($verein_explizit)) { + // Alle Vereinsmitgliedschaften des Verbandes vorsorglich beenden, damit diese beim Import ggf. wieder aktiviert werden können + foreach ($veranstalter as $v => $veranstalterid) { + if ($veranstalterid != -1) { + $query = "UPDATE #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id)" + . "\n SET mitgliedsstatus = 0," + . "\n #__sportsmanager_mitglied_von_verein.ausgetreten = TRUE" + . "\n WHERE " . ($veranstalterid == 0 ? "ISNULL(veranstalter_id)" : "veranstalter_id = $veranstalterid"); + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + } + } + else if ($verein_explizit != -1) { + $query = "SELECT * FROM #__sportsmanager_verein WHERE verein_id = $verein_explizit"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die ("Wrong id!"); + + // Alle Vereinsmitgliedschaften des Vereins vorsorglich beenden, damit diese beim Import ggf. wieder aktiviert werden können + $query = "UPDATE #__sportsmanager_mitglied_von_verein" + . "\n SET mitgliedsstatus = 0," + . "\n ausgetreten = TRUE" + . "\n WHERE verein_id = $verein_explizit"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + else { + $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") . ");"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $id = $db->insertid(); + } + + // Nächste Spieler-Nr. ermitteln + $query = "SELECT * FROM #__sportsmanager_einstellungen WHERE name = 'basis_spielernr'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) == 0) + die("Fehler: Inkonsistenz in den MySQL-Tabellen!"); + $naechste_spielernr = $rows[0]->wert; + if (empty($naechste_spielernr)) + $naechste_spielernr = "1"; + + for ($i = strlen($naechste_spielernr) - 1; $i >= 0; $i--) { + if ($naechste_spielernr[$i] < '0' || $naechste_spielernr[$i] > '9') + break; + } + $spielernr_praefix = substr($naechste_spielernr, 0, $i + 1); + + $query = "SELECT spielernr" + . "\n FROM #__sportsmanager_spieler" + . "\n WHERE Left(spielernr, " . strlen($spielernr_praefix) . ") = '" . $db->escape($spielernr_praefix) . "'" + . "\n ORDER BY LENGTH(spielernr) DESC, spielernr DESC" + . "\n LIMIT 1"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) > 0) { + $naechste_spielernr = $rows[0]->spielernr; + for ($i = strlen($naechste_spielernr) - 1; $i >= 0; $i--) { + if ($naechste_spielernr[$i] < '0' || $naechste_spielernr[$i] > '9') { + $naechste_spielernr = substr($naechste_spielernr, 0, $i + 1) . "1" . substr($naechste_spielernr, $i + 1); + break; + } + if ($naechste_spielernr[$i] <= '8') { + $naechste_spielernr[$i] = $naechste_spielernr[$i] + 1; + break; + } + // $naechste_spielernr[$i] == '9' + $naechste_spielernr[$i] = '0'; + } + if ($i < 0) + $naechste_spielernr = "1" . $naechste_spielernr; + } + + $aktualisierungen = 0; + $spielerHinzugefuegt = array(); + $vereineHinzugefuegt = 0; + $vereineManuell = array(); + $spielerIdsHinzugefuegt = array(); + + $organisation = -1; + $veranstalterid = -1; + foreach ($spieler_import as $t) { + // wenn der Spieler ausgetreten ist, dann nicht prüfen + $mitgliedsstatus = $t->mitgliedsstatus; + if ($mitgliedsstatus == 0) + continue; + + if (empty($verein_explizit)) { + if ($organisation != $t->veranstalterbezeichnung) { + $organisation = $t->veranstalterbezeichnung; + $veranstalterid = isset($veranstalter[$organisation]) ? $veranstalter[$organisation] : -1; + } + if ($veranstalterid == -1) + continue; + } + + $spieler_id = $t->spieler_id; + $nachname = $t->nachname; + $vorname = $t->vorname; + $name = $t->vorname . " " . $t->nachname; + $geschlecht = $t->geschlecht; + $spielernr = $t->spielernr; + $lizenznr = $t->lizenznr; + $pseudonym = $t->pseudonym; + $vereinsname = $t->vereinsname; + $geburtsdatum = $t->geburtsdatum; + $geburtsjahr = $t->geburtsjahr; + $email = $t->email; + $strasse = $t->strasse; + $plz = $t->plz; + $ort = $t->ort; + $landeskennung = $t->landeskennung; + $telefon = $t->telefon; + $mobil = $t->mobil; + $spielernr = $t->spielernr; + + if ($spieler_id == null && !empty($spielernr) && isset($spielerIdsHinzugefuegt[$spielernr])) + $spieler_id = $spielerIdsHinzugefuegt[$spielernr]; // Wenn Spieler schon hinzugefügt wurde, dann vorhandenen Eintrag verwenden; verhindert doppeltes Hinterlegen von Spielernr. + + // Wenn kein Vereinsname angegeben ist, aber eine Organisation gewählt wurde, dann Spieler nicht ergänzen + if ($spieler_id == null && empty($vereinsname) && empty($verein_explizit)) + continue; + + // Spieler aktualisieren bzw. ergänzen + if ($spieler_id != null) { // Spieler aktualisieren + $query = "UPDATE #__sportsmanager_spieler" + . "\n SET vorname = '" . $db->escape($vorname) . "'," + . "\n nachname = '" . $db->escape($nachname) . "'," + . "\n spielernr = '" . $db->escape($spielernr) . "'"; + if (isset($spalten["lizenznr"]) && ($lizenznr_beibehalten == 0 || !empty($lizenznr))) + $query .= ",\n lizenznr = '" . $db->escape($lizenznr) . "'"; + if (isset($spalten["pseudonym"])) + $query .= ",\n pseudonym = '" . $db->escape($pseudonym) . "'"; + if (isset($spalten["geschlecht"])) + $query .= ",\n geschlecht = '" . $db->escape($geschlecht) . "'"; + if (isset($spalten["geburtsdatum"]) || isset($spalten["geburtsjahr"])) + $query .= ",\n geburtsjahr = " . ($geburtsjahr == null ? "NULL" : ("'" . $db->escape($geburtsjahr) . "'")); + if (($persoenliche_daten == 1 || $persoenliche_daten == 2) && isset($spalten["geburtsdatum"])) + $query .= ",\n geburtsdatum = " . ($geburtsdatum == null ? "NULL" : ("'" . $db->escape($geburtsdatum) . "'")); + if ($persoenliche_daten == 2) { + if (isset($spalten["strasse"])) + $query .= ",\n strasse = '" . $db->escape($strasse) . "'"; + if (isset($spalten["plz"])) + $query .= ",\n plz = '" . $db->escape($plz) . "'"; + if (isset($spalten["ort"])) + $query .= ",\n ort = '" . $db->escape($ort) . "'"; + if (isset($spalten["landeskennung"])) + $query .= ",\n landeskennung = '" . $db->escape($landeskennung) . "'"; + if (isset($spalten["telefon"])) + $query .= ",\n telefon = '" . $db->escape($telefon) . "'"; + if (isset($spalten["mobil"])) + $query .= ",\n mobil = '" . $db->escape($mobil) . "'"; + if (isset($spalten["email"])) + $query .= ",\n email = '" . $db->escape($email) . "'"; + } + $query .= "\n WHERE spieler_id = $spieler_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + // $bearbeitungsVerlauf .= "-> Spielerdaten aktualisiert "; + + $aktualisierungen++; + } + else { // Spieler ergänzen + // Neuen Spieler anlegen + $query = "INSERT #__sportsmanager_spieler" + . "\n SET vorname = '" . $db->escape($vorname) . "'" + . ",\n nachname = '" . $db->escape($nachname) . "'" + . ",\n spielernr = '" . $db->escape(!empty($spielernr) ? $spielernr : $naechste_spielernr) . "'" + . ",\n lizenznr = '" . $db->escape($lizenznr) . "'" + . ",\n geschlecht = '" . $db->escape($geschlecht) . "'" + . ",\n geburtsjahr = " . ($geburtsjahr == null ? "NULL" : ("'" . $db->escape($geburtsjahr) . "'")); + if ($persoenliche_daten == 1 || $persoenliche_daten == 2) + $query .= ",\n geburtsdatum = " . ($geburtsdatum == null ? "NULL" : ("'" . $db->escape($geburtsdatum) . "'")); + if ($persoenliche_daten == 2) + $query .= ",\n pseudonym = '" . $db->escape($pseudonym) . "'" + . ",\n strasse = '" . $db->escape($strasse) . "'" + . ",\n plz = '" . $db->escape($plz) . "'" + . ",\n ort = '" . $db->escape($ort) . "'" + . ",\n landeskennung = '" . $db->escape($landeskennung) . "'" + . ",\n telefon = '" . $db->escape($telefon) . "'" + . ",\n mobil = '" . $db->escape($mobil) . "'" + . ",\n email = '" . $db->escape($email) . "'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $spieler_id = $db->insertid(); + + array_push($spielerHinzugefuegt, array($nachname, $vorname, !empty($spielernr) ? $spielernr : $naechste_spielernr)); + $spielerIdsHinzugefuegt[!empty($spielernr) ? $spielernr : $naechste_spielernr] = $spieler_id; + + if (empty($spielernr)) { + do { + for ($i = strlen($naechste_spielernr) - 1; $i >= 0; $i--) { + if ($naechste_spielernr[$i] < '0' || $naechste_spielernr[$i] > '9') { + $naechste_spielernr = substr($naechste_spielernr, 0, $i + 1) . "1" . substr($naechste_spielernr, $i + 1); + break; + } + if ($naechste_spielernr[$i] <= '8') { + $naechste_spielernr[$i] = $naechste_spielernr[$i] + 1; + break; + } + // $naechste_spielernr[$i] == '9' + $naechste_spielernr[$i] = '0'; + } + if ($i < 0) + $naechste_spielernr = "1" . $naechste_spielernr; + } while (isset($spielerIdsHinzugefuegt[$naechste_spielernr])); + } + } + + // Wenn nicht ausgetreten und Vereisname angegeben, dann Vereinsmitgliedschaft herstellen + if (!empty($vereinsname) || !empty($verein_explizit)) { + // Prüfen, ob Vereinsmitgliedschaft besteht + if (!empty($verein_explizit)) { + $query = "SELECT spieler_id" + . "\n FROM #__sportsmanager_mitglied_von_verein" + . "\n WHERE spieler_id = $spieler_id AND #__sportsmanager_mitglied_von_verein.verein_id = $verein_explizit"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + + if (count($rows) > 0) { + $query = "UPDATE #__sportsmanager_mitglied_von_verein" + . "\n SET mitgliedsstatus = '$mitgliedsstatus'," + . "\n ausgetreten = FALSE" + . "\n WHERE spieler_id = $spieler_id AND verein_id = $verein_explizit"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + else { + // Vereinsmitgliedschaft besteht nicht, deshalb prüfen, ob Verein überhaupt existiert + $query = "SELECT verein_id" + . "\n FROM #__sportsmanager_verein" + . "\n WHERE verein_id = $verein_explizit"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + + // Wenn Verein existiert, dann Mitgliedschaft ergänzen + if (count($rows) > 0) { + $query = "INSERT #__sportsmanager_mitglied_von_verein" + . "\n SET spieler_id = $spieler_id, verein_id = $verein_explizit, mitgliedsstatus = '$mitgliedsstatus', ausgetreten = FALSE"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + } + } + else { + $query = "SELECT spieler_id" + . "\n FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein" + . "\n WHERE spieler_id = $spieler_id AND vereinsname = '" . $db->escape($vereinsname) . "' AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id" + . " AND " . ($veranstalterid == 0 ? "ISNULL(veranstalter_id)" : "veranstalter_id = $veranstalterid"); + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + + if (count($rows) > 0) { + $query = "UPDATE #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein" + . "\n SET mitgliedsstatus = '$mitgliedsstatus', #__sportsmanager_mitglied_von_verein.ausgetreten = FALSE" + . "\n WHERE spieler_id = $spieler_id AND vereinsname = '" . $db->escape($vereinsname) . "' AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id" + . " AND " . ($veranstalterid == 0 ? "ISNULL(veranstalter_id)" : "veranstalter_id = $veranstalterid"); + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + else { + // Vereinsmitgliedschaft besteht nicht, deshalb prüfen, ob Verein überhaupt existiert + $query = "SELECT verein_id" + . "\n FROM #__sportsmanager_verein" + . "\n WHERE vereinsname = '" . $db->escape($vereinsname) . "'" + . " AND " . ($veranstalterid == 0 ? "ISNULL(veranstalter_id)" : "veranstalter_id = $veranstalterid"); + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + + // Wenn mehrere Vereine existieren, dann Aktualisierung auslassen + if (count($rows) > 1) { + array_push($vereineManuell, $name); + // $bearbeitungsVerlauf .= "-> Vereinsaktualiesierung übersprungen, da mehrere Vereine mit Namen existieren"; + // echo "(" . $name . ", " . $spielernr . ") " . $bearbeitungsVerlauf . "Das " . htmlentities_utf8($aktion[$terminaktion->typ]) . " des folgenden Termins wurde beantragt und wird nun von den Moderatoren geprüft. Sobald der Termin bearbeitet wurde, wird eine E-Mail-Benachrichtigung verschickt.
"; + $body .= "Das " . htmlentities_utf8($aktion[$terminaktion->typ]) . " des folgenden Termins wurde " . ($terminaktion->status == 0 ? ($ueberarbeiten ? "in überarbeiteter Form akzeptiert" : "akzeptiert") : "abgelehnt") . ".
"; + $body .= "Termin " . htmlentities_utf8($aktion[$terminaktion->typ]) . " beantragt:
\r\n"; + } + else if ($terminaktion->status == 0) { + $subject = "Termin " . $aktion[$terminaktion->typ] . " akzeptiert von " . $terminaktion->moderation_user_name . ": " . $terminaktion->bezeichnung . " am " . FormatierterTermin($terminaktion->erster_tag, $terminaktion->letzter_tag, true); + $body = "Termin " . htmlentities_utf8($aktion[$terminaktion->typ]) . " akzeptiert:
"; + } + else { + $subject = "Termin " . $aktion[$terminaktion->typ] . " abgelehnt von " . $terminaktion->moderation_user_name . ": " . $terminaktion->bezeichnung . " am " . FormatierterTermin($terminaktion->erster_tag, $terminaktion->letzter_tag, true); + $body = "Termin " . htmlentities_utf8($aktion[$terminaktion->typ]) . " abgelehnt:
"; + } + $body .= "Bitte termin_aktion_id, -1) . "\">hier klicken, um den Termin zu moderieren.
\r\n"; + foreach ($benachrichtigung_moderatoren_aendern as $email) + JFactory::getMailer()->sendMail($from, $fromname, $email, $subject, $body, $mode, $cc, $bcc, $attachment, $replyto, $replytoname); +} + +function adminTerminModerieren($admin_uebersicht) { + $db =& getDatabase(); + global $sportsmanager_joomla_path; + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("termine_aendern") || isExternalDatabase()) + keinZugriff(); + + $id = $jinput->get('id', 0, 'INT'); + $nur_beantragte = $jinput->get('nur_beantragte', 0, 'INT'); + $uebersicht = $jinput->get('uebersicht', 0, 'INT'); + + if ($jinput->get('cancel', false, 'BOOL')) { + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . ($uebersicht ? 'termine' : 'termine_verlauf') . ($nur_beantragte ? '&nur_beantragte=1' : '')); + + return; + } + + if ($jinput->get('ueberarbeiten', false, 'BOOL')) { + $termin_id = $jinput->get('termin_id', 0, 'INT'); + + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termin_edit&ueberarbeiten=1&id=' . $termin_id . ($nur_beantragte ? '&nur_beantragte=1' : '')); + + return; + } + + $akzeptieren = $jinput->get('akzeptieren', false, 'BOOL'); + $kommentar = $db->escape(trim($jinput->get('kommentar', '', 'RAW'))); + + $query = "LOCK TABLES #__sportsmanager_termin WRITE, #__sportsmanager_termin_aktion WRITE;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "SELECT *" + . "\n FROM #__sportsmanager_termin" + . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)" + . "\n WHERE termin_aktion_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die ("Wrong id"); + $terminaktion = $rows[0]; + $termin_bezug_id = $terminaktion->termin_bezug_id; + + if ($terminaktion->status != 2) { + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . ($uebersicht ? 'termine' : 'termine_verlauf') . ($nur_beantragte ? '&nur_beantragte=1' : ''), "Die Moderation wurde nicht umgesetzt weil der Termin nicht mehr im Beantragt-Status war."); + } + + $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'termine'; + if ($akzeptieren) { + $query = "SELECT DISTINCT termin_id" + . "\n FROM #__sportsmanager_termin_aktion" + . "\n INNER JOIN #__sportsmanager_termin USING (termin_id)" + . "\n WHERE termin_bezug_id = $termin_bezug_id AND status = 0;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + + $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'termine'; + foreach ($rows as $row) { + $dokumente = JFolder::files($bilder_pfad, '^' . $row->termin_id . ' '); + foreach ($dokumente as $dokument) + JFile::delete($bilder_pfad . DIRECTORY_SEPARATOR . $dokument); + } + + if ($terminaktion->typ == 2) { + $dokumente = JFolder::files($bilder_pfad, '^' . $terminaktion->termin_id . ' '); + foreach ($dokumente as $dokument) + JFile::delete($bilder_pfad . DIRECTORY_SEPARATOR . $dokument); + } + + $query = "UPDATE #__sportsmanager_termin_aktion" + . "\n INNER JOIN #__sportsmanager_termin USING (termin_id)" + . "\n SET status = 1" + . "\n WHERE termin_bezug_id = $termin_bezug_id AND status = 0;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + else { + if ($terminaktion->typ != 2) { + $dokumente = JFolder::files($bilder_pfad, '^' . $terminaktion->termin_id . ' '); + foreach ($dokumente as $dokument) + JFile::delete($bilder_pfad . DIRECTORY_SEPARATOR . $dokument); + } + } + + $user_id = JFactory::getUser()->id; + $query = "UPDATE #__sportsmanager_termin_aktion" + . "\n INNER JOIN #__sportsmanager_termin USING (termin_id)" + . "\n SET status = " . ($akzeptieren ? 0 : 3) . "," + . "\n moderation_user_id = $user_id," + . "\n moderation_zeitpunkt = NOW()," + . "\n moderation_kommentar = '$kommentar'" + . "\n WHERE termin_aktion_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + termineEmailBenachrichtigung($id); + + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . ($uebersicht ? 'termine' : 'termine_verlauf') . ($nur_beantragte ? '&nur_beantragte=1' : '')); +} + +function adminTermineVerlauf($admin_uebersicht) { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(true); + + $nur_beantragte = $jinput->get('nur_beantragte', 0, 'INT'); + + if ($nur_beantragte) { + $query = "SELECT #__sportsmanager_termin.*, #__sportsmanager_termin_aktion.*, DATEDIFF(erster_tag, NOW()) AS datumsdifferenz, aktion_user.name AS aktion_user_name, moderation_user.name AS moderation_user_name, GROUP_CONCAT(zusatz ORDER BY zusatz SEPARATOR ', ') AS zusaetze" + . "\n FROM #__sportsmanager_termin" + . "\n LEFT JOIN #__sportsmanager_termin_aktion USING (termin_id)" + . "\n LEFT JOIN #__sportsmanager_termin_zusatz USING (termin_id)" + . "\n LEFT JOIN #__users AS aktion_user ON aktion_user_id = aktion_user.id" + . "\n LEFT JOIN #__users AS moderation_user ON moderation_user_id = moderation_user.id" + . "\n WHERE status = 2" + . "\n GROUP BY #__sportsmanager_termin_aktion.termin_aktion_id" + . "\n ORDER BY aktion_zeitpunkt, bezeichnung" + . "\n LIMIT 1000"; + } + else { + $query = "SELECT #__sportsmanager_termin.*, #__sportsmanager_termin_aktion.*, DATEDIFF(erster_tag, NOW()) AS datumsdifferenz, aktion_user.name AS aktion_user_name, moderation_user.name AS moderation_user_name, GROUP_CONCAT(zusatz ORDER BY zusatz SEPARATOR ', ') AS zusaetze" + . "\n FROM #__sportsmanager_termin" + . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)" + . "\n LEFT JOIN #__sportsmanager_termin_zusatz USING (termin_id)" + . "\n LEFT JOIN #__users AS aktion_user ON aktion_user_id = aktion_user.id" + . "\n LEFT JOIN #__users AS moderation_user ON moderation_user_id = moderation_user.id" + . "\n GROUP BY #__sportsmanager_termin_aktion.termin_aktion_id" + . "\n ORDER BY aktion_zeitpunkt DESC, bezeichnung" + . "\n LIMIT 1000"; + } + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $terminaktionen = $db->loadObjectList(); + + HTML_sportsmanager_admin::adminTermineVerlauf($terminaktionen, $nur_beantragte, $admin_uebersicht); +} + +function terminDokument() { + $db =& getDatabase(); + global $sportsmanager_joomla_path; + $jinput = JFactory::getApplication()->input; + + $id = $jinput->get('id', 0, 'INT'); + $bezug_id = $jinput->get('bezug_id', 0, 'INT'); + + if (benutzerZugriff("termine_aendern") || benutzerZugriff("termine_benachrichtigung")) + $zugriffsebene = 1; + else + $zugriffsebene = 0; + + if (!empty($bezug_id)) { + $query = "SELECT termin_id" + . "\n FROM #__sportsmanager_termin" + . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)" + . "\n WHERE termin_bezug_id = $bezug_id AND status = 0 AND (typ = 0 OR typ = 1)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + $termin_vorhanden = count($rows) > 0; + if ($termin_vorhanden) + $id = $rows[0]->termin_id; + } + else { + $query = "SELECT IF (EXISTS (SELECT *" + . "\n FROM #__sportsmanager_termin" + . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)" + . "\n WHERE termin_id = $id" . ($zugriffsebene == 0 ? " AND status = 0 AND (typ = 0 OR typ = 1)" : "") . "), 1, 0)"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $termin_vorhanden = $db->loadResult(); + } + + if (!$termin_vorhanden) + keinZugriff(true); + + $pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'termine'; + $dokumente = JFolder::files($pfad, '^' . $id . ' '); + + if (empty($dokumente)) { + redirectSportsManagerURL(null, "Der Anhang existiert nicht mehr."); + + return; + } + + $extension = strtolower(JFile::getExt($dokumente[0])); + if ($extension == "pdf") + $mm_type = "application/pdf"; + else + $mm_type = "application/octet-stream"; + + ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind + header("Pragma: public"); + header("Expires: 0"); + header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); + header("Cache-Control: public"); + header("Content-Description: File Transfer"); + header("Content-Type: " . $mm_type); + header("Content-Length: " . (string) (filesize($pfad . DIRECTORY_SEPARATOR . $dokumente[0]))); + header('Content-Disposition: inline; filename="' . substr($dokumente[0], strlen((string) $id) + 1) . '"'); + header("Content-Transfer-Encoding: binary\n"); + + readfile($pfad . DIRECTORY_SEPARATOR . $dokumente[0]); + + exit(); +} + +function adminTerminDetails($admin_uebersicht) { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(true); + + $id = $jinput->get('id', 0, 'INT'); + $nur_beantragte = $jinput->get('nur_beantragte', 0, 'INT'); + $uebersicht = $jinput->get('uebersicht', 0, 'INT'); + + $query = "SELECT #__sportsmanager_termin.*, #__sportsmanager_termin_aktion.*, aktion_user.name AS aktion_user_name, aktion_user.email AS aktion_user_email, moderation_user.name AS moderation_user_name, moderation_user.email AS moderation_user_email, GROUP_CONCAT(zusatz ORDER BY zusatz SEPARATOR ', ') AS zusaetze" + . "\n FROM #__sportsmanager_termin" + . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)" + . "\n LEFT JOIN #__sportsmanager_termin_zusatz USING (termin_id)" + . "\n LEFT JOIN #__users AS aktion_user ON aktion_user_id = aktion_user.id" + . "\n LEFT JOIN #__users AS moderation_user ON moderation_user_id = moderation_user.id" + . "\n WHERE termin_aktion_id = $id" + . "\n GROUP BY #__sportsmanager_termin_aktion.termin_aktion_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die ("Wrong id"); + $terminaktion = $rows[0]; + + $query = "SELECT #__sportsmanager_termin.*, #__sportsmanager_termin_aktion.*, DATEDIFF(erster_tag, NOW()) AS datumsdifferenz, aktion_user.name AS aktion_user_name, moderation_user.name AS moderation_user_name, GROUP_CONCAT(zusatz ORDER BY zusatz SEPARATOR ', ') AS zusaetze" + . "\n FROM #__sportsmanager_termin" + . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)" + . "\n LEFT JOIN #__sportsmanager_termin_zusatz USING (termin_id)" + . "\n LEFT JOIN #__users AS aktion_user ON aktion_user_id = aktion_user.id" + . "\n LEFT JOIN #__users AS moderation_user ON moderation_user_id = moderation_user.id" + . "\n WHERE termin_bezug_id = $terminaktion->termin_bezug_id" + . "\n GROUP BY #__sportsmanager_termin_aktion.termin_aktion_id" + . "\n ORDER BY aktion_zeitpunkt DESC, bezeichnung"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $terminaktionen = $db->loadObjectList(); + + HTML_sportsmanager_admin::adminTerminDetails($terminaktion, $terminaktionen, $nur_beantragte, $admin_uebersicht, $uebersicht, isExternalDatabase()); +} + +function adminTermineBezeichnungen($admin_uebersicht) { + $db =& getDatabase(); + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(true); + + $query = "SELECT *" + . "\n FROM #__sportsmanager_termin_bezeichnung" + . "\n ORDER BY bezeichnung"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $bezeichnungen = $db->loadObjectList(); + + HTML_sportsmanager_admin::adminTermineBezeichnungen($bezeichnungen, $admin_uebersicht); +} + +function adminEditTermineBezeichnung($admin_uebersicht) { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(true); + + $id = $jinput->get('id', 0, 'INT'); + + if (empty($id)) { + $bezeichnung = null; + } + else { + $query = "SELECT * FROM #__sportsmanager_termin_bezeichnung WHERE termin_bezeichnung_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die ("Wrong id"); + $bezeichnung = $rows[0]; + } + + HTML_sportsmanager_admin::adminEditTermineBezeichnung($bezeichnung, $admin_uebersicht); +} + +function adminSaveTermineBezeichnung($admin_uebersicht) { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(); + + if ($jinput->get('cancel', false, 'BOOL')) { + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_bezeichnungen'); + + return; + } + + $id = $jinput->get('id', 0, 'INT'); + $bezeichnung = $db->escape(trim($jinput->get('bezeichnung', '', 'RAW'))); + $termine_umbenennen = $jinput->get('termine_umbenennen', 0, 'INT'); + + $query = "LOCK TABLES #__sportsmanager_termin WRITE, #__sportsmanager_termin_bezeichnung WRITE;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + if (!empty($id) && $termine_umbenennen) { + $query = "SELECT * FROM #__sportsmanager_termin_bezeichnung WHERE termin_bezeichnung_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die ("Wrong id"); + $alte_bezeichnung = $db->escape($rows[0]->bezeichnung); + + $query = "UPDATE #__sportsmanager_termin" + . "\n SET bezeichnung = '$bezeichnung'" + . "\n WHERE bezeichnung = '$alte_bezeichnung'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + $query = "SELECT * FROM #__sportsmanager_termin_bezeichnung WHERE bezeichnung = '$bezeichnung' AND termin_bezeichnung_id != $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + // Datenbankeintrag verwerfen, falls Bezeichnung schon existiert + if (count($rows) > 0) { + if (!empty($id)) { + $query = "DELETE FROM #__sportsmanager_termin_bezeichnung WHERE termin_bezeichnung_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + } + else { + if (empty($id)) { + $query = "INSERT #__sportsmanager_termin_bezeichnung" + . "\n SET bezeichnung = '$bezeichnung'"; + } + else { + $query = "UPDATE #__sportsmanager_termin_bezeichnung" + . "\n SET bezeichnung = '$bezeichnung'" + . "\n WHERE termin_bezeichnung_id = $id"; + } + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_bezeichnungen'); +} + +function adminRemoveTermineBezeichnung($admin_uebersicht) { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(true); + + $id = $jinput->get('id', 0, 'INT'); + + $query = "DELETE FROM #__sportsmanager_termin_bezeichnung WHERE termin_bezeichnung_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_bezeichnungen'); +} + +function adminTermineBezeichnungszusaetze($admin_uebersicht) { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(true); + + $query = "SELECT *" + . "\n FROM #__sportsmanager_termin_bezeichnungszusatz" + . "\n ORDER BY bezeichnungszusatz"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $bezeichnungszusaetze = $db->loadObjectList(); + + HTML_sportsmanager_admin::adminTermineBezeichnungszusaetze($bezeichnungszusaetze, $admin_uebersicht); +} + +function adminEditTermineBezeichnungszusatz($admin_uebersicht) { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(true); + + $id = $jinput->get('id', 0, 'INT'); + + if (empty($id)) { + $bezeichnungszusatz = null; + } + else { + $query = "SELECT * FROM #__sportsmanager_termin_bezeichnungszusatz WHERE termin_bezeichnungszusatz_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die ("Wrong id"); + $bezeichnungszusatz = $rows[0]; + } + + HTML_sportsmanager_admin::adminEditTermineBezeichnungszusatz($bezeichnungszusatz, $admin_uebersicht); +} + +function adminSaveTermineBezeichnungszusatz($admin_uebersicht) { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(); + + if ($jinput->get('cancel', false, 'BOOL')) { + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_bezeichnungszusaetze'); + + return; + } + + $id = $jinput->get('id', 0, 'INT'); + $bezeichnungszusatz = $db->escape(trim($jinput->get('bezeichnungszusatz', '', 'RAW'))); + $titel = $db->escape(trim($jinput->get('titel', '', 'RAW'))); + $termine_umbenennen = $jinput->get('termine_umbenennen', 0, 'INT'); + + $query = "LOCK TABLES #__sportsmanager_termin WRITE, #__sportsmanager_termin_bezeichnungszusatz WRITE, #__sportsmanager_termin_zusatz WRITE;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + if (!empty($id) && $termine_umbenennen) { + $query = "SELECT * FROM #__sportsmanager_termin_bezeichnungszusatz WHERE termin_bezeichnungszusatz_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die ("Wrong id"); + $alter_bezeichnungszusatz = $db->escape($rows[0]->bezeichnungszusatz); + + $query = "UPDATE #__sportsmanager_termin_zusatz" + . "\n SET zusatz = '$bezeichnungszusatz'" + . "\n WHERE zusatz = '$alter_bezeichnungszusatz'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + $query = "SELECT * FROM #__sportsmanager_termin_bezeichnungszusatz WHERE bezeichnungszusatz = '$bezeichnungszusatz' AND termin_bezeichnungszusatz_id != $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + // Datenbankeintrag verwerfen, falls Bezeichnungszusatz schon existiert + if (count($rows) > 0) { + if (!empty($id)) { + $query = "DELETE FROM #__sportsmanager_termin_bezeichnungszusatz WHERE termin_bezeichnungszusatz_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + } + else { + if (empty($id)) { + $query = "INSERT #__sportsmanager_termin_bezeichnungszusatz" + . "\n SET bezeichnungszusatz = '$bezeichnungszusatz'," + . "\n titel = '$titel'"; + } + else { + $query = "UPDATE #__sportsmanager_termin_bezeichnungszusatz" + . "\n SET bezeichnungszusatz = '$bezeichnungszusatz'," + . "\n titel = '$titel'" + . "\n WHERE termin_bezeichnungszusatz_id = $id"; + } + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_bezeichnungszusaetze'); +} + +function adminRemoveTermineBezeichnungszusatz($admin_uebersicht) { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(true); + + $id = $jinput->get('id', 0, 'INT'); + + $query = "DELETE FROM #__sportsmanager_termin_bezeichnungszusatz WHERE termin_bezeichnungszusatz_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_bezeichnungszusaetze'); +} + +function adminTermineBundeslaender($admin_uebersicht) { + $db =& getDatabase(); + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(true); + + $query = "SELECT *" + . "\n FROM #__sportsmanager_termin_bundesland" + . "\n ORDER BY bundesland"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $bundeslaender = $db->loadObjectList(); + + HTML_sportsmanager_admin::adminTermineBundeslaender($bundeslaender, $admin_uebersicht); +} + +function adminEditTermineBundesland($admin_uebersicht) { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(true); + + $id = $jinput->get('id', 0, 'INT'); + + if (empty($id)) { + $bundesland = null; + } + else { + $query = "SELECT * FROM #__sportsmanager_termin_bundesland WHERE termin_bundesland_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die ("Wrong id"); + $bundesland = $rows[0]; + } + + HTML_sportsmanager_admin::adminEditTermineBundesland($bundesland, $admin_uebersicht); +} + +function adminSaveTermineBundesland($admin_uebersicht) { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(); + + if ($jinput->get('cancel', false, 'BOOL')) { + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_bundeslaender'); + + return; + } + + $id = $jinput->get('id', 0, 'INT'); + $bundesland = $db->escape(trim($jinput->get('bundesland', '', 'RAW'))); + $termine_umbenennen = $jinput->get('termine_umbenennen', 0, 'INT'); + + $query = "LOCK TABLES #__sportsmanager_termin WRITE, #__sportsmanager_termin_bundesland WRITE;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + if ($termine_umbenennen) { + $query = "SELECT * FROM #__sportsmanager_termin_bundesland WHERE termin_bundesland_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die ("Wrong id"); + $altes_bundesland = $db->escape($rows[0]->bundesland); + + $query = "UPDATE #__sportsmanager_termin" + . "\n SET land = '$bundesland'" + . "\n WHERE land = '$altes_bundesland'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + $query = "SELECT * FROM #__sportsmanager_termin_bundesland WHERE bundesland = '$bundesland' AND termin_bundesland_id != $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + // Datenbankeintrag verwerfen, falls Bundesland schon existiert + if (count($rows) > 0) { + if (!empty($id)) { + $query = "DELETE FROM #__sportsmanager_termin_bundesland WHERE termin_bundesland_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + } + else { + if (empty($id)) { + $query = "INSERT #__sportsmanager_termin_bundesland" + . "\n SET bundesland = '$bundesland'"; + } + else { + $query = "UPDATE #__sportsmanager_termin_bundesland" + . "\n SET bundesland = '$bundesland'" + . "\n WHERE termin_bundesland_id = $id"; + } + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_bundeslaender'); +} + +function adminRemoveTermineBundesland($admin_uebersicht) { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(true); + + $id = $jinput->get('id', 0, 'INT'); + + $query = "DELETE FROM #__sportsmanager_termin_bundesland WHERE termin_bundesland_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_bundeslaender'); +} + +function adminTermineLaender($admin_uebersicht) { + $db =& getDatabase(); + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(true); + + $query = "SELECT *" + . "\n FROM #__sportsmanager_termin_land" + . "\n ORDER BY land"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $laender = $db->loadObjectList(); + + HTML_sportsmanager_admin::adminTermineLaender($laender, $admin_uebersicht); +} + +function adminEditTermineLand($admin_uebersicht) { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(true); + + $id = $jinput->get('id', 0, 'INT'); + + if (empty($id)) { + $land = null; + } + else { + $query = "SELECT * FROM #__sportsmanager_termin_land WHERE termin_land_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die ("Wrong id"); + $land = $rows[0]; + } + + HTML_sportsmanager_admin::adminEditTermineLand($land, $admin_uebersicht); +} + +function adminSaveTermineLand($admin_uebersicht) { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(); + + if ($jinput->get('cancel', false, 'BOOL')) { + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_laender'); + + return; + } + + $id = $jinput->get('id', 0, 'INT'); + $land = $db->escape(trim($jinput->get('land', '', 'RAW'))); + $termine_umbenennen = $jinput->get('termine_umbenennen', 0, 'INT'); + + $query = "LOCK TABLES #__sportsmanager_termin WRITE, #__sportsmanager_termin_land WRITE;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + if ($termine_umbenennen) { + $query = "SELECT * FROM #__sportsmanager_termin_land WHERE termin_land_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die ("Wrong id"); + $altes_bundesland = $db->escape($rows[0]->bundesland); + + $query = "UPDATE #__sportsmanager_termin" + . "\n SET land = '$land'" + . "\n WHERE land = '$altes_land'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + $query = "SELECT * FROM #__sportsmanager_termin_land WHERE land = '$land' AND termin_land_id != $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + // Datenbankeintrag verwerfen, falls Bundesland schon existiert + if (count($rows) > 0) { + if (!empty($id)) { + $query = "DELETE FROM #__sportsmanager_termin_land WHERE termin_land_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + } + else { + if (empty($id)) { + $query = "INSERT #__sportsmanager_termin_land" + . "\n SET land = '$land'"; + } + else { + $query = "UPDATE #__sportsmanager_termin_land" + . "\n SET land = '$land'" + . "\n WHERE termin_land_id = $id"; + } + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_laender'); +} + +function adminRemoveTermineLand($admin_uebersicht) { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(); + + $id = $jinput->get('id', 0, 'INT'); + + $query = "DELETE FROM #__sportsmanager_termin_land WHERE termin_land_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_laender'); +} + +function adminTermineSymbole($admin_uebersicht) { + $db =& getDatabase(); + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(true); + + $query = "SELECT *" + . "\n FROM #__sportsmanager_termin_symbol" + . "\n ORDER BY status DESC, symboltitel"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $symbole = $db->loadObjectList(); + + HTML_sportsmanager_admin::adminTermineSymbole($symbole, $admin_uebersicht); +} + +function adminEditTermineSymbol($admin_uebersicht) { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(true); + + $id = $jinput->get('id', 0, 'INT'); + + if (empty($id)) { + $symbol = null; + } + else { + $query = "SELECT * FROM #__sportsmanager_termin_symbol WHERE termin_symbol_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die ("Wrong id"); + $symbol = $rows[0]; + } + + HTML_sportsmanager_admin::adminEditTermineSymbol($symbol, $admin_uebersicht); +} + +function adminSaveTermineSymbol($admin_uebersicht) { + $db =& getDatabase(); + global $_FILES; + global $sportsmanager_joomla_path; + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(); + + if (JRequest::getBool('cancel')) { + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_symbole'); + + return; + } + + $id = $jinput->get('id', 0, 'INT'); + $symboltitel = $db->escape(trim($jinput->get('symboltitel', '', 'RAW'))); + $bildbeibehalten = $jinput->get('bildbeibehalten', 0, 'INT'); + $status = $jinput->get('status', 0, 'INT'); + + if ($id == 0) { + $query = "INSERT INTO #__sportsmanager_termin_symbol (symboltitel,status)" + . "\n VALUES ('$symboltitel', '$status');"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $id = $db->insertid(); + } + else { + $query = "UPDATE #__sportsmanager_termin_symbol" + . "\n SET symboltitel = '$symboltitel', " + . "\n status = '$status'" + . "\n WHERE termin_symbol_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + if ($bildbeibehalten == 0) { + bildLoeschen('terminsymbole', $id); + + if (!empty($_FILES["bild"]["tmp_name"])) { + if (is_uploaded_file($_FILES["bild"]["tmp_name"])) { + $size = getimagesize($_FILES["bild"]["tmp_name"]); + if ($size == false + || ($size[2] != IMAGETYPE_JPEG && $size[2] != IMAGETYPE_PNG) + || ($size[0] > 8192 || $size[1] > 8192)) { + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_symbole', JText::_('COM_SPORTSMANAGER_PLAYER_WRONG_IMAGE_FORMAT')); + + return; + } + $bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . 'terminsymbole'; + if (!JFile::copy($_FILES["bild"]["tmp_name"], $bilder_pfad . DIRECTORY_SEPARATOR . $id . ($size[2] == IMAGETYPE_PNG ? '.png' : '.jpg'))) { + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_symbole', JText::_('COM_SPORTSMANAGER_IMAGE_COULD_NOT_COPIED')); + + return; + } + } + } + } + + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_symbole'); +} + +function adminRemoveTermineSymbol($admin_uebersicht) { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("termine_aendern")) + keinZugriff(); + + $id = $jinput->get('id', 0, 'INT'); + + $query = "LOCK TABLES #__sportsmanager_termin_symbolanzeige WRITE, #__sportsmanager_termin_symbol WRITE;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "DELETE FROM #__sportsmanager_termin_symbolanzeige WHERE termin_symbol_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "DELETE FROM #__sportsmanager_termin_symbol WHERE termin_symbol_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + bildLoeschen("terminsymbole", $id); + + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=' . ($admin_uebersicht ? 'admin_' : '') . 'termine_symbole'); +} + +function adminEditIndividualwettbewerb() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + $id = $jinput->get('id', 0, 'INT'); + $vorlage = $jinput->get('vorlage', 0, 'INT'); + if (!benutzerZugriff("individualwettbewerbe_aendern")) + keinZugriff(true); + + if ($id == 0) + $row = null; + else { + $query = "SELECT * FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die("Wrong id!"); + $row = $rows[0]; + } + + $query = "SELECT * FROM #__sportsmanager_veranstalter ORDER BY veranstalterbezeichnung"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $veranstalter = $db->loadObjectList(); + + $query = "SELECT nummer, bezeichnung FROM #__sportsmanager_kategorie WHERE typ = 6 ORDER BY nummer"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows_kategorien = $db->loadObjectList(); + + $kategorien = array(); + foreach ($rows_kategorien as $kategorie) + $kategorien[$kategorie->nummer] = $kategorie->bezeichnung; + + $query = "SELECT * FROM #__sportsmanager_saison ORDER BY saisonbezeichnung DESC"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $saisons = $db->loadObjectList(); + + if (empty($id)) { + $berechtigt_fuer_individualwettbewerb = array(); + } + else { + $query = "SELECT #__sportsmanager_berechtigt_fuer_individualwettbewerb.* FROM #__sportsmanager_berechtigt_fuer_individualwettbewerb, #__users WHERE berechtigt_user_id = id AND berechtigt_individualwettbewerb_id = $id ORDER BY username, name"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $berechtigt_fuer_individualwettbewerb = $db->loadObjectList(); + } + + $query = "SELECT * FROM #__users ORDER BY name, username"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $users = $db->loadObjectList(); + + HTML_sportsmanager_admin::adminEditIndividualwettbewerb($row, $veranstalter, $kategorien, $saisons, $users, $berechtigt_fuer_individualwettbewerb, $vorlage); +} + +function adminSaveIndividualwettbewerb() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("individualwettbewerbe_aendern")) + keinZugriff(); + + $id = $jinput->get('id', 0, 'INT'); + $vorlage = $jinput->get('vorlage', 0, 'INT'); + $veranstalterid = $jinput->get('veranstalterid', 0, 'INT'); + $bezeichnung = $db->escape(trim($jinput->get('bezeichnung', '', 'RAW'))); + $saison_id = $jinput->get('saison_id', 0, 'INT'); + $saetze = $jinput->get('saetze', 0, 'INT'); + $tore = $jinput->get('tore', 0, 'INT'); + $tabellenwertung = $jinput->get('tabellenwertung', 0, 'INT'); + $elo_wertung = $jinput->get('elo_wertung', 0, 'INT'); + $status = $jinput->get('status', 0, 'INT'); + $reihenfolge = $jinput->get('reihenfolge', 0, 'INT'); + $kategorie = $jinput->get('kategorie', 0, 'INT'); + $berechtigt_fuer_individualwettbewerb_user_ids = array(); + for ($i = 1; $i <= 6; $i++) { + $berechtigt_user_id = $jinput->get('berechtigt_fuer_individualwettbewerb_user_' . $i . '_id', 0, 'INT'); + if (!empty($berechtigt_user_id) && !in_array($berechtigt_user_id, $berechtigt_fuer_individualwettbewerb_user_ids)) + array_push($berechtigt_fuer_individualwettbewerb_user_ids, $berechtigt_user_id); + } + + $query = "LOCK TABLES #__sportsmanager_individualwettbewerb WRITE, #__sportsmanager_individualwettbewerb_spiel READ, #__sportsmanager_berechtigt_fuer_individualwettbewerb WRITE, #__sportsmanager_individualwettbewerb_platzierung READ, #__sportsmanager_individualwettbewerb_ausgangsplatzierung WRITE;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $elo_aktualisieren = false; + if ($vorlage) { + $query = "SELECT * FROM #__sportsmanager_individualwettbewerb_platzierung WHERE individualwettbewerb_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + + $query = "INSERT #__sportsmanager_individualwettbewerb" + . "\n SET veranstalter_id = '$veranstalterid'," + . "\n bezeichnung = '$bezeichnung'," + . "\n saison_id = '$saison_id'," + . "\n saetze = " . ($saetze != 0 ? "'$saetze'" : "null") . "," + . "\n tore = " . ($tore != 0 ? "'$tore'" : "null") . "," + . "\n tabellenwertung = '$tabellenwertung'," + . "\n elo_wertung = '$elo_wertung'," + . "\n status = '$status'," + . "\n reihenfolge = '$reihenfolge'," + . "\n kategorie = '$kategorie'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $id = $db->insertid(); + + foreach ($rows as $row) { + $query = "INSERT #__sportsmanager_individualwettbewerb_ausgangsplatzierung" + . "\n SET individualwettbewerb_id = '$id'," + . "\n spieler_id = '" . $row->spieler_id . "'," + . "\n platz = '" . $row->platz . "'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + } + else if ($id == 0) { + $query = "INSERT #__sportsmanager_individualwettbewerb" + . "\n SET veranstalter_id = '$veranstalterid'," + . "\n bezeichnung = '$bezeichnung'," + . "\n saison_id = '$saison_id'," + . "\n saetze = " . ($saetze != 0 ? "'$saetze'" : "null") . "," + . "\n tore = " . ($tore != 0 ? "'$tore'" : "null") . "," + . "\n tabellenwertung = '$tabellenwertung'," + . "\n elo_wertung = '$elo_wertung'," + . "\n status = '$status'," + . "\n reihenfolge = '$reihenfolge'," + . "\n kategorie = '$kategorie'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $id = $db->insertid(); + } + else { + $query = "SELECT * FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) { + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=admin_uebersicht', "Der Individualwettbewerb existiert nicht mehr!"); + + return; + } + $row = $rows[0]; + + $query = "UPDATE #__sportsmanager_individualwettbewerb" + . "\n SET veranstalter_id = '$veranstalterid'," + . "\n bezeichnung = '$bezeichnung'," + . "\n saison_id = '$saison_id'," + . "\n saetze = " . ($saetze != 0 ? "'$saetze'" : "null") . "," + . "\n tore = " . ($tore != 0 ? "'$tore'" : "null") . "," + . "\n tabellenwertung = '$tabellenwertung'," + . "\n elo_wertung = '$elo_wertung'," + . "\n status = '$status'," + . "\n reihenfolge = '$reihenfolge'," + . "\n kategorie = '$kategorie'" + . "\n WHERE individualwettbewerb_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + if (($elo_wertung != 0 && $status != 0) != ($row->elo_wertung != 0 && $row->status != 0)) + $elo_aktualisieren = true; + } + + $query = "DELETE FROM #__sportsmanager_berechtigt_fuer_individualwettbewerb WHERE berechtigt_individualwettbewerb_id = $id"; + if (!empty($berechtigt_fuer_individualwettbewerb_user_ids)) + $query .= " AND berechtigt_user_id NOT IN (" . implode($berechtigt_fuer_individualwettbewerb_user_ids, ", ") . ")"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "SELECT * FROM #__sportsmanager_berechtigt_fuer_individualwettbewerb WHERE berechtigt_individualwettbewerb_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + + foreach ($rows as $row) { + $index = array_search($row->berechtigt_user_id, $berechtigt_fuer_individualwettbewerb_user_ids); + if ($index !== false) { + unset($berechtigt_fuer_individualwettbewerb_user_ids[$index]); + } + } + + foreach ($berechtigt_fuer_individualwettbewerb_user_ids as $berechtigt_user_id) { + $query = "INSERT INTO #__sportsmanager_berechtigt_fuer_individualwettbewerb (berechtigt_user_id, berechtigt_individualwettbewerb_id) VALUES ('$berechtigt_user_id', '$id');"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + $query = "SELECT DATE(MIN(zeitpunkt)) FROM #__sportsmanager_individualwettbewerb_spiel WHERE individualwettbewerb_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $aktualisieren_ab_datum = $db->loadResult(); + + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + if ($elo_aktualisieren && $aktualisieren_ab_datum != null) { + eloAktualisieren($aktualisieren_ab_datum); + einstufungAktualisieren(); + } + + individualwettbewerbTabelleAktualisieren($id); + spielerstatistikAktualisieren(0, 0, $id); + + redirectSportsManagerURL('&task=admin_uebersicht'); +} + +function individualwettbewerbTabelleAktualisieren($id = null) { + $db =& getDatabase(); + + $query = "LOCK TABLES #__sportsmanager_individualwettbewerb READ, #__sportsmanager_individualwettbewerb_spiel READ, #__sportsmanager_individualwettbewerb_platzierung WRITE, #__sportsmanager_individualwettbewerb_ausgangsplatzierung READ;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "SELECT * FROM #__sportsmanager_individualwettbewerb"; + if (!empty($id)) + $query .= "\n WHERE individualwettbewerb_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $individualwettbewerbe = $db->loadObjectList(); + + foreach ($individualwettbewerbe as $individualwettbewerb) { + $individualwettbewerb_id = $individualwettbewerb->individualwettbewerb_id; + if ($individualwettbewerb->tabellenwertung == 0) { + $query = "DELETE FROM #__sportsmanager_individualwettbewerb_platzierung WHERE individualwettbewerb_id = $individualwettbewerb_id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + continue; + } + + $query = "SELECT heim_spieler_1_id, heim_spieler_2_id, gast_spieler_1_id, gast_spieler_2_id, ergebnis FROM #__sportsmanager_individualwettbewerb_spiel" + . "\n WHERE individualwettbewerb_id = $individualwettbewerb_id" + . "\n ORDER BY zeitpunkt, individualwettbewerb_spiel_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $spiele = $db->loadObjectList(); + + $query = "SELECT *" + . "\n FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung" + . "\n WHERE individualwettbewerb_id = $individualwettbewerb_id" + . "\n ORDER BY platz"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $ausgangsplatzierungen = $db->loadObjectList(); + + $platzierungen = array(); + foreach ($ausgangsplatzierungen as $ausgangsplatzierung) + array_push($platzierungen, $ausgangsplatzierung->spieler_id); + + foreach ($spiele as $spiel) { + if ($spiel->ergebnis == 0) + continue; + if ($spiel->heim_spieler_2_id != null) // Bis auf Weiteres keine Doppelspiele für Tabelle berücksichtigen + continue; + $sieger_spieler_id = $spiel->ergebnis == 1 ? $spiel->heim_spieler_1_id : $spiel->gast_spieler_1_id; + $verlierer_spieler_id = $spiel->ergebnis != 1 ? $spiel->heim_spieler_1_id : $spiel->gast_spieler_1_id; + + if (!in_array($verlierer_spieler_id, $platzierungen)) + array_push($platzierungen, $verlierer_spieler_id); + + $sieger_platzierung = array_search($sieger_spieler_id, $platzierungen); + $verlierer_platzierung = array_search($verlierer_spieler_id, $platzierungen); + if ($sieger_platzierung !== false) { + if ($sieger_platzierung < $verlierer_platzierung) + continue; + array_splice($platzierungen, $sieger_platzierung, 1); + } + array_splice($platzierungen, $verlierer_platzierung, 0, $sieger_spieler_id); + } + + $query = "SELECT * FROM #__sportsmanager_individualwettbewerb_platzierung" + . "\n WHERE individualwettbewerb_id = $individualwettbewerb_id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $platzierungen_vorhanden = $db->loadObjectList(); + + $platzierungen_uebrig = $platzierungen; + foreach ($platzierungen_vorhanden as $platzierung_vorhanden) { + $index = array_search($platzierung_vorhanden->spieler_id, $platzierungen); + if ($index !== false) { + $platz = $index + 1; + if ($platzierung_vorhanden->platz != $platz) { + $query = "UPDATE #__sportsmanager_individualwettbewerb_platzierung" + . "\n SET platz = '$platz'" + . "\n WHERE individualwettbewerb_platzierung_id = " . $platzierung_vorhanden->individualwettbewerb_platzierung_id; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + $index_uebrig = array_search($platzierung_vorhanden->spieler_id, $platzierungen_uebrig); + unset($platzierungen_uebrig[$index_uebrig]); + } + else { + $query = "DELETE FROM #__sportsmanager_individualwettbewerb_platzierung WHERE individualwettbewerb_platzierung_id = " . $platzierung_vorhanden->individualwettbewerb_platzierung_id; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + } + + foreach ($platzierungen_uebrig as $platzierung_uebrig) { + $index = array_search($platzierung_uebrig, $platzierungen); + $platz = $index + 1; + $query = "INSERT #__sportsmanager_individualwettbewerb_platzierung" + . "\n SET individualwettbewerb_id = '$individualwettbewerb_id'," + . "\n spieler_id = '$platzierung_uebrig'," + . "\n platz = '$platz'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + } + + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } +} + +function adminRemoveIndividualwettbewerb() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("individualwettbewerbe_aendern")) + keinZugriff(true); + + $id = $jinput->get('id', 0, 'INT'); + + $query = "LOCK TABLES #__sportsmanager_individualwettbewerb WRITE, #__sportsmanager_individualwettbewerb_spiel WRITE, #__sportsmanager_individualwettbewerb_platzierung WRITE, #__sportsmanager_individualwettbewerb_ausgangsplatzierung WRITE, #__sportsmanager_berechtigt_fuer_individualwettbewerb WRITE;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "SELECT * FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) { + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=admin_uebersicht', "Der Individualwettbewerb existiert nicht mehr!"); + + return; + } + $row = $rows[0]; + + $query = "SELECT DATE(MIN(zeitpunkt)) FROM #__sportsmanager_individualwettbewerb_spiel WHERE individualwettbewerb_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $aktualisieren_ab_datum = $db->loadResult(); + + $query = "DELETE FROM #__sportsmanager_berechtigt_fuer_individualwettbewerb WHERE berechtigt_individualwettbewerb_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "DELETE FROM #__sportsmanager_individualwettbewerb_spiel WHERE individualwettbewerb_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "DELETE FROM #__sportsmanager_individualwettbewerb_platzierung WHERE individualwettbewerb_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "DELETE FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE individualwettbewerb_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "DELETE FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $id;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + wannGespieltAktualisieren(); + if ($row->elo_wertung && $aktualisieren_ab_datum != null) { + eloAktualisieren($aktualisieren_ab_datum); + einstufungAktualisieren(); + } + spielerstatistikAktualisieren(0, 0, $id); + + redirectSportsManagerURL('&task=admin_uebersicht'); +} + +function adminIndividualwettbewerbSpiele() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + $individualwettbewerbid = $jinput->get('individualwettbewerbid', 0, 'INT'); + if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator()) + keinZugriff(true); + + $query = "SELECT * FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $individualwettbewerbid"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die("Wrong id!"); + $row = $rows[0]; + + if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator($individualwettbewerbid)) + keinZugriff(true); + + $query = "SELECT *," + . " theim1.vorname AS heim_spieler_1_vorname, theim1.nachname AS heim_spieler_1_nachname," + . " theim2.vorname AS heim_spieler_2_vorname, theim2.nachname AS heim_spieler_2_nachname," + . " tgast1.vorname AS gast_spieler_1_vorname, tgast1.nachname AS gast_spieler_1_nachname," + . " tgast2.vorname AS gast_spieler_2_vorname, tgast2.nachname AS gast_spieler_2_nachname" + . "\n FROM #__sportsmanager_individualwettbewerb_spiel" + . "\n LEFT JOIN #__sportsmanager_spieler AS theim1 ON theim1.spieler_id = heim_spieler_1_id" + . "\n LEFT JOIN #__sportsmanager_spieler AS theim2 ON theim2.spieler_id = heim_spieler_2_id" + . "\n LEFT JOIN #__sportsmanager_spieler AS tgast1 ON tgast1.spieler_id = gast_spieler_1_id" + . "\n LEFT JOIN #__sportsmanager_spieler AS tgast2 ON tgast2.spieler_id = gast_spieler_2_id" + . "\n WHERE individualwettbewerb_id = $individualwettbewerbid" + . "\n ORDER BY zeitpunkt DESC, individualwettbewerb_spiel_id DESC"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $spiele = $db->loadObjectList(); + + if ($row->tabellenwertung) { + $query = "SELECT spieler_id, nachname, vorname, vereinsname, aktueller_verein_id, platz, bild_ausblenden" + . "\n FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung" + . "\n INNER JOIN #__sportsmanager_spieler USING (spieler_id)" + . "\n LEFT JOIN #__sportsmanager_verein ON aktueller_verein_id = verein_id" + . "\n WHERE individualwettbewerb_id = $individualwettbewerbid" + . "\n ORDER BY platz, nachname, vorname"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $ausgangsplatzierungen = $db->loadObjectList(); + } + else { + $ausgangsplatzierungen = null; + } + + HTML_sportsmanager_admin::adminIndividualwettbewerbSpiele($row, $spiele, $ausgangsplatzierungen); +} + +function adminEditIndividualwettbewerbSpiel() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator()) + keinZugriff(true); + + $individualwettbewerbid = $jinput->get('individualwettbewerbid', 0, 'INT'); + $query = "SELECT * FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $individualwettbewerbid"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die("Wrong id!"); + $individualwettbewerb = $rows[0]; + + if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator($individualwettbewerbid)) + keinZugriff(true); + + $id = $jinput->get('id', 0, 'INT'); + $typ = $jinput->get('typ', 0, 'RAW'); + + if (empty($id)) { + $row = null; + $spiel_spieler_ids = null; + } + else { + $query = "SELECT * FROM #__sportsmanager_individualwettbewerb_spiel WHERE individualwettbewerb_spiel_id = $id AND individualwettbewerb_id = $individualwettbewerbid"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die("Wrong id!"); + $row = $rows[0]; + + $spiel_spieler_ids = array($row->heim_spieler_1_id, $row->gast_spieler_1_id); + if ($row->heim_spieler_2_id != null) + array_push($spiel_spieler_ids, $row->heim_spieler_2_id, $row->gast_spieler_2_id); + $typ = $row->heim_spieler_2_id != null ? "doppel" : "einzel"; + } + + $query = "SELECT DISTINCT spieler_id, vorname, nachname, spielernr" + . "\n FROM #__sportsmanager_spieler" + . "\n WHERE NOT ISNULL(aktueller_verein_id)" . (!empty($spiel_spieler_ids) ? (" OR spieler_id IN (" . implode($spiel_spieler_ids, ", ") . ")") : "") + . "\n ORDER BY nachname, vorname"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $spieler = $db->loadObjectList(); + + HTML_sportsmanager_admin::adminEditIndividualwettbewerbSpiel($row, $typ, $individualwettbewerb, $spieler); +} + +function adminSaveIndividualwettbewerbSpiel() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + $individualwettbewerbid = $jinput->get('individualwettbewerbid', 0, 'INT'); + if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator($individualwettbewerbid)) + keinZugriff(); + + $id = $jinput->get('id', 0, 'INT'); + $typ = $jinput->get('typ', 0, 'RAW'); + + if ($jinput->get('cancel', false, 'BOOL')) { + redirectSportsManagerURL('&task=admin_individualwettbewerb_spiele&individualwettbewerbid=' . $individualwettbewerbid . '#sid' . $id); + + return; + } + + $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); + + if ($zeitpunkt == null) { + redirectSportsManagerURL('&task=admin_individualwettbewerb_spiele&individualwettbewerbid=' . $individualwettbewerbid . '#sid' . id, "Es muss ein gültiges Datum angegeben werden."); + + return; + } + + $ergebnis_punkte_heim = $jinput->get('ergebnis_punkte_heim', array(), 'ARRAY'); + $ergebnis_punkte_gast = $jinput->get('ergebnis_punkte_gast', array(), 'ARRAY'); + + $ergebnis_detailliert = ""; + $saetze_heim = 0; + $saetze_gast = 0; + for ($i = 0; $i < count($ergebnis_punkte_heim); $i++) { + if (($ergebnis_punkte_heim[$i] == 0 || empty($ergebnis_punkte_heim[$i])) && ($ergebnis_punkte_gast[$i] == 0 || empty($ergebnis_punkte_gast[$i]))) + continue; + if (!empty($ergebnis_detailliert)) + $ergebnis_detailliert .= " "; + $punkte_heim = empty($ergebnis_punkte_heim[$i]) ? "0" : $ergebnis_punkte_heim[$i]; + $punkte_gast = empty($ergebnis_punkte_gast[$i]) ? "0" : $ergebnis_punkte_gast[$i]; + if ($punkte_heim > $punkte_gast) + $saetze_heim++; + else if ($punkte_gast > $punkte_heim) + $saetze_gast++; + $ergebnis_detailliert .= $punkte_heim . ":" . $punkte_gast; + } + $ergebnis = $saetze_heim > $saetze_gast ? 1 : ($saetze_heim < $saetze_gast ? 2 : 0); + + $heim_spieler_1_id = $jinput->get('heim_spieler_1_id', 0, 'INT'); + $heim_spieler_2_id = $jinput->get('heim_spieler_2_id', 0, 'INT'); + $gast_spieler_1_id = $jinput->get('gast_spieler_1_id', 0, 'INT'); + $gast_spieler_2_id = $jinput->get('gast_spieler_2_id', 0, 'INT'); + + $query = "LOCK TABLES #__sportsmanager_individualwettbewerb READ, #__sportsmanager_individualwettbewerb_spiel WRITE, #__sportsmanager_spieler READ"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + if (empty($id)) + $spiel = null; + else { + $query = "SELECT * FROM #__sportsmanager_individualwettbewerb_spiel WHERE individualwettbewerb_spiel_id = $id AND individualwettbewerb_id = $individualwettbewerbid"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die("Wrong id!"); + $spiel = $rows[0]; + + $typ = $spiel->heim_spieler_2_id != null ? "doppel" : "einzel"; + } + + if (empty($heim_spieler_1_id) || empty($gast_spieler_1_id) || ($typ != "einzel" && (empty($heim_spieler_2_id) || empty($gast_spieler_2_id)))) { + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=admin_individualwettbewerb_spiele&individualwettbewerbid=' . $individualwettbewerbid . '#sid' . id, "Es müssen Spieler ausgewählt werden."); + + return; + } + + $query = "SELECT * FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $individualwettbewerbid"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die("Wrong id!"); + $individualwettbewerb = $rows[0]; + + $elo_aktualisieren = $individualwettbewerb->elo_wertung; + $aktualisieren_ab_datum = $zeitpunkt; + + if ($id == 0) { + $query = "INSERT #__sportsmanager_individualwettbewerb_spiel" + . "\n SET individualwettbewerb_id = $individualwettbewerbid," + . "\n zeitpunkt = '$zeitpunkt'," + . "\n heim_spieler_1_id = '$heim_spieler_1_id'," + . "\n heim_spieler_2_id = " . ($typ != "einzel" ? "'$heim_spieler_2_id'" : "NULL") . "," + . "\n gast_spieler_1_id = '$gast_spieler_1_id'," + . "\n gast_spieler_2_id = " . ($typ != "einzel" ? "'$gast_spieler_2_id'" : "NULL") . "," + . "\n ergebnis = '$ergebnis'," + . "\n ergebnis_detailliert = " . (empty($ergebnis_detailliert) ? "null" : "'$ergebnis_detailliert'"); + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $id = $db->insertid(); + } + else { + $query = "UPDATE #__sportsmanager_individualwettbewerb_spiel" + . "\n SET zeitpunkt = '$zeitpunkt'," + . "\n heim_spieler_1_id = '$heim_spieler_1_id'," + . "\n heim_spieler_2_id = " . ($typ != "einzel" ? "'$heim_spieler_2_id'" : "NULL") . "," + . "\n gast_spieler_1_id = '$gast_spieler_1_id'," + . "\n gast_spieler_2_id = " . ($typ != "einzel" ? "'$gast_spieler_2_id'" : "NULL") . "," + . "\n ergebnis = '$ergebnis'," + . "\n ergebnis_detailliert = " . (empty($ergebnis_detailliert) ? "null" : "'$ergebnis_detailliert'") + . "\n WHERE individualwettbewerb_spiel_id = $id AND individualwettbewerb_id = $individualwettbewerbid"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + individualwettbewerbTabelleAktualisieren($individualwettbewerbid); + + wannGespieltAktualisieren(); + if ($elo_aktualisieren) { + eloAktualisieren($aktualisieren_ab_datum); + einstufungAktualisieren(); + } + spielerstatistikAktualisieren(0, 0, $individualwettbewerbid); + + redirectSportsManagerURL('&task=admin_individualwettbewerb_spiele&individualwettbewerbid=' . $individualwettbewerbid . '#sid' . $id); +} + +function adminRemoveIndividualwettbewerbSpiel() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + $id = $jinput->get('id', 0, 'INT'); + $individualwettbewerbid = $jinput->get('individualwettbewerbid', 0, 'INT'); + if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator($individualwettbewerbid)) + keinZugriff(true); + + $query = "LOCK TABLES #__sportsmanager_individualwettbewerb READ, #__sportsmanager_individualwettbewerb_spiel WRITE"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "SELECT * FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $individualwettbewerbid"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die("Wrong id!"); + $individualwettbewerb = $rows[0]; + + $query = "SELECT * FROM #__sportsmanager_individualwettbewerb_spiel WHERE individualwettbewerb_spiel_id = $id AND individualwettbewerb_id = $individualwettbewerbid"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die("Wrong id!"); + $spiel = $rows[0]; + + $elo_aktualisieren = $individualwettbewerb->elo_wertung; + $aktualisieren_ab_datum = $spiel->zeitpunkt; + + $query = "DELETE FROM #__sportsmanager_individualwettbewerb_spiel WHERE individualwettbewerb_spiel_id = $id AND individualwettbewerb_id = $individualwettbewerbid;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + individualwettbewerbTabelleAktualisieren($individualwettbewerbid); + + wannGespieltAktualisieren(); + if ($elo_aktualisieren && $aktualisieren_ab_datum != null) { + eloAktualisieren($aktualisieren_ab_datum); + einstufungAktualisieren(); + } + spielerstatistikAktualisieren(0, 0, $individualwettbewerbid); + + redirectSportsManagerURL('&task=admin_individualwettbewerb_spiele&individualwettbewerbid=' . $individualwettbewerbid); +} + +function adminEditIndividualwettbewerbAusgangsplatzierung() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator()) + keinZugriff(true); + + $individualwettbewerbid = $jinput->get('individualwettbewerbid', 0, 'INT'); + $query = "SELECT * FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $individualwettbewerbid"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die("Wrong id!"); + $individualwettbewerb = $rows[0]; + + if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator($individualwettbewerbid)) + keinZugriff(true); + + if (!$individualwettbewerb->tabellenwertung) die("Wrong id!"); + + $id = $jinput->get('id', 0, 'INT'); + $typ = $jinput->get('typ', 0, 'RAW'); + + $query = "SELECT spieler_id, nachname, vorname, vereinsname, aktueller_verein_id, platz, bild_ausblenden" + . "\n FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung" + . "\n INNER JOIN #__sportsmanager_spieler USING (spieler_id)" + . "\n LEFT JOIN #__sportsmanager_verein ON aktueller_verein_id = verein_id" + . "\n WHERE individualwettbewerb_id = $individualwettbewerbid" + . "\n ORDER BY platz, nachname, vorname"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $ausgangsplatzierungen = $db->loadObjectList(); + + $row = null; + if (!empty($id)) { + foreach ($ausgangsplatzierungen as $ausgangsplatzierung) { + if ($ausgangsplatzierung->spieler_id == $id) { + $row = $ausgangsplatzierung; + break; + } + } + if ($row == null) die("Wrong id!"); + } + + $query = "SELECT DISTINCT spieler_id, vorname, nachname, spielernr" + . "\n FROM #__sportsmanager_spieler" + . "\n WHERE NOT ISNULL(aktueller_verein_id)" . (!empty($spiel_spieler_ids) ? (" OR spieler_id IN (" . implode($spiel_spieler_ids, ", ") . ")") : "") + . "\n ORDER BY nachname, vorname"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $spieler = $db->loadObjectList(); + + HTML_sportsmanager_admin::adminEditIndividualwettbewerbAusgangsplatzierung($row, $individualwettbewerb, $ausgangsplatzierungen, $spieler); +} + +function adminSaveIndividualwettbewerbAusgangsplatzierung() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + $individualwettbewerbid = $jinput->get('individualwettbewerbid', 0, 'INT'); + if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator($individualwettbewerbid)) + keinZugriff(); + + $id = $jinput->get('id', 0, 'INT'); + $nach_id = $jinput->get('nach_id', 0, 'INT'); + + if ($jinput->get('cancel', false, 'BOOL')) { + redirectSportsManagerURL('&task=admin_individualwettbewerb_spiele&individualwettbewerbid=' . $individualwettbewerbid . '#pid' . $id); + + return; + } + + if ($id == $nach_id) { + redirectSportsManagerURL('&task=admin_individualwettbewerb_spiele&individualwettbewerbid=' . $individualwettbewerbid . '#pid' . $id); + + return; + } + + $query = "LOCK TABLES #__sportsmanager_individualwettbewerb READ, #__sportsmanager_individualwettbewerb_ausgangsplatzierung WRITE, #__sportsmanager_spieler READ"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "SELECT * FROM #__sportsmanager_spieler WHERE spieler_id = $id"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die("Wrong id!"); + + $query = "SELECT *" + . "\n FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung" + . "\n WHERE individualwettbewerb_id = $individualwettbewerbid" + . "\n ORDER BY platz"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $ausgangsplatzierungen = $db->loadObjectList(); + + $platzierungen = array(); + foreach ($ausgangsplatzierungen as $ausgangsplatzierung) + array_push($platzierungen, $ausgangsplatzierung->spieler_id); + + if (!empty($nach_id) && !in_array($nach_id, $platzierungen)) die("Wrong id!"); + + $id_platzierung = array_search($id, $platzierungen); + if ($id_platzierung !== false) + array_splice($platzierungen, $id_platzierung, 1); + $nach_id_platzierung = !empty($nach_id) ? (array_search($nach_id, $platzierungen) + 1) : 0; + array_splice($platzierungen, $nach_id_platzierung, 0, $id); + + $platzierungen_uebrig = $platzierungen; + foreach ($ausgangsplatzierungen as $platzierung_vorhanden) { + $index = array_search($platzierung_vorhanden->spieler_id, $platzierungen); + if ($index !== false) { + $platz = $index + 1; + if ($platzierung_vorhanden->platz != $platz) { + $query = "UPDATE #__sportsmanager_individualwettbewerb_ausgangsplatzierung" + . "\n SET platz = '$platz'" + . "\n WHERE individualwettbewerb_ausgangsplatzierung_id = " . $platzierung_vorhanden->individualwettbewerb_ausgangsplatzierung_id; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + $index_uebrig = array_search($platzierung_vorhanden->spieler_id, $platzierungen_uebrig); + unset($platzierungen_uebrig[$index_uebrig]); + } + else { + $query = "DELETE FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE individualwettbewerb_ausgangsplatzierung_id = " . $platzierung_vorhanden->individualwettbewerb_ausgangsplatzierung_id; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + } + + foreach ($platzierungen_uebrig as $platzierung_uebrig) { + $index = array_search($platzierung_uebrig, $platzierungen); + $platz = $index + 1; + $query = "INSERT #__sportsmanager_individualwettbewerb_ausgangsplatzierung" + . "\n SET individualwettbewerb_id = '$individualwettbewerbid'," + . "\n spieler_id = '$platzierung_uebrig'," + . "\n platz = '$platz'"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + individualwettbewerbTabelleAktualisieren($individualwettbewerbid); + + redirectSportsManagerURL('&task=admin_individualwettbewerb_spiele&individualwettbewerbid=' . $individualwettbewerbid . '#pid' . $id); +} + +function adminRemoveIndividualwettbewerbAusgangsplatzierung() { + $db =& getDatabase(); + $jinput = JFactory::getApplication()->input; + + $id = $jinput->get('id', 0, 'INT'); + $individualwettbewerbid = $jinput->get('individualwettbewerbid', 0, 'INT'); + if (!benutzerZugriff("individualwettbewerbe_aendern") && !benutzerIndividualwettbewerbModerator($individualwettbewerbid)) + keinZugriff(true); + + $query = "LOCK TABLES #__sportsmanager_individualwettbewerb READ, #__sportsmanager_individualwettbewerb_ausgangsplatzierung WRITE"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + $query = "SELECT * FROM #__sportsmanager_individualwettbewerb WHERE individualwettbewerb_id = $individualwettbewerbid"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $rows = $db->loadObjectList(); + if (count($rows) < 1) die("Wrong id!"); + + $query = "SELECT *" + . "\n FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung" + . "\n WHERE individualwettbewerb_id = $individualwettbewerbid" + . "\n ORDER BY platz"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + $ausgangsplatzierungen = $db->loadObjectList(); + + $platzierungen = array(); + foreach ($ausgangsplatzierungen as $ausgangsplatzierung) + array_push($platzierungen, $ausgangsplatzierung->spieler_id); + + if (!empty($nach_id) && !in_array($nach_id, $platzierungen)) die("Wrong id!"); + + $id_platzierung = array_search($id, $platzierungen); + if ($id_platzierung !== false) + array_splice($platzierungen, $id_platzierung, 1); + + foreach ($ausgangsplatzierungen as $platzierung_vorhanden) { + $index = array_search($platzierung_vorhanden->spieler_id, $platzierungen); + if ($index !== false) { + $platz = $index + 1; + if ($platzierung_vorhanden->platz != $platz) { + $query = "UPDATE #__sportsmanager_individualwettbewerb_ausgangsplatzierung" + . "\n SET platz = '$platz'" + . "\n WHERE individualwettbewerb_ausgangsplatzierung_id = " . $platzierung_vorhanden->individualwettbewerb_ausgangsplatzierung_id; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + } + else { + $query = "DELETE FROM #__sportsmanager_individualwettbewerb_ausgangsplatzierung WHERE individualwettbewerb_ausgangsplatzierung_id = " . $platzierung_vorhanden->individualwettbewerb_ausgangsplatzierung_id; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + } + } + + $query = "UNLOCK TABLES;"; + $db->setQuery($query); + if (!$result = $db->execute()) { + die($db->stderr(true)); + } + + individualwettbewerbTabelleAktualisieren($individualwettbewerbid); + + redirectSportsManagerURL('&task=admin_individualwettbewerb_spiele&individualwettbewerbid=' . $individualwettbewerbid); +} + + +?>