function clm_api_db_tournament_delDWZ($id, $group = true)
{
    $id = clm_core::$load->make_valid($id, 0, -1);
    if ($group) {
        $table_list = "#__clm_meldeliste_spieler";
        $table_list_id = "lid";
    } else {
        $table_list = "#__clm_turniere_tlnr";
        $table_list_id = "turnier";
    }
    // Löschen der DWZ-Auswertung zur LigaSaison
    $query = "UPDATE " . $table_list . " SET DWZ = 0" . " , I0 = 0" . " , Punkte = 0" . " , Partien = 0" . " , WE = 0" . " , Leistung = 0" . " , EFaktor = 0" . " , Niveau = 0" . " WHERE " . $table_list_id . "= " . $id;
    clm_core::$db->query($query);
    if ($group) {
        $table = clm_core::$db->liga->get($id);
    } else {
        $table = clm_core::$db->turniere->get($id);
    }
    if (!$table->isNew()) {
        $params = new clm_class_params($table->params);
        $params->set("inofDWZ", "");
        $table->params = $params->params();
    }
    return array(true, "m_delDWZ");
}
Example #2
0
 function _getTurnierData()
 {
     $query = "SELECT *" . " FROM #__clm_turniere" . " WHERE id = " . $this->turnierid;
     $this->_db->setQuery($query);
     $this->turnier = $this->_db->loadObject();
     // TO-DO: auslagern
     // zudem PGN-Parameter auswerten
     $turParams = new clm_class_params($this->turnier->params);
     $pgnInput = $turParams->get('pgnInput', 1);
     $pgnPublic = $turParams->get('pgnPublic', 1);
     // User ermitteln
     $user = JFactory::getUser();
     // Flag für View und Template setzen: pgnShow
     // FALSE - PGN nicht verlinken/anzeigen
     // TRUE - PGN-Links setzen und anzeigen
     // 'pgnInput möglich' UND ('pgn öffentlich' ORDER 'User eingeloggt')
     if ($pgnInput == 1 and ($pgnPublic == 1 or $user->id > 0)) {
         $this->pgnShow = TRUE;
     } else {
         $this->pgnShow = FALSE;
     }
     $this->displayTlOK = $turParams->get('displayTlOK', 0);
     // turniernamen anpassen?
     $addCatToName = $turParams->get('addCatToName', 0);
     if ($addCatToName != 0 and ($this->turnier->catidAlltime > 0 or $this->turnier->catidEdition > 0)) {
         $this->turnier->name = CLMText::addCatToName($addCatToName, $this->turnier->name, $this->turnier->catidAlltime, $this->turnier->catidEdition);
     }
 }
Example #3
0
function clm_api_db_tournament_auto($id, $group = true, $report = false, $runde = 0, $dg = 0, $paar = 0)
{
    $id = clm_core::$load->make_valid($id, 0, -1);
    if ($group) {
        $table = "liga";
    } else {
        $table = "turniere";
    }
    // inoff. DWZ Auswerten/Löschen/Ignorieren
    $params = new clm_class_params(clm_core::$db->{$table}->get($id)->params);
    $autoDWZ = $params->get("autoDWZ", 0);
    if ($autoDWZ == 0) {
        clm_core::$api->direct("db_tournament_genDWZ", array($id, $group));
    } else {
        if ($autoDWZ == 1) {
            clm_core::$api->direct("db_tournament_delDWZ", array($id, $group));
            // DWZ nicht bei db_report_save aktualisieren (Ergebnismeldung)
        } else {
            if ($autoDWZ == 2 && !$report) {
                clm_core::$api->direct("db_tournament_genDWZ", array($id, $group));
            }
        }
    }
    // Rangliste Auswerten/Ignorieren
    $params = new clm_class_params(clm_core::$db->{$table}->get($id)->params);
    $autoDWZ = $params->get("autoRANKING", 0);
    if ($autoDWZ == 0) {
        clm_core::$api->db_tournament_ranking($id, $group);
    }
}
Example #4
0
 function _getTurnierData()
 {
     $query = "SELECT *" . " FROM #__clm_turniere" . " WHERE id = " . $this->turnierid;
     $this->_db->setQuery($query);
     $this->turnier = $this->_db->loadObject();
     // turniernamen anpassen?
     $turParams = new clm_class_params($this->turnier->params);
     $addCatToName = $turParams->get('addCatToName', 0);
     if ($addCatToName != 0 and ($this->turnier->catidAlltime > 0 or $this->turnier->catidEdition > 0)) {
         $this->turnier->name = CLMText::addCatToName($addCatToName, $this->turnier->name, $this->turnier->catidAlltime, $this->turnier->catidEdition);
     }
 }
Example #5
0
 function _getTurnierData()
 {
     $query = "SELECT t.*, CHAR_LENGTH(t.invitationText) AS invitationLength, s.name AS saisonname, u.name AS tlname" . " FROM #__clm_turniere AS t" . " LEFT JOIN #__clm_saison AS s ON s.id = t.sid" . " LEFT JOIN #__clm_user AS u ON jid = t.tl" . " WHERE t.id = " . $this->turnierid;
     $this->_db->setQuery($query);
     $this->turnier = $this->_db->loadObject();
     // Ausrichter
     $this->turnier->organame = clm_core::$load->zps_to_district($this->turnier->vereinZPS);
     // turniernamen anpassen?
     $turParams = new clm_class_params($this->turnier->params);
     $addCatToName = $turParams->get('addCatToName', 0);
     if ($addCatToName != 0 and ($this->turnier->catidAlltime > 0 or $this->turnier->catidEdition > 0)) {
         $this->turnier->name = CLMText::addCatToName($addCatToName, $this->turnier->name, $this->turnier->catidAlltime, $this->turnier->catidEdition);
     }
 }
Example #6
0
function clm_api_db_tournament_copy($id, $group = true)
{
    $id = clm_core::$load->make_valid($id, 0, -1);
    if ($group) {
        $table_list = "#__clm_liga";
    } else {
        $table_list = "#__clm_turniere";
    }
    $sql = "SELECT * FROM " . $table_list . " WHERE id=" . $id;
    $table = clm_core::$db->loadAssocList($sql);
    $lang = clm_core::$lang->tournament;
    $table[0]["name"] = $lang->copy2 . " " . $table[0]["name"];
    $table[0]["rnd"] = 0;
    $table[0]["published"] = 0;
    $out = new clm_class_params($table[0]["params"]);
    $out->set("dwz_date", "");
    $out->set("inofDWZ", "");
    $table[0]["params"] = $out->params();
    $keyS = "";
    $valueS = "";
    foreach ($table[0] as $key => $value) {
        if (is_numeric($key) || $key == "id") {
            continue;
        }
        if ($keyS != "") {
            $keyS .= ", ";
        }
        $keyS .= "`" . $key . "`";
        if ($valueS != "") {
            $valueS .= ", ";
        }
        $valueS .= "'" . clm_core::$db->escape($value) . "'";
    }
    $new = "INSERT INTO " . $table_list . " (" . $keyS . ") VALUES (" . $valueS . ")";
    clm_core::$db->query($new);
    return array(true, "");
}
Example #7
0
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
 * @link http://www.fishpoke.de
 * @author Thomas Schwietert
 * @email fishpoke@fishpoke.de
 * @author Andreas Dorn
 * @email webmaster@sbbl.org
