Ejemplo n.º 1
0
 /**
  * @expectedException \bmtmgr\utils\DuplicateEntryException
  */
 public function testSeasonDuplicates()
 {
     Model::connect();
     $s = Season::create('dup', false, 'http://example.org/foo3');
     $s->save();
     $s2 = Season::create('dup', true, 'http://example.org/foo4');
     $s2->save();
 }
Ejemplo n.º 2
0
 public function testEntryCreation()
 {
     Model::connect();
     $club1 = User::create('entry_test1', 'entry_test1', '*****@*****.**', []);
     $club1->save();
     $club2 = User::create('entry_test2', 'entry_test2', '*****@*****.**', []);
     $club2->save();
     $s = Season::create('foobar', true, 'http://base/url');
     $this->assertEquals($s->id, null);
     $this->assertEquals($s->_is_new, true);
     $this->assertEquals($s->name, 'foobar');
     $this->assertEquals($s->visible, true);
     $this->assertEquals($s->baseurl, 'http://base/url');
     $s->save();
     $id = $s->id;
     $this->assertNotEquals($s->id, null);
     $this->assertEquals($s->_is_new, false);
     $this->assertEquals($s->name, 'foobar');
     $this->assertEquals($s->visible, true);
     $s->save();
     $this->assertEquals($s->id, $id);
     $this->assertEquals($s->_is_new, false);
 }
