Exemple #1
0
 static function readBool($file, $offset)
 {
     if (CLMSWT::readInt($file, $offset, 1) == 255) {
         return true;
     } elseif (CLMSWT::readInt($file, $offset, 1) == 0) {
         return false;
     } else {
         // Standardwert, wenn nicht = 00 oder FF
         return false;
     }
 }
Exemple #2
0
 function import()
 {
     //Name der zu l�schenden Datei wird geladen
     $filename = JRequest::getVar('swt_file', '', 'post', 'string');
     //SWT-Verzeichnis
     $path = JPATH_COMPONENT . DS . "swt" . DS;
     if ($filename != "" && file_exists($path . $filename)) {
         return CLMSWT::readInt($path . $filename, 606, 1);
     } else {
         return -1;
     }
 }
 function _getDataSWTspl($during_store = 0)
 {
     if ($this->debug_ausgaben > 0) {
         echo "in _getDataSWTspl ()<br/>";
     }
     if (!empty($this->_swt_data_spl)) {
         return $this->_swt_data_spl;
     }
     jimport('joomla.filesystem.file');
     // Namen und Verzeichnis der SWT-Datei auslesen
     $filename = JRequest::getVar('swt', '', 'default', 'string');
     $path = JPATH_COMPONENT . DIRECTORY_SEPARATOR . "swt" . DIRECTORY_SEPARATOR;
     $swt = $path . $filename;
     // Aktuell zu bearbeitende(r) Paarung, Runde und Durchgang
     $par = JRequest::getVar('par', 0, 'default', 'int');
     $runde = JRequest::getVar('runde', 0, 'default', 'int');
     $dgang = JRequest::getVar('dgang', 0, 'default', 'int');
     $mturnier = JRequest::getVar('mturnier', 0, 'default', 'int');
     $ungerade = JRequest::getVar('ungerade', false, 'default', 'bool');
     $noOrgReference = JRequest::getVar('noOrgReference', '0', 'default', 'string');
     $noBoardResults = JRequest::getVar('noBoardResults', '0', 'default', 'string');
     // schon gespeicherte SWT-Daten aus der DB holen
     $swt_db_data = $this->getDataSWTdb();
     $anz_mannschaften = $swt_db_data['anz_mannschaften'];
     $anz_bretter = $swt_db_data['anz_bretter'];
     $anz_durchgaenge = $swt_db_data['anz_durchgaenge'];
     $anz_runden = $swt_db_data['anz_runden'];
     $ausgeloste_runden = CLMSWT::readInt($swt, 5);
     $anz_spieler = CLMSWT::readInt($swt, 7, 2);
     if ($this->debug_ausgaben > 1) {
         echo "anz_spieler: {$anz_spieler}<br/>";
     }
     $anz_paarungen = ceil($anz_mannschaften / 2);
     $offset_runde = ($dgang * $anz_runden + $runde) * 19;
     $offset = 13384 + $offset_runde;
     if ($this->debug_ausgaben > 1) {
         echo "dgang: {$dgang}<br/>";
         echo "anz_runden: {$anz_runden}<br/>";
         echo "runde: {$runde}<br/>";
         echo "offset_runde: {$offset_runde}<br/>";
         echo "offset: {$offset}<br/>";
     }
     $abstand = $anz_durchgaenge * $anz_runden * 19;
     // SWT-Mannschaftsdaten
     $swt_man = $this->_getDataSWTman();
     // Spielerpaarungen
     $spieler = $swt_db_data['spieler'];
     if ($this->debug_ausgaben > 1) {
         echo "spieler: ";
         var_dump($spieler);
         echo "<br>";
         for ($s = 1; $s <= count($spieler); $s++) {
             echo "<br>spieler-s: " . $s . "  ";
             var_dump($spieler[$s - 1]);
         }
     }
     unset($swt_data);
     // ACHTUNG!! vor der Schleife keine Werte einfügen!!
     $tln_paarung = array();
     for ($s = 1; $s <= $anz_spieler; $s++) {
         if (isset($spieler[$s - 1])) {
             // echo "<br>spieler-s: ".$s."  "; var_dump($spieler[$s-1]); echo "<br>";
             if ($this->debug_ausgaben > 1) {
                 echo "offset: {$offset}<br/>";
             }
             $swtfarbe = CLMSWT::readInt($swt, $offset + 8);
             if ($swtfarbe == 1) {
                 $farbe = 'w';
                 $gegfarbe = 's';
             } elseif ($swtfarbe == 3) {
                 $farbe = 's';
                 $gegfarbe = 'w';
             } else {
                 $farbe = '';
                 $gegfarbe = '';
             }
             $gegner = CLMSWT::readInt($swt, $offset + 9, 2);
             //if (!empty ($gegner) && $mturnier != 1) {
             //	// bei Ligen ist der Gegner mit einem Offset von 230 gespeichert
             //	$gegner -= 230;
             //}
             $ergebnis = CLMSWT::readInt($swt, $offset + 11);
             //$paarung	= CLMSWT::readInt ($swt, $offset + 13);
             $paarung = 0;
             // leider war die Paarungsnummer in Einzelergebnissen nicht immer korrekt auch wenn eingetragen
             // deshalb wird diese ignoriert und die Paarung aus den Mannschaftsergebnissen verwendet
             if ($paarung > 0) {
                 $tln_paarung[$spieler[$s - 1]->tln_nr] = $paarung;
             } else {
                 if (isset($tln_paarung[$spieler[$s - 1]->tln_nr])) {
                     $paarung = $tln_paarung[$spieler[$s - 1]->tln_nr];
                 }
             }
             if ($paarung == 0 and isset($spieler[$s - 1]->tln_nr) and $spieler[$s - 1]->tln_nr > 0) {
                 for ($ip = 1; $ip <= count($swt_man); $ip++) {
                     if (!isset($swt_man[$ip]['heim']) or !isset($swt_man[$ip]['gast'])) {
                         break;
                     }
                     if ($spieler[$s - 1]->tln_nr == $swt_man[$ip]['heim'] or $spieler[$s - 1]->tln_nr == $swt_man[$ip]['gast']) {
                         $paarung = $ip;
                     }
                     if ($paarung > 0) {
                         break;
                     }
                 }
             }
             if ($paarung != 0) {
                 $attribut = CLMSWT::readInt($swt, $offset + 15);
                 if ($attribut == 34 or $attribut == 2) {
                     $kampflos = 2;
                 } else {
                     $kampflos = 0;
                 }
                 $spielfrei = $attribut == 3 || $attribut == 51;
                 $brett = CLMSWT::readInt($swt, $offset + 18);
                 $mannschaft = $spieler[$s - 1]->tln_nr;
                 if ($gegner > 0 and isset($spieler[$gegner - 1])) {
                     $gegner_mannschaft = $spieler[$gegner - 1]->tln_nr;
                 } else {
                     $gegner_mannschaft = 0;
                 }
                 if (empty($paarung)) {
                     for ($p = 1; $p <= $anz_paarungen; $p++) {
                         $heim = $swt_man[$p]['heim'];
                         $gast = $swt_man[$p]['gast'];
                         if ($gegner_mannschaft == $heim) {
                             $paarung = $p;
                             $mannschaft = $gast;
                             break;
                         }
                         if ($gegner_mannschaft == $gast) {
                             $paarung = $p;
                             $mannschaft = $heim;
                             break;
                         }
                     }
                 }
                 if ($this->debug_ausgaben > 5) {
                     echo "<pre>leere_bretter[{$mannschaft}]: ";
                     print_r($leere_bretter[$mannschaft]);
                     echo "</pre>";
                 }
                 if (isset($leere_bretter[$mannschaft])) {
                     // es gibt leere Bretter (vorher!)
                     if ($this->debug_ausgaben > 1) {
                         echo "es gibt leere Bretter";
                     }
                     $verschieben = 0;
                     foreach ($leere_bretter[$mannschaft] as $leeres_brett) {
                         if ($leeres_brett < $brett) {
                             $verschieben++;
                         }
                     }
                     $brett -= $verschieben;
                 }
                 if ($spielfrei) {
                     // spielfrei
                     //echo "attribut: $attribut";
                     $leere_bretter[$mannschaft][] = $brett;
                     $brett = $anz_bretter + count($leere_bretter[$mannschaft]);
                 }
                 if ($this->debug_ausgaben > 2) {
                     echo "<pre>paarung, brett, spieler, mannschaft, ergebnis: {$paarung}, {$brett}, {$s}, {$mannschaft}, {$ergebnis}<br/>";
                     echo "offset: {$offset}";
                     for ($ofi = 0; $ofi <= 18; $ofi++) {
                         $byte_value = CLMSWT::readInt($swt, $offset + $ofi);
                         if (!empty($byte_value)) {
                             echo "  swtfile byte {$ofi}: {$byte_value}<br/>";
                         }
                     }
                     echo "</pre>";
                 }
                 /* if ($paarung == 0) { // Fallback für falsch (?) abgespeicherte Paarungsnummer 00 in SWT-Datei
                 //				echo "offset: $offset "; //DBG
                 				if ($gegner != 0) {
                 					$geg_id = $spieler[$gegner-1]->id;
                 					if ($brett != 0) {
                 						for ($p = 1; $p <= $anz_paarungen; $p++) {
                 							$heimspieler = $swt_data[$p]['hbrett_'.$brett];
                 							$gastspieler = $swt_data[$p]['gbrett_'.$brett];
                 							if ($heimspieler == $geg_id || $gastspieler == $geg_id) {
                 								$paarung = $p;
                 							//	$tmp_erg[$paarung][$brett][] = end ($tmp_erg[0][$brett]);
                 							}
                 						}
                 					}
                 					else { // Brettnummer ist ebenfalls 00 in der SWT-Datei
                 						for ($p = 1; $p <= $anz_paarungen; $p++) {
                 							for ($b = 1; $b <= $anz_bretter; $b++) {
                 								$heimspieler = $swt_data[$p]['hbrett_'.$brett];
                 								$gastspieler = $swt_data[$p]['gbrett_'.$brett];
                 								if ($heimspieler == $geg_id || $gastspieler == $geg_id) {
                 									$paarung = $p;
                 									$brett = $b;
                 								//	$tmp_erg[$paarung][$brett][] = end ($tmp_erg[0][0]);
                 								}
                 							}
                 						}
                 					}
                 					//$heim = $swt_man[$paarung]['heim'];
                 					//$gast = $swt_man[$paarung]['gast'];
                 				}
                 				unset ($tmp_erg[0]);
                 //				echo "<br/>paarung neu: $paarung"; //DBG
                 //				echo "heim: $heim, gast: $gast, "; //DBG
                 //				echo "mannschaft: $mannschaft"; //DBG
                 			} */
             }
             if ($paarung != 0) {
                 $offsets[$paarung][$brett][] = $offset;
                 // Heim- und Gastmannschaft setzen
                 $heim = $swt_man[$paarung]['heim'];
                 $gast = $swt_man[$paarung]['gast'];
                 if ($this->debug_ausgaben > 2) {
                     echo "<pre>paarung, brett, spieler: {$paarung}, {$brett}, {$s} -- ergebnis, attribut, kampflos: {$ergebnis}, {$attribut}, {$kampflos}<br/>";
                     echo "</pre>";
                 }
                 if ($noBoardResults == '0') {
                     // Einzelergebnis speichern
                     if ($ergebnis == 0) {
                         $teil_erg = '?';
                         $trenn = '';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 1 && $kampflos == 0) {
                         $teil_erg = '0';
                         $trenn = '-';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 2 && $kampflos == 0) {
                         $teil_erg = '0,5';
                         $trenn = '-';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 3 && $kampflos == 0) {
                         $teil_erg = '1';
                         $trenn = '-';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 4 && $kampflos == 0) {
                         $teil_erg = '?';
                         $trenn = '';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 5 && $kampflos == 0) {
                         $teil_erg = '0';
                         $trenn = '-';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 6 && $kampflos == 0) {
                         $teil_erg = '0,5';
                         $trenn = '-';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 7 && $kampflos == 0) {
                         $teil_erg = '1';
                         $trenn = '-';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 8 && $kampflos == 0) {
                         $teil_erg = '?';
                         $trenn = '';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 9 && $kampflos == 0) {
                         $teil_erg = '0';
                         $trenn = '-';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 10 && $kampflos == 0) {
                         $teil_erg = '0,5';
                         $trenn = '-';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 11 && $kampflos == 0) {
                         $teil_erg = '1';
                         $trenn = '-';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 12 && $kampflos == 0) {
                         $teil_erg = '?';
                         $trenn = '';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 13 && $kampflos == 0) {
                         $teil_erg = '0';
                         $trenn = '-';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 14 && $kampflos == 0) {
                         $teil_erg = '0,5';
                         $trenn = '-';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 15 && $kampflos == 0) {
                         $teil_erg = '1';
                         $trenn = '-';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 1 && $kampflos == 2) {
                         $teil_erg = '-';
                         $trenn = '/';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 3 && $kampflos == 2) {
                         $teil_erg = '+';
                         $trenn = '/';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 5 && $kampflos == 2) {
                         $teil_erg = '-';
                         $trenn = '/';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 10 && $kampflos == 2) {
                         $teil_erg = '-';
                         $trenn = '/';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 13 && $kampflos == 2) {
                         $teil_erg = '-';
                         $trenn = '/';
                         $teil_ergk = '';
                         $trennk = '';
                     } elseif ($ergebnis == 15 && $kampflos == 2) {
                         $teil_erg = '+';
                         $trenn = '/';
                         $teil_ergk = '';
                         $trennk = '';
                     } else {
                         $teil_erg = '?';
                         $trenn = '';
                         $teil_ergk = '';
                         $trennk = '';
                     }
                     // Mannschaftsergebnis speichern
                     if ($teil_erg != '?') {
                         if ($ergebnis == 0) {
                             $teil_ergk = '';
                             $trennk = '';
                         } elseif ($ergebnis == 1 && $kampflos == 0) {
                             $teil_ergk = '';
                             $trennk = '';
                         } elseif ($ergebnis == 2 && $kampflos == 0) {
                             $teil_ergk = '';
                             $trennk = '';
                         } elseif ($ergebnis == 3 && $kampflos == 0) {
                             $teil_ergk = '';
                             $trennk = '';
                         } elseif ($ergebnis == 4 && $kampflos == 0) {
                             $teil_ergk = '0';
                             $trennk = '-';
                         } elseif ($ergebnis == 5 && $kampflos == 0) {
                             $teil_ergk = '0';
                             $trennk = '-';
                         } elseif ($ergebnis == 6 && $kampflos == 0) {
                             $teil_ergk = '0.5';
                             $trennk = '-';
                         } elseif ($ergebnis == 7 && $kampflos == 0) {
                             $teil_ergk = '0';
                             $trennk = '-';
                         } elseif ($ergebnis == 8 && $kampflos == 0) {
                             $teil_ergk = '0,5';
                             $trennk = '-';
                         } elseif ($ergebnis == 9 && $kampflos == 0) {
                             $teil_ergk = '0,5';
                             $trennk = '-';
                         } elseif ($ergebnis == 10 && $kampflos == 0) {
                             $teil_ergk = '0,5';
                             $trennk = '-';
                         } elseif ($ergebnis == 11 && $kampflos == 0) {
                             $teil_ergk = '0,5';
                             $trennk = '-';
                         } elseif ($ergebnis == 12 && $kampflos == 0) {
                             $teil_ergk = '1';
                             $trennk = '-';
                         } elseif ($ergebnis == 13 && $kampflos == 0) {
                             $teil_ergk = '1';
                             $trennk = '-';
                         } elseif ($ergebnis == 14 && $kampflos == 0) {
                             $teil_ergk = '1';
                             $trennk = '-';
                         } elseif ($ergebnis == 15 && $kampflos == 0) {
                             $teil_ergk = '1';
                             $trennk = '-';
                         } elseif ($ergebnis == 1 && $kampflos == 2) {
                             $teil_ergk = '-';
                             $trennk = '/';
                         } elseif ($ergebnis == 3 && $kampflos == 2) {
                             $teil_ergk = '';
                             $trennk = '/';
                         } elseif ($ergebnis == 5 && $kampflos == 2) {
                             $teil_ergk = '-';
                             $trennk = '/';
                         } elseif ($ergebnis == 10 && $kampflos == 2) {
                             $teil_ergk = '-';
                             $trennk = '/';
                         } elseif ($ergebnis == 13 && $kampflos == 2) {
                             $teil_ergk = '';
                             $trennk = '/';
                         } elseif ($ergebnis == 15 && $kampflos == 2) {
                             $teil_ergk = '+';
                             $trennk = '/';
                         } else {
                             $teil_ergk = '';
                             $trennk = '';
                         }
                         //if		($ergebnis >= 8 AND $ergebnis <=11) $emsum = .5;
                         //elseif	($ergebnis >= 12 AND $ergebnis <=15) $emsum = 1;
                         //else	$emsum = 0;
                     }
                     //else {
                     if ($ergebnis == 2 or $ergebnis == 6 or $ergebnis == 10 or $ergebnis == 14) {
                         $emsum = 0.5;
                     } elseif ($ergebnis == 3 or $ergebnis == 7 or $ergebnis == 11 or $ergebnis == 15) {
                         $emsum = 1;
                     } else {
                         $emsum = 0;
                     }
                     //}
                 }
                 if ($ergebnis >= 8 and $ergebnis <= 11) {
                     $mmsum = 0.5;
                 } elseif ($ergebnis >= 12 and $ergebnis <= 15) {
                     $mmsum = 1;
                 } else {
                     $mmsum = 0;
                 }
                 if ($noBoardResults == '0') {
                     $tmp_erg[$paarung][$brett][] = $teil_erg;
                     if (!isset($tmp_trenn[$paarung][$brett]) or $tmp_trenn[$paarung][$brett] == '-') {
                         $tmp_trenn[$paarung][$brett] = $trenn;
                     }
                     $tmp_ergk[$paarung][$brett][] = $teil_ergk;
                     if (!isset($tmp_trennk[$paarung][$brett]) or $tmp_trennk[$paarung][$brett] == '-') {
                         $tmp_trennk[$paarung][$brett] = $trennk;
                     }
                     //if (!isset ($swt_data[$paarung]['hbrett_'.$brett])) {
                     if (!isset($swt_data[$paarung]['hbrett_' . $brett]) and !isset($swt_data[$paarung]['gbrett_' . $brett])) {
                         if ($mannschaft == $heim) {
                             $swt_data[$paarung]['hfarbe_' . $brett] = $farbe;
                             $swt_data[$paarung]['gfarbe_' . $brett] = $gegfarbe;
                             if ($ergebnis != 0) {
                                 $swt_data[$paarung]['hbrett_' . $brett] = $spieler[$s - 1]->id;
                             } else {
                                 $swt_data[$paarung]['hbrett_' . $brett] = 0;
                             }
                             if (isset($spieler[$gegner - 1])) {
                                 $swt_data[$paarung]['gbrett_' . $brett] = $spieler[$gegner - 1]->id;
                             } else {
                                 $swt_data[$paarung]['gbrett_' . $brett] = 0;
                             }
                             $heim_erg[$paarung][$brett] = $teil_erg;
                             if (!isset($swt_data[$paarung]['hemsum'])) {
                                 $swt_data[$paarung]['hemsum'] = 0;
                             }
                             $swt_data[$paarung]['hemsum'] += $emsum;
                             $heim_ergk[$paarung][$brett] = $teil_ergk;
                             if (!isset($swt_data[$paarung]['hmmsum'])) {
                                 $swt_data[$paarung]['hmmsum'] = 0;
                             }
                             $swt_data[$paarung]['hmmsum'] += $mmsum;
                         } elseif ($mannschaft == $gast) {
                             $swt_data[$paarung]['hfarbe_' . $brett] = $gegfarbe;
                             $swt_data[$paarung]['gfarbe_' . $brett] = $farbe;
                             if (isset($spieler[$gegner - 1])) {
                                 $swt_data[$paarung]['hbrett_' . $brett] = $spieler[$gegner - 1]->id;
                             } else {
                                 $swt_data[$paarung]['hbrett_' . $brett] = 0;
                             }
                             if ($ergebnis != 0) {
                                 $swt_data[$paarung]['gbrett_' . $brett] = $spieler[$s - 1]->id;
                             } else {
                                 $swt_data[$paarung]['gbrett_' . $brett] = 0;
                             }
                             $gast_erg[$paarung][$brett] = $teil_erg;
                             if (!isset($swt_data[$paarung]['gemsum'])) {
                                 $swt_data[$paarung]['gemsum'] = 0;
                             }
                             $swt_data[$paarung]['gemsum'] += $emsum;
                             $gast_ergk[$paarung][$brett] = $teil_ergk;
                             if (!isset($swt_data[$paarung]['gmmsum'])) {
                                 $swt_data[$paarung]['gmmsum'] = 0;
                             }
                             $swt_data[$paarung]['gmmsum'] += $mmsum;
                         }
                         //					echo "p,s,b: $paarung,$s,$brett "; //DBG
                     } else {
                         // ggf. noch prüfen ob konsistent mit den zuvor eingelesenen Daten
                         // ...
                         if ($mannschaft == $heim) {
                             //$swt_data[$paarung]['hfarbe_'.$brett] = $farbe;
                             $erg_str[$paarung][$brett] = $tmp_erg[$paarung][$brett][1] . $trenn . $tmp_erg[$paarung][$brett][0];
                             if (!isset($swt_data[$paarung]['hemsum'])) {
                                 $swt_data[$paarung]['hemsum'] = 0;
                             }
                             $swt_data[$paarung]['hemsum'] += $emsum;
                             $erg_strk[$paarung][$brett] = $tmp_ergk[$paarung][$brett][1] . $trennk . $tmp_ergk[$paarung][$brett][0];
                             if (!isset($swt_data[$paarung]['hmmsum'])) {
                                 $swt_data[$paarung]['hmmsum'] = 0;
                             }
                             $swt_data[$paarung]['hmmsum'] += $mmsum;
                         } elseif ($mannschaft == $gast) {
                             //$swt_data[$paarung]['gfarbe_'.$brett] = $farbe;
                             $erg_str[$paarung][$brett] = $tmp_erg[$paarung][$brett][0] . $trenn . $tmp_erg[$paarung][$brett][1];
                             if (!isset($swt_data[$paarung]['gemsum'])) {
                                 $swt_data[$paarung]['gemsum'] = 0;
                             }
                             $swt_data[$paarung]['gemsum'] += $emsum;
                             $erg_strk[$paarung][$brett] = $tmp_ergk[$paarung][$brett][0] . $trennk . $tmp_ergk[$paarung][$brett][1];
                             if (!isset($swt_data[$paarung]['gmmsum'])) {
                                 $swt_data[$paarung]['gmmsum'] = 0;
                             }
                             $swt_data[$paarung]['gmmsum'] += $mmsum;
                         }
                         //					else { //DBG
                         //						echo "offset: $offset"; //DBG
                         //					} //DBG
                     }
                 }
                 if ($noBoardResults == '1') {
                     if ($mannschaft == $heim) {
                         if (!isset($swt_data[$paarung]['hmmsum'])) {
                             $swt_data[$paarung]['hmmsum'] = 0;
                         }
                         $swt_data[$paarung]['hmmsum'] += $mmsum;
                     } elseif ($mannschaft == $gast) {
                         if (!isset($swt_data[$paarung]['gmmsum'])) {
                             $swt_data[$paarung]['gmmsum'] = 0;
                         }
                         $swt_data[$paarung]['gmmsum'] += $mmsum;
                     }
                 }
             }
             // ENDE if ($paarung != 0)
         }
         $offset += $abstand;
     }
     if ($noBoardResults == '0') {
         for ($p = 1; $p <= $anz_paarungen; $p++) {
             // bei ungerader Mannschaftsanzahl: spielfreie Paarung korrigieren
             /*			if ($ungerade && $p == $anz_paarungen) {
             				for ($b = 1; $b <= $anz_bretter; $b++) {
             					if ($mturnier == 0) { // in einer vollrundigen Liga spielfrei
             						$erg_str[$p][$b] = 'spielfrei';
             					}
             					else { // sonst kampfloser Sieg +/-
             						$erg_str[$p][$b] = '+/-';
             					}
             				}
             			} */
             $erg_string_default = '---';
             $erg_string_switch = 0;
             for ($b = 1; $b <= $anz_bretter; $b++) {
                 if (isset($erg_str[$p][$b])) {
                     $erg_string = $erg_str[$p][$b];
                     $fixed[$p][$b] = '';
                 } else {
                     if (isset($heim_erg[$p][$b])) {
                         switch ($heim_erg[$p][$b]) {
                             case '0':
                                 $erg_string = '0-1';
                                 break;
                             case '0,5':
                                 $erg_string = '0,5-0,5';
                                 break;
                             case '1':
                                 $erg_string = '1-0';
                                 break;
                             case '-':
                                 if ($tmp_trenn[$p][$b] == '-') {
                                     $erg_string = '---';
                                 } else {
                                     $erg_string = '-/+';
                                 }
                                 break;
                             case '+':
                                 $erg_string = '+/-';
                                 break;
                             case '':
                                 $erg_string = 'spielfrei';
                                 break;
                             default:
                                 $erg_string = '---';
                                 break;
                         }
                     } elseif (isset($gast_erg[$p][$b])) {
                         switch ($gast_erg[$p][$b]) {
                             case '0':
                                 $erg_string = '1-0';
                                 break;
                             case '0,5':
                                 $erg_string = '0,5-0,5';
                                 break;
                             case '1':
                                 $erg_string = '0-1';
                                 break;
                             case '-':
                                 if ($tmp_trenn[$p][$b] == '-') {
                                     $erg_string = '---';
                                 } else {
                                     $erg_string = '+/-';
                                 }
                                 break;
                             case '+':
                                 $erg_string = '-/+';
                                 break;
                             case '':
                                 $erg_string = 'spielfrei';
                                 break;
                             default:
                                 $erg_string = '---';
                                 break;
                         }
                     } else {
                         $erg_string = '---';
                     }
                     if (isset($erg_str[$p][$b])) {
                         $fixed[$p][$b] = ' (war: ' . $erg_str[$p][$b] . ')';
                     } else {
                         $fixed[$p][$b] = ' (war: leer )';
                     }
                     $erg_str[$p][$b] = $erg_string;
                 }
                 if ($erg_string != $erg_string_default) {
                     $erg_string_switch = 1;
                 } elseif ($erg_string_switch == 1) {
                     $erg_string = '-/-';
                 }
                 // aus --- wird -/-
                 $sql = ' SELECT eid FROM #__clm_ergebnis' . ' WHERE erg_text = "' . $erg_string . '"';
                 $objs = $this->_getList($sql);
                 if (!isset($objs[0])) {
                     $erg_id = 7;
                 } else {
                     $erg_id = $objs[0]->eid;
                 }
                 $swt_data[$p]['ergstr_' . $b] = $erg_string;
                 $swt_data[$p]['erg_' . $b] = $erg_id;
             }
         }
         //echo "<br>korr: ";
         for ($p = 1; $p <= $anz_paarungen; $p++) {
             $erg_string_default = '---';
             $erg_string_switch = 0;
             for ($b = 1; $b <= $anz_bretter; $b++) {
                 //echo "<br>erg_strk[$p][$b] ".$erg_strk[$p][$b]."  heim_ergk[$p][$b] ".$heim_ergk[$p][$b]."  gast_ergk[$p][$b] ".$heim_ergk[$p][$b];
                 if (isset($erg_strk[$p][$b])) {
                     $erg_string = $erg_strk[$p][$b];
                     $fixedk[$p][$b] = '';
                 } else {
                     if (isset($heim_ergk[$p][$b])) {
                         switch ($heim_ergk[$p][$b]) {
                             case '-':
                                 if ($tmp_trennk[$p][$b] == '-') {
                                     $erg_string = '---';
                                 } else {
                                     $erg_string = '-/+';
                                 }
                                 break;
                             case '+':
                                 $erg_string = '+/-';
                                 break;
                             case '':
                                 $erg_string = '';
                                 break;
                             default:
                                 $erg_string = '---';
                                 break;
                         }
                     } elseif (isset($gast_ergk[$p][$b])) {
                         switch ($gast_ergk[$p][$b]) {
                             case '-':
                                 if ($tmp_trennk[$p][$b] == '-') {
                                     $erg_string = '---';
                                 } else {
                                     $erg_string = '+/-';
                                 }
                                 break;
                             case '+':
                                 $erg_string = '-/+';
                                 break;
                             case '':
                                 $erg_string = '';
                                 break;
                             default:
                                 $erg_string = '---';
                                 break;
                         }
                     } else {
                         $erg_string = '';
                     }
                     if (isset($erg_strk[$p][$b])) {
                         $fixedk[$p][$b] = ' (war: ' . $erg_strk[$p][$b] . ')';
                     } else {
                         $fixedk[$p][$b] = ' (war: leer )';
                     }
                     $erg_strk[$p][$b] = $erg_string;
                 }
                 if ($erg_string != $erg_string_default) {
                     $erg_string_switch = 1;
                 } elseif ($erg_string_switch == 1) {
                     $erg_string = '-/-';
                 }
                 // aus --- wird -/-
                 if ($swt_data[$p]['ergstr_' . $b] == $erg_string) {
                     $erg_string = '';
                 }
                 if ($erg_string == '1-0') {
                     $erg_string = '+/-';
                 }
                 if ($erg_string == '0-1') {
                     $erg_string = '-/+';
                 }
                 $swt_data[$p]['ergstrk_' . $b] = $erg_string;
                 $sql = ' SELECT eid FROM #__clm_ergebnis' . ' WHERE erg_text = "' . $erg_string . '"';
                 $objs = $this->_getList($sql);
                 if (isset($objs[0])) {
                     $erg_id = $objs[0]->eid;
                 } else {
                     $erg_id = '';
                 }
                 $swt_data[$p]['ergk_' . $b] = $erg_id;
                 //echo "<br>swt_data[$p][ergstrk_$b] ".$swt_data[$p]['ergstrk_'.$b]."  "."swt_data[$p][ergk_$b] ".$swt_data[$p]['ergk_'.$b];
             }
         }
     }
     if ($this->debug_ausgaben > 2) {
         echo "<pre>swt_data in getDataSWTspl (): ";
         print_r($swt_data);
         echo "</pre>";
     }
     if ($this->debug_ausgaben > -1 && $during_store == 0) {
         $swt_id = JRequest::getVar('swt_id', 0, 'default', 'int');
         $sql = ' SELECT name FROM #__clm_swt_mannschaften' . ' WHERE swt_id = "' . $swt_id . '"' . ' ORDER BY tln_nr ASC';
         $tmp_man = $this->_getList($sql);
         $sql2 = ' SELECT d.Spielername as name, m.id as id, m.snr as snr' . ' FROM #__clm_dwz_spieler as d' . ' LEFT JOIN #__clm_swt_meldeliste_spieler as m' . ' ON m.zps = d.ZPS AND m.mgl_nr = d.Mgl_Nr' . ' WHERE swt_id = "' . $swt_id . '"';
         $tmp_spl = $this->_getList($sql2);
         echo "<br/><br/>";
         for ($p = 1; $p <= $anz_paarungen; $p++) {
             $heim_name = $tmp_man[$swt_man[$p]['heim'] - 1]->name;
             $gast_name = $tmp_man[$swt_man[$p]['gast'] - 1]->name;
             echo "<table class='sjnrw_table'>";
             echo "<tr><td colspan=6>Paarung {$p}</td></tr>";
             echo "<tr><td></td>";
             echo "<td>" . $swt_man[$p]['heim'] . "</td><td>" . $heim_name . "</td>";
             echo "<td>" . $swt_man[$p]['gast'] . "</td><td>" . $gast_name . "</td>";
             echo "<td>Ergebnis</td></tr>";
             echo "<br><br>p {$p}:";
             var_dump($swt_man[$p]);
             if ($noBoardResults == '0') {
                 for ($b = 1; $b <= $anz_bretter; $b++) {
                     foreach ($tmp_spl as $spl) {
                         if ($spl->id == $swt_data[$p]['hbrett_' . $b]) {
                             $hname = $spl->name;
                             $hnr = $spl->snr;
                         } elseif ($spl->id == $swt_data[$p]['gbrett_' . $b]) {
                             $gname = $spl->name;
                             $gnr = $spl->snr;
                         }
                         if (isset($gname) && isset($hname)) {
                             break;
                         }
                     }
                     echo "<tr>";
                     echo "<td>{$b}</td>";
                     echo "<td>" . $swt_data[$p]['hbrett_' . $b] . "</td><td>" . $hnr . " - " . $hname . "</td>";
                     echo "<td>" . $swt_data[$p]['gbrett_' . $b] . "</td><td>" . $gnr . " - " . $gname . "</td>";
                     echo "<td>" . $erg_str[$p][$b] . $fixed[$p][$b] . " swt_data: ";
                     echo $swt_data[$p]['ergstr_' . $b] . " (" . $swt_data[$p]['erg_' . $b] . ")</td>";
                     echo "<td>" . $erg_strk[$p][$b] . $fixedk[$p][$b] . " swt_data: ";
                     echo $swt_data[$p]['ergstrk_' . $b] . " (" . $swt_data[$p]['ergk_' . $b] . ")</td>";
                     echo "<td>" . $offsets[$p][$b][0] . ", " . $offsets[$p][$b][1] . "</td>";
                     echo "</tr>";
                     unset($hname);
                     unset($gname);
                 }
             }
             echo "</table>";
             echo "<br/><br/>";
         }
     }
     $this->_swt_data_spl = $swt_data;
     return $this->_swt_data_spl;
 }