*/
defined('_JEXEC') or die('Restricted access');
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */
$turParams = new clm_class_params($this->turnier->params);
?>

	<script language="javascript" type="text/javascript">

	function showFormRoundscount(){
		if (document.getElementById('typ').value == 1) { // CH
			document.getElementById('formRoundscountValue').innerHTML = jsform['runden'];
			document.getElementById('formRoundscountText').innerHTML = '';
			document.getElementById('formStagecount').innerHTML = '-';
			//document.getElementById('formTiebreakers').innerHTML = jsform['tiebreakers'];
		} else if (document.getElementById('typ').value == 2) { // voll
			changeRoundscountModus2();
			document.getElementById('formRoundscountText').innerHTML = jstext['roundscountgenerated'];
			//document.getElementById('formStagecount').innerHTML = jsform['stages'];
			//document.getElementById('formTiebreakers').innerHTML = jsform['tiebreakers'];
Example #8
0
<?php

/**
 * @ Chess League Manager (CLM) Component 
 * @Copyright (C) 2008-2015 CLM Team  All rights reserved
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
 * @link http://www.chessleaguemanager.de
 * @author Thomas Schwietert
 * @email fishpoke@fishpoke.de
 * @author Andreas Dorn
 * @email webmaster@sbbl.org
*/
defined('_JEXEC') or die('Restricted access');
$turnierid = JRequest::getInt('turnier', '1');
$config = clm_core::$db->config();
$turParams = new clm_class_params($this->turnier->params);
require_once JPATH_COMPONENT . DS . 'includes' . DS . 'fpdf.php';
class PDF extends FPDF
{
    //Kopfzeile
    function Header()
    {
        require JPATH_COMPONENT . DS . 'includes' . DS . 'pdf_header.php';
    }
    //Fusszeile
    function Footer()
    {
        require JPATH_COMPONENT . DS . 'includes' . DS . 'pdf_footer.php';
    }
}
// Zellenhöhe -> Standard 6
Example #9
0
 function _saveDo()
 {
     JRequest::checkToken() or die('Invalid Token');
     // Instanz der Tabelle
     $row = JTable::getInstance('turniere', 'TableCLM');
     $row->load($this->turnierid);
     // Daten zu dieser ID laden
     $clmAccess = clm_core::$access;
     if ($row->tl != clm_core::$access->getJid() and $clmAccess->access('BE_tournament_edit_detail') !== true or $clmAccess->access('BE_tournament_edit_detail') === false) {
         //if (clm_core::$access->getType() != 'admin' AND clm_core::$access->getType() != 'tl') {
         JError::raiseWarning(500, JText::_('TOURNAMENT_NO_ACCESS'));
         return false;
     }
     $turnier = $this->turnierid;
     $task = JRequest::getVar('task');
     $cid = JRequest::getVar('cid', array(0), '', 'array');
     // JArrayHelper::toInteger($cid, array(0));
     // weiteren Daten aus TlnTabelle
     $query = "SELECT MAX(mgl_nr), MAX(snr) FROM `#__clm_turniere_tlnr`" . " WHERE turnier = " . $this->turnierid;
     $this->_db->setQuery($query);
     list($maxFzps, $maxSnr) = $this->_db->loadRow();
     $maxFzps++;
     // fiktive ZPS für manuell eingegeben Spieler
     $maxSnr++;
     // maximale snr für alle Spieler
     // Turnierdaten
     $tournament = new CLMTournament($this->turnierid, true);
     $playersIn = $tournament->getPlayersIn();
     $turParams = new clm_class_params($tournament->data->params);
     $param_useastwz = $turParams->get('useAsTWZ', 0);
     // Turnier schon vorher voll?
     if (!$this->_checkTournamentOpen($playersIn, $tournament->data->teil)) {
         return false;
     }
     $name = trim(JRequest::getVar('name'));
     // Spieler aus manueller Nachmeldung speichern
     if ($name != "") {
         // weitere Angaben holen
         $verein = JRequest::getString('verein');
         // $dwz = JRequest::getInt('dwz');
         $natrating = JRequest::getInt('natrating', 0);
         $fideelo = JRequest::getInt('fideelo', 0);
         $titel = JRequest::getString('titel');
         $geschlecht = JRequest::getString('geschlecht', 'NULL');
         $birthYear = JRequest::getString('birthYear', '0000');
         $twz = clm_core::$load->gen_twz($param_useastwz, $natrating, $fideelo);
         $query = " INSERT INTO #__clm_turniere_tlnr" . " (`sid`, `turnier`, `snr`, `name`, `birthYear`, `geschlecht`, `verein`, `twz`, `start_dwz`, `FIDEelo`, `titel`, `mgl_nr` ,`zps`)" . " VALUES" . " ('" . $tournament->data->sid . "', '" . $this->turnierid . "', '" . $maxSnr++ . "', '{$name}', '{$birthYear}', '{$geschlecht}', '{$verein}', '{$twz}', '{$natrating}', '{$fideelo}', '{$titel}', '" . $maxFzps . "', '99999')";
         $this->_db->setQuery($query);
         if ($this->_db->query()) {
             $this->app->enqueueMessage(JText::_('PLAYER') . " " . $name . " " . JText::_('ADDED'));
             $playersIn++;
             // den angemeldeten Spielern zufügen
             return true;
         } else {
             $this->app->enqueueMessage(JText::_('DB_ERROR'));
             return false;
         }
     }
     // wenn hier ein Spieler eingetragen wurde, geht es nicht mehr durch die Liste...
     foreach ($cid as $id) {
         // noch Platz im Turnier?
         if ($this->_checkTournamentOpen($playersIn, $tournament->data->teil)) {
             // ausgelesene Daten
             $mgl = substr($id, 5);
             if (!is_numeric($mgl)) {
                 $mgl = -1;
             }
             $zps = substr($id, 0, 5);
             // weitere Daten des Spielers ermitteln
             // in CLM DB suchen
             $query = "SELECT a.Spielername, a.Geburtsjahr, a.Geschlecht, a.FIDE_Titel, a.FIDE_Elo, a.FIDE_ID, FIDE_Land, a.DWZ, v.Vereinname" . " FROM `#__clm_dwz_spieler` as a" . " LEFT JOIN #__clm_dwz_vereine as v ON v.ZPS = a.ZPS" . " LEFT JOIN #__clm_saison as s ON s.id = a.sid " . " WHERE a.ZPS = '{$zps}'" . " AND a.Mgl_Nr = " . $mgl . " AND s.archiv = 0 " . " AND a.sid = " . clm_core::$access->getSeason();
             $this->_db->setQuery($query);
             $data = $this->_db->loadObject();
             if (isset($data->Spielername)) {
                 // checken ob Spieler schon eingetragen, um Doppelungen zu vermeiden
                 $query = "SELECT COUNT(*) FROM #__clm_turniere_tlnr" . " WHERE `turnier` = '" . $this->turnierid . "' AND `mgl_nr` = '{$mgl}' AND `zps` = '{$zps}'";
                 $this->_db->setQuery($query);
                 if ($this->_db->loadResult() > 0) {
                     JError::raiseWarning(500, JText::_('PLAYER') . " " . $data->Spielername . " " . JText::_('ALREADYIN'));
                 } else {
                     $twz = clm_core::$load->gen_twz($param_useastwz, $data->DWZ, $data->FIDE_Elo);
                     $query = " INSERT INTO #__clm_turniere_tlnr" . " (`sid`, `turnier`, `snr`, `name`, `birthYear`, `geschlecht`, `verein`, `twz`, `start_dwz`, `FIDEelo`, `FIDEid`, `FIDEcco`, `titel`,`mgl_nr` ,`zps`) " . " VALUES" . " ('" . $tournament->data->sid . "','" . $this->turnierid . "', '" . $maxSnr++ . "', '" . clm_escape($data->Spielername) . "', '" . $data->Geburtsjahr . "', '" . $data->Geschlecht . "','" . clm_escape($data->Vereinname) . "', '" . $twz . "', '" . $data->DWZ . "', '" . $data->FIDE_Elo . "', '" . $data->FIDE_ID . "', '" . $data->FIDE_Land . "', '" . $data->FIDE_Titel . "', '{$mgl}', '{$zps}')";
                     $this->_db->setQuery($query);
                     if ($this->_db->query()) {
                         $playersIn++;
                         $this->app->enqueueMessage(JText::_('PLAYER') . " " . $data->Spielername . " " . JText::_('ADDED'));
                     } else {
                         JError::raiseWarning(500, JText::_('DB_ERROR'));
                     }
                 }
             } else {
                 JError::raiseWarning(500, CLMText::errorText('PLAYER', 'UNKNOWN'));
             }
         }
         // sonst war Turnier voll
     }
     // je nach Task: Message und Weiterleitung
     switch ($task) {
         case 'apply':
             $stringAktion = JText::_('PLAYERS_ADDED');
             break;
         case 'save':
         default:
             $stringAktion = JText::_('PLAYERS_SAVED');
             $this->adminLink->view = "turplayers";
             // WL in Liste
             break;
     }
     // Plätze frei?
     $openSpots = $tournament->data->teil - $playersIn;
     if ($openSpots > 0) {
         JError::raiseNotice(500, JText::_('PARTICIPANTS_WANTED') . ": " . $openSpots);
     } else {
         JError::raiseNotice(500, CLMText::errorText('PARTICIPANTLIST', 'FULL'));
     }
     // Message
     // $this->app->enqueueMessage($stringAktion);
     // Log schreiben
     $clmLog = new CLMLog();
     $clmLog->aktion = $stringAktion;
     $clmLog->params = array('sid' => $tournament->data->sid, 'tid' => $this->turnierid);
     // TurnierID wird als LigaID gespeichert
     $clmLog->write();
     return true;
 }
 function _saveDo()
 {
     // Check for request forgeries
     JRequest::checkToken() or die('Invalid Token');
     // Instanz der Tabelle
     $row = JTable::getInstance('turniere', 'TableCLM');
     $row->load($this->turnierid);
     $clmAccess = clm_core::$access;
     if ($row->tl != clm_core::$access->getJid() and $clmAccess->access('BE_tournament_edit_round') !== true or $clmAccess->access('BE_tournament_edit_round') === false) {
         JError::raiseWarning(500, JText::_('TOURNAMENT_NO_ACCESS'));
         return false;
     }
     // Für runden_termine update
     $user = JFactory::getUser();
     // Turnierdaten sammeln
     $tournament = new CLMTournament($this->turnierid, true);
     $this->teil = $tournament->data->teil;
     $turParams = new clm_class_params($tournament->data->params);
     $pgnInput = $turParams->get('pgnInput', 1);
     // Anzahl gemeldeter Teilnehmer sammeln
     $sum_tln = $tournament->getPlayersIn();
     // Anzahl Spieler abgleichen bevor gemeldet werden kann
     if ($sum_tln != $this->teil) {
         $diff = $this->teil - $sum_tln;
         JError::raiseWarning(500, JText::_('INSUFFICIENT_PLAYERS_REGISTERED'));
         JError::raiseNotice(6000, JText::_('ADD_PLAYERS_OR_CHANGE_PARAMETERS'));
         return false;
     }
     // Reale RundenNummer, DG aus RundenID ermitteln - zudem 'gemeldet' für späteren Abgleich
     $query = 'SELECT nr, dg, gemeldet, tl_ok' . ' FROM #__clm_turniere_rnd_termine' . ' WHERE id = ' . $this->roundid;
     $this->_db->setQuery($query);
     list($runde, $dg, $gemeldet, $tl_ok) = $this->_db->loadRow();
     if ($tl_ok == 1) {
         // Runden schon bestätigt?
         JError::raiseWarning(500, CLMText::errorText(JText::_('ROUND'), 'ALREADYAPPROVED'));
         return false;
     }
     // Datensätze in Spielertabelle schreiben
     // convert Array nur für SCHWARZ !!
     $convert = array(0 => 1, 0, 2, 3, 5, 4, 6, 7, 8, 10, 9);
     // andere Matrix für eid
     // daten ermitteln
     $array_w = JRequest::getVar('w');
     $array_b = JRequest::getVar('b');
     $array_res = JRequest::getVar('res');
     if ($pgnInput == 1) {
         $array_pgn = JRequest::getVar('pgn');
     }
     $array_ergebnis = array();
     // Array für bisherige Ergebnisse (Weiß)
     if ($tournament->data->typ == 3 or $tournament->data->typ == 5) {
         // KO
         $array_tiebrS = JRequest::getVar('tiebrS');
         $array_tiebrG = JRequest::getVar('tiebrG');
         $array_tiebrS_old = array();
         $array_tiebrG_old = array();
     }
     $array_id = array();
     // Array für ID des nicht-heim-Matches
     $array_idBlack = array();
     // für MatchID des schwarzen Datensatzes
     $array_duplo = array();
     // Array für alle Startnummern, um Doppelungen abzuchecken
     // alle Matches anhand der weißen Daten durchgehen - evtl fehlerhafte Daten ausschließen
     foreach ($array_w as $key => $value) {
         // $key 					- die ID des Matches
         // $value 				- die snr des Weißen
         // $array_b[$key]		- die snr des Schwarzen
         // $array_res[$key]	- dir ID des Ergebnisses
         // check: Match vorhanden? mit 'heim' und in diesem Turnier?
         if ($tournament->data->typ != 3 and $tournament->data->typ != 5) {
             // nicht KO
             // brett ermitteln, um zweiten Match-Datensatz ermitteln zu können
             $query = 'SELECT brett, ergebnis, pgn' . ' FROM #__clm_turniere_rnd_spl' . ' WHERE id = ' . $key . ' AND turnier = \'' . $this->turnierid . '\' AND heim = \'1\'';
             $this->_db->setQuery($query);
             if (!(list($brettBlack, $array_ergebnis[$key], $array_pgnold[$key]) = $this->_db->loadRow())) {
                 JError::raiseWarning(500, JText::_('MATCH_UNKNOWN') . " - ID: " . $key);
                 // aus Array entfernen!
                 unset($array_w[$key]);
             }
         } else {
             // KO
             // brett ermitteln, um zweiten Match-Datensatz ermitteln zu können
             // zudem ergebnis und tiebr nachladen
             $query = 'SELECT brett, ergebnis, tiebrS, tiebrG, pgn' . ' FROM #__clm_turniere_rnd_spl' . ' WHERE id = ' . $key . ' AND turnier = \'' . $this->turnierid . '\' AND heim = \'1\'';
             $this->_db->setQuery($query);
             if (!(list($brettBlack, $array_ergebnis[$key], $array_tiebrS_old[$key], $array_tiebrG_old[$key], $array_pgnold[$key]) = $this->_db->loadRow())) {
                 JError::raiseWarning(500, JText::_('MATCH_UNKNOWN') . " - ID: " . $key);
                 // aus Array entfernen!
                 unset($array_w[$key]);
             }
         }
         // check: zweiter Datensatz zu diesem match vorhanden? anhand von $brett
         // ID ermitteln und zwischenspeichern
         $query = "SELECT id" . " FROM #__clm_turniere_rnd_spl" . " WHERE turnier = '" . $this->turnierid . "' AND runde = '{$runde}' AND dg = '{$dg}' AND heim = '0' AND brett = " . $brettBlack;
         $this->_db->setQuery($query);
         if (!($array_idBlack[$key] = $this->_db->loadResult())) {
             JError::raiseWarning(500, JText::_('MATCH_UNKNOWN') . " - ID: " . $key);
             // aus Array entfernen!
             unset($array_w[$key]);
         } else {
             $array_id[$key] = $id;
         }
         // alle Startnummern in Duplo-Array eintragen (wenn Startnummer vorhanden)
         if ($value > 0) {
             $array_duplo[] = $value;
         }
         if ($array_b[$key] > 0) {
             $array_duplo[] = $array_b[$key];
         }
     }
     // Duplo-Kontrolle - nicht im freien System
     if ($tournament->data->typ != 6 and count($array_duplo) > count(array_unique($array_duplo))) {
         JError::raiseWarning(500, JText::_("PLAYER_ENTERED_TWICE"));
         return false;
     }
     $countChanges = 0;
     // noch vorhandene Matches erneut durchgehen
     foreach ($array_w as $key => $value) {
         // liegt Änderung vor?
         if ($tournament->data->typ != 3 and $tournament->data->typ != 5) {
             // nicht KO
             if (is_null($array_ergebnis[$key]) and $array_res[$key] >= 0 or !is_null($array_ergebnis[$key]) and $array_res[$key] != $array_ergebnis[$key] or $pgnInput == 1 and $array_pgn[$key] != $array_pgnold[$key]) {
                 // Änderung?
                 $countChanges++;
             }
         } else {
             // KO - checkt auch auf tiebreaker-Änderung!
             if (is_null($array_ergebnis[$key]) and $array_res[$key] >= 0 or !is_null($array_ergebnis[$key]) and $array_res[$key] != $array_ergebnis[$key] or $array_tiebrS_old[$key] != $array_tiebrS[$key] or $array_tiebrG_old[$key] != $array_tiebrG[$key] or $pgnInput == 1 and $array_pgn[$key] != $array_pgnold[$key]) {
                 // Änderung?
                 $countChanges++;
                 // dann aber auch ermitteln, wer ausscheidet, und wer im Turnier bleibt.
                 if ($array_res[$key] == 2 or $array_res[$key] == 3 or $array_res[$key] == 6 or $array_res[$key] == 7) {
                     // remis bzw. nicht gespielt
                     //					if ($array_res[$key] == 2) { // remis
                     if ($array_tiebrS[$key] > $array_tiebrG[$key]) {
                         // sofort schreiben
                         $this->_updateTlnrKoStatus($value, 1, $runde);
                         $this->_updateTlnrKoStatus($array_b[$key], 0, $runde);
                     } elseif ($array_tiebrS[$key] < $array_tiebrG[$key]) {
                         // sofort schreiben
                         $this->_updateTlnrKoStatus($value, 0, $runde);
                         $this->_updateTlnrKoStatus($array_b[$key], 1, $runde);
                     } else {
                         // gleich - beide noch drin!
                         $this->_updateTlnrKoStatus($value, 1, $runde);
                         $this->_updateTlnrKoStatus($array_b[$key], 1, $runde);
                     }
                 } elseif ($array_res[$key] == 1 or $array_res[$key] == 5) {
                     // sofort schreiben
                     $this->_updateTlnrKoStatus($value, 1, $runde);
                     $this->_updateTlnrKoStatus($array_b[$key], 0, $runde);
                 } elseif ($array_res[$key] == 0 or $array_res[$key] == 4) {
                     // sofort schreiben
                     $this->_updateTlnrKoStatus($value, 0, $runde);
                     $this->_updateTlnrKoStatus($array_b[$key], 1, $runde);
                 }
             }
         }
         // jetzt die beiden Datesätze updaten
         if ($array_res[$key] == '-1' or $array_res[$key] == '-2') {
             // kein Resultat eingegeben
             $sqlResultW = "NULL";
             $sqlResultB = "NULL";
         } else {
             $sqlResultW = "'" . $array_res[$key] . "'";
             $sqlResultB = "'" . $convert[$array_res[$key]] . "'";
         }
         // für pgn
         if ($pgnInput == 1) {
             $sqlPGN = ", pgn = '" . $array_pgn[$key] . "'";
         } else {
             $sqlPGN = "";
         }
         if ($tournament->data->typ != 3 and $tournament->data->typ != 5) {
             // nicht KO
             // Weiss
             $query = "UPDATE #__clm_turniere_rnd_spl" . " SET ergebnis = " . $sqlResultW . ", tln_nr = '" . $value . "', spieler = '" . $value . "', gegner = '" . $array_b[$key] . "'" . $sqlPGN . " WHERE id = " . $key;
             $this->_db->setQuery($query);
             $this->_db->query();
             // Schwarz
             $query = "UPDATE #__clm_turniere_rnd_spl" . " SET ergebnis = " . $sqlResultB . ", tln_nr ='" . $array_b[$key] . "', spieler ='" . $array_b[$key] . "', gegner ='" . $value . "'" . $sqlPGN . " WHERE id = " . $array_idBlack[$key];
             $this->_db->setQuery($query);
             $this->_db->query();
         } else {
             // KO - auch tiebreak schreiben
             // Weiss
             $query = "UPDATE #__clm_turniere_rnd_spl" . " SET ergebnis = " . $sqlResultW . ", tiebrS = '" . $array_tiebrS[$key] . "', tiebrG = '" . $array_tiebrG[$key] . "', tln_nr = '" . $value . "', spieler = '" . $value . "', gegner = '" . $array_b[$key] . "'" . $sqlPGN . " WHERE id = " . $key;
             $this->_db->setQuery($query);
             $this->_db->query();
             // Schwarz
             $query = "UPDATE #__clm_turniere_rnd_spl" . " SET ergebnis = " . $sqlResultB . ", tiebrS = '" . $array_tiebrG[$key] . "', tiebrG = '" . $array_tiebrS[$key] . "', tln_nr ='" . $array_b[$key] . "', spieler ='" . $array_b[$key] . "', gegner ='" . $value . "'" . $sqlPGN . " WHERE id = " . $array_idBlack[$key];
             $this->_db->setQuery($query);
             $this->_db->query();
         }
     }
     // ergebnisse eingetragen
     // Nachrichten:
     // 1 - Matches wurden gespeichert
     // 2 - Anzahl ($countChanges) geänderter Erebnisse
     JError::raiseNotice(500, JText::_('MATCHES') . ' ' . JText::_('SAVED'));
     $stringAction = CLMText::sgpl($countChanges, JText::_('RESULT'), JText::_('RESULTS')) . " " . JText::_('SAVED') . "/" . JText::_('EDITED');
     JError::raiseNotice(500, $stringAction);
     $tournament->calculateRanking();
     $tournament->setRankingPositions();
     // Runde gemeldet ?
     if ($gemeldet == NULL) {
         $query = "UPDATE #__clm_turniere_rnd_termine" . " SET gemeldet = " . $user->id . ", zeit = NOW()" . " WHERE turnier = " . $this->turnierid . " AND nr = " . $runde . " AND dg = " . $dg;
     } else {
         $query = "UPDATE #__clm_turniere_rnd_termine" . " SET editor = " . $user->id . ", edit_zeit = NOW()" . " WHERE turnier = " . $this->turnierid . " AND nr = " . $runde . " AND dg = " . $dg;
     }
     $this->_db->setQuery($query);
     $this->_db->query();
     // Berechne oder Lösche die inoff. DWZ nach dieser Änderung
     $turParams = new clm_class_params(clm_core::$db->turniere->get($this->turnierid)->params);
     $autoDWZ = $turParams->get("autoDWZ", 0);
     if ($autoDWZ == 0) {
         clm_core::$api->direct("db_tournament_genDWZ", array($this->turnierid, false));
     } else {
         if ($autoDWZ == 1) {
             clm_core::$api->direct("db_tournament_delDWZ", array($this->turnierid, false));
         }
     }
     // Log schreiben
     $clmLog = new CLMLog();
     $clmLog->aktion = $stringAction;
     $clmLog->params = array('tid' => $this->turnierid, 'rnd' => $runde);
     // TurnierID wird als LigaID gespeichert
     $clmLog->write();
     return true;
 }
Example #11
0
function clm_api_db_tournament()
{
    $table = '#__clm_turniere';
    $primaryKey = 'id';
    $columns = array(array('db' => 'id', 'dt' => 0), array('db' => 'name', 'dt' => 1), array('db' => 'sid', 'dt' => 2), array('db' => 'dateStart', 'dt' => 3), array('db' => 'invitationText', 'dt' => 4), array('db' => 'vereinZPS', 'dt' => 5), array('db' => 'typ', 'dt' => 6), array('db' => 'runden', 'dt' => 7), array('db' => 'teil', 'dt' => 8), array('db' => 'tl', 'dt' => 9), array('db' => 'id', 'dt' => 10), array('db' => 'rnd', 'dt' => 11), array('db' => 'published', 'dt' => 12), array('db' => 'ordering', 'dt' => 13), array('db' => 'id', 'dt' => 14));
    $allowed = array("typ" => "i", "published" => "i", "sid" => "i", "catidAlltime:catidEdition" => "i");
    $out = clm_class_DataTables::simple($_POST, $table, $primaryKey, $columns, $allowed, clm_core::$db);
    $lang = clm_core::$lang->tournament;
    $clmAccess = clm_core::$access;
    for ($i = 0; $i < count($out["data"]); $i++) {
        $out["data"][$i][0] = $i + 1;
        $out["data"][$i][1] = clm_class_category::name($out["data"][$i][14], false);
        if (!($out["data"][$i][9] != $clmAccess->getJid() and $clmAccess->access('BE_tournament_edit_detail') !== true or $clmAccess->access('BE_tournament_edit_detail') === false)) {
            $out["data"][$i][1] = '<a href="' . clm_core::$load->gen_url(array("view" => "turform", "task" => "edit", "id" => $out["data"][$i][14])) . '">' . $out["data"][$i][1] . '</a>';
        }
        // Saisonname statt sid Anzeigen
        $sid = intval($out["data"][$i][2]);
        $out["data"][$i][2] = clm_core::$db->saison->get($sid)->name;
        // dateStart durch dateStart und dateEnd ersetzen
        if (clm_core::$db->turniere->get($out["data"][$i][14])->dateStart != '0000-00-00') {
            $out["data"][$i][3] = clm_core::$load->date_to_string(clm_core::$db->turniere->get($out["data"][$i][14])->dateStart, false, true);
            if (clm_core::$db->turniere->get($out["data"][$i][14])->dateEnd != '0000-00-00') {
                $out["data"][$i][3] .= " " . $lang->until . " " . clm_core::$load->date_to_string(clm_core::$db->turniere->get($out["data"][$i][14])->dateEnd, false, true);
            }
        } else {
            $out["data"][$i][3] = $lang->unknownDate;
        }
        // Veranstalter / Ausrichter
        $out["data"][$i][5] = clm_core::$load->zps_to_district($out["data"][$i][5]);
        if (clm_core::$db->turniere->get($out["data"][$i][14])->bezirkTur == 1) {
            $out["data"][$i][5] = $lang->districtEvent . ($out["data"][$i][5] != "" ? "<br />" . $out["data"][$i][5] : "");
        }
        // Ausschreibung
        if ($out["data"][$i][4] == "") {
            $out["data"][$i][4] = $lang->column3_no;
        } else {
            $out["data"][$i][4] = $lang->column3_yes;
        }
        if (!($out["data"][$i][9] != $clmAccess->getJid() and $clmAccess->access('BE_tournament_edit_detail') !== true or $clmAccess->access('BE_tournament_edit_detail') === false)) {
            $out["data"][$i][4] = '<a href="' . clm_core::$load->gen_url(array("view" => "turinvite", "task" => "edit", "id" => $out["data"][$i][14])) . '">' . $out["data"][$i][4] . '</a>';
        }
        // Modus ID in Name umsetzen
        $out["data"][$i][6] = clm_core::$load->mode_to_name(intval($out["data"][$i][6]), false);
        // eingetragene Teilnehmer
        $query = 'SELECT COUNT(id)' . ' FROM #__clm_turniere_tlnr' . ' WHERE turnier = ' . $out["data"][$i][14];
        if (!($out["data"][$i][9] != $clmAccess->getJid() and $clmAccess->access('BE_tournament_edit_detail') !== true or $clmAccess->access('BE_tournament_edit_detail') === false)) {
            $out["data"][$i][8] = '<a href="' . clm_core::$load->gen_url(array("view" => "turplayers", "task" => "edit", "id" => $out["data"][$i][14])) . '">' . $out["data"][$i][8] . " " . $lang->player . '</a>' . "<br/>" . $lang->open . clm_core::$db->count($query) . " " . $lang->registered . $lang->close;
        } else {
            $out["data"][$i][8] = $out["data"][$i][8] . " " . $lang->player . "<br/>" . $lang->open . clm_core::$db->count($query) . " " . $lang->registered . $lang->close;
        }
        // Runden mit Bestätigung/tl_ok
        // eingetragene Teilnehmer
        $query = 'SELECT COUNT(id)' . ' FROM #__clm_turniere_rnd_termine' . ' WHERE turnier = ' . $out["data"][$i][14] . ' AND tl_ok = \'1\'';
        // Durchläufe Anzeigen
        if (clm_core::$db->turniere->get($out["data"][$i][14])->dg > 1) {
            $out["data"][$i][7] = clm_core::$db->turniere->get($out["data"][$i][14])->dg . " x " . $out["data"][$i][7];
        }
        if (!($out["data"][$i][9] != $clmAccess->getJid() and $clmAccess->access('BE_tournament_edit_detail') !== true or $clmAccess->access('BE_tournament_edit_detail') === false)) {
            $out["data"][$i][7] = '<a href="' . clm_core::$load->gen_url(array("view" => "turrounds", "task" => "edit", "id" => $out["data"][$i][14])) . '">' . $out["data"][$i][7] . " " . $lang->rounds . '</a>' . "<br/>" . $lang->open . clm_core::$db->count($query) . " " . $lang->confirmed . $lang->close;
        } else {
            $out["data"][$i][7] = $out["data"][$i][7] . " " . $lang->rounds . "<br/>" . $lang->open . clm_core::$db->count($query) . " " . $lang->confirmed . $lang->close;
        }
        // Turnierleiter
        $query = 'SELECT name' . ' FROM #__clm_user' . ' WHERE jid = ' . $out["data"][$i][9] . ' AND sid = ' . $sid;
        $result = clm_core::$db->loadAssocList($query);
        if (count($result) == 1) {
            $out["data"][$i][9] = $result[0]["name"];
        } else {
            $out["data"][$i][9] = "-";
        }
        // DWZ berechnet
        $params = clm_core::$db->turniere->get($out["data"][$i][10])->params;
        $params = new clm_class_params($params);
        if ($params->get("inofDWZ", "0") == "1") {
            $out["data"][$i][10] = '<button class="clm_table_image" value=\'["db_tournament_delDWZ",[' . $out["data"][$i][14] . ',false]]\'><img width="16" height="16" src="' . clm_core::$load->gen_image_url("table/apply") . '" /></button>';
        } else {
            $out["data"][$i][10] = '<button class="clm_table_image" value=\'["db_tournament_genDWZ",[' . $out["data"][$i][14] . ',false]]\'><img width="16" height="16" src="' . clm_core::$load->gen_image_url("table/cancel") . '" /></button>';
        }
        // Runden freigegeben
        if ($out["data"][$i][11] == 1) {
            $out["data"][$i][11] = '<button class="clm_table_image clm_button_del_danger" value=\'["db_tournament_delRounds",[' . $out["data"][$i][14] . ',false]]\'><img width="16" height="16" src="' . clm_core::$load->gen_image_url("table/apply") . '" /></button>';
        } else {
            $out["data"][$i][11] = '<button class="clm_table_image" value=\'["db_tournament_genRounds",[' . $out["data"][$i][14] . ',false]]\'><img width="16" height="16" src="' . clm_core::$load->gen_image_url("table/cancel") . '" /></button>';
        }
        // Veröffentlicht
        if ($out["data"][$i][12] == 1) {
            $out["data"][$i][12] = '<button class="clm_table_image " value=\'["db_tournament_publish",[' . $out["data"][$i][14] . ',false,false]]\'><img width="16" height="16" src="' . clm_core::$load->gen_image_url("table/apply") . '" /></button>';
        } else {
            $out["data"][$i][12] = '<button class="clm_table_image" value=\'["db_tournament_publish",[' . $out["data"][$i][14] . ',true,false]]\'><img width="16" height="16" src="' . clm_core::$load->gen_image_url("table/cancel") . '" /></button>';
        }
        $out["data"][$i][13] = '<input class="clm_table_orderingBox" onkeypress="return clm_isChangeNumber(event);" value="' . $out["data"][$i][13] . '" type="text">';
        $out["data"][$i][13] .= '<input class="clm_table_orderingId" value="' . $out["data"][$i][14] . '" type="hidden">';
    }
    return array(true, "m_tableSuccess", $out);
}
Example #12
0
 function _getPlayerPhoto()
 {
     // JoomGallery-Parameter auswerten
     $turParams = new clm_class_params($this->turnier->params);
     $this->joomGalleryPhotosWidth = $turParams->get('joomGalleryPhotosWidth', '');
     if (!is_numeric($this->joomGalleryPhotosWidth)) {
         $this->joomGalleryPhotosWidth = 0;
     }
     $joomGalleryDisplayPlayerPhotos = $turParams->get('joomGalleryDisplayPlayerPhotos', 0);
     $joomGalleryCatId = $turParams->get('joomGalleryCatId', '');
     if ($joomGalleryDisplayPlayerPhotos == 1 and $joomGalleryCatId != '') {
         $query = "SELECT id" . " FROM #__joomgallery" . " WHERE catid = " . $joomGalleryCatId . " AND ordering = " . $this->snr;
         $this->_db->setQuery($query);
         $playerPhotoId = $this->_db->loadObject();
         if (isset($playerPhotoId->id)) {
             $this->playerPhoto = $playerPhotoId->id;
         } else {
             $this->playerPhoto = '';
         }
     } else {
         $this->playerPhoto = '';
     }
 }
 /**
  * errechnet/aktualisiert Rangliste/Punktesummen eines Turniers
  */
 function calculateRanking()
 {
     // Parameter auslesen, für FIDE-Ranglistenkorrektur und TWZ
     $query = 'SELECT `params`' . ' FROM #__clm_turniere' . ' WHERE id = ' . $this->turnierid;
     $this->_db->setQuery($query);
     $turParams = new clm_class_params($this->_db->loadResult());
     $paramTBFideCorrect = $turParams->get('optionTiebreakersFideCorrect', 0);
     $paramuseAsTWZ = $turParams->get('useAsTWZ', 0);
     $query = ' *' . ' FROM #__clm_turniere' . ' WHERE id = ' . $this->turnierid;
     $this->_db->setQuery($query);
     $dg = $this->data->dg;
     $runden = $this->data->runden;
     $teil = $this->data->teil;
     if ($this->data->typ != 1) {
         $paramTBFideCorrect = 0;
     }
     $sieg = $this->data->sieg;
     $siegs = $this->data->siegs;
     $remis = $this->data->remis;
     $remiss = $this->data->remiss;
     $nieder = $this->data->nieders;
     $niederk = $this->data->niederk;
     //Turnierteilnehmer
     $query = " SELECT a.* " . " FROM #__clm_turniere_tlnr as a " . " WHERE turnier = " . $this->turnierid . " ORDER BY a.snr ";
     $this->_db->setQuery($query);
     $player = $this->_db->loadObjectList();
     // TWZ ggf. korrigieren
     foreach ($player as $player1) {
         if ($paramuseAsTWZ == 0) {
             if ($player1->FIDEelo >= $player1->start_dwz) {
                 $player1->twz = $player1->FIDEelo;
             } else {
                 $player1->twz = $player1->start_dwz;
             }
         } elseif ($paramuseAsTWZ == 1) {
             if ($player1->start_dwz > 0) {
                 $player1->twz = $player1->start_dwz;
             } else {
                 $player1->twz = $player1->FIDEelo;
             }
         } elseif ($paramuseAsTWZ == 2) {
             if ($player1->FIDEelo > 0) {
                 $player1->twz = $player1->FIDEelo;
             } else {
                 $player1->twz = $player1->start_dwz;
             }
         }
     }
     //bisherige Rankingdaten löschen
     $query = "UPDATE #__clm_turniere_tlnr" . " SET sum_punkte = 0, sum_wins = 0, " . " anz_spiele = 0, " . " sumTiebr1 = 0, sumTiebr2 = 0, sumTiebr3 = 0 " . " WHERE turnier = " . $this->turnierid;
     $this->_db->setQuery($query);
     $this->_db->query();
     // alle FW in Array schreiben
     $arrayFW = array();
     for ($tb = 1; $tb <= 3; $tb++) {
         $fieldname = 'tiebr' . $tb;
         $arrayFW[$tb] = $this->data->{$fieldname};
     }
     // für alle Spieler Datensätze mit Summenwert 0 anlegen
     // TODO: da gab es einen eigenen PHP-Befehl für?!
     $array_PlayerSpiele = array();
     $array_PlayerPunkte = array();
     $array_PlayerPunkteTB = array();
     // Punkte, die für Feinwertungen herangezogen werden
     $array_PlayerBuch = array();
     $array_PlayerBuchOpp = array();
     $array_PlayerBuch1St = array();
     $array_PlayerBuchm11 = array();
     $array_PlayerBuchm22 = array();
     $array_PlayerSoBe = array();
     $array_PlayerSoBeOpp = array();
     $array_PlayerBuSum = array();
     $array_PlayerBuSum1St = array();
     $array_PlayerWins = array();
     $array_PlayerElo = array();
     $array_PlayerEloOpp = array();
     $array_PlayerElo1St = array();
     $array_PlayerSumWert = array();
     $array_PlayerBuSumMin = array();
     $array_PlayerBuSum1StMin = array();
     $array_PlayerDWZ = array();
     $array_PlayerDWZOpp = array();
     $array_PlayerDWZ1St = array();
     $array_PlayerTWZ = array();
     $array_PlayerTWZOpp = array();
     $array_PlayerTWZ1St = array();
     for ($s = 0; $s <= $this->data->teil; $s++) {
         // alle Startnummern durchgehen
         $array_PlayerSpiele[$s] = 0;
         $array_PlayerPunkte[$s] = 0;
         $array_PlayerPunkteTB[$s] = 0;
         $array_PlayerBuch[$s] = 0;
         $array_PlayerBuch1ST[$s] = 0;
         $array_PlayerBuchm11[$s] = 0;
         $array_PlayerBuchm22[$s] = 0;
         $array_PlayerSoBe[$s] = 0;
         $array_PlayerSoBeMin[$s] = 999;
         $array_PlayerBuSum[$s] = 0;
         $array_PlayerBuSum1St[$s] = 0;
         $array_PlayerBuSumMin[$s] = 999;
         $array_PlayerBuSum1StMin[$s] = 999;
         $array_PlayerWins[$s] = 0;
         $array_PlayerElo[$s] = 0;
         $array_PlayerElo1St[$s] = 0;
         $array_PlayerSumWert[$s] = 0;
         $array_PlayerDWZ[$s] = 0;
         $array_PlayerDWZ1St[$s] = 0;
         $array_PlayerTWZ[$s] = 0;
         $array_PlayerTWZ1St[$s] = 0;
     }
     // alle Matches in DatenArray schreiben
     $query = "SELECT m.tln_nr, m.heim, m.gegner, m.dg, m.runde, m.ergebnis, tl.FIDEelo, tl.start_dwz, tl.twz FROM `#__clm_turniere_rnd_spl` as m" . " LEFT JOIN #__clm_turniere_tlnr as tl ON tl.turnier = m.turnier AND tl.snr = m.gegner " . " WHERE m.turnier = " . $this->turnierid . " AND m.ergebnis IS NOT NULL";
     $this->_db->setQuery($query);
     $matchData = $this->_db->loadObjectList();
     $z = count($matchData);
     // Finden der letzten gespielten Runde
     // und Anlegen einer Matrix der gesetzten Matches
     $maxround = 0;
     $matrix = array();
     foreach ($matchData as $key => $value) {
         if (($value->ergebnis < 3 or $value->ergebnis > 8) and ($value->dg - 1) * $runden + $value->runde > $maxround) {
             $maxround = ($value->dg - 1) * $runden + $value->runde;
         }
         $matrix[$value->tln_nr][$value->dg][$value->runde] = 1;
     }
     // für Spieler, die nicht gesetzt wurden, werden spielfreie Pseudo-Paarungen angelegt (für FIDE-Ranglistenkorrektur)
     for ($s = 1; $s <= $teil; $s++) {
         // alle Startnummern durchgehen
         for ($d = 1; $d <= $dg; $d++) {
             // alle Durchgänge durchgehen
             for ($r = 1; $r <= $runden; $r++) {
                 // alle Runden durchgehen
                 if ($maxround < ($d - 1) * $runden + $r) {
                     break;
                 }
                 // nur bis zur aktuellen Runde
                 if (!isset($matrix[$s][$d][$r])) {
                     $matchData[$z] = new stdClass();
                     $matchData[$z]->tln_nr = $s;
                     $matchData[$z]->heim = 1;
                     $matchData[$z]->gegner = 0;
                     $matchData[$z]->dg = $d;
                     $matchData[$z]->runde = $r;
                     $matchData[$z]->ergebnis = 8;
                     // spielfrei
                     $z++;
                 }
             }
         }
     }
     // Punkte/Siege
     // alle Matches durchgehen -> Spieler erhalten Punkte und Wins
     foreach ($matchData as $key => $value) {
         if ($maxround < ($value->dg - 1) * $runden + $value->runde) {
             continue;
         }
         // Ignorieren von bereits gesetzten kampflos oder spielfrei in Folgerunden
         if ($value->tln_nr == 0) {
             continue;
         }
         //techn. Teilnehmer bei ungerader Teilnehmerzahl
         if ($value->heim == 1) {
             $vsieg = $sieg;
         } else {
             $vsieg = $siegs;
         }
         if ($value->heim == 1) {
             $vremis = $remis;
         } else {
             $vremis = $remiss;
         }
         //if ($value->ergebnis == 8) continue;  //spielfrei
         if ($value->ergebnis != 8) {
             $array_PlayerSpiele[$value->tln_nr] += 1;
         }
         if ($value->ergebnis == 2 or $value->ergebnis == 10) {
             // remis
             if ($value->heim == 1) {
                 $vremis = $remis;
             } else {
                 $vremis = $remiss;
             }
             $array_PlayerPunkte[$value->tln_nr] += $vremis;
             $array_PlayerPunkteTB[$value->tln_nr] += $vremis;
             $array_PlayerSumWert[$value->tln_nr] += $vremis * ($maxround - $value->runde + 1);
         } elseif ($value->ergebnis == 1 or $value->ergebnis == 5) {
             // Sieger
             $array_PlayerPunkte[$value->tln_nr] += $vsieg;
             $array_PlayerWins[$value->tln_nr] += 1;
             $array_PlayerSumWert[$value->tln_nr] += $maxround - $value->runde + 1;
             if ($value->ergebnis == 5 and $paramTBFideCorrect == 1) {
                 // kampflos gewonnen und FIDE-Korrektur eingestellt?
                 $array_PlayerPunkteTB[$value->tln_nr] += $vremis;
                 // FW-Korrektur Teil 1
             } else {
                 $array_PlayerPunkteTB[$value->tln_nr] += $vsieg;
             }
         } elseif ($value->ergebnis == 4 and $paramTBFideCorrect == 1) {
             // kampflos verloren und FIDE-Korrektur eingestellt?
             $array_PlayerPunkteTB[$value->tln_nr] += $vremis;
             // FW-Korrektur Teil 1
         } elseif ($value->ergebnis == 8 and $paramTBFideCorrect == 1) {
             // spielfrei und FIDE-Korrektur eingestellt?
             $array_PlayerPunkteTB[$value->tln_nr] += $vremis;
             // FW-Korrektur Teil 1
         } elseif ($value->ergebnis == 3 and $paramTBFideCorrect == 1) {
             // Ergebnis 0-0 und FIDE-Korrektur eingestellt?
             $array_PlayerPunkteTB[$value->tln_nr] += $vremis;
             // FW-Korrektur Teil 1
         } elseif ($value->ergebnis == 6 and $paramTBFideCorrect == 1) {
             // kampflos beide verloren -:- und FIDE-Korrektur eingestellt?
             $array_PlayerPunkteTB[$value->tln_nr] += $vremis;
             // FW-Korrektur Teil 1
         }
     }
     // Buchholz & Sonneborn-Berger
     // erneut alle Matches durchgehen -> Spieler erhalten Feinwertungen
     foreach ($matchData as $key => $value) {
         if ($maxround < ($value->dg - 1) * $runden + $value->runde) {
             continue;
         }
         // Ignorieren von bereits gesetzten kampflos oder spielfrei in Folgerunden
         //if ($value->tln_nr == 0) continue;  // Ignorieren von techn. Spielern
         // Buchholz
         if (in_array(1, $arrayFW) or in_array(2, $arrayFW) or in_array(11, $arrayFW) or in_array(12, $arrayFW) or in_array(5, $arrayFW) or in_array(15, $arrayFW)) {
             // beliebige Buchholz als TieBreaker gewünscht?
             if ($value->ergebnis < 3 or $value->ergebnis > 8 or $paramTBFideCorrect == 0) {
                 $array_PlayerBuchOpp[$value->tln_nr][] = $array_PlayerPunkteTB[$value->gegner];
                 // Array mit Gegnerwerten - für Streichresultat
             } else {
                 //Ranglistenkorrektur nach FIDE (Teil 2) nur für CH-Turniere
                 $query = "SELECT tln_nr, heim, gegner, dg, runde, ergebnis FROM `#__clm_turniere_rnd_spl`" . " WHERE turnier = " . $this->turnierid . " AND tln_nr = " . $value->tln_nr . " AND ergebnis IS NOT NULL" . " ORDER BY dg ASC, runde ASC";
                 $this->_db->setQuery($query);
                 $matchDataSnr = $this->_db->loadObjectList();
                 $PlayerPunkteKOR = 0;
                 foreach ($matchDataSnr as $key => $valuesnr) {
                     if ($maxround < ($valuesnr->dg - 1) * $runden + $valuesnr->runde) {
                         continue;
                     }
                     // Ignorieren von bereits gesetzten kampflos oder spielfrei in Folgerunden
                     if ($valuesnr->dg < $value->dg or $valuesnr->dg == $value->dg and $valuesnr->runde < $value->runde) {
                         if ($valuesnr->heim == 1) {
                             $vsieg = $sieg;
                         } else {
                             $vsieg = $siegs;
                         }
                         if ($valuesnr->heim == 1) {
                             $vremis = $remis;
                         } else {
                             $vremis = $remiss;
                         }
                         if ($valuesnr->ergebnis == 1) {
                             $PlayerPunkteKOR += $vsieg;
                         } elseif ($valuesnr->ergebnis == 2 or $valuesnr->ergebnis == 10) {
                             $PlayerPunkteKOR += $vremis;
                         } elseif ($valuesnr->ergebnis == 5) {
                             $PlayerPunkteKOR += $vsieg;
                         }
                         // Sieg kampflos
                     }
                 }
                 if ($value->heim == 1) {
                     $vsieg = $sieg;
                 } else {
                     $vsieg = $siegs;
                 }
                 if ($value->heim == 1) {
                     $vremis = $remis;
                 } else {
                     $vremis = $remiss;
                 }
                 if ($value->ergebnis == 4 or $value->ergebnis == 8) {
                     $PlayerPunkteKOR += $vsieg;
                 }
                 // Gegner gewinnt kampflos oder spielfrei
                 if ($value->ergebnis == 3 or $value->ergebnis == 6) {
                     $PlayerPunkteKOR += $vsieg;
                 }
                 // Gegner verliert auch kampflos, ist aber egal
                 //$PlayerPunkteKOR += 0.5 * (($runden * $dg) - (($value->dg - 1) * $runden) - $value->runde);
                 $PlayerPunkteKOR += $vremis * ($maxround - ($value->dg - 1) * $runden - $value->runde);
                 $array_PlayerBuchOpp[$value->tln_nr][] = $PlayerPunkteKOR;
                 // Array mit Gegnerwerten - für Streichresultat
             }
         }
         // Sonneborn-Berger
         if (in_array(3, $arrayFW) or in_array(13, $arrayFW)) {
             // SoBe als ein TieBreaker gewünscht?
             if ($value->ergebnis == 0 or $value->ergebnis == 9) {
                 $array_PlayerSoBeOpp[$value->tln_nr][] = 0;
                 // Array mit Gegnerwerten - für Streichresultat
             } elseif ($value->ergebnis == 1) {
                 $array_PlayerSoBeOpp[$value->tln_nr][] = $array_PlayerPunkteTB[$value->gegner];
                 // Array mit Gegnerwerten - für Streichresultat
             } elseif ($value->ergebnis == 2 or $value->ergebnis == 10) {
                 $array_PlayerSoBeOpp[$value->tln_nr][] = 0.5 * $array_PlayerPunkteTB[$value->gegner];
                 // Array mit Gegnerwerten - für Streichresultat
             } elseif ($value->ergebnis == 5 and $paramTBFideCorrect == 0) {
                 $array_PlayerSoBeOpp[$value->tln_nr][] = $array_PlayerPunkteTB[$value->gegner];
                 // Array mit Gegnerwerten - für Streichresultat
             } elseif ($paramTBFideCorrect == 0) {
                 $array_PlayerSoBeOpp[$value->tln_nr][] = 0;
                 // Array mit Gegnerwerten - für Streichresultat
             } else {
                 //Ranglistenkorrektur nach FIDE (Teil 2)
                 $query = "SELECT tln_nr, heim, gegner, dg, runde, ergebnis FROM `#__clm_turniere_rnd_spl`" . " WHERE turnier = " . $this->turnierid . " AND tln_nr = " . $value->tln_nr . " AND ergebnis IS NOT NULL" . " ORDER BY dg ASC, runde ASC";
                 $this->_db->setQuery($query);
                 $matchDataSnr = $this->_db->loadObjectList();
                 $PlayerPunkteKOR = 0;
                 foreach ($matchDataSnr as $key => $valuesnr) {
                     if ($maxround < ($valuesnr->dg - 1) * $runden + $valuesnr->runde) {
                         continue;
                     }
                     // Ignorieren von bereits gesetzten kampflos oder spielfrei in Folgerunden
                     if ($valuesnr->heim == 1) {
                         $vsieg = $sieg;
                     } else {
                         $vsieg = $siegs;
                     }
                     if ($valuesnr->heim == 1) {
                         $vremis = $remis;
                     } else {
                         $vremis = $remiss;
                     }
                     if ($valuesnr->dg < $value->dg or $valuesnr->dg == $value->dg and $valuesnr->runde < $value->runde) {
                         if ($valuesnr->ergebnis == 1) {
                             $PlayerPunkteKOR += $vsieg;
                         } elseif ($valuesnr->ergebnis == 2) {
                             $PlayerPunkteKOR += $vremis;
                         } elseif ($valuesnr->ergebnis == 5) {
                             $PlayerPunkteKOR += $vsieg;
                         }
                         // Sieg kampflos
                     }
                 }
                 if ($value->heim == 1) {
                     $vsieg = $sieg;
                 } else {
                     $vsieg = $siegs;
                 }
                 if ($value->heim == 1) {
                     $vremis = $remis;
                 } else {
                     $vremis = $remiss;
                 }
                 if ($value->ergebnis == 5) {
                     $PlayerFaktorKOR = $vsieg;
                 } else {
                     $PlayerFaktorKOR = 0;
                 }
                 $PlayerPunkteKOR += $vremis * ($maxround - ($value->dg - 1) * $runden - $value->runde);
                 //echo "<br>p: $value->tln_nr  PlayerPunkteKOR: "; var_dump($PlayerPunkteKOR);
                 $array_PlayerSoBeOpp[$value->tln_nr][] = $PlayerFaktorKOR * $PlayerPunkteKOR;
                 // Array mit Gegnerwerten - für Streichresultat
             }
             //echo "<br>p: $value->tln_nr  array_PlayerSoBeOpp: "; var_dump($array_PlayerSoBeOpp[$value->tln_nr]);
         }
         // Elo-Schnitt
         if (in_array(6, $arrayFW) or in_array(16, $arrayFW)) {
             // Elo-Schnitt als ein TieBreaker gewünscht?
             if ($value->gegner == 0) {
                 //$array_PlayerEloOpp[$value->tln_nr][] = 0; 	// Array mit Gegnerwerten - für Streichresultat
             } else {
                 if ($value->FIDEelo > 0) {
                     $array_PlayerEloOpp[$value->tln_nr][] = $value->FIDEelo;
                 } else {
                     $array_PlayerEloOpp[$value->tln_nr][] = $value->start_dwz;
                 }
             }
             // Array mit Gegnerwerten - für Streichresultat
         }
         // DWZ-Schnitt
         if (in_array(8, $arrayFW) or in_array(18, $arrayFW)) {
             // DWZ-Schnitt als ein TieBreaker gewünscht?
             if ($value->gegner == 0) {
                 //$array_PlayerDWZOpp[$value->tln_nr][] = 0; 	// Array mit Gegnerwerten - für Streichresultat
             } else {
                 if ($value->start_dwz > 0) {
                     $array_PlayerDWZOpp[$value->tln_nr][] = $value->start_dwz;
                 } else {
                     $array_PlayerDWZOpp[$value->tln_nr][] = $value->FIDEelo;
                 }
             }
             // Array mit Gegnerwerten - für Streichresultat
         }
         // TWZ-Schnitt
         if (in_array(9, $arrayFW) or in_array(19, $arrayFW)) {
             // TWZ-Schnitt als ein TieBreaker gewünscht?
             if ($value->gegner == 0) {
                 //$array_PlayerTWZOpp[$value->tln_nr][] = 0; 	// Array mit Gegnerwerten - für Streichresultat
             } else {
                 if ($value->twz > 0) {
                     $array_PlayerTWZOpp[$value->tln_nr][] = $value->twz;
                 } else {
                     $array_PlayerTWZOpp[$value->tln_nr][] = $value->start_dwz;
                 }
             }
             // Array mit Gegnerwerten - für Streichresultat
         }
     }
     // Sonneborn-Berger
     if (in_array(3, $arrayFW)) {
         // normale Sonneborn-Berger als TieBreaker gewünscht?
         for ($s = 1; $s <= $this->data->teil; $s++) {
             // alle Startnummern durchgehen
             if (!isset($array_PlayerSoBeOpp[$s])) {
                 $array_PlayerSoBe[$s] = 0;
             } elseif (count($array_PlayerSoBeOpp[$s]) == 1) {
                 $array_PlayerSoBe[$s] = $array_PlayerSoBeOpp[$s][0];
             } else {
                 $array_PlayerSoBe[$s] = array_sum($array_PlayerSoBeOpp[$s]);
             }
         }
     } elseif (in_array(13, $arrayFW)) {
         // Sonneborn-Berger mit Streichresultat
         for ($s = 1; $s <= $this->data->teil; $s++) {
             // alle Startnummern durchgehen
             if (!isset($array_PlayerSoBeOpp[$s])) {
                 $array_PlayerSoBe[$s] = 0;
             } elseif (count($array_PlayerSoBeOpp[$s]) == 0) {
                 $array_PlayerSoBe[$s] = 0;
             } elseif (count($array_PlayerSoBeOpp[$s]) == 1) {
                 $array_PlayerSoBe[$s] = $array_PlayerSoBeOpp[$s][0];
             } elseif (count($array_PlayerSoBeOpp[$s]) > 2) {
                 //== ($dg * $runden))
                 $array_PlayerSoBe[$s] = array_sum($array_PlayerSoBeOpp[$s]) - min($array_PlayerSoBeOpp[$s]);
             } else {
                 $array_PlayerSoBe[$s] = array_sum($array_PlayerSoBeOpp[$s]);
             }
         }
     }
     // Buchholz
     if (in_array(1, $arrayFW) or in_array(2, $arrayFW) or in_array(11, $arrayFW) or in_array(12, $arrayFW)) {
         // normale Buchholz als TieBreaker gewünscht?
         for ($s = 0; $s <= $this->data->teil; $s++) {
             // alle Startnummern durchgehen
             if (!isset($array_PlayerBuchOpp[$s])) {
                 $array_PlayerBuch[$s] = 0;
             } elseif (count($array_PlayerBuchOpp[$s]) == 1) {
                 $array_PlayerBuch[$s] = $array_PlayerBuchOpp[$s][0];
             } else {
                 $array_PlayerBuch[$s] = array_sum($array_PlayerBuchOpp[$s]);
             }
         }
     }
     // Buchholz 1 Streichresultat
     if (in_array(11, $arrayFW) or in_array(12, $arrayFW)) {
         // Buchholz mit Streichresultat
         for ($s = 0; $s <= $this->data->teil; $s++) {
             // alle Startnummern durchgehen
             if (!isset($array_PlayerBuchOpp[$s])) {
                 $array_PlayerBuch1St[$s] = 0;
             } elseif (count($array_PlayerBuchOpp[$s]) == 0) {
                 $array_PlayerBuch1St[$s] = 0;
             } elseif (count($array_PlayerBuchOpp[$s]) == 1) {
                 $array_PlayerBuch1St[$s] = $array_PlayerBuchOpp[$s][0];
             } elseif (count($array_PlayerBuchOpp[$s]) > 2) {
                 //== ($dg * $runden))
                 $array_PlayerBuch1St[$s] = array_sum($array_PlayerBuchOpp[$s]) - min($array_PlayerBuchOpp[$s]);
             } else {
                 $array_PlayerBuch1St[$s] = array_sum($array_PlayerBuchOpp[$s]);
             }
         }
     }
     // mittlere Buchholz 2 Streichresultate (höchstes und niedrigstes)
     if (in_array(5, $arrayFW)) {
         // Buchholz mit Streichresultat
         for ($s = 1; $s <= $this->data->teil; $s++) {
             // alle Startnummern durchgehen
             if (!isset($array_PlayerBuchOpp[$s])) {
                 $array_PlayerBuchm11[$s] = 0;
             } elseif (count($array_PlayerBuchOpp[$s]) == 0) {
                 $array_PlayerBuchm11[$s] = 0;
             } elseif (count($array_PlayerBuchOpp[$s]) == 1) {
                 $array_PlayerBuchm11[$s] = $array_PlayerBuchOpp[$s][0];
             } elseif (count($array_PlayerBuchOpp[$s]) == 2) {
                 $array_PlayerBuchm11[$s] = array_sum($array_PlayerBuchOpp[$s]);
             } elseif (count($array_PlayerBuchOpp[$s]) > 2) {
                 //== ($dg * $runden))
                 $array_PlayerBuchm11[$s] = array_sum($array_PlayerBuchOpp[$s]) - min($array_PlayerBuchOpp[$s]) - max($array_PlayerBuchOpp[$s]);
             } else {
                 $array_PlayerBuchm11[$s] = array_sum($array_PlayerBuchOpp[$s]);
             }
         }
     }
     // BuchholzSumme
     if (in_array(2, $arrayFW) or in_array(12, $arrayFW)) {
         // Buchholz-Summe als TieBreaker gewünscht?
         // erneut alle Matches durchgehen -> Spieler erhalten Buchholzsummen
         foreach ($matchData as $key => $value) {
             //if ($value->gegner >= 1) {
             $array_PlayerBuSum[$value->tln_nr] += $array_PlayerBuch[$value->gegner];
             if ($array_PlayerBuSumMin[$value->tln_nr] > $array_PlayerBuch[$value->gegner]) {
                 $array_PlayerBuSumMin[$value->tln_nr] = $array_PlayerBuch[$value->gegner];
             }
             //} else $array_PlayerBuSumMin[$value->tln_nr] = 0;
         }
     }
     // BuchholzSumme mit Streichresultat
     if (in_array(12, $arrayFW)) {
         // als TieBreaker gewünscht?
         foreach ($matchData as $key => $value) {
             $array_PlayerBuSum1St[$value->tln_nr] += $array_PlayerBuch1St[$value->gegner];
             if ($array_PlayerBuSum1StMin[$value->tln_nr] > $array_PlayerBuch1St[$value->gegner]) {
                 $array_PlayerBuSum1StMin[$value->tln_nr] = $array_PlayerBuch1St[$value->gegner];
             }
         }
         for ($s = 1; $s <= $this->data->teil; $s++) {
             // alle Startnummern durchgehen
             $array_PlayerBuSum1St[$s] = $array_PlayerBuSum1St[$s] - $array_PlayerBuSum1StMin[$s];
         }
     }
     // Elo-Schnitt
     if (in_array(6, $arrayFW)) {
         // Elo-Schnitt als TieBreaker gewünscht?
         for ($s = 1; $s <= $this->data->teil; $s++) {
             // alle Startnummern durchgehen
             if (!isset($array_PlayerEloOpp[$s])) {
                 $array_PlayerElo[$s] = 0;
             } elseif (count($array_PlayerEloOpp[$s]) == 1) {
                 $array_PlayerElo[$s] = $array_PlayerEloOpp[$s][0];
             } else {
                 $c_EloOpp = 0;
                 foreach ($array_PlayerEloOpp[$s] as $EloOpp) {
                     if ($EloOpp > 0) {
                         $c_EloOpp++;
                     }
                 }
                 if ($c_EloOpp == 0) {
                     $array_PlayerElo[$s] = 0;
                 } else {
                     $array_PlayerElo[$s] = array_sum($array_PlayerEloOpp[$s]) / $c_EloOpp;
                 }
             }
         }
     }
     // DWZ-Schnitt
     if (in_array(8, $arrayFW)) {
         // DWZ-Schnitt als TieBreaker gewünscht?
         for ($s = 1; $s <= $this->data->teil; $s++) {
             // alle Startnummern durchgehen
             if (!isset($array_PlayerDWZOpp[$s])) {
                 $array_PlayerDWZ[$s] = 0;
             } elseif (count($array_PlayerDWZOpp[$s]) == 1) {
                 $array_PlayerDWZ[$s] = $array_PlayerDWZOpp[$s][0];
             } else {
                 $c_DWZOpp = 0;
                 foreach ($array_PlayerDWZOpp[$s] as $DWZOpp) {
                     if ($DWZOpp > 0) {
                         $c_DWZOpp++;
                     }
                 }
                 if ($c_DWZOpp == 0) {
                     $array_PlayerDWZ[$s] = 0;
                 } else {
                     $array_PlayerDWZ[$s] = array_sum($array_PlayerDWZOpp[$s]) / $c_DWZOpp;
                 }
             }
         }
     }
     // TWZ-Schnitt
     if (in_array(9, $arrayFW)) {
         // TWZ-Schnitt als TieBreaker gewünscht?
         for ($s = 1; $s <= $this->data->teil; $s++) {
             // alle Startnummern durchgehen
             if (!isset($array_PlayerTWZOpp[$s])) {
                 $array_PlayerTWZ[$s] = 0;
             } elseif (count($array_PlayerTWZOpp[$s]) == 1) {
                 $array_PlayerTWZ[$s] = $array_PlayerTWZOpp[$s][0];
             } else {
                 $c_TWZOpp = 0;
                 foreach ($array_PlayerTWZOpp[$s] as $TWZOpp) {
                     if ($TWZOpp > 0) {
                         $c_TWZOpp++;
                     }
                 }
                 if ($c_TWZOpp == 0) {
                     $array_PlayerTWZ[$s] = 0;
                 } else {
                     $array_PlayerTWZ[$s] = array_sum($array_PlayerTWZOpp[$s]) / $c_TWZOpp;
                 }
             }
         }
     }
     // Elo-Schnitt mit Streichresultat
     if (in_array(16, $arrayFW)) {
         // Elo-Schnitt als TieBreaker gewünscht?
         for ($s = 1; $s <= $this->data->teil; $s++) {
             // alle Startnummern durchgehen
             if (!isset($array_PlayerEloOpp[$s])) {
                 $array_PlayerElo1St[$s] = 0;
             } elseif (count($array_PlayerEloOpp[$s]) == 1) {
                 $array_PlayerElo1St[$s] = 0;
             } else {
                 $c_EloOpp = 0;
                 foreach ($array_PlayerEloOpp[$s] as $EloOpp) {
                     if ($EloOpp > 0) {
                         $c_EloOpp++;
                     }
                 }
                 if ($c_EloOpp == 0) {
                     $array_PlayerElo1St[$s] = 0;
                 } else {
                     if (min($array_PlayerEloOpp[$s]) == 0) {
                         $array_PlayerElo1St[$s] = array_sum($array_PlayerEloOpp[$s]) / $c_EloOpp;
                     } elseif ($c_EloOpp == 1) {
                         $array_PlayerElo1St[$s] = array_sum($array_PlayerEloOpp[$s]);
                     } else {
                         $array_PlayerElo1St[$s] = (array_sum($array_PlayerEloOpp[$s]) - min($array_PlayerEloOpp[$s])) / ($c_EloOpp - 1);
                     }
                 }
             }
         }
     }
     // DWZ-Schnitt mit Streichresultat
     if (in_array(18, $arrayFW)) {
         // DWZ-Schnitt als TieBreaker gewünscht?
         for ($s = 1; $s <= $this->data->teil; $s++) {
             // alle Startnummern durchgehen
             if (!isset($array_PlayerDWZOpp[$s])) {
                 $array_PlayerDWZ1St[$s] = 0;
             } elseif (count($array_PlayerDWZOpp[$s]) == 1) {
                 $array_PlayerDWZ1St[$s] = 0;
             } else {
                 $c_DWZOpp = 0;
                 foreach ($array_PlayerDWZOpp[$s] as $DWZOpp) {
                     if ($DWZOpp > 0) {
                         $c_DWZOpp++;
                     }
                 }
                 if ($c_DWZOpp == 0) {
                     $array_PlayerDWZ1St[$s] = 0;
                 } else {
                     if (min($array_PlayerDWZOpp[$s]) == 0) {
                         $array_PlayerDWZ1St[$s] = array_sum($array_PlayerDWZOpp[$s]) / $c_DWZOpp;
                     } elseif ($c_DWZOpp == 1) {
                         $array_PlayerDWZ1St[$s] = array_sum($array_PlayerDWZOpp[$s]);
                     } else {
                         $array_PlayerDWZ1St[$s] = (array_sum($array_PlayerDWZOpp[$s]) - min($array_PlayerDWZOpp[$s])) / ($c_DWZOpp - 1);
                     }
                 }
             }
         }
     }
     // TWZ-Schnitt mit Streichresultat
     if (in_array(19, $arrayFW)) {
         // TWZ-Schnitt als TieBreaker gewünscht?
         for ($s = 1; $s <= $this->data->teil; $s++) {
             // alle Startnummern durchgehen
             if (!isset($array_PlayerTWZOpp[$s])) {
                 $array_PlayerTWZ1St[$s] = 0;
             } elseif (count($array_PlayerTWZOpp[$s]) == 1) {
                 $array_PlayerTWZ1St[$s] = 0;
             } else {
                 $c_TWZOpp = 0;
                 foreach ($array_PlayerTWZOpp[$s] as $TWZOpp) {
                     if ($TWZOpp > 0) {
                         $c_TWZOpp++;
                     }
                 }
                 if ($c_TWZOpp == 0) {
                     $array_PlayerTWZ1St[$s] = 0;
                 } else {
                     if (min($array_PlayerTWZOpp[$s]) == 0) {
                         $array_PlayerTWZ1St[$s] = array_sum($array_PlayerTWZOpp[$s]) / $c_TWZOpp;
                     } elseif ($c_TWZOpp == 1) {
                         $array_PlayerTWZ1St[$s] = array_sum($array_PlayerTWZOpp[$s]);
                     } else {
                         $array_PlayerTWZ1St[$s] = (array_sum($array_PlayerTWZOpp[$s]) - min($array_PlayerTWZOpp[$s])) / ($c_TWZOpp - 1);
                     }
                 }
             }
         }
     }
     // alle Spieler durchgehen und updaten (kein vorheriges Löschen notwendig)
     for ($s = 1; $s <= $this->data->teil; $s++) {
         // alle Startnummern durchgehen
         // den TiebrSummen ihre Werte zuordnen
         for ($tb = 1; $tb <= 3; $tb++) {
             $fieldname = 'tiebr' . $tb;
             switch ($this->data->{$fieldname}) {
                 case 1:
                     // buchholz
                     $sumTiebr[$tb] = $array_PlayerBuch[$s];
                     break;
                 case 2:
                     // bhhlz.-summe
                     $sumTiebr[$tb] = $array_PlayerBuSum[$s];
                     break;
                 case 3:
                     // sobe
                     $sumTiebr[$tb] = $array_PlayerSoBe[$s];
                     break;
                 case 4:
                     // wins
                     $sumTiebr[$tb] = $array_PlayerWins[$s];
                     break;
                 case 5:
                     // mittl. bhhlz mit 2 streichresultat
                     $sumTiebr[$tb] = $array_PlayerBuchm11[$s];
                     break;
                 case 6:
                     // elo-schnitt
                     $sumTiebr[$tb] = $array_PlayerElo[$s];
                     break;
                 case 7:
                     // summenwertung
                     $sumTiebr[$tb] = $array_PlayerSumWert[$s];
                     break;
                 case 8:
                     // DWZ-schnitt
                     $sumTiebr[$tb] = $array_PlayerDWZ[$s];
                     break;
                 case 9:
                     // TWZ-schnitt
                     $sumTiebr[$tb] = $array_PlayerTWZ[$s];
                     break;
                 case 11:
                     // bhhlz mit 1 streichresultat
                     $sumTiebr[$tb] = $array_PlayerBuch1St[$s];
                     break;
                 case 12:
                     // bhhlz.-summe mit 1 streichresultat
                     $sumTiebr[$tb] = $array_PlayerBuSum1St[$s];
                     break;
                 case 13:
                     // sobe mit 1 streichresultat
                     $sumTiebr[$tb] = $array_PlayerSoBe[$s];
                     break;
                 case 15:
                     // mittl. bhhlz mit 4 streichresultat
                     $sumTiebr[$tb] = $array_PlayerBuchm22[$s];
                     break;
                 case 16:
                     // elo-schnitt mit 1 streichresultat
                     $sumTiebr[$tb] = $array_PlayerElo1St[$s];
                     break;
                 case 18:
                     // DWZ-schnitt mit 1 streichresultat
                     $sumTiebr[$tb] = $array_PlayerDWZ1St[$s];
                     break;
                 case 19:
                     // TWZ-schnitt mit 1 streichresultat
                     $sumTiebr[$tb] = $array_PlayerTWZ1St[$s];
                     break;
                 case 29:
                     // Prozentpunkte
                     if ($array_PlayerSpiele[$s] == 0) {
                         $sumTiebr[$tb] = 0;
                     } else {
                         $sumTiebr[$tb] = $array_PlayerPunkte[$s] * 100 / $array_PlayerSpiele[$s];
                     }
                     break;
                 case 51:
                     // ordering
                     $sumTiebr[$tb] = 1000 - $player[$s - 1]->ordering;
                     break;
                 default:
                     $sumTiebr[$tb] = 0;
             }
         }
         if ($player[$s - 1]->twz == "") {
             $player[$s - 1]->twz = "0";
         }
         $query = "UPDATE #__clm_turniere_tlnr" . " SET sum_punkte = " . $array_PlayerPunkte[$s] . ", sum_wins = " . $array_PlayerWins[$s] . ", " . " anz_spiele = " . $array_PlayerSpiele[$s] . ", " . " sumTiebr1 = " . $sumTiebr[1] . ", sumTiebr2 = " . $sumTiebr[2] . ", sumTiebr3 = " . $sumTiebr[3] . "," . " twz = " . $player[$s - 1]->twz . " WHERE turnier = " . $this->turnierid . " AND snr = " . $s;
         $this->_db->setQuery($query);
         $this->_db->query();
         // nur zur Verzögerung, damit UPDATE fertig ist bevor unten SELECT startet
         for ($xx = 0; $xx <= 1000; $xx++) {
         }
     }
     if ($this->data->tiebr1 == 25 or $this->data->tiebr2 == 25 or $this->data->tiebr3 == 25) {
         $query = "SELECT * " . " FROM `#__clm_turniere_tlnr`" . " WHERE turnier = " . $this->turnierid . " ORDER BY sum_punkte DESC, sumTiebr1 DESC, sumTiebr2 DESC, sumTiebr3 DESC, snr ASC";
         $this->_db->setQuery($query);
         $players = $this->_db->loadObjectList();
         // alle Spieler durchgehen
         foreach ($players as $xvalue) {
             $sum_erg = 0;
             $id_dv = 0;
             // alle Spieler durchgehen
             foreach ($players as $yvalue) {
                 if ($xvalue->snr == $yvalue->snr) {
                     continue;
                 }
                 // sind x und y wertungsgleich ?
                 if ($this->data->tiebr1 == 25 and $xvalue->sum_punkte == $yvalue->sum_punkte or $this->data->tiebr2 == 25 and $xvalue->sum_punkte == $yvalue->sum_punkte and $xvalue->sumTiebr1 == $yvalue->sumTiebr1 or $this->data->tiebr3 == 25 and $xvalue->sum_punkte == $yvalue->sum_punkte and $xvalue->sumTiebr1 == $yvalue->sumTiebr1 and $xvalue->sumTiebr2 == $yvalue->sumTiebr2) {
                     $id_dv = 1;
                     // alle Matches in DatenArray schreiben
                     $query = "SELECT * FROM `#__clm_turniere_rnd_spl` as m" . " WHERE turnier = " . $this->turnierid . " AND ergebnis IS NOT NULL" . " AND tln_nr = " . $xvalue->snr . " AND gegner = " . $yvalue->snr;
                     $this->_db->setQuery($query);
                     $matchesdirect = $this->_db->loadObjectList();
                     $zdirect = count($matchesdirect);
                     foreach ($matchesdirect as $mdvalue) {
                         if ($mdvalue->ergebnis == 2 or $mdvalue->ergebnis == 10) {
                             $sum_erg += 1;
                         } elseif ($mdvalue->ergebnis == 1 or $mdvalue->ergebnis == 5) {
                             $sum_erg += 2;
                         }
                     }
                 }
             }
             if ($id_dv == 1) {
                 $query = "UPDATE #__clm_turniere_tlnr";
                 if ($this->data->tiebr1 == 25) {
                     $query .= " SET sumTiebr1 = " . $sum_erg;
                 } elseif ($this->data->tiebr2 == 25) {
                     $query .= " SET sumTiebr2 = " . $sum_erg;
                 } else {
                     $query .= " SET sumTiebr3 = " . $sum_erg;
                 }
                 $query .= " WHERE turnier = " . $this->turnierid . " AND snr = " . $xvalue->snr;
                 $this->_db->setQuery($query);
                 $this->_db->query();
             } else {
                 $query = "UPDATE #__clm_turniere_tlnr";
                 if ($this->data->tiebr1 == 25) {
                     $query .= " SET sumTiebr1 = NULL";
                 } elseif ($this->data->tiebr2 == 25) {
                     $query .= " SET sumTiebr2 = NULL";
                 } else {
                     $query .= " SET sumTiebr3 = NULL";
                 }
                 $query .= " WHERE turnier = " . $this->turnierid . " AND snr = " . $xvalue->snr;
                 $this->_db->setQuery($query);
                 $this->_db->query();
             }
         }
     }
 }
function clm_api_db_tournament_copy($id, $group = true)
{
    $id = clm_core::$load->make_valid($id, 0, -1);
    if ($group) {
        $table_list = "#__clm_liga";
    } else {
        $table_list = "#__clm_turniere";
    }
    $sql = "SELECT * FROM " . $table_list . " WHERE id=" . $id;
    $table = clm_core::$db->loadAssocList($sql);
    $before_ID = $id;
    $lang = clm_core::$lang->tournament;
    $table[0]["name"] = $lang->copy2 . " " . $table[0]["name"];
    $table[0]["rnd"] = 0;
    $table[0]["published"] = 0;
    $out = new clm_class_params($table[0]["params"]);
    $out->set("dwz_date", "");
    $out->set("inofDWZ", "");
    $table[0]["params"] = $out->params();
    $keyS = "";
    $valueS = "";
    foreach ($table[0] as $key => $value) {
        if (is_numeric($key) || $key == "id") {
            continue;
        }
        if ($keyS != "") {
            $keyS .= ", ";
        }
        $keyS .= "`" . $key . "`";
        if ($valueS != "") {
            $valueS .= ", ";
        }
        $valueS .= "'" . clm_core::$db->escape($value) . "'";
    }
    $new = "INSERT INTO " . $table_list . " (" . $keyS . ") VALUES (" . $valueS . ")";
    clm_core::$db->query($new);
    $after_ID = clm_core::$db->insert_id();
    if (!$group) {
        return array(true, "");
    }
    if ($after_ID !== false and $after_ID != 0 and $after_ID != $before_ID) {
        // Runden und Rundentermine für neuen Mannschaftswettbewerb anlegen
        clm_core::$api->db_tournament_genRounds($after_ID, true);
        // copy Rundentermine für Mannschaftswettbewerbe
        $sql = "SELECT * FROM #__clm_runden_termine WHERE liga=" . $id . " ORDER BY nr ASC";
        $runden = clm_core::$db->loadAssocList($sql);
        // alle Runden durchgehen
        foreach ($runden as $runde) {
            $new = "UPDATE #__clm_runden_termine " . " SET name = '" . $runde["name"] . "'" . ", datum = '" . $runde["datum"] . "'" . ", startzeit = '" . $runde["startzeit"] . "'" . ", deadlineday = '" . $runde["deadlineday"] . "'" . ", deadlinetime = '" . $runde["deadlinetime"] . "'" . ", published = " . $runde["published"] . ", ordering = " . $runde["ordering"] . ", enddatum = '" . $runde["enddatum"] . "'" . " WHERE liga = " . $after_ID . " AND nr = " . $runde["nr"];
            clm_core::$db->query($new);
        }
        // Mannschaften anlegen
        for ($x = 1; $x < 1 + $table[0]['teil']; $x++) {
            $man_name = $lang->LIGEN_STD_TEAM . " " . $x;
            if ($x < 10) {
                $man_nr = $after_ID . '0' . $x;
            } else {
                $man_nr = $after_ID . $x;
            }
            $newt = " INSERT INTO #__clm_mannschaften " . " (`sid`,`name`,`liga`,`zps`,`liste`,`edit_liste`,`man_nr`,`tln_nr`,`mf`,`published`) " . " VALUES ('" . $table[0]['sid'] . "','{$man_name}','{$after_ID}','1','0','0','{$man_nr}','{$x}','0','0') ";
            clm_core::$db->query($newt);
        }
    }
    return array(true, "before_ID:" . $before_ID . "  after_ID:" . $after_ID);
}
Example #15
0
 public static function name($id, $group = true)
 {
     if ($group) {
         $table = "liga";
     } else {
         $table = "turniere";
     }
     $turParams = new clm_class_params(clm_core::$db->{$table}->get($id)->params);
     $addCatToName = $turParams->get('addCatToName', 0);
     if ($addCatToName != 0 && (clm_core::$db->{$table}->get($id)->catidAlltime > 0 || clm_core::$db->{$table}->get($id)->catidEdition > 0)) {
         return self::addCatToName($addCatToName, clm_core::$db->{$table}->get($id)->name, clm_core::$db->{$table}->get($id)->catidAlltime, clm_core::$db->{$table}->get($id)->catidEdition);
     }
     return clm_core::$db->{$table}->get($id)->name;
 }
Example #16
0
 function _getTurnierPlayers()
 {
     $query = "SELECT rankingPos, snr, name, sum_punkte, sumTiebr1, sumTiebr2, sumTiebr3, twz, '' AS quali" . " FROM `#__clm_turniere_tlnr`" . " WHERE turnier = " . $this->turnierid . $this->_getSpecialRankingWhere();
     // Sortierung nach Punkten
     if ($this->orderby == 'snr') {
         $orderby = ' ORDER BY snr ASC';
     } else {
         $orderby = ' ORDER BY rankingPos ASC, sum_punkte DESC';
     }
     $orderby .= ', sum_punkte DESC, sumTiebr1 DESC, sumTiebr2 DESC, sumTiebr3 DESC, snr ASC';
     $query .= $orderby;
     $this->_db->setQuery($query);
     $this->players = $this->_db->loadObjectList();
     $this->turnier->playersCount = count($this->players);
     //RankingPos neu berechnen für Sonderranglisten
     if ($this->turnier->playersCount != 0) {
         if ($this->spRang != 0) {
             $spRankingPos = 0;
             $rankingPosBefor = 0;
             foreach ($this->players as $key => $player) {
                 if ($rankingPosBefor != $player->rankingPos) {
                     $spRankingPos++;
                 }
                 $rankingPosBefor = $player->rankingPos;
                 $this->players[$key]->rankingPos = $spRankingPos;
             }
         }
     }
     if ($this->turnier->playersCount > 0) {
         if ($this->turnier->typ == 1) {
             // Ch-System
             // Spieler: position auf tln_nr aufteilen
             $this->posToPlayers = array();
             foreach ($this->players as $key => $value) {
                 // Position ist $key+1
                 $this->posToPlayers[$value->snr] = $key + 1;
             }
         } elseif ($this->turnier->typ == 2) {
             // Rundenturnier
             // Spieler: tln_nr auf Position aufteilen
             $this->posToPlayers = array();
             foreach ($this->players as $key => $value) {
                 // Position ist $key+1
                 $this->posToPlayers[$key + 1] = $value->snr;
             }
         }
     }
     //
     if ($this->orderby == 'pos') {
         $turParams = new clm_class_params($this->turnier->params);
         $qualiUp = $turParams->get('qualiUp', 0);
         $qualiUpPoss = $qualiUp + $turParams->get('qualiUpPoss', 0);
         $qualiDown = $turParams->get('qualiDown', 0);
         $qualiDownPoss = $qualiDown + $turParams->get('qualiDownPoss', 0);
         foreach ($this->players as $key => $value) {
             if ($qualiUp > 0 and $value->rankingPos <= $qualiUp) {
                 // Aufsteiger
                 $this->players[$key]->quali = '_auf';
             } elseif ($qualiUpPoss > 0 and $value->rankingPos <= $qualiUpPoss) {
                 // mgl. Aufsteiger
                 $this->players[$key]->quali = '_auf_evtl';
             } elseif ($qualiDown > 0 and $value->rankingPos > $this->turnier->teil - $qualiDown) {
                 // Absteiger
                 $this->players[$key]->quali = '_ab';
             } elseif ($qualiDownPoss > 0 and $value->rankingPos > $this->turnier->teil - $qualiDownPoss) {
                 // mgl. Absteiger
                 $this->players[$key]->quali = '_ab_evtl';
             }
         }
     }
 }
Example #17
0
<?php

/**
 * @ Chess League Manager (CLM) Component 
 * @Copyright (C) 2008 Thomas Schwietert & Andreas Dorn. All rights reserved
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
 * @link http://www.fishpoke.de
 * @author Thomas Schwietert
 * @email fishpoke@fishpoke.de
 * @author Andreas Dorn
 * @email webmaster@sbbl.org
*/
defined('_JEXEC') or die('Restricted access');
$turnierid = JRequest::getInt('turnier', '1');
$config = clm_core::$db->config();
$turParams = new clm_class_params($this->turnier->params);
require_once JPATH_COMPONENT . DS . 'includes' . DS . 'fpdf.php';
class PDF extends FPDF
{
    //Kopfzeile
    function Header()
    {
        require JPATH_COMPONENT . DS . 'includes' . DS . 'pdf_header.php';
    }
    //Fusszeile
    function Footer()
    {
        require JPATH_COMPONENT . DS . 'includes' . DS . 'pdf_footer.php';
    }
}
// Zellenhöhe -> Standard 6
Example #18
0
<?php

/**
 * @ Chess League Manager (CLM) Component 
 * @Copyright (C) 2008-2015 CLM Team  All rights reserved
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
 * @link http://www.chessleaguemanager.de
 * @author Thomas Schwietert
 * @email fishpoke@fishpoke.de
 * @author Andreas Dorn
 * @email webmaster@sbbl.org
*/
defined('_JEXEC') or die('Restricted access');
$turnierid = JRequest::getInt('turnier', '1');
$config = clm_core::$db->config();
$turParams = new clm_class_params($this->turnier->params);
require_once JPATH_COMPONENT . DS . 'includes' . DS . 'fpdf.php';
class PDF extends FPDF
{
    //Kopfzeile
    function Header()
    {
        require JPATH_COMPONENT . DS . 'includes' . DS . 'pdf_header.php';
    }
    //Fusszeile
    function Footer()
    {
        require JPATH_COMPONENT . DS . 'includes' . DS . 'pdf_footer.php';
    }
}
// Zellenhöhe -> Standard 6
Example #19
0
<?php

/**
 * @ Chess League Manager (CLM) Component 
 * @Copyright (C) 2008-2015 CLM Team  All rights reserved
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
 * @link http://www.chessleaguemanager.de
 * @author Thomas Schwietert
 * @email fishpoke@fishpoke.de
 * @author Andreas Dorn
 * @email webmaster@sbbl.org
*/
defined('_JEXEC') or die('Restricted access');
$turnierid = JRequest::getInt('turnier', '1');
$config = clm_core::$db->config();
$turParams = new clm_class_params($this->turnier->params);
$heim = array(1 => "W", 0 => "S");
require_once JPATH_COMPONENT . DS . 'includes' . DS . 'fpdf.php';
class PDF extends FPDF
{
    //Kopfzeile
    function Header()
    {
        require JPATH_COMPONENT . DS . 'includes' . DS . 'pdf_header.php';
    }
    //Fusszeile
    function Footer()
    {
        require JPATH_COMPONENT . DS . 'includes' . DS . 'pdf_footer.php';
    }
}
function clm_api_db_tournament_group()
{
    $table = '#__clm_liga';
    $primaryKey = 'id';
    $columns = array(array('db' => 'id', 'dt' => 0), array('db' => 'name', 'dt' => 1), array('db' => 'sid', 'dt' => 2), array('db' => 'runden_modus', 'dt' => 3), array('db' => 'runden', 'dt' => 4), array('db' => 'teil', 'dt' => 5), array('db' => 'stamm', 'dt' => 6), array('db' => 'sl', 'dt' => 7), array('db' => 'bemerkungen', 'dt' => 8), array('db' => 'mail', 'dt' => 9), array('db' => 'id', 'dt' => 10), array('db' => 'rnd', 'dt' => 11), array('db' => 'published', 'dt' => 12), array('db' => 'ordering', 'dt' => 13), array('db' => 'id', 'dt' => 14));
    // Erzwinge Filter bei unzureichenden Berechtigungen
    if (clm_core::$access->access('BE_league_general') == 1 && clm_core::$access->access('BE_teamtournament_general') == 0) {
        if (in_array('liga_mt', $_POST["names"])) {
            $_POST["values"][array_search("liga_mt", $_POST["names"])] = "0";
        } else {
            $_POST["names"][] = "liga_mt";
            $_POST["values"][] = "0";
        }
    } else {
        if (clm_core::$access->access('BE_league_general') == 0 && clm_core::$access->access('BE_teamtournament_general') == 1) {
            if (in_array('liga_mt', $_POST["names"])) {
                $_POST["values"][array_search("liga_mt", $_POST["names"])] = "1";
            } else {
                $_POST["names"][] = "liga_mt";
                $_POST["values"][] = "1";
            }
        }
    }
    $allowed = array("runden_modus" => "i", "published" => "i", "sid" => "i", "catidAlltime:catidEdition" => "i", "liga_mt" => "i");
    $out = clm_class_DataTables::simple($_POST, $table, $primaryKey, $columns, $allowed, clm_core::$db);
    $lang = clm_core::$lang->tournament_group;
    $clmAccess = clm_core::$access;
    for ($i = 0; $i < count($out["data"]); $i++) {
        if (clm_core::$db->liga->get($out["data"][$i][0])->liga_mt == 0) {
            $right = "league";
            $section = "ligen";
        } else {
            $right = "teamtournament";
            $section = "mturniere";
        }
        $out["data"][$i][0] = $i + 1;
        $out["data"][$i][1] = clm_class_category::name($out["data"][$i][14], true);
        if (!($out["data"][$i][7] != $clmAccess->getJid() and $clmAccess->access('BE_' . $right . '_edit_detail') !== true or $clmAccess->access('BE_' . $right . '_edit_detail') === false)) {
            //$out["data"][$i][1] = '<a href="'.clm_core::$load->gen_url(array("section"=>"ligen","task"=>"edit","cid[]"=>$out["data"][$i][14]),array("view")).'">'.$out["data"][$i][1].'</a>';
            $out["data"][$i][1] = '<a href="' . clm_core::$load->gen_url(array("section" => $section, "task" => "edit", "cid[]" => $out["data"][$i][14]), array("view")) . '">' . $out["data"][$i][1] . '</a>';
        }
        // Saisonname statt sid Anzeigen
        $sid = intval($out["data"][$i][2]);
        $out["data"][$i][2] = clm_core::$db->saison->get($sid)->name;
        // Modus ID in Name umsetzen
        $out["data"][$i][3] = clm_core::$load->mode_to_name(intval($out["data"][$i][3]), true);
        // Runden mit Bestätigung/sl_ok
        // eingetragene Teilnehmer
        $query = 'SELECT COUNT(id)' . ' FROM #__clm_runden_termine' . ' WHERE liga = ' . $out["data"][$i][14] . ' AND sl_ok = \'1\'';
        // Durchläufe Anzeigen
        if (clm_core::$db->liga->get($out["data"][$i][14])->durchgang > 1) {
            $out["data"][$i][4] = clm_core::$db->liga->get($out["data"][$i][14])->durchgang . " x " . $out["data"][$i][4];
        }
        if (!($out["data"][$i][7] != $clmAccess->getJid() and $clmAccess->access('BE_' . $right . '_edit_detail') !== true or $clmAccess->access('BE_' . $right . '_edit_detail') === false) and $out["data"][$i][11] == 1) {
            $out["data"][$i][4] = '<a href="' . clm_core::$load->gen_url(array("section" => "runden", "liga" => $out["data"][$i][14]), array("view")) . '">' . $out["data"][$i][4] . " " . $lang->rounds . '</a>' . "<br/>" . $lang->open . clm_core::$db->count($query) . " " . $lang->confirmed . $lang->close;
        } else {
            $out["data"][$i][4] = $out["data"][$i][4] . " " . $lang->rounds . "<br/>" . $lang->open . clm_core::$db->count($query) . " " . $lang->confirmed . $lang->close;
        }
        // Stammspieler + Ersatzspieler
        $out["data"][$i][6] = $out["data"][$i][6] . " " . $lang->open . $lang->plus . " " . clm_core::$db->liga->get($out["data"][$i][14])->ersatz . $lang->close;
        // Turnierleiter
        $query = 'SELECT name' . ' FROM #__clm_user' . ' WHERE jid = ' . $out["data"][$i][7] . ' AND sid = ' . $sid;
        $result = clm_core::$db->loadAssocList($query);
        if (count($result) == 1) {
            $out["data"][$i][7] = $result[0]["name"];
        } else {
            $out["data"][$i][7] = "-";
        }
        if ($out["data"][$i][8] == "") {
            $out["data"][$i][8] = $lang->column9_no;
        } else {
            $out["data"][$i][8] = '<a href="javascript:void(0);" onclick=\'clm_modal_display("' . htmlspecialchars($out["data"][$i][8], ENT_QUOTES, "UTF-8") . '")\' href="javascript:;" >' . $lang->column9_yes . '</a>';
        }
        // Mail
        if ($out["data"][$i][9] == 1) {
            $out["data"][$i][9] = '<button class="clm_table_image " value=\'["db_tournament_publish",[' . $out["data"][$i][14] . ',false,true,"mail"]]\'><img width="16" height="16" src="' . clm_core::$load->gen_image_url("table/apply") . '" /></button>';
        } else {
            $out["data"][$i][9] = '<button class="clm_table_image" value=\'["db_tournament_publish",[' . $out["data"][$i][14] . ',true,true,"mail"]]\'><img width="16" height="16" src="' . clm_core::$load->gen_image_url("table/cancel") . '" /></button>';
        }
        // DWZ berechnet
        $params = clm_core::$db->liga->get($out["data"][$i][10])->params;
        $params = new clm_class_params($params);
        if ($params->get("inofDWZ", "0") == "1") {
            $out["data"][$i][10] = '<button class="clm_table_image" value=\'["db_tournament_delDWZ",[' . $out["data"][$i][14] . ',true]]\'><img width="16" height="16" src="' . clm_core::$load->gen_image_url("table/apply") . '" /></button>';
        } else {
            $out["data"][$i][10] = '<button class="clm_table_image" value=\'["db_tournament_genDWZ",[' . $out["data"][$i][14] . ',true]]\'><img width="16" height="16" src="' . clm_core::$load->gen_image_url("table/cancel") . '" /></button>';
        }
        // Runden
        if ($out["data"][$i][11] == 1) {
            $out["data"][$i][11] = '<button class="clm_table_image " value=\'["db_tournament_delRounds",[' . $out["data"][$i][14] . ',true]]\'><img width="16" height="16" src="' . clm_core::$load->gen_image_url("table/apply") . '" /></button>';
        } else {
            $out["data"][$i][11] = '<button class="clm_table_image" value=\'["db_tournament_genRounds",[' . $out["data"][$i][14] . ',true]]\'><img width="16" height="16" src="' . clm_core::$load->gen_image_url("table/cancel") . '" /></button>';
        }
        // Veröffentlicht
        if ($out["data"][$i][12] == 1) {
            $out["data"][$i][12] = '<button class="clm_table_image " value=\'["db_tournament_publish",[' . $out["data"][$i][14] . ',false,true]]\'><img width="16" height="16" src="' . clm_core::$load->gen_image_url("table/apply") . '" /></button>';
        } else {
            $out["data"][$i][12] = '<button class="clm_table_image" value=\'["db_tournament_publish",[' . $out["data"][$i][14] . ',true,true]]\'><img width="16" height="16" src="' . clm_core::$load->gen_image_url("table/cancel") . '" /></button>';
        }
        $out["data"][$i][13] = '<input class="clm_table_orderingBox" onkeypress="return clm_isChangeNumber(event);" value="' . $out["data"][$i][13] . '" type="text">';
        $out["data"][$i][13] .= '<input class="clm_table_orderingId" value="' . $out["data"][$i][14] . '" type="hidden">';
    }
    return array(true, "m_tableSuccess", $out);
}
Example #21
0
defined('_JEXEC') or die('Restricted access');
//JHtml::_('behavior.tooltip', '.CLMTooltip', $params);
JHtml::_('behavior.tooltip', '.CLMTooltip');
// Stylesheet laden
require_once JPATH_COMPONENT . DS . 'includes' . DS . 'css_path.php';
// Konfigurationsparameter auslesen
$itemid = JRequest::getVar('Itemid');
// $turnierid		= JRequest::getInt('turnier','1');
$config = clm_core::$db->config();
// $pdf_melde 		= $config->pdf_meldelisten;
$fixth_ttln = $config->fixth_ttln;
// CLM-Container
echo "<div id='clm'><div id='turnier_teilnehmer'>";
// Componentheading
$heading = $this->turnier->name . ": " . JText::_('TOURNAMENT_DWZ');
$params = new clm_class_params($this->turnier->params);
$inofDWZ = $params->get("inofDWZ", "0");
$dwz_date = $params->get("dwz_date", "0000-00-00");
if ($this->turnier->published == 0) {
    echo CLMContent::componentheading($heading);
    require_once JPATH_COMPONENT . DS . 'includes' . DS . 'submenu_t.php';
    echo CLMContent::clmWarning(JText::_('TOURNAMENT_NOTPUBLISHED') . "<br/>" . JText::_('TOURNAMENT_PATIENCE'));
} elseif (count($this->players) == 0) {
    echo CLMContent::componentheading($heading);
    require_once JPATH_COMPONENT . DS . 'includes' . DS . 'submenu_t.php';
    echo CLMContent::clmWarning(JText::_('TOURNAMENT_NOPLAYERSREGISTERED'));
} elseif ($inofDWZ == 0) {
    echo CLMContent::componentheading($heading);
    require_once JPATH_COMPONENT . DS . 'includes' . DS . 'submenu_t.php';
    echo CLMContent::clmWarning(JText::_('TOURNAMENT_DWZ_NO'));
} else {
function clm_api_db_tournament_genDWZ($id, $group = true)
{
    $id = clm_core::$load->make_valid($id, 0, -1);
    if ($group) {
        $table_main = "#__clm_liga";
        $table_dates = "#__clm_runden_termine";
        $table_dates_id = "liga";
        $table_list = "#__clm_meldeliste_spieler";
        $table_list_id = "lid";
        $table_round = "#__clm_rnd_spl";
        $table_round_id = "lid";
        $playerId = "zps=? AND mgl_nr=? AND lid=?";
        $birthAndID = "";
    } else {
        $table_main = "#__clm_turniere";
        $table_dates = "#__clm_turniere_rnd_termine";
        $table_dates_id = "turnier";
        $table_list = "#__clm_turniere_tlnr";
        $table_list_id = "turnier";
        $table_round = "#__clm_turniere_rnd_spl";
        $table_round_id = "turnier";
        $playerId = "snr=? AND turnier=?";
        $birthAndID = ", birthYear, snr";
    }
    // Alte Ergebnisse entfernen
    clm_core::$api->db_tournament_delDWZ($id, $group);
    // Liga Punktebereich auslesen
    $query = 'SELECT sid' . ' FROM ' . $table_main . ' WHERE id=' . $id;
    $liga = clm_core::$db->loadObjectList($query);
    if (count($liga) == 0) {
        return array(true, "e_calculateDWZNoLiga");
    }
    $liga = $liga[0];
    // Vermeintliches Ende bestimmen
    $query = 'SELECT MAX(datum) as date' . ' FROM ' . $table_dates . ' WHERE ' . $table_dates_id . '=' . $id;
    $datum = clm_core::$db->loadObjectList($query);
    if (count($datum) == 0) {
        return array(true, "e_calculateDWZNoRound");
    }
    $year = substr($datum[0]->date, 0, 4);
    if ($year == "0000") {
        $year = date('Y');
        // Falls kein Jahr angegeben wurde
    } else {
        $year = intval($year);
    }
    // Lese alle beteiligten Spieler aus
    $query = 'SELECT zps, mgl_nr, start_dwz, start_I0, FIDEelo' . $birthAndID . ' FROM ' . $table_list . ' WHERE ' . $table_list_id . '=' . $id;
    $spieler = clm_core::$db->loadObjectList($query);
    $dwz = new clm_class_dwz_rechner();
    if (count($spieler) == 0) {
        return array(false, "e_DWZnoPlayer");
    }
    // Spieler zur DWZ Auswertung hinzufügen
    for ($i = 0; $i < count($spieler); $i++) {
        // SWT Importe besitzen keinen Index, falls die DWZ größer als 0 ist muss es jedoch einen geben.
        if ($spieler[$i]->start_I0 == 0 && $spieler[$i]->start_dwz > 0) {
            $spieler[$i]->start_I0 = 22;
        }
        if ($group) {
            $query = 'SELECT Geburtsjahr' . ' FROM #__clm_dwz_spieler' . ' WHERE sid=' . $liga->sid . ' AND ZPS="' . clm_core::$db->escape($spieler[$i]->zps) . '"' . ' AND Mgl_Nr="' . clm_core::$db->escape($spieler[$i]->mgl_nr) . '"';
            $birth = clm_core::$db->loadObjectList($query);
            if (count($birth) == 0) {
                // Spieler in der Saison gelöscht?
                $birth = 0;
                // Spieler wird als älter als 25 angenommen
            } else {
                $birth = $birth[0]->Geburtsjahr;
            }
            $dwz->addPlayer($spieler[$i]->zps . ":" . $spieler[$i]->mgl_nr, $year - $birth, $spieler[$i]->start_dwz, $spieler[$i]->start_I0);
        } else {
            if (intval($spieler[$i]->birthYear) == 0) {
                $spieler[$i]->birthYear = $year - 100;
            }
            $dwz->addPlayer("p" . $spieler[$i]->snr, $year - $spieler[$i]->birthYear, $spieler[$i]->start_dwz, $spieler[$i]->start_I0, $spieler[$i]->FIDEelo);
        }
        // addPlayer($id, $A, $R_o, $Index)
    }
    // Wer hat sich diese Struktur ausgedacht?
    if ($group) {
        // Lese alle relevanten Partien aus
        $query = 'SELECT zps, spieler, gzps, gegner, ergebnis' . ' FROM ' . $table_round . ' WHERE ' . $table_round_id . '=' . $id . ' AND heim = 1';
    } else {
        // Lese alle relevanten Partien aus
        $query = 'SELECT ergebnis, spieler, gegner' . ' FROM ' . $table_round . ' WHERE ' . $table_round_id . '=' . $id . ' AND ergebnis IS NOT NULL' . ' AND heim = 1';
    }
    $partien = clm_core::$db->loadObjectList($query);
    // Partien zur DWZ Auswertung hinzufügen
    $someMatch = false;
    for ($i = 0; $i < count($partien); $i++) {
        list($punkte, $gpunkte) = clm_core::$load->gen_result($partien[$i]->ergebnis, 0);
        if ($punkte[0] == -1) {
            continue;
        }
        // addMatch($id1, $id2, $result)
        if ($group) {
            $dwz->addMatch($partien[$i]->zps . ":" . $partien[$i]->spieler, $partien[$i]->gzps . ":" . $partien[$i]->gegner, $punkte, $gpunkte);
        } else {
            $dwz->addMatch("p" . $partien[$i]->spieler, "p" . $partien[$i]->gegner, $punkte, $gpunkte);
        }
        $someMatch = true;
    }
    $result = $dwz->getAllPlayerObject();
    if (!$someMatch) {
        return array(false, "e_DWZnoMatch");
    }
    $sql = "UPDATE " . $table_list . " SET DWZ=?, I0=?, Punkte=?, Partien=?, We=?, Leistung=?, EFaktor=?, Niveau=? WHERE " . $playerId;
    $stmt = clm_core::$db->prepare($sql);
    // Ergebnis Schreiben
    foreach ($result as $id2 => $value) {
        // Korrektur Leistung: Anzeige bei weniger als 5 Spielen oder nur Siegen/Niederlagen nicht gewollt
        if ($value->n < 5 || $value->W == 0 || $value->W == $value->n) {
            $value->R_p = 0;
        }
        if ($group) {
            $id2 = explode(":", $id2);
            $stmt->bind_param('iididiiisii', $value->R_n, $value->R_nI, $value->W, $value->n, $value->W_e, $value->R_p, $value->E, $value->R_c, $id2[0], $id2[1], $id);
        } else {
            $id2 = explode("p", $id2);
            $stmt->bind_param('iididiiiii', $value->R_n, $value->R_nI, $value->W, $value->n, $value->W_e, $value->R_p, $value->E, $value->R_c, $id2[1], $id);
        }
        $stmt->execute();
    }
    $stmt->close();
    if ($group) {
        $table = clm_core::$db->liga->get($id);
    } else {
        $table = clm_core::$db->turniere->get($id);
    }
    if (!$table->isNew()) {
        $params = new clm_class_params($table->params);
        $params->set("inofDWZ", "1");
        $table->params = $params->params();
    }
    return array(true, "m_calculateDWZSuccess");
}
Example #23
0
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
 * @link http://www.chessleaguemanager.de
 * @author Thomas Schwietert
 * @email fishpoke@fishpoke.de
 * @author Andreas Dorn
 * @email webmaster@sbbl.org
*/
defined('_JEXEC') or die('Restricted access');
JHTML::_('behavior.modal');
// Stylesheet laden
require_once JPATH_COMPONENT . DS . 'includes' . DS . 'css_path.php';
// Konfigurationsparameter auslesen
$itemid = JRequest::getVar('Itemid');
$config = clm_core::$db->config();
// $pdf_melde = $config->pdf_meldelisten;
$turParams = new clm_class_params($this->turnier->params);
// CLM-Container
echo '<div ><div id="turnier_player">';
// Componentheading
$heading = $this->turnier->name . ": " . JText::_('TOURNAMENT_PARTICIPANTINFO');
if ($this->turnier->published == 0) {
    echo CLMContent::componentheading($heading);
    echo CLMContent::clmWarning(JText::_('TOURNAMENT_NOTPUBLISHED') . "<br/>" . JText::_('TOURNAMENT_PATIENCE'));
} else {
    echo CLMContent::componentheading($heading);
    require_once JPATH_COMPONENT . DS . 'includes' . DS . 'submenu_t.php';
    ?>
<div class="tp_col_playerContent">
    
<?php 
    if ($this->playerPhoto != '') {
     // Fortschritt/Paarungstafel
     if ($param['linkrankingscore'] == 1 and $value->typ != 3) {
         if (strlen($value->stringRankingScore) > 0) {
             $text = $value->stringRankingScore;
         } elseif ($value->typ == 1) {
             $text = JText::_('RANKING');
         } elseif ($value->typ == 2) {
             $text = JText::_('SCOREBOARD');
         }
         echo modCLM_TurnierHelper::makeLink('turnier_rangliste', $value->id, array($str_rsorderby), $text, $view, $turnierid, $param['itemid']);
     }
     // Inof. DWZ
     if ($param['linkdwz'] == 1) {
         $table = clm_core::$db->turniere->get($turnierid);
         if (!$table->isNew()) {
             $parameter = new clm_class_params($table->params);
             if ($parameter->get("inofDWZ", "0") == 1) {
                 echo modCLM_TurnierHelper::makeLink('turnier_dwz', $value->id, array(), JText::_('DWZ'), $view, $turnierid, $param['itemid']);
             }
         }
     }
     // Ausschreibung
     if ($param['linkinvitation'] == 1 and $value->invitationLength > 0) {
         echo modCLM_TurnierHelper::makeLink('turnier_invitation', $value->id, array($str_rsorderby), JText::_('INVITATION'), $view, $turnierid, $param['itemid']);
     }
     // Bemerkungen
     if ($param['shownotes'] == 1 and strlen($value->bemerkungen) > 0) {
         echo '<li><span>' . nl2br(JFilterOutput::cleantext($value->bemerkungen)) . '</span></li>';
     }
     echo '</ul>';
 } else {
Example #25
0
<?php

/**
 * @ Chess League Manager (CLM) Component 
 * @Copyright (C) 2008-2016 CLM Team.  All rights reserved
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
 * @link http://www.chessleaguemanager.de
 * @author Thomas Schwietert
 * @email fishpoke@fishpoke.de
 * @author Andreas Dorn
 * @email webmaster@sbbl.org
*/
defined('_JEXEC') or die('Restricted access');
$turParams = new clm_class_params($this->turnier->params);
$pgnInput = $turParams->get('pgnInput', 1);
?>

<style type="text/css">
#clm .clm input, #clm .clm textarea, #clm .clm .uneditable-input {
    width: auto;
}
</style>

	<script language="javascript" type="text/javascript">
	
	function openPgnRow(id) {
		document.getElementById('pgnSwitch' + id).innerHTML = '';
		
		document.getElementById('pgnHead' + id).innerHTML = 'PGN:';
		
		document.getElementById('pgnTextarea' + id).innerHTML = '<textarea name="pgn[' + id + ']" id="pgnformt' + id + '" cols="75" rows="10"></textarea>';
function clm_api_db_tournament_updateDWZ($id, $group = true)
{
    $id = clm_core::$load->make_valid($id, 0, -1);
    if ($group) {
        $table_main = "#__clm_liga";
        $table_list = "#__clm_meldeliste_spieler";
        $table_list_id = "lid";
        $elo = ", FIDEelo=?";
    } else {
        $table_main = "#__clm_turniere";
        $table_list = "#__clm_turniere_tlnr";
        $table_list_id = "turnier";
        $elo = ", FIDEcco=?, FIDEelo=?, FIDEid=?, twz=?";
    }
    // Datum der zu übernehmenden DWZ Daten anhand der Saison festsetzen, eventuell useAsTWZ auslesen
    $lastDWZUpdate = clm_core::$db->saison->get(clm_core::$access->getSeason())->datum;
    if ($group) {
        $table = clm_core::$db->liga->get($id);
    } else {
        $table = clm_core::$db->turniere->get($id);
    }
    $params = new clm_class_params($table->params);
    $params->set("dwz_date", $lastDWZUpdate);
    $table->params = $params->params();
    if (!$group) {
        $useAsTWZ = $params->get("useAsTWZ", "0");
    }
    // Spieler DWZ Aktualisieren
    $query = 'SELECT a.zps as zps, a.mgl_nr as mgl_nr, b.DWZ as dwz, b.FIDE_Elo as FIDEelo, b.FIDE_ID as FIDEid, b.FIDE_Land as FIDEcco, b.DWZ_Index as dwz_index FROM ' . $table_list . ' as a' . ' INNER JOIN #__clm_dwz_spieler as b' . ' ON a.sid=b.sid AND a.zps=b.zps AND a.mgl_nr = b.Mgl_Nr ' . ' WHERE a.' . $table_list_id . ' = ' . $id;
    $players = clm_core::$db->loadObjectList($query);
    $sql = "UPDATE " . $table_list . " SET start_dwz=?, start_I0=?" . $elo . " WHERE " . $table_list_id . "=? AND zps=? AND mgl_nr=?";
    $stmt = clm_core::$db->prepare($sql);
    // Ergebnis Schreiben
    foreach ($players as $value) {
        if ($group) {
            $stmt->bind_param('iiiisi', $value->dwz, $value->dwz_index, $value->FIDEelo, $id, $value->zps, $value->mgl_nr);
        } else {
            // TWZ Aktualisieren
            $twz = clm_core::$load->gen_twz($useAsTWZ, $value->dwz, $value->FIDEelo);
            $stmt->bind_param('iisiiiisi', $value->dwz, $value->dwz_index, $value->FIDEcco, $value->FIDEelo, $value->FIDEid, $twz, $id, $value->zps, $value->mgl_nr);
        }
        $stmt->execute();
    }
    $stmt->close();
    // Berechne oder Lösche die inoff. DWZ nach dieser Änderung
    if ($group) {
        $params = clm_core::$db->liga->get($id)->params;
    } else {
        $params = clm_core::$db->turniere->get($id)->params;
    }
    $turParams = new clm_class_params($params);
    $autoDWZ = $turParams->get("autoDWZ", 0);
    if ($autoDWZ == 0) {
        clm_core::$api->direct("db_tournament_genDWZ", array($id, $group));
    } else {
        if ($autoDWZ == 1) {
            clm_core::$api->direct("db_tournament_delDWZ", array($id, $group));
        }
    }
    return array(true, "m_updateDWZSuccess");
}
Example #27
0
<?php

/**
 * @ Chess League Manager (CLM) Component 
 * @Copyright (C) 2008-2015 CLM Team  All rights reserved
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
 * @link http://www.chessleaguemanager.de
 * @author Thomas Schwietert
 * @email fishpoke@fishpoke.de
 * @author Andreas Dorn
 * @email webmaster@sbbl.org
*/
defined('_JEXEC') or die('Restricted access');
$clmAccess = clm_core::$access;
$turParams = new clm_class_params($this->turnier->params);
?>
<form action="index.php" method="post" name="adminForm" id="adminForm">

		<table>
		<tr>
			<td align="left" width="100%">
				<?php 
echo JText::_('FILTER');
?>
:
		<input type="text" name="search" id="search" value="<?php 
echo $this->form['search'];
?>
" class="text_area" onchange="document.adminForm.submit();" />
		<button onclick="this.form.submit();"><?php 
echo JText::_('GO');
Example #28
0
<?php

/**
 * @ Chess League Manager (CLM) Component 
 * @Copyright (C) 2008-2015 CLM Team  All rights reserved
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
 * @link http://www.cheesleaguemanager.de
 * @author Thomas Schwietert
 * @email fishpoke@fishpoke.de
 * @author Andreas Dorn
 * @email webmaster@sbbl.org
*/
defined('_JEXEC') or die('Restricted access');
$turnierid = JRequest::getInt('turnier', '1');
$config = clm_core::$db->config();
$turParams = new clm_class_params($this->turnier->params);
require_once JPATH_COMPONENT . DS . 'includes' . DS . 'fpdf.php';
class PDF extends FPDF
{
    //Kopfzeile
    function Header()
    {
        require JPATH_COMPONENT . DS . 'includes' . DS . 'pdf_header.php';
    }
    //Fusszeile
    function Footer()
    {
        require JPATH_COMPONENT . DS . 'includes' . DS . 'pdf_footer.php';
    }
}
// Zellenhöhe -> Standard 6