Ejemplo n.º 3
0
utils\require_post_params(['tournament_url']);
if (!\preg_match('#^(https?://.*?/)[a-z]+(\\.aspx.*)$#', $_POST['tournament_url'], $m)) {
    render_ajax_error('Entschuldigung, die turnier-URL "' . $_POST['tournament_url'] . '" kann leider nicht bearbeitet werden.');
    exit;
}
$base_url = $m[1];
$clubs_url = $base_url . 'clubs' . $m[2];
$clubs_content = \file_get_contents($clubs_url);
if (!preg_match('#<div id="divTournamentHeader" class="header">\\s*<div class="title"><h3>(.*)</h3>#', $clubs_content, $m)) {
    throw new \Exception('Cannot find season name');
}
$name = \html_entity_decode($m[1], ENT_QUOTES | ENT_HTML5, 'utf-8');
Model::beginTransaction();
$season = Season::fetch_optional('WHERE name=?', [$name]);
if (!$season) {
    $season = Season::create($name, false, $_POST['tournament_url']);
    $season->save();
}
$players = [];
if (!\preg_match_all('#<td><a href="club\\.aspx(?P<club_path>\\?id=[^"]+)&club=(?P<club_num>[0-9]+)">(?P<name>[^<]+)</a></td><td class="right">(?P<id>[0-9-]+)</td>#', $clubs_content, $matches, PREG_SET_ORDER)) {
    throw new \Exception('Cannot find any club entries!');
}
foreach ($matches as $m) {
    $club = User::by_id_optional($m['id']);
    if (!$club) {
        $club = new User($m['id'], $m['name'], null, ['register']);
        $club->save();
    }
    $players_url = $base_url . 'clubplayers.aspx' . $m['club_path'] . '&cid=' . $m['club_num'];
    $players_page = \file_get_contents($players_url);
    $genders = ['Männer' => 'm', 'Frauen' => 'f'];
Ejemplo n.º 4
0
if ($ret && mysql_num_rows($ret) > 0) {
    $row = mysql_fetch_array($ret);
    if ($row) {
        $earliest->enctime($row[0]);
    }
}
$ret = mysql_query("select matchdate from lgmatch order by matchdate desc limit 1");
if ($ret && mysql_num_rows($ret) > 0) {
    $row = mysql_fetch_array($ret);
    if ($row) {
        $latest->enctime($row[0]);
    }
}
$Seas->Startdate = $earliest;
$Seas->Enddate = $latest;
$Seas->create();
//  Create the historic teams from the current ones
$Full_teams = list_all_teams();
foreach ($Full_teams as $team) {
    $team->fetchdets();
    $hteam = new Histteam($Seas);
    $hteam->Name = $team->Name;
    $hteam->Description = $team->Description;
    $hteam->Division = $team->Division;
    $hteam->Playing = $team->Playing;
    $hteam->Sortrank = $team->get_scores($Pars);
    // Also sets Wonm etc
    $hteam->Playedm = $team->Playedm;
    $hteam->Wonm = $team->Wonm;
    $hteam->Drawnm = $team->Drawnm;
    $hteam->Lostm = $team->Lostm;
Ejemplo n.º 5
0
if ($ret && mysql_num_rows($ret) > 0) {
    $row = mysql_fetch_array($ret);
    if ($row) {
        $earliest->enctime($row[0]);
    }
}
$ret = mysql_query("select matchdate from game order by matchdate desc limit 1");
if ($ret && mysql_num_rows($ret) > 0) {
    $row = mysql_fetch_array($ret);
    if ($row) {
        $latest->enctime($row[0]);
    }
}
$Seas->Startdate = $earliest;
$Seas->Enddate = $latest;
$Seasind = $Seas->create();
//  OK so all we have to do is convert individual league games to historic ones
//  by turning off "current" and setting the season number
$ret = mysql_query("update game set current=0,seasind={$Seasind} where current!=0 and league='I'");
if (!$ret) {
    $mess = mysql_error();
    include 'php/dataerror.php';
    exit(0);
}
$Ngames = mysql_affected_rows();
// I think that just about does it. Create a news item unless we didn't do anything.
if ($Ngames > 0) {
    $nws = new News('ADMINS', "Individual League season now closed and archived as {$Sname}.", true, "ileague.php");
    $nws->addnews();
}
?>
Ejemplo n.º 6
0
<?php

namespace bmtmgr;

require_once dirname(__DIR__) . '/src/common.php';
utils\csrf_protect();
$u = user\check_current();
$u->require_perm('admin');
utils\require_post_params(['name']);
try {
    $season = Season::create($_POST['name'], false);
    $season->save();
} catch (utils\DuplicateEntryException $e) {
    render_ajax_error('Die Liga "' . $_POST['name'] . '" existiert bereits');
    exit;
}
render_ajax('season/' . $season->id . '/', ['season' => $season]);
Ejemplo n.º 7
0
    /**
     * @return void
     */
    public function show()
    {
        if (!Team::isSuperAdmin()) {
            HTMLResponse::exitWithRoute('/');
        }

        if (!($csrf = $_SESSION['csrf'])) {
            $_SESSION['csrf'] = $csrf = rand(1, 1000000);
        }
        $postCsrf = HTMLResponse::fromPOST('csrf', '');

        if ($postCsrf == $csrf) {
            $newSeason = Season::create();
            $newSeason->ispublic = false;
            $newSeason->isdefault = false;
            $newSeason->save();
            $newSeason->name = "Temporada {$newSeason->seasonid}";
            $newSeason->save();
        }

        ?>
        <table style="width: 512px; margin: 0 auto">
            <thead>
            <tr>
                <td>#</td>
                <td>Nombre</td>
                <td>Opciones</td>
                <td>Acciones</td>
            </tr>
            </thead>
            <?
            foreach(Season::find('1=1') as $season) {
                ?>
                <tr>
                    <td><?=$season->seasonid?></td>
                    <td><?=htmlentities($season->name)?></td>
                    <td>
                        <?= $season->ispublic ? 'Pública' : 'Oculta' ?>
                        <?= $season->isdefault ? '(por defecto)' : '' ?>
                    </td>
                    <td style="text-align: left">
                        <a href="/admin/temporadas/<?=$season->seasonid?>/">
                            Editar temporada
                        </a><br>
                        <a href="/admin/temporadas/<?=$season->seasonid?>/jornadas/">
                            Editar jornadas
                        </a><br>
                        <a href="/admin/temporadas/<?=$season->seasonid?>/eventos/">
                            Editar eventos
                        </a>
                    </td>
                </tr>
                <?
            }
            ?>
        </table><br>

        <form action="<?=HTMLResponse::getRoute()?>" method="post">
            <input type="hidden" name="csrf" value="<?=$csrf?>">
            <button type="submit">Añadir nueva temporada</button>
        </form><br>
        <?
    }