Exemple #4
0
 function _storePaarungen()
 {
     $db = JFactory::getDBO();
     $this->getRunden();
     $rfirst = JRequest::getVar('rfirst', '', 'post', 'int');
     $rlast = JRequest::getVar('rlast', '', 'post', 'int');
     if (!empty($this->_runden)) {
         $insert_query = "INSERT IGNORE INTO \r\n\t\t\t\t\t\t\t\t\t#__clm_swt_turniere_rnd_spl" . " \r\n\t\t\t\t\t\t\t\t\t( `sid`, `turnier`, `swt_tid`, `runde`, `brett`, `dg`, `tln_nr`, `heim`, `spieler`, `gegner`, `ergebnis`) " . " \tVALUES";
         foreach ($this->_runden as $rnd => $runde) {
             $i = $runde->nr;
             if ($i >= $rfirst and $i <= $rlast) {
                 $bretter = CLMSWT::getFormValue('brett', array(), 'array', $rnd);
                 foreach ($bretter as $brett) {
                     if (CLMSWT::getFormValue('ergebnisWhite', null, 'int', array($rnd, $brett)) == 7) {
                         $ergWhite = "NULL";
                     } else {
                         $ergWhite = CLMSWT::getFormValue('ergebnisWhite', null, 'int', array($rnd, $brett));
                     }
                     if (CLMSWT::getFormValue('ergebnisBlack', null, 'int', array($rnd, $brett)) == 7) {
                         $ergBlack = "NULL";
                     } else {
                         $ergBlack = CLMSWT::getFormValue('ergebnisBlack', null, 'int', array($rnd, $brett));
                     }
                     //Paarungsdaten f�r Wei�
                     $insert_query .= " ( \r\n\t\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('sid', null, 'int') . ", \t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('tid', null, 'int') . ", \r\n\t\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('swt_tid', null, 'int') . ", \r\n\t\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('runde', null, 'int', $rnd) . ", \r\n\t\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('brett', null, 'int', array($rnd, $brett)) . ",\r\n\t\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('dg', null, 'int', $rnd) . ", \r\n\t\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('spieler', null, 'int', array($rnd, $brett)) . ", \r\n\t\t\t\t\t\t\t\t\t\t\t1, \r\n\t\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('spieler', null, 'int', array($rnd, $brett)) . ",  \r\n\t\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('gegner', null, 'int', array($rnd, $brett)) . ",  \r\n\t\t\t\t\t\t\t\t\t\t\t" . $ergWhite . "\r\n\t\t\t\t\t\t\t\t\t\t),";
                     //Paarungsdaten f�r Schwarz
                     $insert_query .= " ( \r\n\t\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('sid', null, 'int') . ", \t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('tid', null, 'int') . ", \r\n\t\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('swt_tid', null, 'int') . ", \r\n\t\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('runde', null, 'int', $rnd) . ",\r\n\t\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('brett', null, 'int', array($rnd, $brett)) . ",\r\n\t\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('dg', null, 'int', $rnd) . ",\r\n\t\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('gegner', null, 'int', array($rnd, $brett)) . ", \r\n\t\t\t\t\t\t\t\t\t\t\t0, \r\n\t\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('gegner', null, 'int', array($rnd, $brett)) . ",  \r\n\t\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('spieler', null, 'int', array($rnd, $brett)) . ",  \r\n\t\t\t\t\t\t\t\t\t\t\t" . $ergBlack . "\r\n\t\t\t\t\t\t\t\t\t\t),";
                 }
             }
         }
         $insert_query = substr($insert_query, 0, -1);
         $insert_query .= ";";
         $db->setQuery($insert_query);
         if ($db->query()) {
             //Daten wurden erfolgreich in die Datenbank geschrieben
             return true;
         } else {
             if ($db->getErrorNum() == 1062) {
                 //Seite wurde aktualisiert (F5) und Daten stehen schon in der Datenbank
                 JFactory::getApplication()->enqueueMessage(JText::_('SWT_STORE_WARNING_MATCHES_ALLREADY_EXISTS'), 'notice');
                 return true;
             } else {
                 //Ein Fehler ist aufgetreten
                 JFactory::getApplication()->enqueueMessage(JText::_('SWT_STORE_ERROR_MATCHES'), 'error');
                 return false;
             }
         }
     } else {
         //Keine Paarungsdaten zum speichern da
         return true;
     }
 }
