2022-07-24 19:54:06 +02:00
< ? php
include " script.php " ;
2022-08-03 14:19:19 +02:00
$refresh_rate = 15 ; //refresh rate en seconde (en gros on refresh la page toute les 15sec)
2022-07-24 19:54:06 +02:00
if ( $user [ 'perm' ] < 1 ) {
header ( 'Location: deco.php' );
}
2022-07-30 23:20:40 +02:00
if ( isset ( $_POST [ 'start1' ])) {
$req = $db -> prepare ( " UPDATE ville SET state = ?, time_begin = ? WHERE session = 1 " );
$req -> execute ( array ( 1 , time ()));
header ( 'Refresh: 0' );
}
if ( isset ( $_POST [ 'start2' ])) {
$req = $db -> prepare ( " UPDATE ville SET state = ?, time_begin = ? WHERE session = 2 " );
$req -> execute ( array ( 1 , time ()));
header ( 'Refresh: 0' );
}
if ( isset ( $_POST [ 'stop1' ])) {
$req = $db -> query ( " UPDATE ville SET state = 2 WHERE session = 1 " );
header ( 'Refresh: 0' );
}
if ( isset ( $_POST [ 'stop2' ])) {
$req = $db -> query ( " UPDATE ville SET state = 2 WHERE session = 2 " );
header ( 'Refresh: 0' );
}
if ( isset ( $_POST [ 'reset1' ])) {
if ( htmlspecialchars ( $_POST [ 'code' ]) == " anti-missclick " ) {
$req = $db -> query ( " UPDATE ville SET state = 0, time_begin = 0 WHERE session = 1 " );
$req = $db -> query ( " UPDATE ville_equipe SET temps = NULL WHERE id < 17 " );
header ( 'Refresh: 0' );
}
}
if ( isset ( $_POST [ 'reset2' ])) {
if ( htmlspecialchars ( $_POST [ 'code' ]) == " anti-missclick " ) {
$req = $db -> query ( " UPDATE ville SET state = 0, time_begin = 0 WHERE session = 2 " );
$req = $db -> query ( " UPDATE ville_equipe SET temps = NULL WHERE id > 16 " );
header ( 'Refresh: 0' );
}
}
2022-07-24 19:54:06 +02:00
?>
<! DOCTYPE html >
< html >
< head >
< meta charset = " utf-8 " >
< meta name = " viewport " content = " width=device-width, initial-scale=1 " >
< title > Admin / Com ' ville </ title >
2022-08-03 14:19:19 +02:00
< link rel = " stylesheet " type = " text/css " href = " com_ville.css " />
2022-07-24 19:54:06 +02:00
</ head >
< body >
< main >
2022-07-30 23:20:40 +02:00
< ? php
if ( isset ( $_GET [ 'session' ]) AND ! empty ( $_GET [ 'session' ]))
{
$session = ( int ) htmlspecialchars ( $_GET [ 'session' ]);
if ( $session == 1 ) {
?>
< a href = " ville.php?session=1 " class = " href_session_selected " > Session matin </ a >
< a href = " ville.php?session=2 " class = " href_session " > Session aprem </ a >
< br >
< ? php
$req = $db -> query ( " SELECT state FROM ville WHERE session = 1 " );
$r = $req -> fetchAll ( PDO :: FETCH_ASSOC );
if ( $r [ 0 ][ 'state' ] == 0 ) {
?>
< font color = " green " > Session non demarré , </ font >
< form method = " POST " >
2022-08-03 14:19:19 +02:00
< input type = " submit " name = " start1 " value = " Démarrer la session " class = " submit_inline " ></ form >
2022-07-30 23:20:40 +02:00
</ form >
< ? php
2022-08-03 14:19:19 +02:00
} elseif ( $r [ 0 ][ 'state' ] >= 1 ) {
if ( $r [ 0 ][ 'state' ] == 1 ) {
?>
< font color = " orange " > Session en cours , </ font >
< form method = " POST " >
< input type = " submit " name = " stop1 " value = " Stopper la session " class = " submit_inline " ></ form >
</ form >
2022-07-30 23:20:40 +02:00
2022-08-03 14:19:19 +02:00
< META HTTP - EQUIV = " Refresh " CONTENT = " <?= $refresh_rate ?> " >
2022-07-30 23:20:40 +02:00
2022-08-03 14:19:19 +02:00
< ? php
} elseif ( $r [ 0 ][ 'state' ] == 2 ) {
?>
< font color = " red " > Session terminé , </ font >
< form method = " POST " >
< input type = " text " name = " code " placeholder = " anti-missclick " class = " input_inline " >
< input type = " submit " name = " reset1 " value = " Reset la session " class = " submit_inline " ></ form >
</ form >
< ? php
}
echo " <br><br><br> " ;
$reqsession = $db -> query ( " SELECT state, time_begin FROM ville WHERE session = 1 " );
$rs = $reqsession -> fetchAll ( PDO :: FETCH_ASSOC );
$reqe = $db -> query ( 'SELECT * FROM ville_equipe WHERE id < 17' );
while ( $e = $reqe -> fetch ()) {
$temps_init = $e [ " temps " ];
$tab_time = NULL ;
$tab_time = explode ( " ; " , $temps_init );
$temps_begin = date ( " H:i:s " , $rs [ 0 ][ 'time_begin' ]);
if ( $temps_init == NULL ) {
$avancement = ( int ) 0 ;
$delta_time_0 = gmdate ( " H:i:s " , time () - $rs [ 0 ][ 'time_begin' ]);
} else {
$avancement = count ( $tab_time );
$def_time = $tab_time [ $avancement - 1 ] - $rs [ 0 ][ 'time_begin' ];
$delta_time_0 = gmdate ( " H:i:s " , $tab_time [ '0' ] - $rs [ 0 ][ 'time_begin' ]);
}
//node 0
2022-07-30 23:20:40 +02:00
?>
2022-08-03 14:19:19 +02:00
< div class = " cmv-progress " >
< h5 id = " cmv-title " class = " cmv-title " > Equipe < ? = $e [ 'nom' ] ?> </h5>
< div class = " cmv-container " >
< div class = " cmv-step fait " > 0
< div class = " cmv-fixed " >< ? = $temps_begin ?> </div> <!-- avec "--:--" = heure de départ -->
</ div >
< div class = " cmv-way fait " >
< div class = " cmv-relative " >< ? = $delta_time_0 ?> </div>
</ div >
< ? php
/** Pour une équipe donnée */
/** $depart : Le point de départ de cette équipe */
$depart = $e [ 'begin' ];
/** $etape : À quelle étape en est cette équipe, si on l'utilise il faut décommenter quelques ligne plus bas : "$current = $etape - $depart + 1;" et commenter "$current = $avancement+1;" */
//$etape = 1;
/** $i va de 1 à 17 (inclus), 17 étant le nombre d'étapes */
for ( $i = 1 ; $i <= 17 ; $i ++ ) {
2022-07-30 23:20:40 +02:00
2022-08-03 14:19:19 +02:00
/** $node : Le numéro dans la node à l ' emplacement $i
* exemple : si une équipe commence au point 7 alors la première node ( $i = 1 )
* va contenir $node = 7 À UTILISER POUR LES TEMPS ! */
$node = ( $i + $depart - 2 ) % 17 + 1 ;
/** $current : À quel index est placé la node correspondante à l ' $etape
* exemple : une équipe qui commence au point 17 en est au point 3 ,
* elle est donc affichée comme étant au niveau de la node d ' index 4 ( $i = 4 )
* puisque de gauche à droite les premières nodes sont 17 - 1 - 2 - 3 */
//$current = $etape - $depart + 1;
$current = $avancement + 1 ;
if ( $current < 0 ) {
$current = $current + 17 ;
}
/** Si le point $i a été fait (fait), est en train d'être fait (actuel), ou n'a pas encore été atteint */
$state = '' ;
if ( $i < $current ) {
$state = ' fait' ;
} elseif ( $i === $current ) {
$state = ' active' ;
}
echo '<div class="cmv-step' . $state . '">' ;
echo $node ;
if ( $i <= $current ) {
// --:-- doit être remplacé par l'heure à laquelle le point $node a été atteint
if ( $i == $current ) {
echo '<div class="cmv-fixed">' . date ( " H:i:s " , time ()) . '</div>' ;
} else {
echo '<div class="cmv-fixed">' . date ( " H:i:s " , $tab_time [ $i - 1 ]) . '</div>' ;
}
}
echo '</div>' ;
if ( $i < 17 ) {
echo '<div class="cmv-way' . $state . '">' ;
if ( $i < $current ) {
if ( $i < $current - 1 ) {
echo '<div class="cmv-relative">' . gmdate ( " H:i:s " , $tab_time [ $i ] - $tab_time [ $i - 1 ]) . '</div>' ; // --mn doit être remplacé par le deltaT entre les points $node et $node+1
} else {
echo '<div class="cmv-relative">' . gmdate ( " H:i:s " , time () - $tab_time [ $i - 1 ]) . '</div>' ;
}
}
echo '</div>' ;
}
}
?>
</ div >
</ div >
2022-07-30 23:20:40 +02:00
< ? php
2022-08-03 14:19:19 +02:00
} //fin du while e
2022-07-30 23:20:40 +02:00
}
2022-08-03 14:19:19 +02:00
2022-07-30 23:20:40 +02:00
} elseif ( $session == 2 ) {
2022-08-03 14:19:19 +02:00
2022-07-30 23:20:40 +02:00
?>
< a href = " ville.php?session=1 " class = " href_session " > Session matin </ a >
< a href = " ville.php?session=2 " class = " href_session_selected " > Session aprem </ a >
< br >
< ? php
$req = $db -> query ( " SELECT state FROM ville WHERE session = 2 " );
$r = $req -> fetchAll ( PDO :: FETCH_ASSOC );
if ( $r [ 0 ][ 'state' ] == 0 ) {
?>
< font color = " green " > Session non demarré , </ font >
< form method = " POST " >
2022-08-03 14:19:19 +02:00
< input type = " submit " name = " start2 " value = " Démarrer la session " class = " submit_inline " ></ form >
2022-07-30 23:20:40 +02:00
</ form >
< ? php
2022-08-03 14:19:19 +02:00
} elseif ( $r [ 0 ][ 'state' ] >= 1 ) {
if ( $r [ 0 ][ 'state' ] == 1 ) {
?>
< font color = " orange " > Session en cours , </ font >
< form method = " POST " >
< input type = " submit " name = " stop2 " value = " Stopper la session " class = " submit_inline " ></ form >
</ form >
< META HTTP - EQUIV = " Refresh " CONTENT = " <?= $refresh_rate ?> " >
< ? php
} elseif ( $r [ 0 ][ 'state' ] == 2 ) {
?>
< font color = " red " > Session terminé , </ font >
< form method = " POST " >
< input type = " text " name = " code " placeholder = " anti-missclick " class = " input_inline " >
< input type = " submit " name = " reset2 " value = " Reset la session " class = " submit_inline " ></ form >
</ form >
< ? php
}
echo " <br><br><br> " ;
$reqsession = $db -> query ( " SELECT state, time_begin FROM ville WHERE session = 2 " );
$rs = $reqsession -> fetchAll ( PDO :: FETCH_ASSOC );
$reqe = $db -> query ( 'SELECT * FROM ville_equipe WHERE id > 16' );
while ( $e = $reqe -> fetch ()) {
$temps_init = $e [ " temps " ];
$tab_time = NULL ;
$tab_time = explode ( " ; " , $temps_init );
$temps_begin = date ( " H:i:s " , $rs [ 0 ][ 'time_begin' ]);
if ( $temps_init == NULL ) {
$avancement = ( int ) 0 ;
$delta_time_0 = gmdate ( " H:i:s " , time () - $rs [ 0 ][ 'time_begin' ]);
} else {
$avancement = count ( $tab_time );
$def_time = $tab_time [ $avancement - 1 ] - $rs [ 0 ][ 'time_begin' ];
$delta_time_0 = gmdate ( " H:i:s " , $tab_time [ '0' ] - $rs [ 0 ][ 'time_begin' ]);
}
//node 0
2022-07-30 23:20:40 +02:00
?>
2022-08-03 14:19:19 +02:00
< div class = " cmv-progress " >
< h5 id = " cmv-title " class = " cmv-title " > Equipe < ? = $e [ 'nom' ] ?> </h5>
< div class = " cmv-container " >
< div class = " cmv-step fait " > 0
< div class = " cmv-fixed " >< ? = $temps_begin ?> </div> <!-- avec "--:--" = heure de départ -->
</ div >
< div class = " cmv-way fait " >
< div class = " cmv-relative " >< ? = $delta_time_0 ?> </div>
</ div >
< ? php
/** Pour une équipe donnée */
/** $depart : Le point de départ de cette équipe */
$depart = $e [ 'begin' ];
/** $etape : À quelle étape en est cette équipe, si on l'utilise il faut décommenter quelques ligne plus bas : "$current = $etape - $depart + 1;" et commenter "$current = $avancement+1;" */
//$etape = 1;
/** $i va de 1 à 17 (inclus), 17 étant le nombre d'étapes */
for ( $i = 1 ; $i <= 17 ; $i ++ ) {
/** $node : Le numéro dans la node à l ' emplacement $i
* exemple : si une équipe commence au point 7 alors la première node ( $i = 1 )
* va contenir $node = 7 À UTILISER POUR LES TEMPS ! */
$node = ( $i + $depart - 2 ) % 17 + 1 ;
/** $current : À quel index est placé la node correspondante à l ' $etape
* exemple : une équipe qui commence au point 17 en est au point 3 ,
* elle est donc affichée comme étant au niveau de la node d ' index 4 ( $i = 4 )
* puisque de gauche à droite les premières nodes sont 17 - 1 - 2 - 3 */
//$current = $etape - $depart + 1;
$current = $avancement + 1 ;
if ( $current < 0 ) {
$current = $current + 17 ;
}
/** Si le point $i a été fait (fait), est en train d'être fait (actuel), ou n'a pas encore été atteint */
$state = '' ;
if ( $i < $current ) {
$state = ' fait' ;
} elseif ( $i === $current ) {
$state = ' active' ;
}
echo '<div class="cmv-step' . $state . '">' ;
echo $node ;
if ( $i <= $current ) {
// --:-- doit être remplacé par l'heure à laquelle le point $node a été atteint
if ( $i == $current ) {
echo '<div class="cmv-fixed">' . date ( " H:i:s " , time ()) . '</div>' ;
} else {
echo '<div class="cmv-fixed">' . date ( " H:i:s " , $tab_time [ $i - 1 ]) . '</div>' ;
}
}
echo '</div>' ;
if ( $i < 17 ) {
echo '<div class="cmv-way' . $state . '">' ;
if ( $i < $current ) {
if ( $i < $current - 1 ) {
echo '<div class="cmv-relative">' . gmdate ( " H:i:s " , $tab_time [ $i ] - $tab_time [ $i - 1 ]) . '</div>' ; // --mn doit être remplacé par le deltaT entre les points $node et $node+1
} else {
echo '<div class="cmv-relative">' . gmdate ( " H:i:s " , time () - $tab_time [ $i - 1 ]) . '</div>' ;
}
}
echo '</div>' ;
}
}
?>
</ div >
</ div >
2022-07-30 23:20:40 +02:00
< ? php
2022-08-03 14:19:19 +02:00
} //fin du while e
}
2022-07-30 23:20:40 +02:00
} else {
2022-08-03 14:19:19 +02:00
header ( 'Location: ../error.php' );
2022-07-30 23:20:40 +02:00
}
} else {
?>
< a href = " ville.php?session=1 " class = " href_session " > Session matin </ a >
< a href = " ville.php?session=2 " class = " href_session " > Session aprem </ a >
< table class = " acces " >
2022-07-24 23:12:31 +02:00
< tr >
2022-07-30 23:20:40 +02:00
< th width = " 10% " > ID ( db ) </ td >
< th width = " 70% " > Indice </ td >
< th width = " 10% " > reponse </ td >
< th width = " 10% " > photos </ td >
2022-07-24 23:12:31 +02:00
</ tr >
2022-07-30 23:20:40 +02:00
< ? php
$req = $db -> query ( 'SELECT id, indice, reponse, photo FROM ville_epreuve' );
while ( $epreuve = $req -> fetch ()) {
?>
< tr >
< td >< ? = $epreuve [ 'id' ] ?> </td>
< td >< ? = $epreuve [ 'indice' ] ?> </td>
< td >< ? = $epreuve [ 'reponse' ] ?> </td>
< td >< ? php if ( isset ( $epreuve [ 'photo' ])) { ?> <img src="../assets/img/com_ville/<?= $epreuve['photo'] ?>" style="height: 100px;"><?php } else { echo "<font color='red'>no photos</font>"; }?></td>
</ tr >
< ? php } ?>
</ table >
< ? php } ?>
2022-07-24 19:54:06 +02:00
</ main >
</ body >
</ html >