function getTurnier()
 {
     /*		function check_date($date,$format,$sep) {
         
     			$pos1    = strpos($format, 'd');
     			$pos2    = strpos($format, 'm');
     			$pos3    = strpos($format, 'Y'); 
         
     			$check    = explode($sep,$date);
         
     			return checkdate($check[$pos2],$check[$pos1],$check[$pos3]);
     
     		}
     */
     function check_date($date, $format, $sep)
     {
         $pos1 = strpos($format, 'd');
         // 0
         $pos2 = strpos($format, 'm');
         // 1
         $pos3 = strpos($format, 'Y');
         // 2
         $check = explode($sep, $date);
         if (count($check) != 3) {
             return false;
         }
         if (!is_numeric($check[0]) or !is_numeric($check[1]) or !is_numeric($check[2])) {
             return false;
         }
         $check[$pos1] = str_pad($check[$pos1], 2, "0", STR_PAD_LEFT);
         $check[$pos2] = str_pad($check[$pos2], 2, "0", STR_PAD_LEFT);
         $check[$pos3] = str_pad($check[$pos3], 4, "20", STR_PAD_LEFT);
         if (!checkdate($check[$pos2], $check[$pos1], $check[$pos3])) {
             return false;
         }
         return $check[$pos3] . "-" . $check[$pos2] . "-" . $check[$pos1];
     }
     if (empty($this->_turnier)) {
         //Name und Verzeichnis der SWT-Datei
         $filename = JRequest::getVar('swt', '', 'post', 'string');
         $path = JPATH_COMPONENT . DIRECTORY_SEPARATOR . "swt" . DIRECTORY_SEPARATOR;
         $swt = $path . $filename;
         //JObject wird erzeugt und mit Turnierdaten erweitert
         $this->_turnier = new JObject();
         //
         //Turnierdaten, die nicht aus der SWT-Datei importiert werden
         //
         //Standartwerte
         $this->_turnier->set('tid', 0);
         //$this->_turnier->set('sid'				, $this->_getAktuelleSaison());
         $this->_turnier->set('sid', clm_core::$access->getSeason());
         $this->_turnier->set('dateStart', NULL);
         $this->_turnier->set('dateEnd', NULL);
         $this->_turnier->set('catidAlltime', 0);
         $this->_turnier->set('catidEdition', 0);
         $this->_turnier->set('tl', NULL);
         $this->_turnier->set('bezirk', NULL);
         $this->_turnier->set('bezirkTur', 1);
         $this->_turnier->set('vereinZPS', 0);
         $this->_turnier->set('published', 1);
         $this->_turnier->set('bem_int', 'SWT-Importfile:' . $filename . ';');
         $this->_turnier->set('bemerkungen', '');
         $this->_turnier->set('started', 0);
         $this->_turnier->set('finished', 0);
         $this->_turnier->set('invitationText', '');
         $this->_turnier->set('ordering', 0);
         $this->_turnier->set('params', '');
         $this->_turnier->set('sieg', '1');
         $this->_turnier->set('siegs', '1');
         $this->_turnier->set('remis', '0.5');
         $this->_turnier->set('remiss', '0.5');
         $this->_turnier->set('nieder', '0');
         $this->_turnier->set('niederk', '0');
         //Name
         if (($name = CLMSWT::readName($swt, 245, 60)) != '') {
             $this->_turnier->set('name', $name);
         } else {
             $this->_turnier->set('name', $filename);
         }
         //Mit Daten aus Datenbank �berschreiben, falls ein Turnier geupdated wird
         if (JRequest::getInt('update') == 1) {
             $turnierFromDatabase = $this->_getTurnierFromDatabase();
         }
         //
         // Daten aus der SWT-Datei
         //
         //Modus
         $this->_turnier->set('modus', $this->_calculateCLMModus(CLMSWT::readInt($swt, 596, 1)));
         //rnd
         if (CLMSWT::readInt($swt, 3, 2) == 0) {
             $this->_turnier->set('rnd', 0);
         } else {
             $this->_turnier->set('rnd', 1);
         }
         //Anz. Runden und Anz. Durchg�nge
         $this->_turnier->set('runden', CLMSWT::readInt($swt, 1, 2));
         $this->_turnier->set('dg', CLMSWT::readInt($swt, 599, 1));
         //Anz. der Teilnehmer
         //$this->_turnier->set('teil'			, CLMSWT::readInt($swt,7,2));
         $this->_turnier->set('teil', $this->_getAnzTeilnehmer());
         //Turnierdatum
         if (($tdatum = CLMSWT::readName($swt, 1055, 20)) != '') {
             //				$hdatum = substr($tdatum,6,4).'-'.substr($tdatum,3,2).'-'.substr($tdatum,0,2);
             //				if(check_date($hdatum,"Ymd","-"))
             //					$this->_turnier->set('dateStart', $hdatum);
             if (check_date($tdatum, "dmY", ".") != false) {
                 $this->_turnier->set('dateStart', check_date($tdatum, "dmY", "."));
             } else {
                 $this->_turnier->set('dateStart', "");
             }
         }
         if (($tdatum = CLMSWT::readName($swt, 1076, 20)) != '') {
             //				$hdatum = substr($tdatum,6,4).'-'.substr($tdatum,3,2).'-'.substr($tdatum,0,2);
             //				if(check_date($hdatum,"Ymd","-"))
             //					$this->_turnier->set('dateEnd', $hdatum);
             if (check_date($tdatum, "dmY", ".") != false) {
                 $this->_turnier->set('dateEnd', check_date($tdatum, "dmY", "."));
             } else {
                 $this->_turnier->set('dateEnd', "");
             }
         }
         //Feinwertung
         $anzStreichwertungen = CLMSWT::readInt($swt, 9, 1);
         if ($this->_turnier->modus == 2) {
             //Vollrundig
             $anzStreichwertungen = 0;
         }
         if ($this->_turnier->modus == 1) {
             $feinwertung1 = CLMSWT::readInt($swt, 621, 1);
             $feinwertung2 = CLMSWT::readInt($swt, 572, 1);
         } elseif ($this->_turnier->modus == 2) {
             $feinwertung1 = CLMSWT::readInt($swt, 622, 1);
             $feinwertung2 = CLMSWT::readInt($swt, 573, 1);
         } else {
             $this->_turnier->set('tiebr1', 0);
             $this->_turnier->set('tiebr2', 0);
             $this->_turnier->set('tiebr3', 0);
         }
         if ($this->_turnier->modus == 1 or $this->_turnier->modus == 2) {
             if ($feinwertung1 == 3 and $anzStreichwertungen != 1) {
                 //Buchholz
                 $this->_turnier->set('tiebr1', 1);
             } elseif ($feinwertung1 == 3 and $anzStreichwertungen == 1) {
                 //Buchholz mit 1 Streichergebnis
                 $this->_turnier->set('tiebr1', 11);
             } elseif ($feinwertung1 == 7 and $anzStreichwertungen != 1) {
                 //Buchholzsumme
                 $this->_turnier->set('tiebr1', 2);
             } elseif ($feinwertung1 == 7 and $anzStreichwertungen == 1) {
                 //Buchholzsumme mit 1 Streichergebnis
                 $this->_turnier->set('tiebr1', 12);
             } elseif ($feinwertung1 == 4) {
                 //Summenwertung
                 $this->_turnier->set('tiebr1', 7);
             } elseif ($feinwertung1 == 5 and $anzStreichwertungen != 1) {
                 //Sonneborn-Berger
                 $this->_turnier->set('tiebr1', 3);
             } elseif ($feinwertung1 == 5 and $anzStreichwertungen == 1) {
                 //Sonneborn-Berger mit 1 Streichergebnis
                 $this->_turnier->set('tiebr1', 13);
             } elseif ($feinwertung1 == 6 and $anzStreichwertungen == 0) {
                 //mittlere Buchholz
                 $this->_turnier->set('tiebr1', 5);
             } elseif ($feinwertung1 == 8) {
                 //Elo-Schnitt
                 $this->_turnier->set('tiebr1', 6);
             } elseif ($feinwertung1 == 14) {
                 //Anz. der Siege
                 $this->_turnier->set('tiebr1', 4);
             } elseif ($feinwertung1 == 15) {
                 //Direkter Vergleich
                 $this->_turnier->set('tiebr1', 25);
             } else {
                 $this->_turnier->set('tiebr1', 0);
             }
             if ($feinwertung2 == 3 and $anzStreichwertungen != 1) {
                 //Buchholz
                 $this->_turnier->set('tiebr2', 1);
             } elseif ($feinwertung2 == 3 and $anzStreichwertungen == 1) {
                 //Buchholz mit 1 Streichergebnis
                 $this->_turnier->set('tiebr2', 11);
             } elseif ($feinwertung2 == 7 and $anzStreichwertungen != 1) {
                 //Buchholzsumme
                 $this->_turnier->set('tiebr2', 2);
             } elseif ($feinwertung2 == 7 and $anzStreichwertungen == 1) {
                 //Buchholzsumme mit 1 Streichergebnis
                 $this->_turnier->set('tiebr2', 12);
             } elseif ($feinwertung2 == 4) {
                 //Summenwertung
                 $this->_turnier->set('tiebr2', 7);
             } elseif ($feinwertung2 == 5 and $anzStreichwertungen != 1) {
                 //Sonneborn-Berger
                 $this->_turnier->set('tiebr2', 3);
             } elseif ($feinwertung2 == 5 and $anzStreichwertungen == 1) {
                 //Sonneborn-Berger mit 1 Streichergebnis
                 $this->_turnier->set('tiebr2', 13);
             } elseif ($feinwertung1 == 6 and $anzStreichwertungen == 0) {
                 //mittlere Buchholz
                 $this->_turnier->set('tiebr2', 5);
             } elseif ($feinwertung2 == 8) {
                 //Elo-Schnitt
                 $this->_turnier->set('tiebr2', 6);
             } elseif ($feinwertung2 == 14) {
                 //Anz. der Siege
                 $this->_turnier->set('tiebr2', 4);
             } elseif ($feinwertung2 == 15) {
                 //Direkter Vergleich
                 $this->_turnier->set('tiebr2', 25);
             } else {
                 $this->_turnier->set('tiebr2', 0);
             }
             if (CLMSWT::readBool($swt, 593) and $this->_turnier->modus != 2) {
                 $this->_turnier->set('tiebr3', 4);
             } else {
                 $this->_turnier->set('tiebr3', 0);
             }
         }
         //Ranglistenkorrektur
         $this->_turnier->set('optionTiebreakersFideCorrect', CLMSWT::readBool($swt, 675));
         //Partiewertung
         $pwertung = CLMSWT::readInt($swt, 582, 1);
         if ($pwertung > 3) {
             $pwertung = 0;
         }
         if ($pwertung == 0) {
             $this->_turnier->set('sieg', 1);
             $this->_turnier->set('siegs', 1);
             $this->_turnier->set('remis', 0.5);
             $this->_turnier->set('remiss', 0.5);
             $this->_turnier->set('nieder', 0);
             $this->_turnier->set('niederk', 0);
         } elseif ($pwertung == 1) {
             $this->_turnier->set('sieg', 3);
             $this->_turnier->set('siegs', 3);
             $this->_turnier->set('remis', 1);
             $this->_turnier->set('remiss', 1);
             $this->_turnier->set('nieder', 0);
             $this->_turnier->set('niederk', 0);
         } elseif ($pwertung == 2) {
             $this->_turnier->set('sieg', 3);
             $this->_turnier->set('siegs', 3);
             $this->_turnier->set('remis', 1);
             $this->_turnier->set('remiss', 1.5);
             $this->_turnier->set('nieder', 0);
             $this->_turnier->set('niederk', 0);
         } else {
             $this->_turnier->set('sieg', CLMSWT::readInt($swt, 5494, 1));
             $this->_turnier->set('siegs', CLMSWT::readInt($swt, 5496, 1));
             $this->_turnier->set('remis', CLMSWT::readInt($swt, 5498, 1));
             $this->_turnier->set('remiss', CLMSWT::readInt($swt, 5500, 1));
             $this->_turnier->set('nieder', CLMSWT::readInt($swt, 5502, 1));
             $this->_turnier->set('niederk', CLMSWT::readInt($swt, 5506, 1));
         }
         //TWZ-Einstellung
         $twz = CLMSWT::readInt($swt, 582, 1);
         if ($twz == 0) {
             $this->_turnier->set('useAsTWZ', 2);
         } elseif ($twz == 1) {
             $this->_turnier->set('useAsTWZ', 1);
         } elseif ($twz == 2) {
             $this->_turnier->set('useAsTWZ', 0);
         }
     }
     return $this->_turnier;
 }