Exemple #5
0
 function getDataSWT()
 {
     jimport('joomla.filesystem.file');
     $mturnier = JRequest::getVar('mturnier', '0', 'default', 'int');
     // Namen und Verzeichnis der SWT-Datei auslesen
     $filename = JRequest::getVar('swt', '', 'default', 'string');
     $path = JPATH_COMPONENT . DIRECTORY_SEPARATOR . 'swt' . DIRECTORY_SEPARATOR;
     $swt = $path . $filename;
     // Allgemeine Turnierdaten
     //$swt_data['liga_name']				= $this->_SWTReadName ($swt, 245, 60);
     $swt_data['liga_name'] = utf8_encode($this->_SWTReadName($swt, 245, 60));
     $swt_data['anz_mannschaften'] = $this->_SWTReadInt($swt, 602);
     $swt_data['anz_bretter'] = $this->_SWTReadInt($swt, 604);
     $swt_data['anz_spieler'] = $this->_SWTReadInt($swt, 1327);
     $swt_data['anz_ersatz'] = $swt_data['anz_spieler'] - $swt_data['anz_bretter'];
     $swt_data['anz_runden'] = $this->_SWTReadInt($swt, 1);
     $swt_data['durchgang'] = $this->_SWTReadInt($swt, 598);
     $swt_data['anz_durchgaenge'] = $this->_SWTReadInt($swt, 599);
     $swt_data['heimrecht_vertauscht'] = $this->_SWTReadBool($swt, 1329);
     //echo '<br>liganame: '.$swt_data['liga_name'];
     //echo '<br>amannschaften: '.$swt_data['anz_mannschaften'];
     //echo '<br>abretter: '.$swt_data['anz_bretter'];
     //echo '<br>aspieler: '.$swt_data['anz_spieler'];
     //echo '<br>aersatz: '.$swt_data['anz_ersatz'];
     //echo '<br>arunden: '.$swt_data['anz_runden'];
     //echo '<br>durchgang: '.$swt_data['durchgang'];
     //echo '<br>adurchg: '.$swt_data['anz_durchgaenge'];
     //echo '<br>hrvtauscht: '.$swt_data['heimrecht_vertauscht'].'<br>';
     if ($mturnier == 1) {
         //echo "mturnier<br/>";
         $swt_data['anz_mannschaften'] = CLMSWT::readInt($swt, 1332);
         //echo "anz_mannschaften: ";
         //echo $swt_data['anz_mannschaften'];
     }
     // Rundenmodus
     $swt_modus = CLMSWT::readInt($swt, 596);
     $clm_modus = array(3, 1, 4, 4);
     /* SWT -> CLM	(Beschreibung)
     			0  ->  3	 Schweizer System
     			1  ->  1	 vollrundig nach FIDE
     			   ->  2	 vollrundig mit zentr. Endrunde
     			2  ->  4	 KO (1. Rnd Schweizer System)
     			3  ->  4	 KO (ohne Schweizer System) */
     if ($swt_modus >= count($clm_modus)) {
         $swt_modus = 1;
         // vollrundig als Standard
     }
     $swt_data['runden_modus'] = $clm_modus[$swt_modus];
     //echo "runden_modus: ".$swt_data['runden_modus'];
     // Ergebniswertung
     $swt_einzelwertung = $this->_SWTReadInt($swt, 1336);
     $swt_data['std_wertung'] = false;
     switch ($swt_einzelwertung) {
         case 0:
             $swt_data['std_wertung'] = true;
             break;
         case 1:
             $punkte = array(3, 1, 0, 0);
             break;
         case 2:
             // Remis weiss = 1, schwarz = 1.5
             $punkte = array(3, 1.5, 0, 0);
             // da im CLM nicht moeglich
             break;
         case 3:
             // Punkte schwarz werden ignoriert, da im CLM nicht moeglich!
             $sieg = $this->_SWTReadInt($swt, 5494);
             $remis = $this->_SWTReadInt($swt, 5498);
             $verlust = $this->_SWTReadInt($swt, 5502);
             $nichtantritt = $this->_SWTReadInt($swt, 5506);
             $antritt = $verlust - $nichtantritt;
             $punkte = array($sieg, $remis, $verlust, $nichtantritt);
             break;
     }
     // wenn keine Standard-Wertung, dann Punkte berechnen
     if ($swt_data['std_wertung'] == false) {
         // SWT-Punkte
         $sieg = $punkte[0];
         $remis = $punkte[1];
         $verlust = $punkte[2];
         $nichtantritt = $punkte[3];
         // CLM-Punkte berechnen
         $swt_data['antrittspunkte'] = $antritt;
         $swt_data['verlustpunkte'] = $verlust - $antritt;
         // = $nichtantritt;
         $swt_data['remispunkte'] = $remis - $antritt;
         $swt_data['siegpunkte'] = $sieg - $antritt;
     }
     // Mannschaftsergebniswertung
     $swt_mannschaftswertung = $this->_SWTReadInt($swt, 1338);
     $swt_data['man_std_wertung'] = false;
     $man_antritt = 0;
     switch ($swt_mannschaftswertung) {
         case 0:
             $swt_data['man_std_wertung'] = true;
             break;
         case 1:
             $man_punkte = array(3, 1, 0, 0);
             break;
         case 2:
             $man_sieg = $this->_SWTReadInt($swt, 5514);
             $man_remis = $this->_SWTReadInt($swt, 5518);
             $man_verlust = $this->_SWTReadInt($swt, 5522);
             $man_nichtantritt = $this->_SWTReadInt($swt, 5526);
             $man_antritt = $man_verlust - $man_nichtantritt;
             $man_punkte = array($man_sieg, $man_remis, $man_verlust, $man_nichtantritt);
             break;
     }
     // wenn keine Standard-Wertung, dann Punkte berechnen
     if ($swt_data['man_std_wertung'] == false) {
         // SWT-Punkte
         $man_sieg = $man_punkte[0];
         $man_remis = $man_punkte[1];
         $man_verlust = $man_punkte[2];
         $man_nichtantritt = $man_punkte[3];
         // CLM-Punkte berechnen
         $swt_data['man_antrittspunkte'] = $man_antritt;
         $swt_data['man_verlustpunkte'] = $man_verlust - $man_antritt;
         // = $man_nichtantritt;
         $swt_data['man_remispunkte'] = $man_remis - $man_antritt;
         $swt_data['man_siegpunkte'] = $man_sieg - $man_antritt;
     }
     // Siegbedingungen
     $sieg_bed = $this->_SWTReadInt($swt, 623);
     $swt_data['sieg_bed'] = 1;
     // Mannschaft mit meisten BP gewinnt
     if ($sieg_bed == 1) {
         // Mindespunktzahl (mehr als die Haelfte der moeglichen Punkte) muss erreicht werden
         $swt_data['sieg_bed'] = 2;
     }
     // Feinwertungen
     if ($swt_data['runden_modus'] == 3) {
         // Schweizer System
         $man_zweit = $this->_SWTReadInt($swt, 613);
         $man_dritt = $this->_SWTReadInt($swt, 615);
     } else {
         $man_zweit = $this->_SWTReadInt($swt, 614);
         $man_dritt = $this->_SWTReadInt($swt, 616);
     }
     /* SWT -> CLM	(Beschreibung)
     			 2 ->  5	 Brettpunkte
     			 3 ->  1	 Buchholz
     			    > 11	 Buchholz (1 Streichergebnis)
     			 4 ->  2	 Buchholz-Summe
     			( 5 ->  3	 Sonneborn-Berger bis 2014 )
     			 5 ->  23	 Sonneborn-Berger
     			14 ->  4	 Anzahl der Siege
     			15 -> 25     Direkter Vergleich
     			16 ->  6	 Berliner Wertung
     			18 ->  6	 Berliner Wertung (dir. Vergleich) */
     $clm_fein = array(0 => 0, 2 => 5, 3 => 1, 4 => 2, 5 => 23, 14 => 4, 15 => 25, 16 => 6, 18 => 6);
     $swt_data['tiebr1'] = $clm_fein[$man_zweit];
     $swt_data['tiebr2'] = $clm_fein[$man_dritt];
     $swt_data['tiebr3'] = 0;
     // Berliner Wertung
     if ($man_zweit == 16 || $man_dritt == 16) {
         // Berliner Wertung
         $swt_data['b_wertung'] = 3;
     } elseif ($man_zweit == 18 || $man_dritt == 18) {
         // Berliner Wertung (dir. Vergleich)
         $swt_data['b_wertung'] = 4;
     } else {
         $swt_data['b_wertung'] = 0;
     }
     return $swt_data;
 }
