Beispiel #1
0
<?php

$form_url = Routing::getUrlFor(array('module' => $g_current_module, 'action' => $g_current_action));
$player = ModelPlayer::getById($_GET['id']);
$rankings = ModelRanking::getForPlayer($_GET['id']);
?>
<h2><?php 
echo $player['first_name'] . ' ' . $player['last_name'];
?>
</h2>

<form class="form-horizontal" action="<?php 
echo $form_url;
?>
" method="post">

  <div class="form-group">
    <label for="first_name" class="col-sm-2 control-label">Prénom</label>
    <div class="col-sm-10">
      <input class="form-control" type="text" name="first_name" value="<?php 
echo htmlspecialchars($player['first_name']);
?>
" />
    </div>
  </div>
  
  <div class="form-group">
    <label for="last_name" class="col-sm-2 control-label">Nom</label>
    <div class="col-sm-10">
      <input class="form-control" type="text" name="last_name" value="<?php 
echo htmlspecialchars($player['last_name']);
Beispiel #2
0
<?php

include_once 'model/Player.php';
$rows = ModelPlayer::get(array('order_by' => 'first_name, last_name'));
?>
<h2>Liste des joueurs</h2>

<?php 
if (count($rows) > 0) {
    ?>

  <table class="table table-hover">
    <thead>
    <tr>
      <!-- <th>ID</th> -->
      <th>Prénom</th>
      <th>Nom</th>
    </tr>
    </thead>
    <tbody>
  <?php 
    foreach ($rows as $row) {
        echo '<tr class="clickable" data-href="' . Routing::getUrlFor(array('module' => $module_code, 'action' => 'detail', 'id' => $row['id'])) . '">
        <!-- <td class="text-right">' . $row['id'] . '</td> -->
        <td>' . $row['first_name'] . '</td>
        <td>' . $row['last_name'] . '</td>
      </tr>' . "\n";
    }
    ?>
    </tbody>
  </table>
Beispiel #3
0
 static function get($id_set_type, $date = NULL)
 {
     $id_set_type = intval($id_set_type);
     // retrieve the distinct list of players who have played the asked set type
     $conditions = 'id_set_type = ' . $id_set_type . ($date !== NULL ? " AND creation_datetime < '" . $date . "'" : '');
     $ar_id_players = Database::fetchAll('SELECT DISTINCT id_player FROM (
       (SELECT DISTINCT id_player_1_win AS id_player FROM bad_set WHERE ' . $conditions . ')
       UNION
       (SELECT DISTINCT id_player_2_win AS id_player FROM bad_set WHERE ' . $conditions . ')
       UNION
       (SELECT DISTINCT id_player_1_lose AS id_player FROM bad_set WHERE ' . $conditions . ')
       UNION
       (SELECT DISTINCT id_player_2_lose AS id_player FROM bad_set WHERE ' . $conditions . ')
     ) AS t
     WHERE id_player IS NOT NULL');
     $count_id_players = count($ar_id_players);
     if ($count_id_players == 0) {
         // nobody played a set for the asked set type
         return array();
     }
     $ar_count_players = array();
     foreach ($ar_id_players as $row) {
         $ar_count_players[$row['id_player']] = NULL;
     }
     $count_scores_retrieved = 0;
     $resource = Database::query('SELECT * FROM bad_set WHERE ' . $conditions . ' ORDER BY creation_datetime DESC');
     while ($row = Database::fetchAssoc($resource)) {
         self::addScore($ar_count_players, $count_scores_retrieved, array('id_player' => $row['id_player_1_win'], 'score' => $row['new_score_player_1_win']));
         self::addScore($ar_count_players, $count_scores_retrieved, array('id_player' => $row['id_player_2_win'], 'score' => $row['new_score_player_2_win']));
         self::addScore($ar_count_players, $count_scores_retrieved, array('id_player' => $row['id_player_1_lose'], 'score' => $row['new_score_player_1_lose']));
         self::addScore($ar_count_players, $count_scores_retrieved, array('id_player' => $row['id_player_2_lose'], 'score' => $row['new_score_player_2_lose']));
     }
     // add player data
     $players = ModelPlayer::get();
     $players_indexed_by_id = array();
     foreach ($players as $player) {
         $players_indexed_by_id[$player['id']] = $player;
     }
     foreach ($ar_count_players as &$count_player) {
         $player = $players_indexed_by_id[$count_player['id']];
         $count_player['first_name'] = $player['first_name'];
         $count_player['last_name'] = $player['last_name'];
     }
     unset($count_player);
     // order $ar_count_players by score desc
     uasort($ar_count_players, array('self', 'sortByScoreDesc'));
     // compute ranks & "fair ranks" (same score = same rank)
     $rank = 1;
     $fair_rank = 1;
     $approved_rank = 1;
     $approved_fair_rank = 1;
     $previous_score = NULL;
     $previous_approved_score = NULL;
     foreach ($ar_count_players as &$player) {
         // basic ranking (allows to track ranking evolution)
         if ($previous_score != $player['score']) {
             $fair_rank = $rank;
         }
         $player['rank'] = $rank;
         $player['fair_rank'] = $fair_rank;
         $rank++;
         $previous_score = $player['score'];
         // 'approved' ranking
         if ($player['nb_sets'] >= MIN_SETS_FOR_BEING_RANKED) {
             if ($previous_approved_score != $player['score']) {
                 $approved_fair_rank = $approved_rank;
             }
             $player['approved_rank'] = $approved_fair_rank;
             $approved_rank++;
             $previous_approved_score = $player['score'];
         } else {
             $player['approved_rank'] = NULL;
         }
     }
     unset($player);
     // compute "fair rank diff" (helps to show how players ranking have evolved since previous training session)
     if ($date === NULL) {
         $now = new DateTime();
         $previous_rankings = self::get($id_set_type, $now->sub(new DateInterval(RANKINGS_COMPARISON_TIME_INTERVAL))->format('Y-m-d H:i:s'));
         foreach ($ar_count_players as &$player) {
             $player['fair_rank_diff'] = 0;
             foreach ($previous_rankings as $prev_player) {
                 if ($player['id'] == $prev_player['id']) {
                     $player['fair_rank_diff'] = $prev_player['fair_rank'] - $player['fair_rank'];
                     break;
                 }
             }
         }
         unset($player);
     }
     return $ar_count_players;
 }