Beispiel #2
0
 function getTurnier()
 {
     function check_date($date, $format, $sep)
     {
         $pos1 = strpos($format, 'd');
         $pos2 = strpos($format, 'm');
         $pos3 = strpos($format, 'Y');
         $check = explode($sep, $date);
         return checkdate($check[$pos2], $check[$pos1], $check[$pos3]);
     }
     if (empty($this->_turnier)) {
         //Name und Verzeichnis der SWT-Datei
         $filename = JRequest::getVar('swt', '', 'post', 'string');
         $path = JPATH_COMPONENT . DIRECTORY_SEPARATOR . "swt" . DIRECTORY_SEPARATOR;
         $swt = $path . $filename;
         //JObject wird erzeugt und mit Turnierdaten erweitert
         $this->_turnier = new JObject();
         //
         //Turnierdaten, die nicht aus der SWT-Datei importiert werden
         //
         //Standartwerte
         $this->_turnier->set('tid', 0);
         //$this->_turnier->set('sid'				, $this->_getAktuelleSaison());
         $this->_turnier->set('sid', clm_core::$access->getSeason());
         $this->_turnier->set('dateStart', NULL);
         $this->_turnier->set('dateEnd', NULL);
         $this->_turnier->set('catidAlltime', 0);
         $this->_turnier->set('catidEdition', 0);
         $this->_turnier->set('tl', NULL);
         $this->_turnier->set('bezirk', NULL);
         $this->_turnier->set('bezirkTur', 1);
         $this->_turnier->set('vereinZPS', 0);
         $this->_turnier->set('published', 1);
         $this->_turnier->set('bem_int', '');
         $this->_turnier->set('bemerkungen', '');
         $this->_turnier->set('started', 0);
         $this->_turnier->set('finished', 0);
         $this->_turnier->set('invitationText', '');
         $this->_turnier->set('ordering', 0);
         $this->_turnier->set('params', '');
         //Name
         if (($name = CLMSWT::readName($swt, 245, 60)) != '') {
             $this->_turnier->set('name', $name);
         } else {
             $this->_turnier->set('name', $filename);
         }
         //Mit Daten aus Datenbank �berschreiben, falls ein Turnier geupdated wird
         if (JRequest::getInt('update') == 1) {
             $turnierFromDatabase = $this->_getTurnierFromDatabase();
         }
         //
         // Daten aus der SWT-Datei
         //
         //Modus
         $this->_turnier->set('modus', $this->_calculateCLMModus(CLMSWT::readInt($swt, 596, 1)));
         //rnd
         if (CLMSWT::readInt($swt, 3, 2) == 0) {
             $this->_turnier->set('rnd', 0);
         } else {
             $this->_turnier->set('rnd', 1);
         }
         //Anz. Runden und Anz. Durchg�nge
         $this->_turnier->set('runden', CLMSWT::readInt($swt, 1, 2));
         $this->_turnier->set('dg', CLMSWT::readInt($swt, 599, 1));
         //Anz. der Teilnehmer
         //$this->_turnier->set('teil'			, CLMSWT::readInt($swt,7,2));
         $this->_turnier->set('teil', $this->_getAnzTeilnehmer());
         //Turnierdatum
         if (($tdatum = CLMSWT::readName($swt, 1055, 20)) != '') {
             $hdatum = substr($tdatum, 6, 4) . '-' . substr($tdatum, 3, 2) . '-' . substr($tdatum, 0, 2);
             if (check_date($hdatum, "Ymd", "-")) {
                 $this->_turnier->set('dateStart', $hdatum);
             }
         }
         if (($tdatum = CLMSWT::readName($swt, 1076, 20)) != '') {
             $hdatum = substr($tdatum, 6, 4) . '-' . substr($tdatum, 3, 2) . '-' . substr($tdatum, 0, 2);
             if (check_date($hdatum, "Ymd", "-")) {
                 $this->_turnier->set('dateEnd', $hdatum);
             }
         }
         //Feinwertung
         $anzStreichwertungen = CLMSWT::readInt($swt, 9, 1);
         if ($this->_turnier->modus == 2) {
             //Vollrundig
             $anzStreichwertungen = 0;
         }
         if ($this->_turnier->modus == 1) {
             $feinwertung1 = CLMSWT::readInt($swt, 621, 1);
             $feinwertung2 = CLMSWT::readInt($swt, 572, 1);
         } elseif ($this->_turnier->modus == 2) {
             $feinwertung1 = CLMSWT::readInt($swt, 622, 1);
             $feinwertung2 = CLMSWT::readInt($swt, 573, 1);
         } else {
             $this->_turnier->set('tiebr1', 0);
             $this->_turnier->set('tiebr2', 0);
             $this->_turnier->set('tiebr3', 0);
         }
         if ($this->_turnier->modus == 1 or $this->_turnier->modus == 2) {
             if ($feinwertung1 == 3 and $anzStreichwertungen != 1) {
                 //Buchholz
                 $this->_turnier->set('tiebr1', 1);
             } elseif ($feinwertung1 == 3 and $anzStreichwertungen == 1) {
                 //Buchholz mit 1 Streichergebnis
                 $this->_turnier->set('tiebr1', 11);
             } elseif ($feinwertung1 == 7 and $anzStreichwertungen != 1) {
                 //Buchholzsumme
                 $this->_turnier->set('tiebr1', 2);
             } elseif ($feinwertung1 == 7 and $anzStreichwertungen == 1) {
                 //Buchholzsumme mit 1 Streichergebnis
                 $this->_turnier->set('tiebr1', 12);
             } elseif ($feinwertung1 == 4) {
                 //Summenwertung
                 $this->_turnier->set('tiebr1', 7);
             } elseif ($feinwertung1 == 5 and $anzStreichwertungen != 1) {
                 //Sonneborn-Berger
                 $this->_turnier->set('tiebr1', 3);
             } elseif ($feinwertung1 == 5 and $anzStreichwertungen == 1) {
                 //Sonneborn-Berger mit 1 Streichergebnis
                 $this->_turnier->set('tiebr1', 13);
             } elseif ($feinwertung1 == 6 and $anzStreichwertungen == 0) {
                 //mittlere Buchholz
                 $this->_turnier->set('tiebr1', 5);
             } elseif ($feinwertung1 == 8) {
                 //Elo-Schnitt
                 $this->_turnier->set('tiebr1', 6);
             } elseif ($feinwertung1 == 14) {
                 //Anz. der Siege
                 $this->_turnier->set('tiebr1', 4);
             } elseif ($feinwertung1 == 15) {
                 //Direkter Vergleich
                 $this->_turnier->set('tiebr1', 25);
             } else {
                 $this->_turnier->set('tiebr1', 0);
             }
             if ($feinwertung2 == 3 and $anzStreichwertungen != 1) {
                 //Buchholz
                 $this->_turnier->set('tiebr2', 1);
             } elseif ($feinwertung2 == 3 and $anzStreichwertungen == 1) {
                 //Buchholz mit 1 Streichergebnis
                 $this->_turnier->set('tiebr2', 11);
             } elseif ($feinwertung2 == 7 and $anzStreichwertungen != 1) {
                 //Buchholzsumme
                 $this->_turnier->set('tiebr2', 2);
             } elseif ($feinwertung2 == 7 and $anzStreichwertungen == 1) {
                 //Buchholzsumme mit 1 Streichergebnis
                 $this->_turnier->set('tiebr2', 12);
             } elseif ($feinwertung2 == 4) {
                 //Summenwertung
                 $this->_turnier->set('tiebr2', 7);
             } elseif ($feinwertung2 == 5 and $anzStreichwertungen != 1) {
                 //Sonneborn-Berger
                 $this->_turnier->set('tiebr2', 3);
             } elseif ($feinwertung2 == 5 and $anzStreichwertungen == 1) {
                 //Sonneborn-Berger mit 1 Streichergebnis
                 $this->_turnier->set('tiebr2', 13);
             } elseif ($feinwertung1 == 6 and $anzStreichwertungen == 0) {
                 //mittlere Buchholz
                 $this->_turnier->set('tiebr2', 5);
             } elseif ($feinwertung2 == 8) {
                 //Elo-Schnitt
                 $this->_turnier->set('tiebr2', 6);
             } elseif ($feinwertung2 == 14) {
                 //Anz. der Siege
                 $this->_turnier->set('tiebr2', 4);
             } elseif ($feinwertung2 == 15) {
                 //Direkter Vergleich
                 $this->_turnier->set('tiebr2', 25);
             } else {
                 $this->_turnier->set('tiebr2', 0);
             }
             if (CLMSWT::readBool($swt, 593) and $this->_turnier->modus != 2) {
                 $this->_turnier->set('tiebr3', 4);
             } else {
                 $this->_turnier->set('tiebr3', 0);
             }
         }
         //Ranglistenkorrektur
         $this->_turnier->set('optionTiebreakersFideCorrect', CLMSWT::readBool($swt, 675));
         //TWZ-Einstellung
         $twz = CLMSWT::readInt($swt, 582, 1);
         if ($twz == 0) {
             $this->_turnier->set('useAsTWZ', 2);
         } elseif ($twz == 1) {
             $this->_turnier->set('useAsTWZ', 1);
         } elseif ($twz == 2) {
             $this->_turnier->set('useAsTWZ', 0);
         }
         /*Parameter
         		$turParams->get('optionTiebreakersFideCorrect',0);
         		$turParams->get('useAsTWZ', 0);
         		$turParams->get('qualiUp', 0);
         		$turParams->get('qualiUpPoss', 0);
         		$turParams->get('qualiDown', 0);
         		$turParams->get('qualiDownPoss', 0);
         		$turParams->get('addCatToName', 0);
         		$turParams->get('displayRoundDate', 1);
         		$turParams->get('displayPlayerSnr', 1);
         		$turParams->get('displayPlayerTitle', 1);
         		$turParams->get('displayPlayerClub', 1);
         		$turParams->get('displayPlayerRating', 0);
         		$turParams->get('displayPlayerElo', 0);
         		$turParams->get('displayPlayerFideLink', 0);
         		$turParams->get('displayPlayerFederation', 0);
         		$turParams->get('displayTlOK', $this->params['tourn_showtlok']);
         		$turParams->get('pgnInput', 1);
         		$turParams->get('pgnPublic', 1);
         		$turParams->get('playerViewDisplaySex', 1);
         		$turParams->get('playerViewDisplayBirthYear', 1);
         		$turParams->get('joomGalleryDisplayPlayerPhotos', 0);
         		$turParams->get('joomGalleryCatId', '');
         		$turParams->get('joomGalleryPhotosWidth', '');
         		*/
     }
     return $this->_turnier;
 }