예제 #1
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;
 }
예제 #2
0
 static function readName($file, $offset, $length = 1)
 {
     return CLMSWT::readString($file, $offset, $length);
 }