Exemple #6
0
 function getDataSWT()
 {
     if (!empty($this->_swt_data)) {
         return $this->_swt_data;
     }
     jimport('joomla.filesystem.file');
     // Namen und Verzeichnis der SWT-Datei auslesen
     $filename = JRequest::getVar('swt', '', 'default', 'string');
     $path = JPATH_COMPONENT . DIRECTORY_SEPARATOR . 'swt' . DIRECTORY_SEPARATOR;
     $swt = $path . $filename;
     // Aktuell zu bearbeitende Mannschaft
     $man = JRequest::getVar('man', 0, 'default', 'int');
     // ...
     //$swt_data['liga_name'] = $this->_SWTReadName ($swt, 245, 60);
     // schon gespeicherte SWT-Daten aus der DB holen
     $swt_db_data = $this->getDataSWTdb();
     $anz_mannschaften = $swt_db_data['anz_mannschaften'];
     $anz_bretter = $swt_db_data['anz_bretter'];
     $anz_durchgaenge = $swt_db_data['anz_durchgaenge'];
     $anz_runden = $swt_db_data['anz_runden'];
     $anz_spieler = CLMSWT::readInt($swt, 7, 2);
     // Offset berechnen
     $offset_rundaten = $anz_spieler * $anz_durchgaenge * $anz_runden * 19;
     $offset_mandaten = $anz_mannschaften * $anz_durchgaenge * $anz_runden * 19;
     $offset_spldaten = $anz_spieler * 655;
     // Mannschaft auslesen
     $offset = 13384 + $offset_rundaten + $offset_mandaten + $offset_spldaten;
     $swt_data['man_name'] = '';
     for ($m = 1; $m <= $anz_mannschaften; $m++) {
         $man_nr = CLMSWT::readInt($swt, $offset + 201);
         if ($man_nr == $man + 1) {
             // nur aktuelle Mannschaft betrachten
             $swt_data['man_name'] = CLMSWT::readString($swt, $offset, 32);
             break;
         }
         $offset += 655;
     }
     // Spieler auslesen
     $offset = 13384 + $offset_rundaten + $offset_mandaten;
     $i = 1;
     $swt_data['zps'] = '';
     $swt_data['sg_zps'] = '';
     JRequest::setVar('filter_zps', $swt_data['zps']);
     JRequest::setVar('filter_sg_zps', $swt_data['sg_zps']);
     for ($s = 1; $s <= $anz_spieler; $s++) {
         $man_nr = CLMSWT::readInt($swt, $offset + 201);
         if ($man_nr == $man + 1) {
             // nur Spieler der aktuellen Mannschaft betrachten
             if (!isset($swt_data['zps']) or $swt_data['zps'] == '') {
                 // einmalig die Mannschaftsdaten setzen
                 $swt_data['zps'] = CLMSWT::readString($swt, $offset + 153, 5);
                 //$swt_data['man_name']	= CLMSWT::readString ($swt, $offset + 33, 32);
                 if (!empty($swt_data['zps']) && JRequest::getVar('filter_zps', '', 'default', 'string') == '') {
                     JRequest::setVar('filter_zps', $swt_data['zps']);
                 }
             }
             $zps_act = CLMSWT::readString($swt, $offset + 153, 5);
             //if (($swt_data['zps'] != $zps_act) AND (strpos($swt_data['sg_zps'],$zps_act) === false)) {
             if (isset($zps_act) and $zps_act != '' and $swt_data['zps'] != $zps_act and strpos($swt_data['sg_zps'], $zps_act) === false) {
                 if ($swt_data['sg_zps'] == '') {
                     $swt_data['sg_zps'] = $zps_act;
                 } else {
                     $swt_data['sg_zps'] .= ',' . $zps_act;
                 }
                 //if (($swt_data['sg_zps'] != '') && (JRequest::getVar ('filter_sg_zps', '', 'default', 'string') == '')) {
                 JRequest::setVar('filter_sg_zps', $swt_data['sg_zps']);
                 //echo "<br>sg_zps: "; var_dump($swt_data['sg_zps']);
                 $this->_spielerliste = array();
                 //}
             }
             $i = CLMSWT::readInt($swt, $offset + 203);
             $swt_data['spieler_' . $i]['name'] = CLMSWT::readString($swt, $offset, 32);
             $swt_data['spieler_' . $i]['zps'] = CLMSWT::readString($swt, $offset + 153, 5);
             $swt_data['spieler_' . $i]['mgl_nr'] = CLMSWT::readString($swt, $offset + 159, 4);
             $dwzid = $this->findPlayerID($swt_data['spieler_' . $i]);
             $swt_data['spieler_' . $i]['dwzid'] = $dwzid;
             $swt_data['spieler_' . $i]['brett'] = CLMSWT::readInt($swt, $offset + 203);
             $spielerid[$swt_data['spieler_' . $i]['brett']] = $s;
             //$i += 1;
         }
         $offset += 655;
     }
     JRequest::setVar('spielerid', $spielerid);
     $swt_data['anz_spieler'] = $anz_spieler;
     $this->_swt_data = $swt_data;
     return $this->_swt_data;
 }
 function _getAnzTeilnehmer()
 {
     jimport('joomla.filesystem.file');
     //Name und Verzeichnis der SWT-Datei
     $filename = JRequest::getVar('swt', '', 'post', 'string');
     $path = JPATH_COMPONENT . DIRECTORY_SEPARATOR . "swt" . DIRECTORY_SEPARATOR;
     $swt = $path . $filename;
     //Array f�r JObjects erzeugen;
     $this->_teilnehmer = array();
     //Einstellungen zur Berechnung des offset auslesen
     $anz_teilnehmer = CLMSWT::readInt($swt, 7, 2);
     $anz_runden = CLMSWT::readInt($swt, 1, 2);
     $anz_durchgaenge = CLMSWT::readInt($swt, 599, 1);
     $aktuelle_runde = CLMSWT::readInt($swt, 3, 2);
     $aktueller_durchgang = CLMSWT::readInt($swt, 598, 1);
     $ausgeloste_runden = CLMSWT::readInt($swt, 5, 2);
     $modus = $this->_calculateCLMModus(CLMSWT::readInt($swt, 596, 1));
     //offset f�r Teilnehmerdaten berechnen
     if ($aktuelle_runde != 0) {
         //Turnier ist bereits angefangen
         if ($modus == 2) {
             //Vollrundig
             $offset = 13384 + $anz_teilnehmer * $anz_runden * $anz_durchgaenge * 19;
         } else {
             $offset = 13384 + $anz_teilnehmer * $anz_runden * 19;
         }
     } else {
         //Turnier ist noch nicht angefangen
         $offset = 13384;
     }
     //Spielerdaten werden aus SWT-Datei gelesen und in einem Array von JObjects gespeichert
     $i = 1;
     $anz_teilnehmer_clm = 0;
     while ($i <= $anz_teilnehmer) {
         if (CLMSWT::readInt($swt, $offset + 189, 1) == 102) {
             //techn. Teilnehmer -spielfrei- in SWT
         } else {
             $anz_teilnehmer_clm++;
         }
         //Offset und index f�r n�chsten Teilnehmer erh�hen
         $offset += 655;
         $i++;
     }
     return $anz_teilnehmer_clm;
 }
 function getDataSWT()
 {
     if (empty($this->_swt_data)) {
         jimport('joomla.filesystem.file');
         // Namen und Verzeichnis der SWT-Datei auslesen
         $filename = JRequest::getVar('swt', '', 'default', 'string');
         $path = JPATH_COMPONENT . DIRECTORY_SEPARATOR . "swt" . DIRECTORY_SEPARATOR;
         $swt = $path . $filename;
         $swt_data['gesp_runden'] = CLMSWT::readInt($swt, 3);
         // Rundentermine
         $j = 0;
         for ($ii = 0; $ii < 40; $ii++) {
             $test = 'datum' . $ii;
             $d1 = $this->_SWTReadInt($swt, 11457 + $j);
             $d2 = $this->_SWTReadInt($swt, 11457 + $j + 1);
             $hh = $this->_SWTReadInt($swt, 11457 + $j + 2);
             $mm = $this->_SWTReadInt($swt, 11457 + $j + 3);
             $j += 4;
             $lt = $d1 + $d2 * 256;
             if ($lt > 0) {
                 $rdate = date_create('1899-12-30');
                 $ltstring = $lt . " days";
                 //date_add($rdate, date_interval_create_from_date_string($ltstring));  	// for >= php 5.3.0
                 date_modify($rdate, '+' . $lt . ' days');
                 // for >= php 5.2.0 too
                 $swt_data['runden_datum'][$ii + 1] = date_format($rdate, 'Y-m-d');
                 $swt_data['runden_beginn'][$ii + 1] = sprintf('%02d', $hh) . ':' . sprintf('%02d', $mm) . ':00';
             }
         }
         $this->_swt_data = $swt_data;
     }
     return $this->_swt_data;
 }
