Example #1
0
<?php

require_once dirname(dirname(__FILE__)) . '/config.php';
CheckTourSession(true);
$Value = array('error' => 1);
if (!empty($_GET['Targets']) and is_array($_GET['Targets'])) {
    foreach ($_GET['Targets'] as $Day => $Times) {
        if (is_array($Times)) {
            foreach ($Times as $Time => $Teams) {
                if (is_array($Teams)) {
                    foreach ($Teams as $Team => $Events) {
                        if (is_array($Events)) {
                            foreach ($Events as $Event => $Val) {
                                safe_w_SQL("update FinWarmup set\n\t\t\t\t\t\t\t\t\tFwTargets='{$Val}'\n\t\t\t\t\t\t\t\t\twhere FwTournament={$_SESSION['TourId']}\n\t\t\t\t\t\t\t\t\t\tAND FwEvent='{$Event}'\n\t\t\t\t\t\t\t\t\t\tAND FwTeamEvent='{$Team}'\n\t\t\t\t\t\t\t\t\t\tAND FwDay='{$Day}'\n\t\t\t\t\t\t\t\t\t\tAND FwTime='{$Time}'\n\t\t\t\t\t\t\t\t\t\t");
                                $Value['error'] = 0;
                                $Value['val'] = $Val;
                            }
                        }
                    }
                }
            }
        }
    }
}
header('Content-Type: text/xml');
echo '<response>';
foreach ($Value as $fld => $data) {
    echo "<{$fld}><![CDATA[{$data}]]></{$fld}>";
}
echo '</response>';
Example #2
0
function InsertStandard3DEliminations($TourId, $SubRule)
{
    $cls = array('SM', 'JM', 'SF', 'JF');
    foreach (array('CO', 'LB', 'AN', 'AI') as $div) {
        foreach ($cls as $cl) {
            //			for($n=1; $n<=16; $n++) {
            //				safe_w_SQL("INSERT INTO Eliminations set ElId=0, ElElimPhase=0, ElEventCode='$div$cl', ElTournament=$TourId, ElQualRank=$n");
            //			}
            for ($n = 1; $n <= 8; $n++) {
                safe_w_SQL("INSERT INTO Eliminations set ElId=0, ElElimPhase=1, ElEventCode='{$div}{$cl}', ElTournament={$TourId}, ElQualRank={$n}");
            }
        }
    }
}
Example #3
0
                                         if (count($targets) > 2) {
                                             array_splice($targets, $index + 2, 1);
                                         }
                                     }
                                     array_splice($targets, $index, 1);
                                     $data2up[] = array('id' => $MyRow->QuId, 'session' => $endSession, 'target' => $trgt);
                                 }
                             }
                         }
                     }
                     // faccio gli update
                     if (count($data2up) > 0) {
                         foreach ($data2up as $d) {
                             $query = "UPDATE " . "Qualifications " . "SET " . "QuSession='" . $d['session'] . "'," . "QuTargetNo='" . $d['target'] . "' " . "WHERE " . "QuId='" . $d['id'] . "' ";
                             //print $query . '<br><br>';
                             $rs = safe_w_SQL($query);
                             if (safe_w_affected_rows()) {
                                 safe_w_sql("UPDATE Qualifications SET QuBacknoPrinted=0 WHERE QuId='{$d['id']}'");
                             }
                             $msg .= get_text('TargetAssigned', 'Tournament', substr($d['target'], 1)) . '<br/>';
                         }
                         //exit;
                     } else {
                         $msg .= get_text('NoTargetFound') . '<br/>';
                     }
                 }
             }
         }
     }
 } else {
     $msg = get_text('Error');
Example #4
0
function InsertStandardFieldEliminations($TourId, $SubRule)
{
    $cls = array();
    switch ($SubRule) {
        case '1':
            $cls = array('M', 'W', 'JM', 'JW', 'CM', 'CW', 'MM', 'MW');
            break;
        case '2':
            $cls = array('M', 'W', 'JM', 'JW');
            break;
    }
    foreach (array('R', 'C', 'B') as $div) {
        foreach ($cls as $cl) {
            for ($n = 1; $n <= 16; $n++) {
                safe_w_SQL("INSERT INTO Eliminations set ElId=0, ElElimPhase=0, ElEventCode='{$div}{$cl}', ElTournament={$TourId}, ElQualRank={$n}");
            }
            for ($n = 1; $n <= 8; $n++) {
                safe_w_SQL("INSERT INTO Eliminations set ElId=0, ElElimPhase=1, ElEventCode='{$div}{$cl}', ElTournament={$TourId}, ElQualRank={$n}");
            }
        }
    }
}
Example #5
0
function SetParameter($ParId, $ParValue)
{
    $Query = "INSERT into Parameters SET ParValue=" . StrSafe_DB($ParValue) . ", ParId=" . StrSafe_DB($ParId) . " ON DUPLICATE KEY UPDATE ParValue=" . StrSafe_DB($ParValue);
    safe_w_SQL($Query);
}
function recalculateIndividuals_20101211($TournamentID)
{
    // Popolo la tabella degli Individuals
    $events = array();
    MakeIndividuals($events, $TournamentID);
    // Ottengo il numero di Distanze
    $MySql = "SELECT ToNumDist FROM Tournament WHERE ToId=" . StrSafe_DB($TournamentID);
    $rs = safe_r_SQL($MySql);
    $MyRow = safe_fetch($rs);
    safe_free_result($rs);
    // Calcolo la tabella Individuals per ogni distanza + il finale
    for ($i = 0; $i <= $MyRow->ToNumDist; $i++) {
        $rank = Obj_RankFactory::create('Abs', array('tournament' => $TournamentID, 'dist' => $i, 'skipExisting' => 1));
        if ($rank) {
            $rank->calculate();
        }
    }
    //Prendo le posizione dei Coin toss dalla tabella delle finali - SE senza eliminatorie
    $MySql = "UPDATE Individuals\n\t\tINNER JOIN Finals ON IndId=FinAthlete AND IndEvent=FinEvent AND IndTournament=FinTournament\n\t\tINNER JOIN Events ON EvCode=FinEvent AND EvTeamEvent=0 AND EvTournament=FinTournament\n\t\tINNER JOIN Grids ON GrMatchNo=FinMatchNo AND GrPhase=IF(EvFinalFirstPhase=24,32,EvFinalFirstPhase)\n\t\tSET IndRank=GrPosition\n\t\tWHERE FinTournament='{$TournamentID}' AND FinAthlete!=0 AND (EvElim1=0 AND EvElim2=0)";
    safe_w_SQL($MySql);
    // Gestisco le posizioni a seguito dello shootoff di entrata - SE le IndRank sono a 0
    $MySql = "SELECT IndId, IndEvent, QuScore, QuGold, QuXnine, IndRank\n\t\tFROM Individuals\n\t\tINNER JOIN Qualifications ON IndId=QuId\n\t\tINNER JOIN Events ON EvCode=IndEvent AND EvTeamEvent=0 AND EvTournament=IndTournament\n\t\tLEFT JOIN Finals ON IndTournament=FinTournament AND IndEvent=FinEvent AND IndId=FinAthlete\n\t\tLEFT JOIN Eliminations AS e1 ON e1.ElElimPhase=0 AND IndTournament=e1.ElTournament AND IndEvent=e1.ElEventCode AND IndId=e1.ElId\n\t\tLEFT JOIN Eliminations AS e2 ON e2.ElElimPhase=1 AND IndTournament=e2.ElTournament AND IndEvent=e2.ElEventCode AND IndId=e2.ElId\n\t\tWHERE IndTournament='{$TournamentID}' AND IndSO=1 AND IndRank=0 AND ((EvElim2=0 AND FinAthlete IS NULL) OR (EvElim2>0 AND EvElim1=0 AND e2.ElId IS NULL) OR (EvElim2>0 AND EvElim1>0 AND e1.ElId IS NULL))\n\t\tORDER BY IndEvent, QuScore DESC, QuGold DESC, QuXnine DESC, IndId\n\t\t";
    $rs = safe_r_SQL($MySql);
    $curGroup = "-----";
    $myPos = -1;
    $myRank = -1;
    $oldScore = -1;
    $oldGold = -1;
    $oldXnine = -1;
    while ($MyRow = safe_fetch($rs)) {
        if ($curGroup != $MyRow->IndEvent) {
            $curGroup = $MyRow->IndEvent;
            $myPos = $MyRow->IndRank;
        }
        $myPos++;
        if ($MyRow->QuScore != $oldScore || $MyRow->QuGold != $oldGold || $MyRow->QuXnine != $oldXnine) {
            $myRank = $myPos;
        }
        $MySql = "UPDATE Individuals\n\t\t\tSET IndRank = {$myRank}\n\t\t\tWHERE IndId='{$MyRow->IndId}' AND IndEvent='{$MyRow->IndEvent}' AND IndTournament='{$TournamentID}'";
        safe_w_SQL($MySql);
        $oldScore = $MyRow->QuScore;
        $oldGold = $MyRow->QuGold;
        $oldXnine = $MyRow->QuXnine;
    }
    //Sistemo le Rank di quelli che NON hanno passato i gironi ELiminatori (se c'erano i gironi) e i flag di SO/CT
    $MySql = "SELECT EvCode, EvFinalFirstPhase, EvElim1, EvElim2 FROM Events WHERE (EvElim1!=0 OR EvElim2!=0) AND EvTournament=" . StrSafe_DB($TournamentID) . " AND EvTeamEvent=0";
    $rs = safe_r_SQL($MySql);
    $eventsC = array();
    while ($MyRow = safe_fetch($rs)) {
        if ($MyRow->EvElim1 > 0) {
            $eventsC[] = $MyRow->EvCode . "@1";
        }
        if ($MyRow->EvElim2 > 0) {
            $eventsC[] = $MyRow->EvCode . "@2";
        }
    }
    Obj_RankFactory::create('ElimInd', array('tournament' => $TournamentID, 'eventsC' => $eventsC, 'skipExisting' => 1))->calculate();
    /*
    	$MySql = "SELECT ElId, ElElimPhase, ElEventCode, ElQualRank, ElScore, ElGold, ElXnine, ElRank
    		FROM Eliminations
    		INNER JOIN Events ON EvCode=ElEventCode AND EvTeamEvent=0 AND EvTournament=ElTournament
    		WHERE ElTournament='{$TournamentID}' AND  ((EvElim1>0 AND EvE1ShootOff!=0 AND ElElimPhase=0) OR (EvElim2>0 AND EvE2ShootOff!=0 AND ElElimPhase=1))
    		ORDER BY ElEventCode, ElElimPhase, ElScore DESC, ElRank ASC, ElGold DESC, ElXnine DESC, ElId
    		";
    	$rs = safe_r_SQL($MySql);
    	$curGroup = "-----";
    	$myPos = -1;
    	$myRank = -1;
    	$oldScore = -1;
    	$oldGold = -1;
    	$oldXnine = -1;
    	while($MyRow = safe_fetch($rs))
    	{
    		if($curGroup != $MyRow->ElElimPhase . "|". $MyRow->ElEventCode)
    		{
    			$curGroup = $MyRow->ElElimPhase . "|". $MyRow->ElEventCode;
    			$myPos = 0;
    		}
    		$myPos++;
    		if($MyRow->ElScore != $oldScore || $MyRow->ElGold != $oldGold || $MyRow->ElXnine != $oldXnine)
    			$myRank=$myPos;
    
    		if($MyRow->ElRank == 0)
    		{
    			$MySql = "UPDATE Eliminations
    				SET ElRank = {$myRank}
    				WHERE ElElimPhase='{$MyRow->ElElimPhase}' AND ElEventCode='{$MyRow->ElEventCode}' AND ElTournament='{$TournamentID}' AND ElQualRank='{$MyRow->ElQualRank}'";
    			safe_w_SQL($MySql);
    		}
    		$oldScore  = $MyRow->ElScore;
    		$oldGold = $MyRow->ElGold;
    		$oldXnine = $MyRow->ElXnine;
    	}
    */
    // Calcolo le rank Finali venendo dalle qualifiche
    $MySql = "SELECT EvCode, EvFinalFirstPhase, EvElim1, EvElim2 FROM Events WHERE EvTournament=" . StrSafe_DB($TournamentID) . " AND EvTeamEvent=0";
    $rs = safe_r_SQL($MySql);
    $eventsC = array();
    while ($MyRow = safe_fetch($rs)) {
        $eventsC[] = $MyRow->EvCode . "@-3";
        if ($MyRow->EvElim1 > 0) {
            $eventsC[] = $MyRow->EvCode . "@-1";
        }
        if ($MyRow->EvElim2 > 0) {
            $eventsC[] = $MyRow->EvCode . "@-2";
        }
        $eventsC[] = $MyRow->EvCode . "@" . $MyRow->EvFinalFirstPhase;
    }
    Obj_RankFactory::create('FinalInd', array('tournament' => $TournamentID, 'eventsC' => $eventsC))->calculate();
    safe_free_result($rs);
}
Example #7
0
function delModuleParameter($module, $param)
{
    $Query = "delete from ModulesParameters\n\t\twhere\n\t\tMpModule=" . StrSafe_DB($module) . "\n\t\tAND MpParameter=" . StrSafe_DB($param) . "\n\t\tAND MpTournament=" . StrSafe_DB($_SESSION['TourId']);
    safe_w_SQL($Query);
}
function move2NextPhase($Phase = NULL, $Event = NULL, $MatchNo = NULL)
{
    //verifico i parametri
    if (is_null($Phase) && is_null($MatchNo)) {
        //Devono esistere o la fase o il MatchNo
        return;
    }
    if (is_null($Phase) && is_null($Event)) {
        //Se non ho la Fase (e quindi ho il MatchNo) deve esistere l'evento
        return;
    }
    // Remember to check the saved from 64th to 16th!
    $CheckSaved = array();
    //Verifico la situazione tiebreak
    $Select = "SELECT " . "f.FinEvent, EvMatchMode as MatchMode, f.FinMatchNo as MatchNo, f2.FinMatchNo as OppMatchNo,  EvFinalFirstPhase, " . "f.FinAthlete AS Athlete, f2.FinAthlete AS OppAthlete, " . "if(f.FinMatchNo>15, EvElimEnds, EvFinEnds) FinEnds, if(f.FinMatchNo>15, EvElimArrows, EvFinArrows) FinArrows, if(f.FinMatchNo>15, EvElimSO, EvFinSO) FinSO, " . "IF(f.FinDateTime>=f2.FinDateTime, f.FinDateTime, f2.FinDateTime) AS DateTime," . "IF(EvMatchMode=0,f.FinScore,f.FinSetScore) AS Score, f.FinTie as Tie, f.FinTieBreak as TbString, IF(EvMatchMode=0,f2.FinScore,f2.FinSetScore) as OppScore, f2.FinTie as OppTie, f2.FinTieBreak as OppTbString, " . "f.FinArrowString as ArrString, f2.FinArrowString as OppArrString,  f.FinSetPoints as SetPoint, f2.FinSetPoints as OppSetPoint " . "FROM Finals AS f " . "INNER JOIN Finals AS f2 ON f.FinEvent=f2.FinEvent AND f.FinMatchNo=IF((f.FinMatchNo % 2)=0,f2.FinMatchNo-1,f2.FinMatchNo+1) AND f.FinTournament=f2.FinTournament " . "INNER JOIN Events ON f.FinEvent=EvCode AND f.FinTournament=EvTournament AND EvTeamEvent=0 ";
    if (!is_null($Phase)) {
        $Select .= "INNER JOIN Grids ON f.FinMatchNo=GrMatchNo AND GrPhase=" . StrSafe_DB($Phase) . " ";
    } else {
        $Select .= "INNER JOIN Grids ON f.FinMatchNo=GrMatchNo AND GrMatchNo=" . StrSafe_DB($MatchNo % 2 == 0 ? $MatchNo : $MatchNo - 1) . " ";
    }
    $Select .= "WHERE f.FinTournament=" . StrSafe_DB($_SESSION['TourId']) . " AND (f.FinMatchNo % 2)=0 ";
    if (!is_null($Event) && $Event != '') {
        $Select .= "AND f.FinEvent=" . StrSafe_DB($Event) . " ";
    }
    $Select .= "ORDER BY f.FinEvent, f.FinMatchNo ";
    //echo $Select;exit;
    $Rs = safe_r_sql($Select);
    if (safe_num_rows($Rs) > 0) {
        while ($MyRow = safe_fetch($Rs)) {
            if (empty($CheckSaved[$MyRow->FinEvent])) {
                $CheckSaved[$MyRow->FinEvent] = ($MyRow->EvFinalFirstPhase == 48 and $Phase == 64);
            }
            //Se uno dei due ATLETI è ZERO ed ENTRAMBI GLI SCORES sono a ZERO imposto il Bye
            if ($MyRow->Athlete != 0 && $MyRow->OppAthlete == 0 && $MyRow->Score == 0 && $MyRow->OppScore == 0) {
                $SqlUpdate = "UPDATE Finals SET FinTie=0, FinWinLose=0, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo=" . StrSafe_DB($MyRow->OppMatchNo) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']);
                safe_w_sql($SqlUpdate);
                $SqlUpdate = "UPDATE Finals SET FinTie=2, FinWinLose=1, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo=" . StrSafe_DB($MyRow->MatchNo) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']);
                safe_w_sql($SqlUpdate);
            } elseif ($MyRow->Athlete == 0 && $MyRow->OppAthlete != 0 && $MyRow->Score == 0 && $MyRow->OppScore == 0) {
                $SqlUpdate = "UPDATE Finals SET FinTie=0, FinWinLose=0, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo=" . StrSafe_DB($MyRow->MatchNo) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']);
                safe_w_sql($SqlUpdate);
                $SqlUpdate = "UPDATE Finals SET FinTie=2, FinWinLose=1, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo=" . StrSafe_DB($MyRow->OppMatchNo) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']);
                safe_w_sql($SqlUpdate);
            } elseif ($MyRow->MatchMode != 0) {
                //Se non ho il BYE, rigestisco il numero di set vinti e aggiorno il conteggio del totale (se i punti set sono valorizzati & le arrowstring sono vuote)
                if (strlen(trim(str_replace("|", "", $MyRow->SetPoint))) && strlen(trim(str_replace("|", "", $MyRow->OppSetPoint))) && strlen(trim($MyRow->ArrString)) == 0 && strlen(trim($MyRow->OppArrString)) == 0) {
                    $AthSets = explode("|", $MyRow->SetPoint);
                    $OppSets = explode("|", $MyRow->OppSetPoint);
                    $AthScore = 0;
                    $OppScore = 0;
                    $AthWin = 0;
                    $OppWin = 0;
                    if (count($AthSets) == count($OppSets)) {
                        for ($i = 0; $i < count($AthSets); $i++) {
                            if (intval($AthSets[$i]) > intval($OppSets[$i])) {
                                $AthScore += 2;
                                $AthWin++;
                            } elseif (intval($AthSets[$i]) < intval($OppSets[$i])) {
                                $OppScore += 2;
                                $OppWin++;
                            } elseif (intval($AthSets[$i]) != 0 && intval($OppSets[$i]) != 0) {
                                $AthScore += 1;
                                $OppScore += 1;
                            }
                        }
                        $SqlUpdate = "UPDATE Finals SET FinWinLose=" . ($AthScore > $MyRow->FinEnds ? 1 : 0) . ", FinSetScore=" . StrSafe_DB($AthScore) . ", FinWinnerSet=" . StrSafe_DB($AthWin) . ", FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo=" . StrSafe_DB($MyRow->MatchNo) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']);
                        safe_w_sql($SqlUpdate);
                        $MyRow->Score = $AthScore;
                        $SqlUpdate = "UPDATE Finals SET FinWinLose=" . ($OppScore > $MyRow->FinEnds ? 1 : 0) . ", FinSetScore=" . StrSafe_DB($OppScore) . ", FinWinnerSet=" . StrSafe_DB($OppWin) . ", FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo=" . StrSafe_DB($MyRow->OppMatchNo) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']);
                        safe_w_sql($SqlUpdate);
                        $MyRow->OppScore = $OppScore;
                    }
                }
            }
            //Se uno dei due è diverso da ZERO e non sono uguali oppure se è a set e differiscono di più di un punto
            if (($MyRow->Score != 0 || $MyRow->OppScore != 0) && $MyRow->Score != $MyRow->OppScore && ($MyRow->MatchMode != 0 && abs($MyRow->Score - $MyRow->OppScore) > 1)) {
                //Azzero entrambi i flag di shootoff
                $SqlUpdate = "UPDATE Finals SET FinTie=0, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo IN (" . StrSafe_DB($MyRow->MatchNo) . "," . StrSafe_DB($MyRow->OppMatchNo) . ") AND FinTournament=" . StrSafe_DB($_SESSION['TourId']);
                safe_w_sql($SqlUpdate);
            }
            // Se i punteggi sono uguali e diversi da ZERO entro nel dettaglio E le stringhe di frecce sono lunghe uguali e non vuote
            if ($MyRow->Score != 0 and $MyRow->Score == $MyRow->OppScore and strlen(str_replace(' ', '', $MyRow->TbString)) > 0 and strlen(str_replace(' ', '', $MyRow->TbString)) == strlen(str_replace(' ', '', $MyRow->OppTbString))) {
                $WinnerId = -1;
                //Verifico le stringhe CASE INSENSITIVE - in questo momento me ne frego degli "*"
                if (ValutaArrowString($MyRow->TbString) < ValutaArrowString($MyRow->OppTbString)) {
                    $WinnerId = $MyRow->OppMatchNo;
                    //OppTbString è maggiore di TbString --> il secondo vince
                } elseif (ValutaArrowString($MyRow->TbString) > ValutaArrowString($MyRow->OppTbString)) {
                    $WinnerId = $MyRow->MatchNo;
                    //TbString è maggiore di OppTbString --> il primo vince
                } elseif (strcmp(strtolower(substr(trim($MyRow->OppTbString), -1, 1)), substr(trim($MyRow->OppTbString), -1, 1)) == 0 && strcmp(substr(trim($MyRow->TbString), -1, 1), strtoupper(substr(trim($MyRow->TbString), -1, 1))) == 0) {
                    $WinnerId = $MyRow->OppMatchNo;
                    //le stringhe CASE INSENSITIVE sono uguali -- Verifico gli "*" e lo star è nella stringa del secondo (è maggiore)
                } elseif (strcmp(strtoupper(substr(trim($MyRow->OppTbString), -1, 1)), substr(trim($MyRow->OppTbString), -1, 1)) == 0 && strcmp(substr(trim($MyRow->TbString), -1, 1), strtolower(substr(trim($MyRow->TbString), -1, 1))) == 0) {
                    $WinnerId = $MyRow->MatchNo;
                    //le stringhe CASE INSENSITIVE sono uguali -- Verifico gli "*" e lo star è nella stringa del primo (è maggiore)
                }
                //Azzero entrambi i flag di shootoff
                $SqlUpdate = "UPDATE Finals SET FinTie=0, FinWinLose=0, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo IN (" . StrSafe_DB($MyRow->MatchNo) . "," . StrSafe_DB($MyRow->OppMatchNo) . ") AND FinTournament=" . StrSafe_DB($_SESSION['TourId']);
                safe_w_sql($SqlUpdate);
                if ($WinnerId > -1) {
                    $SqlUpdate = "UPDATE Finals SET FinTie=1, FinWinLose=1, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo=" . StrSafe_DB($WinnerId) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']);
                    safe_w_sql($SqlUpdate);
                    if ($MyRow->MatchMode != 0 && $MyRow->Score == $MyRow->OppScore) {
                        $SqlUpdate = "UPDATE Finals SET FinSetScore=FinSetScore+1, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo=" . StrSafe_DB($WinnerId) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']);
                        safe_w_sql($SqlUpdate);
                    }
                }
            }
        }
    }
    // Faccio i passaggi di fase
    $MyNextMatchNo = 'xx';
    $QueryFilter = '';
    $Select = "SELECT " . "f.FinEvent AS Event, f.FinMatchNo, f2.FinMatchNo OppMatchNo,  " . "GrPhase, f.FinAthlete AS Athlete, f2.FinAthlete AS OppAthlete, " . "IF(EvMatchMode=0,f.FinScore,f.FinSetScore) AS Score, f.FinTie as Tie, IF(EvMatchMode=0,f2.FinScore,f2.FinSetScore) as OppScore, f2.FinTie as OppTie, " . "IF(GrPhase>2, FLOOR(f.FinMatchNo/2),FLOOR(f.FinMatchNo/2)-2) AS NextMatchNo " . "FROM Finals AS f " . "INNER JOIN Finals AS f2 ON f.FinEvent=f2.FinEvent AND f.FinMatchNo=IF((f.FinMatchNo % 2)=0,f2.FinMatchNo-1,f2.FinMatchNo+1) AND f.FinTournament=f2.FinTournament " . "INNER JOIN Events ON f.FinEvent=EvCode AND f.FinTournament=EvTournament AND EvTeamEvent=0 ";
    if (!is_null($Phase)) {
        $Select .= "INNER JOIN Grids ON f.FinMatchNo=GrMatchNo AND GrPhase=" . StrSafe_DB($Phase) . " ";
    } else {
        $Select .= "INNER JOIN Grids ON f.FinMatchNo=GrMatchNo AND GrMatchNo=" . StrSafe_DB($MatchNo % 2 == 0 ? $MatchNo : $MatchNo - 1) . " ";
    }
    $Select .= "LEFT JOIN Entries ON f.FinAthlete=EnId AND f.FinTournament=EnTournament " . "WHERE f.FinTournament=" . StrSafe_DB($_SESSION['TourId']) . " AND (f.FinMatchNo % 2)=0 ";
    if (!is_null($Event) && $Event != '') {
        $Select .= "AND f.FinEvent=" . StrSafe_DB($Event) . " ";
    }
    $Select .= "ORDER BY f.FinEvent, NextMatchNo ASC, Score DESC, Tie DESC ";
    $Rs = safe_r_sql($Select);
    // conterrà i parametri per il calcolo delle RankFinal
    $coppie = array();
    $AthPropTs = NULL;
    if (safe_num_rows($Rs) > 0) {
        $AthPropTs = date('Y-m-d H:i:s');
        while ($MyRow = safe_fetch($Rs)) {
            /*
             * Dato che potrei avere più fasi gestite da questa funzione, io ricavo le coppie
             * per la RankFinal dalle righe del recordset.
             * Visto che mi imbatterò più volte nella stessa coppia evento/fase, solo se la coppia
             * non l'ho già contata la aggiungo nel vettore.
             */
            if (!in_array($MyRow->Event . '@' . $MyRow->GrPhase, $coppie)) {
                $coppie[] = $MyRow->Event . '@' . $MyRow->GrPhase;
            }
            // sets the WinLose Flag
            $WinLose = -1;
            $AthProp = '0';
            $WhereProp = '0';
            if (intval($MyRow->Score) > intval($MyRow->OppScore) || intval($MyRow->Score) == intval($MyRow->OppScore) && intval($MyRow->Tie) > intval($MyRow->OppTie)) {
                $WinLose = $MyRow->FinMatchNo;
                if ($MyRow->GrPhase >= 2) {
                    $MyUpQuery = "UPDATE Finals SET\n\t\t\t\t\t\tFinAthlete =" . StrSafe_DB($MyRow->Athlete) . ",\n\t\t\t\t\t\tFinDateTime=" . StrSafe_DB($AthPropTs) . "\n\t\t\t\t\t\tWHERE FinEvent=" . StrSafe_DB($MyRow->Event) . " AND FinMatchNo=" . StrSafe_DB($MyRow->NextMatchNo) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']) . " ";
                    $RsUp = safe_w_sql($MyUpQuery);
                    $AthProp = $MyRow->Athlete;
                    $WhereProp = $MyRow->OppAthlete;
                    if ($MyRow->GrPhase == 2) {
                        $MyUpQuery = "UPDATE Finals SET\n\t\t\t\t\t\t\tFinAthlete =" . StrSafe_DB($MyRow->OppAthlete) . ",\n\t\t\t\t\t\t\tFinDateTime=" . StrSafe_DB($AthPropTs) . "\n\t\t\t\t\t\t\tWHERE FinEvent=" . StrSafe_DB($MyRow->Event) . " AND FinMatchNo=" . StrSafe_DB($MyRow->NextMatchNo + 2) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']) . " ";
                        $RsUp = safe_w_sql($MyUpQuery);
                    }
                }
            } elseif (intval($MyRow->Score) < intval($MyRow->OppScore) || intval($MyRow->Score) == intval($MyRow->OppScore) && intval($MyRow->Tie) < intval($MyRow->OppTie)) {
                $WinLose = $MyRow->OppMatchNo;
                if ($MyRow->GrPhase >= 2) {
                    $MyUpQuery = "UPDATE Finals SET ";
                    $MyUpQuery .= "FinAthlete =" . StrSafe_DB($MyRow->OppAthlete) . ", ";
                    $MyUpQuery .= "FinDateTime=" . StrSafe_DB($AthPropTs) . " ";
                    $MyUpQuery .= "WHERE FinEvent=" . StrSafe_DB($MyRow->Event) . " AND FinMatchNo=" . StrSafe_DB($MyRow->NextMatchNo) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']) . " ";
                    $RsUp = safe_w_sql($MyUpQuery);
                    $AthProp = $MyRow->OppAthlete;
                    $WhereProp = $MyRow->Athlete;
                    if ($MyRow->GrPhase == 2) {
                        $MyUpQuery = "UPDATE Finals SET ";
                        $MyUpQuery .= "FinAthlete =" . StrSafe_DB($MyRow->Athlete) . ", ";
                        $MyUpQuery .= "FinDateTime=" . StrSafe_DB($AthPropTs) . " ";
                        $MyUpQuery .= "WHERE FinEvent=" . StrSafe_DB($MyRow->Event) . " AND FinMatchNo=" . StrSafe_DB($MyRow->NextMatchNo + 2) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']) . " ";
                        $RsUp = safe_w_sql($MyUpQuery);
                    }
                }
            } else {
                if ($MyRow->GrPhase >= 2) {
                    $MyUpQuery = "UPDATE Finals SET ";
                    $MyUpQuery .= "FinAthlete ='0', ";
                    $MyUpQuery .= "FinDateTime=" . StrSafe_DB($AthPropTs) . " ";
                    $MyUpQuery .= "WHERE FinEvent=" . StrSafe_DB($MyRow->Event) . " AND FinMatchNo=" . StrSafe_DB($MyRow->NextMatchNo) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']) . " ";
                    $RsUp = safe_w_sql($MyUpQuery);
                    if ($MyRow->GrPhase == 2) {
                        $MyUpQuery = "UPDATE Finals SET ";
                        $MyUpQuery .= "FinAthlete ='0', ";
                        $MyUpQuery .= "FinDateTime=" . StrSafe_DB($AthPropTs) . " ";
                        $MyUpQuery .= "WHERE FinEvent=" . StrSafe_DB($MyRow->Event) . " AND FinMatchNo=" . StrSafe_DB($MyRow->NextMatchNo + 2) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']) . " ";
                        $RsUp = safe_w_sql($MyUpQuery);
                    }
                }
            }
            // update the winner of previous match
            safe_w_sql("update Finals set FinWinLose=if(FinMatchNo=" . $WinLose . ", 1, 0) where FinMatchNo in (" . StrSafe_DB($MyRow->FinMatchNo) . "," . StrSafe_DB($MyRow->OppMatchNo) . ") AND FinEvent=" . StrSafe_DB($MyRow->Event) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']) . "");
            $OldId = $AthProp != 0 ? StrSafe_DB($WhereProp) : StrSafe_DB($MyRow->Athlete) . ',' . StrSafe_DB($MyRow->OppAthlete);
            if ($OldId != "'0'") {
                // if Athlete and Opponent are both there or if athlete is not present
                // propagates the winner in next matches
                $Update = "UPDATE Finals SET " . "FinAthlete=" . StrSafe_DB($AthProp) . ", " . "FinDateTime=" . StrSafe_DB($AthPropTs) . " " . ($AthProp == 0 ? ', FinWinLose=0 ' : '') . "WHERE FinAthlete IN (" . $OldId . ") " . "AND FinTournament=" . StrSafe_DB($_SESSION['TourId']) . " " . "AND FinEvent=" . StrSafe_DB($MyRow->Event) . " " . "AND FinMatchNo<" . StrSafe_DB($MyRow->NextMatchNo) . " ";
                $RsProp = safe_w_sql($Update);
            }
        }
    }
    foreach ($CheckSaved as $MyEvent => $DoSave) {
        if (!$DoSave) {
            continue;
        }
        // we get here only if we check phase 64 and we have a starting phase of 48, so the first 8 are automatically put in the 16th matches
        // start putting a bye to the first 8 athletes in 24th
        $SqlUpdate = "UPDATE Finals inner join Grids on FinMatchNo=GrMatchNo and GrPhase=32 and GrPosition2<=8 and GrPosition2>0\n\t\t\tSET FinTie=2, FinWinLose=1, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . "\n\t\t\tWHERE FinEvent=" . StrSafe_DB($MyEvent) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']);
        safe_w_SQL($SqlUpdate);
        // Push the first 8 to 16th... postponed as it breaks the brackets in the infosystem
        // in write SQL as it must be certain that it takes the right people without waiting for replica!!!
        $q = safe_w_sql("select FinAthlete, GrPosition2 from Finals inner join Grids on FinMatchNo=GrMatchNo and GrPhase=64 and GrPosition2<=8 and GrPosition2>0\n\t\t\tWHERE FinEvent=" . StrSafe_DB($MyEvent) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']));
        while ($r = safe_fetch($q)) {
            safe_w_sql("UPDATE Finals inner join Grids on FinMatchNo=GrMatchNo and GrPhase=16 and GrPosition2={$r->GrPosition2}\n\t\t\tSET FinAthlete={$r->FinAthlete}, FinWinLose=1, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . "\n\t\t\tWHERE FinEvent=" . StrSafe_DB($MyEvent) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']));
        }
    }
    // se ho delle coppie calcolo per queste la RankFinal
    if (count($coppie) > 0) {
        Obj_RankFactory::create('FinalInd', array('eventsC' => $coppie))->calculate();
    }
    return $AthPropTs;
}
Example #9
0
            if ($varResponse[0] == 'OK' or $varResponse[0] == 'OK-1') {
                $_SESSION['OnlineAuth'] = stripslashes($_REQUEST['OnlineAuth']);
            }
            if ($varResponse[0] == 'OK' or $varResponse[0] == 'OK-2') {
                $_SESSION['OnlineAuthA2A'] = stripslashes($_REQUEST['OnlineAuthA2A']);
            }
            $_SESSION['OnlineId'] = intval($_REQUEST['OnlineId']);
            $_SESSION['OnlineEventCode'] = $code;
            $return = 'Tournament/UploadResults.php';
            if (!empty($_REQUEST['return'])) {
                $return = $_REQUEST['return'];
            }
            // No header images for PDF...
            $_SESSION['SendOnlinePDFImages'] = trim($varResponse[1]) ? false : true;
            // sets the online code inside the tournament...
            safe_w_SQL("update Tournament set ToOnlineId=" . intval($_REQUEST['OnlineId']) . " where ToId={$_SESSION['TourId']}");
            cd_redirect($CFG->ROOT_DIR . $return);
        } else {
            $ErrorMessage = get_text($varResponse[0], 'Tournament');
        }
    }
}
$onlineId = empty($_SESSION['OnlineId']) ? '' : $_SESSION['OnlineId'];
$onlineAuth = empty($_SESSION['OnlineAuth']) ? '' : $_SESSION['OnlineAuth'];
$onlineAuthA2A = empty($_SESSION['OnlineAuthA2A']) ? '' : $_SESSION['OnlineAuthA2A'];
$onlineEventCode = empty($_SESSION['OnlineEventCode']) ? 0 : $_SESSION['OnlineEventCode'];
$PAGE_TITLE = get_text('SetCredentials', 'Tournament');
include 'Common/Templates/head.php';
?>
<div align="center">
	<form name="Frm" method="POST" action="">
Example #10
0
                }
                $Value = sprintf('%02d:%02d:00', $t[0], $t[1]);
            }
            $q[] = "SchStart='{$Value}'";
            break;
        case 'Duration':
            $Value = intval($Value);
            $q[] = "SchDuration='{$Value}'";
            break;
        case 'Title':
        case 'SubTitle':
        case 'Text':
            $q[] = "Sch{$Field}=" . StrSafe_DB($Value);
            break;
        case 'Shift':
            if (strlen($Value)) {
                $Value = StrSafe_DB(intval($Value));
            } else {
                $Value = 'null';
            }
            $q[] = "SchShift=" . $Value;
            break;
    }
}
if ($HasDay) {
    safe_w_SQL("insert into Scheduler set " . implode(',', $q) . " on duplicate key update SchOrder=SchOrder+1, " . implode(',', $q));
}
$Schedule = new Scheduler();
$Schedule->ROOT_DIR = $CFG->ROOT_DIR;
$ret = array('error' => 0, 'txt' => getScheduleTexts(), 'sch' => $Schedule->getScheduleHTML('SET'));
out($ret);
Example #11
0
    safe_w_SQL($MySql);
    db_save_version('2012-01-18 12:00:03');
}
if ($version < '2012-01-20 10:36:00') {
    $q = "ALTER TABLE `TVSequence` ADD `TVSFullScreen` varchar(1) NOT NULL ";
    $r = safe_w_sql($q, false, array(1060));
    db_save_version('2012-01-20 10:36:00');
}
if ($version < '2012-01-24 15:16:00') {
    /* aggancio l'id del torneo alla griglia f2f */
    // per prima cosa distruggo la griglia
    $q = "DROP TABLE IF EXISTS `F2FGrid`";
    $r = safe_w_sql($q, false, array());
    // poi la ricreo aggiungendo la colonna del torneo
    $q = "\n\t\tCREATE TABLE IF NOT EXISTS `F2FGrid` (\n\t\t  `F2FTournament` int(10) unsigned NOT NULL,\n\t\t  `F2FPhase` tinyint(3) unsigned NOT NULL,\n\t\t  `F2FRound` tinyint(3) unsigned NOT NULL,\n\t\t  `F2FMatchNo1` tinyint(3) unsigned NOT NULL,\n\t\t  `F2FMatchNo2` tinyint(3) unsigned NOT NULL,\n\t\t  `F2FGroup` tinyint(3) unsigned NOT NULL,\n\t\t  PRIMARY KEY (`F2FTournament`,`F2FPhase`,`F2FRound`,`F2FMatchNo1`,`F2FMatchNo2`,`F2FGroup`)\n\t\t) ENGINE=MyISAM DEFAULT CHARSET=utf8;\n\t";
    safe_w_SQL($q);
    // tiro furi le gare di tipo 21 dal db
    $q = "\n\t\tSELECT ToId\tFROM Tournament WHERE ToType=21\n\t";
    $rs = safe_r_sql($q);
    if ($rs && safe_num_rows($rs) > 0) {
        while ($row = safe_fetch($rs)) {
            $q = insertIntoGridForF2F_21($row->ToId);
            $rs2 = safe_w_sql($q, false, array(1062));
        }
    }
    db_save_version('2012-01-24 15:16:00');
}
if ($version < '2012-01-26 14:48:00') {
    $q = "ALTER TABLE `F2FEntries` ADD `F2FRankFinal` SMALLINT( 6 ) NOT NULL DEFAULT '0' AFTER `F2FRankScore` ;";
    $r = safe_w_sql($q, false, array(1060));
    db_save_version('2012-01-26 14:48:00');
Example #12
0
/**
 * This function is called on opening of a tournament and checks
 * if all flags and pictures are on disk (for TV output and Boinx Output)
 * and up to date
 *
 * It is also called on each TV Output or Boinx XML generation and only checks
 * if recent changes have been done getting the first file of the considered type
 * and checking its timestamp against the database.
 *
 * If a change has been done BUT the image seems to be wrong, the safest way is open the tournament
 * with another browser or from a different computer, to activate the first check!
 *
 */
function CheckPictures($TourCode = '', $open = false, $all = false, $force = false)
{
    global $CFG;
    if ($all) {
        $TourCode = 'All';
        $TourId = -1;
    } else {
        if (!$TourCode) {
            $TourCode = $_SESSION['TourCodeSafe'];
        }
        $TourId = getIdFromCode($TourCode);
    }
    $TourCodeSafe = preg_replace('/[^a-z0-9_.-]/sim', '', $TourCode);
    $OnlyNewer = '';
    // starts with no filters at all
    if ($open) {
        $now = strtotime('-10 days');
        // on opening of the tournament erase ALL the pictures older than 10 days;
        $Images = glob($CFG->DOCUMENT_PATH . 'TV/Photos/*.jpg');
        foreach ($Images as $img) {
            if (filemtime($img) < $now) {
                unlink($img);
            }
        }
    } else {
        // in all other cases, sets the filter to one of the images of the tournament
        // NO GUARANTEE that it is the oldest or the most recent
        // but it should be enough because of the 1st step
        $Images = glob($CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-En-*.jpg');
        if ($Images) {
            $OnlyNewer = filemtime($Images[0]);
            // create filter
            // speeds the process for the next time the function is called, as it will skip this file :)
            touch($Images[0]);
        }
        $Images = glob($CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-Fl-*.jpg');
        if ($Images) {
            $OnlyNewer = max($OnlyNewer, filemtime($Images[0]));
            // create filter
            // speeds the process for the next time the function is called, as it will skip this file :)
            touch($Images[0]);
        }
    }
    if ($all) {
        // updates the multimedia content as well...
        $q = safe_r_sql("select * from TVContents where TVCMimeType in ('image/gif','image/jpeg','image/png') and TVCTournament in (-1, {$TourId})");
        while ($r = safe_fetch($q)) {
            $im = imagecreatefromstring($r->TVCContent);
            imagejpeg($im, $CFG->DOCUMENT_PATH . 'TV/Photos/TV-' . ($r->TVCTournament == -1 ? 'BaseIanseo' : $TourCodeSafe) . '-' . ($r->TVCName == 'IdCardFooter' ? $r->TVCName : $r->TVCId) . '.jpg', 90);
        }
        // AND the Tour images as well...
        $q = safe_r_sql("select * from Tournament where ToId = {$TourId}");
        if ($r = safe_fetch($q)) {
            @unlink($CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . 'ToLeft.jpg');
            @unlink($CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . 'ToRight.jpg');
            @unlink($CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . 'ToBottom.jpg');
            if ($r->ToImgL and $im = @imagecreatefromstring($r->ToImgL)) {
                imagejpeg($im, $CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-ToLeft.jpg', 90);
            }
            if ($r->ToImgR and $im = @imagecreatefromstring($r->ToImgR)) {
                imagejpeg($im, $CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-ToRight.jpg', 90);
            }
            if ($r->ToImgB and $im = @imagecreatefromstring($r->ToImgB)) {
                imagejpeg($im, $CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-ToBottom.jpg', 90);
            }
        }
        // AND the Tour Backnumbers as well...
        $q = safe_r_sql("select BnFinal, BnBackground from BackNumber where BnTournament = {$TourId}");
        if (!safe_num_rows($q)) {
            if (!$all) {
                createBackno($TourCodeSafe);
            }
        } else {
            while ($r = safe_fetch($q)) {
                if ($r->BnBackground and $im = @imagecreatefromstring($r->BnBackground)) {
                    imagejpeg($im, $CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-BackNo-' . $r->BnFinal . '.jpg', 90);
                }
            }
        }
        // and the accreditation pictures too...
        $q = safe_r_sql("select IcBackground from IdCards where IcTournament = {$TourId}");
        if ($r = safe_fetch($q)) {
            if ($r->IcBackground and $im = @imagecreatefromstring($r->IcBackground)) {
                imagejpeg($im, $CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-Accreditation.jpg', 90);
            }
        }
        $q = safe_r_sql("select IceContent, IceOrder from IdCardElements where IceTournament = {$TourId} and IceType='Image'");
        while ($r = safe_fetch($q)) {
            if ($r->IceContent and $im = @imagecreatefromstring($r->IceContent)) {
                imagejpeg($im, $CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-Image-' . $r->IceOrder . '.jpg', 90);
            }
        }
        // and the Images too...
        $q = safe_r_sql("select * from Images where ImTournament = {$TourId}");
        while ($r = safe_fetch($q)) {
            if ($r->ImContent and $im = @imagecreatefromstring($r->ImContent)) {
                imagejpeg($im, $CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-' . $r->ImIocCode . '-' . $r->ImSection . '-' . $r->ImReference . '-' . $r->ImType . '.jpg', 90);
            }
        }
        $Sql = "(select" . " 'Fl' PictureType, " . " FlCode PictureCode," . " FlJPG Picture," . " unix_timestamp(FlEntered) PictureTime " . "from" . " Flags " . "where" . " FlTournament = -1 " . " and FlJPG>'') " . "UNION " . "(select" . " 'Fl-svg', " . " FlCode," . " FlSVG," . " unix_timestamp(FlEntered) UnixTime " . "from" . " Flags " . "where" . " FlTournament = -1" . " and FlSVG>'') ";
    } else {
        $Sql = "(select" . " 'En' PictureType, " . " PhEnId PictureCode," . " PhPhoto Picture," . " unix_timestamp(PhPhotoEntered) PictureTime " . "from" . " Photos" . " left join Entries on EnId=PhEnId " . "where" . " EnTournament={$TourId} " . ($OnlyNewer ? " and unix_timestamp(PhPhotoEntered)>{$OnlyNewer} " : '') . " and PhPhoto>'') " . "UNION " . "(select" . " 'Fl', " . " FlCode," . " FlJPG," . " unix_timestamp(FlEntered) UnixTime " . "from" . " Flags " . " inner join Countries on FlCode=CoCode and CoTournament={$TourId} " . "where" . " FlTournament in (-1, {$TourId})" . ($OnlyNewer ? " and unix_timestamp(FlEntered)>{$OnlyNewer} " : '') . " and FlJPG>'') " . "UNION " . "(select" . " 'Fl-svg', " . " FlCode," . " FlSVG," . " unix_timestamp(FlEntered) UnixTime " . "from" . " Flags " . " inner join Countries on FlCode=CoCode and CoTournament={$TourId} " . "where" . " FlTournament in (-1, {$TourId})" . ($OnlyNewer ? " and unix_timestamp(FlEntered)>{$OnlyNewer} " : '') . " and FlSVG>'') ";
    }
    $q = safe_r_sql($Sql);
    while ($r = safe_fetch($q)) {
        if ($r->PictureType == 'Fl-svg') {
            $ImName = $CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-' . $r->PictureType . '-' . $r->PictureCode . '.svg';
            if ($force or !file_exists($ImName) or filemtime($ImName) < $r->PictureTime) {
                $f = fopen($ImName, 'w');
                fwrite($f, gzinflate($r->Picture));
                fclose($f);
            }
        } else {
            $ImName = $CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-' . $r->PictureType . '-' . $r->PictureCode . '.jpg';
            if ($force or !file_exists($ImName) or filemtime($ImName) < $r->PictureTime) {
                if ($im = @imagecreatefromstring(base64_decode($r->Picture))) {
                    Imagejpeg($im, $ImName, 95);
                } elseif ($r->PictureType == 'En') {
                    safe_w_SQL("delete from Photos where PhEnId={$r->PictureCode}");
                }
            }
        }
    }
}
Example #13
0
    // aggiungo la colonna x salvare se quella rank ha dei pari oppure no.
    $MySql = "ALTER TABLE `Eliminations` ADD `ElSO` TINYINT( 3 ) UNSIGNED NOT NULL DEFAULT '0' AFTER `ElRank`; ";
    safe_w_SQL($MySql, false, array(1060));
    db_save_version('2010-11-29 11:03:00');
}
if ($version < '2010-12-03 16:40:00') {
    // aggiungo la colonna x le frecce di spareggio delle eliminatorie
    $MySql = "ALTER TABLE `Eliminations` ADD `ElTiebreak` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `ElArrowString` ; ";
    safe_w_SQL($MySql, false, array(1060));
    db_save_version('2010-12-03 16:40:00');
}
if ($version < '2010-12-11 20:30:00') {
    $MySql = "ALTER TABLE `Individuals` CHANGE `IndSO` `IndSO` SMALLINT NOT NULL DEFAULT '0'";
    safe_w_SQL($MySql);
    $MySql = "ALTER TABLE `Eliminations` CHANGE `ElSO` `ElSO` SMALLINT NOT NULL DEFAULT '0'";
    safe_w_SQL($MySql);
    $MySql = "ALTER TABLE `HhtData` ADD `HdRealTargetNo` VARCHAR( 3 ) NOT NULL ,\n\t\tADD `HdLetter` VARCHAR( 1 ) NOT NULL";
    safe_w_SQL($MySql, false, array(1060));
    $MySql = "SELECT ToId From Tournament";
    $rs = safe_r_SQL($MySql);
    while ($myRow = safe_fetch($rs)) {
        recalculateIndividuals_20101211($myRow->ToId);
    }
    //Riporto i QuRank e le freccie di Shootoff dalla tabella qualifications
    $MySql = "UPDATE Entries\n\t\tINNER JOIN Qualifications On QuId=EnId\n\t\tINNER JOIN EventClass ON EcTeamEvent=0 AND EcTournament=EnTournament AND EcClass=EnClass AND EcDivision=EnDivision\n\t\tINNER JOIN Individuals ON IndId=EnId AND IndEvent=EcCode AND IndTournament=EnTournament\n\t\tSET IndRank=QuRank, IndTieBreak=QuTieBreak\n\t\tWHERE QuRank!=0 AND (QuRank!=IndRank OR QutieBreak!=IndTieBreak)";
    safe_w_SQL($MySql);
    //riporto la posizione dalla tabella finali... mi serve solo per partecipazioni ad eventi multi pli sennò bastava query sopra
    $MySql = "UPDATE Individuals\n\t\tINNER JOIN Finals ON IndId=FinAthlete AND IndEvent=FinEvent AND IndTournament=FinTournament\n\t\tINNER JOIN Events ON EvCode=FinEvent AND EvTeamEvent=0 AND EvTournament=FinTournament\n\t\tINNER JOIN Grids ON GrMatchNo=FinMatchNo AND GrPhase=IF(EvFinalFirstPhase=24,32,EvFinalFirstPhase)\n\t\tSET IndRank=GrPosition\n\t\tWHERE FinAthlete!=0 AND (EvElim1=0 AND EvElim2=0)";
    safe_w_SQL($MySql);
    db_save_version('2010-12-11 20:30:00');
}
Example #14
0
        while ($row = safe_fetch($r)) {
            initTourGoldsXNineChars_20110309($row->ToId);
        }
    }
    db_save_version('2011-03-09 14:38:00');
}
if ($version < '2011-03-11 18:25:00') {
    $MySql = "ALTER TABLE Finals ADD INDEX FinAthleteEventTournament (FinAthlete, FinEvent, FinTournament) ";
    safe_w_SQL($MySql, false, array(1061));
    $MySql = "ALTER TABLE Eliminations ADD INDEX ElAthleteEventTournament (ElId, ElEventCode, ElTournament) ";
    safe_w_SQL($MySql, false, array(1061));
    db_save_version('2011-03-11 18:25:00');
}
if ($version < '2011-04-03 18:47:00') {
    $MySql = "ALTER TABLE Classes ADD ClDivisionsAllowed varchar(255) not null";
    safe_w_SQL($MySql, false, array(1060, 1061));
    db_save_version('2011-04-03 18:47:00');
}
if ($version < '2011-04-15 15:55:00') {
    // i tornei nel db
    $q = "SELECT ToId FROM Tournament ";
    $r = safe_r_sql($q);
    if (safe_num_rows($r) > 0) {
        while ($row = safe_fetch($r)) {
            RecalcFinRank_20110415($row->ToId);
        }
    }
    db_save_version('2011-04-15 15:55:00');
}
if ($version < '2011-04-18 18:35:00') {
    $q = "ALTER TABLE `Classes` DROP PRIMARY KEY , ADD PRIMARY KEY ( `ClId` , `ClTournament` , `ClDivisionsAllowed` )";