| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- <?php
- // This file contains HTML snippets for the several possible forms
- $pdo = null;
- try {
- $pdo = new PDO("sqlite:" . "${db_path}/slork.sqlite");
- } catch (PDOException $e) {
- // handle the exception here
- }
- $snippets = [];
- if ( $screen == 0 ) {
- // Select all maintainers
- $query = <<<QUERY
- SELECT maintainer.maintainer, player.value
- FROM maintainer
- JOIN player ON maintainer.maintainer = player.player
- WHERE player.property = 'name';
- QUERY;
- $all_maintainers = [];
- $rows = $pdo->query($query);
- if ( $rows ) {
- foreach ($rows as $row) {
- $all_maintainers[$row['maintainer']] = $row['value'];
- }
- }
- $snippets[0] = <<<HTML
- <form>
- <!-- This form adds a new maintainer -->
- <div class="form-group">
- <label for="newAPIKey">Add a new maintainer ...</label>
- <input type="hidden" name="action" value="i">
- <input type="password" class="form-control" name="api" id="newAPIKey" aria-describedby="newAPIKey" placeholder="Enter API key">
- <small id="newAPIKey" class="form-text text-muted">Assuming you are new here, add your Torn API key</small>
- </div>
- <button type="submit" class="btn btn-primary">Submit</button>
- </form>
- <div><p> </p><hr><p> </p></div>
- <!-- This part selects an existing maintainer -->
- <form>
- <div class="form-group">
- <label for="existingMaintainer">... or select an existing maintainer</label>
- <input type="hidden" name="action" value="m">
- <select class="form-control" name="maintainer" id="existingMaintainer">
- <option></option><!-- Empty option -->
- HTML;
- foreach ($all_maintainers as $maintainer_key => $maintainer_value) {
- $snippets[0] .= "\t\t\t\t<option value=\"$maintainer_key\">$maintainer_value [$maintainer_key]</option>\n";
- }
- $snippets[0] .= <<<HTML
- </select>
- </div>
- <button type="submit" class="btn btn-primary">Submit</button>
- </form>
- HTML;
- }
- if ( $screen == 2 ) {
- // New player
- $snippets[2] = <<<HTML
- <form id="player-new">
- <div class="form-group">
- <label for="player-new">Add new player ...</label>
- <input type="hidden" name="maintainer" value="$maintainer[0]" form="player-new">
- <input type="number" name="player" form="player-new">
- <button class="btn btn-primary" name="action" value="p" form="player-new">New</button>
- </div>
- </form>
- <div>
- <p> </p><hr><p> </p>
- </div>
- HTML;
- // Let maintainer select (or delete) a player
- $query = <<<SQL
- SELECT player, value FROM player
- WHERE maintainer = ?
- AND property = 'name'
- --AND player != ?
- SQL;
- $stmt = $pdo->prepare($query);
- $stmt->execute( [$maintainer[0]] );
- $rows = $stmt->fetchAll();
- /*
- print("<pre>");
- print( "\$rows:\n" );
- print_r($rows);
- print("</pre>");
- */
- $players_id = array();
- foreach ($rows as $row) {
- $players_id[] = array($row['player'], $row['value'] . " [" . $row['player'] . "]");
- }
- $snippets[2] .= <<<HTML
- <form id="player-edit">
- <div class="form-group">
- <label for="player-edit">... or edit existing player</label>
- <table class="table">
- <thead>
- <tr>
- <th>Player</th><th>Edit</th><th>Remove</th>
- </tr>
- </thead>
- <tbody>
- HTML;
- foreach ($players_id as $player) {
- $snippets[2] .= "\n\t\t\t\t\t<tr>";
- $snippets[2] .= "\n\t\t\t\t\t\t<td>$player[1]";
- $snippets[2] .= "<input type=\"hidden\" name=\"player\" value=\"$player[0]\" form=\"player-edit\"></td><td>";
- $snippets[2] .= "<input type=\"hidden\" name=\"maintainer\" value=\"$maintainer[0]\" form=\"player-edit\">";
- $snippets[2] .= "<button class=\"btn btn-primary\" name=\"action\" value=\"e\" form=\"player-edit\">Edit</button></td>";
- $snippets[2] .= "<td><button class=\"btn btn-danger\" name=\"action\" value=\"x\" form=\"player-edit\">Remove</button></td>\n\t\t\t\t\t</tr>";
- }
- $snippets[2] .= <<<HTML
- \n </tbody>
- </table>
- </div>
- </form>
- <div>
- <p> </p>
- <a href="./index.php"><button class="btn btn-info">Ready</button></a>
- </div>
- HTML;
- }
- if ( $screen == 3 ) {
- // Edit properties of player
- // Provided is $_REQUEST['player']
- // $maintainer[id, 'name'] is also available in this section
- $player = $_REQUEST['player'];
- $query = <<<QUERY
- SELECT player_properties.property, player.value
- FROM player_properties
- JOIN player ON player_properties.player = player.player
- WHERE player_properties.player = ?
- AND player_properties.maintainer = ?
- AND player.property = 'name';
- QUERY;
- $stmt = $pdo->prepare( $query );
- $stmt->execute( [$player, $maintainer[0]] );
- //$rows = $stmt->fetchAll();
- $player_properties = [];
- $name = '?';
- foreach ($stmt as $key => $value) {
- // @TODO This is one row now since we store it in a JSON string
- /*
- print( "<pre>" );
- print( "[\$key, \$value]" );
- print_r( [$key, $value] );
- print( "</pre>" );
- */
- $player_properties[] = json_decode( $value['property'] );
- if ($key == 'name') {
- $name = $value['value'];
- }
- }
- $query = <<<QUERY
- SELECT property, parent FROM properties;
- QUERY;
- $stmt = $pdo->query( $query );
- $properties = [];
- foreach ($stmt as $row) {
- $properties[] = $row['property'];
- }
- $snippets[3] = '';
- /*
- print("<pre>");
- print_r($player_properties);
- print_r($properties);
- print_r( [$player, $maintainer[0]] );
- print("</pre>\n");
- */
- $snippets[3] = <<<HTML
- <!--
- <div>
- <p> </p>
- <hr>
- <p> </p>
- </div>
- -->
- <form id="player-edit">
- <div class="form-group">
- <label for="player-edit">Select properties for player ${name} [${player}]</label>
- <select class="selectpicker" multiple form="player-edit" name="properties[]">
- HTML;
- $snippets[3] .= "\n";
- /*
- print("<pre>" );
- print("\$player_properties:\n");
- print_r( $player_properties );
- print( "</pre>" );
- */
- foreach ( $properties as $property ) {
- $selected = '';
- if ( is_array( $property ) && in_array( $property, $player_properties[0] ) ) {
- $selected = ' selected';
- }
- if ( ! is_array( $property ) ) {
- if ( $property == $player_properties[0] ) {
- $selected = ' selected';
- }
- }
- $snippets[3] .= "\t\t\t\t<option${selected}>${property}</option>\n";
- };
- $snippets[3] .= <<<HTML
- </select>
- <input type="hidden" name="action" value="s">
- <input type="hidden" name="maintainer" value="${maintainer[0]}">
- <input type="hidden" name="player" value="${player}">
- </div>
- <button class="btn-save btn btn-primary btn-sm">Save</button>
- </form>
- <div>
- <p> </p>
- <a href="./index.php?action=m&maintainer=${maintainer[0]}"><button class="btn btn-info">Ready</button></a>
- </div>
- HTML;
- }
|