Exemple #9
0
 function store()
 {
     $db = JFactory::getDBO();
     //Name und Verzeichnis der SWT-Datei
     $filename = JRequest::getVar('swt', '', 'post', 'string');
     $path = JPATH_COMPONENT . DIRECTORY_SEPARATOR . "swt" . DIRECTORY_SEPARATOR;
     $swt = $path . $filename;
     //Teilnehmerzahl auslesen
     $anz_teilnehmer = CLMSWT::readInt($swt, 7, 2);
     if ($anz_teilnehmer > 0) {
         $insert_query = "INSERT IGNORE INTO \r\n\t\t\t\t\t\t\t\t\t#__clm_swt_turniere_tlnr" . " \r\n\t\t\t\t\t\t\t\t\t( `sid`, `turnier`, `swt_tid`, `snr`, `name`, `birthYear`, `geschlecht`, `tlnrStatus`, `verein`, `twz`, `start_dwz`, `FIDEelo`, `titel`, `FIDEcco`, `FIDEid`, `mgl_nr`, `zps`, `status`) " . " \tVALUES";
         print JRequest::getVar('snr[1]');
         $pfirst = JRequest::getVar('pfirst', '', 'post', 'int');
         $plast = JRequest::getVar('plast', '', 'post', 'int');
         $i = 1;
         $name = JRequest::getVar('name');
         while ($i <= $anz_teilnehmer) {
             if ($i >= $pfirst and $i <= $plast) {
                 if (isset($name[$i])) {
                     $zpscode = CLMSWT::getFormValue('zps', '', 'string', $i);
                     if ($zpscode == '' or $zpscode == 0) {
                         $zpscode = CLMSWT::getFormValue('zps_z', '', 'string', $i);
                     }
                     $insert_query .= " ( \r\n\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('sid', null, 'int') . ", \r\n\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('tid', null, 'int') . ", \r\n\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('swt_tid', null, 'int') . ", \r\n\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('snr', null, 'int', $i) . ", \r\n\t\t\t\t\t\t\t\t\t\t'" . CLMSWT::getFormValue('name', '', 'string', $i) . "',\r\n\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('birthYear', 0, 'int', $i) . ", \r\n\t\t\t\t\t\t\t\t\t\t'" . CLMSWT::getFormValue('geschlecht', '', 'string', $i) . "', \r\n\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('tlnrStatus', 0, 'int', $i) . ",\r\n\t\t\t\t\t\t\t\t\t\t'" . CLMSWT::getFormValue('verein', '', 'string', $i) . "',\r\n\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('twz', 0, 'int', $i) . ", \r\n\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('start_dwz', 0, 'int', $i) . ", \r\n\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('FIDEelo', 0, 'int', $i) . ", \r\n\t\t\t\t\t\t\t\t\t\t'" . CLMSWT::getFormValue('title', '', 'string', $i) . "', \r\n\t\t\t\t\t\t\t\t\t\t'" . CLMSWT::getFormValue('FIDEcco', '', 'string', $i) . "',\r\n\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('FIDEid', 0, 'int', $i) . ", \r\n\t\t\t\t\t\t\t\t\t\t" . CLMSWT::getFormValue('mgl_nr', 0, 'int', $i) . ", \r\n\t\t\t\t\t\t\t\t\t\t'" . $zpscode . "', \r\n\t\t\t\t\t\t\t\t\t\t" . "0" . " \r\n\t\t\t\t\t\t\t\t\t),";
                 }
             }
             $i++;
         }
         $insert_query = substr($insert_query, 0, -1);
         $insert_query .= ";";
         //print $insert_query;
         $db->setQuery($insert_query);
         if ($db->query()) {
             //Daten wurden erfolgreich in die Datenbank geschrieben
             return true;
         } else {
             if ($db->getErrorNum() == 1062) {
                 //Seite wurde aktualisiert (F5) und Daten stehen schon in der Datenbank
                 return true;
             } else {
                 //Ein Fehler ist aufgetreten
                 return false;
                 print $db->getErrorMsg();
             }
         }
     } else {
         //Keine Spieler vorhanden
         return true;
     }
 }