Exemplo n.º 1
0
 function import_2()
 {
     global $mainframe;
     // Check for request forgeries
     JRequest::checkToken() or die('Invalid Token');
     $option = JRequest::getCmd('option');
     $section = JRequest::getVar('section');
     $task = JRequest::getVar('task');
     $db =& JFactory::getDBO();
     $step = JRequest::getVar('step');
     $fileName = JRequest::getVar('fileName');
     // Wenn von Schritt 1 kommend dann speichern !
     if ($step == "import_1") {
         $date =& JFactory::getDate();
         $now = $date->toMySQL();
         // Ligadaten holen
         $turnierart = JRequest::getInt('liga2');
         $liga_name = JRequest::getVar('liga3');
         $anz_mann = JRequest::getInt('liga4');
         $runden = JRequest::getInt('liga5');
         $gesp_runden = JRequest::getInt('liga6');
         $bretter = JRequest::getInt('liga7');
         $spieler = JRequest::getInt('liga8');
         $durchgaenge = JRequest::getInt('liga9');
         $akt_durchgang = JRequest::getInt('liga10');
         // Ligadaten verarbeiten
         $sql = " SELECT * FROM #__clm_swt_liga WHERE Liga ='{$liga_name}'";
         $db->setQuery($sql);
         $liga_daten = $db->loadObjectList();
         $anzahl = $liga_daten[0]->import_anzahl;
         $liga_clm = $liga_daten[0]->clm_id;
         $liga_swt = $liga_daten[0]->swt_id;
         if ($anzahl < 1) {
             $sql = " REPLACE INTO #__clm_swt_liga (`swt_id`,`clm_id`,`Liga`,`Mannschaften`,`Runden`,`gesp_Runden`,`Spieler`,`Bretter`,`Turnierart`,`Durchgaenge`,`akt_DG`,`import_datum`,`import_anzahl`) " . " VALUES ('', '{$liga_clm}', '{$liga_name}', '{$anz_mann}', '{$runden}', '{$gesp_runden}', '{$spieler}', '{$bretter}', '{$turnierart}', '{$durchgaenge}', '{$akt_durchgang}','{$now}','1')";
             $db->setQuery($sql);
             $db->query();
         } else {
             $anzahl++;
             $sql = " UPDATE #__clm_swt_liga " . " SET import_anzahl = '{$anzahl}'" . " , import_datum = '{$now}'" . " WHERE swt_id = " . $liga_swt;
             $db->setQuery($sql);
             $db->query();
         }
         // Mannschaftsdaten holen und verarbeiten
         if ($anzahl < 1) {
             $sql = " SELECT swt_id FROM #__clm_swt_liga WHERE Liga ='{$liga_name}' LIMIT 1";
             $db->setQuery($sql);
             $temp_swt = $db->loadObjectList();
             $liga_swt = $temp_swt[0]->swt_id;
         }
         for ($x = 1; $x < 1 + $anz_mann; $x++) {
             $m_name = JRequest::getVar('man_name' . $x);
             $m_zps = JRequest::getInt('man_zps' . $x);
             $manuell_name = JRequest::getVar('manuell_name' . $x);
             if ($manuell_name != "") {
                 $m_name = $manuell_name;
             }
             if ($anzahl < 1) {
                 $sql = " INSERT INTO #__clm_swt_man (`swt_id`,`name`,`zps`,`tln_nr`) VALUES ('{$liga_swt}', '{$m_name}', '{$m_zps}', '{$x}')";
             } else {
                 $sql = " UPDATE #__clm_swt_man " . " SET swt_id = '{$liga_swt}'" . " , name = '{$m_name}'" . " , zps = '{$m_zps}'" . " , tln_nr = '{$x}'" . " WHERE swt_id = " . $liga_swt . " AND zps = " . $m_zps;
             }
             $db->setQuery($sql);
             $db->query();
         }
     }
     /////////////////////////////////
     // aktuelle Saison ermitteln
     $sql = 'SELECT id FROM #__clm_saison WHERE archiv = 0 and published = 1';
     $db->setQuery($sql);
     $sid = $db->loadResult();
     /// SWT Datei in Array einlesen
     $swt[] = '';
     if ($fh = fopen($fileName, 'rb')) {
         while (!feof($fh)) {
             $swt[] = ord(fgets($fh, 2));
         }
         fclose($fh);
     }
     // ZPS f�r Mannschaften aus Spielerdaten
     $offset = 13384 + $swt[8] * $swt[2] * 19 + $swt[2] * $swt[603] * 19;
     for ($x = 1; $x < 1 + $swt[603]; $x++) {
         $man_zps[$x] = "manuell w&auml;hlen !";
         $offset += 655;
     }
     $sg_zps = array();
     $offset = 13384 + $swt[8] * $swt[2] * 19 + $swt[2] * $swt[603] * 19;
     for ($x = 0; $x < $swt[8]; $x++) {
         $zps = CLMControllerSWT::give_number($swt, 1 + 153 + $offset, 7);
         if ($zps != "") {
             $man_zps[$swt[$offset + 202]] = $zps;
         }
         // Array zum Erkennen von SG und ihren ZPS schreiben !
         if ($zps != "" and $sg_zps[1][$swt[$offset + 202]] == "") {
             $sg_zps[1][$swt[$offset + 202]] = $zps;
         }
         if ($zps != "" and $zps != $sg_zps[1][$swt[$offset + 202]] and $sg_zps[2][$swt[$offset + 202]] == "") {
             $sg_zps[2][$swt[$offset + 202]] = $zps;
         }
         $offset += 655;
     }
     // Filter
     // Konfigurationsparameter auslesen
     $config =& JComponentHelper::getParams('com_clm');
     $lv = $config->get('lv', 705);
     $vl = $config->get('vereineliste', 1);
     $vs = $config->get('verein_sort', 1);
     $version = $config->get('version', 0);
     $dat = substr($lv, 1);
     $dat2 = substr($lv, 2);
     // Vereinefilter
     if ($version == "0") {
         if ($dat == "00") {
             $ug = substr($lv, 0, 1) . '0000';
             $og = substr($lv, 0, 1) . '9999';
         }
         if ($dat2 == "0" and $dat != "00") {
             $ug = substr($lv, 0, 2) . '000';
             $og = substr($lv, 0, 2) . '999';
         }
         if ($dat2 != "0" and $dat != "00") {
             $ug = $lv . '00';
             $og = $lv . '99';
         }
     }
     if ($version == "1") {
         if ($lv == "00") {
             $ug = $lv;
             $og = "99";
         } else {
             $ug = $lv;
             $og = $lv;
         }
     }
     $sql = "SELECT ZPS as zps, Vereinname as name FROM #__clm_dwz_vereine as a " . " LEFT JOIN #__clm_saison as s ON s.id= a.sid " . " WHERE a.ZPS BETWEEN '{$ug}' AND '{$og}' " . " AND s.archiv = 0 AND s.published = 1 ORDER BY ";
     if ($vs == "1") {
         $sql = $sql . "a.ZPS ASC";
     } else {
         $sql = $sql . " a.Vereinname ASC";
     }
     $db->setQuery($sql);
     $vereine = $db->loadObjectList();
     // Mannschaftsnamen f�r manuelle Auswahl holen wenn vorhanden
     $l_name = CLMControllerSWT::give_name($swt, 377, 441);
     $sql = " SELECT m.name FROM #__clm_swt_liga AS a " . " LEFT JOIN #__clm_swt_man AS m ON m.swt_id = a.swt_id " . " WHERE Liga ='{$l_name}'" . " ORDER BY tln_nr ASC ";
     $db->setQuery($sql);
     $name_manuell = $db->loadObjectList();
     // Spielerdaten generieren
     // gespeicherte ZPS f�r Zuordnung der Spieler auslesen
     $sql = " SELECT m.zps FROM #__clm_swt_liga AS a " . " LEFT JOIN #__clm_swt_man AS m ON m.swt_id = a.swt_id " . " WHERE Liga ='{$l_name}'" . " ORDER BY tln_nr ASC ";
     $db->setQuery($sql);
     $zps_db = $db->loadObjectList();
     // Array zur �bergabe der Spielerdaten an den View generieren
     $info = 0;
     $cnt = 1;
     for ($y = 0; $y < $swt[603]; $y++) {
         $offset = 13384 + $swt[8] * $swt[2] * 19 + $swt[2] * $swt[603] * 19 + $y * 655;
         for ($x = 0; $x < $swt[8]; $x++) {
             $zps = CLMControllerSWT::give_number($swt, 1 + 153 + $offset, 7);
             $info = "";
             if ($zps == "") {
                 $zps = $zps_db[$y]->zps;
                 $info = 1;
             }
             if ($y + 1 == $swt[$offset + 202]) {
                 //$spl_name	= utf8_decode(CLMControllerSWT::give_name( $swt,1+$offset,($offset+65)));
                 $spl_name = CLMControllerSWT::give_name($swt, 1 + $offset, $offset + 65);
                 $spl_ges = CLMControllerSWT::give_name($swt, 1 + 184 + $offset, 184 + $offset + 1);
                 $mgl = CLMControllerSWT::give_number($swt, 1 + 159 + $offset, 4);
                 $tln_man = $swt[$offset + 218];
                 $man_nr = $swt[$offset + 202];
                 // Array : Counter => Tln_nr, Man_nr, Name, Geschl., ZPS, Mgl_Nr, Info
                 if ($y + 1 == $swt[$offset + 202]) {
                     $data[$cnt] = array($tln_man, $man_nr, $spl_name, $spl_ges, $zps, $mgl, $info);
                     $cnt++;
                 }
             }
             $offset += 655;
         }
     }
     // manuell eingegebene Spielernamen holen !
     $sql = " SELECT Name,Nr FROM #__clm_swt_spl " . " WHERE liga_swt ='{$liga_swt}'" . " ORDER BY Nr ASC ";
     $db->setQuery($sql);
     $name_spl = $db->loadObjectList();
     $count = 0;
     for ($x = 1; $x < 1 + $swt[8]; $x++) {
         if ($name_spl[$count]->Nr == $x) {
             $name_man_spl[$x] = $name_spl[$count]->Name;
             $count++;
         }
     }
     require_once JPATH_COMPONENT . DS . 'views' . DS . 'swt.php';
     CLMViewSWT::Import_2($lists, $swt, $name_manuell, $zps_db, $vereine, $sid, $data, $liga_swt, $name_man_spl, $fileName, $sg_zps);
 }