Ejemplo n.º 1
0
Archivo: Team.php Proyecto: xJakub/LCE
 static function isMember($username = null)
 {
     if ($username === null) {
         $username = TwitterAuth::getUserName();
     }
     return !!Team::findOne('lower(username) = ? and ismember', [strtolower($username)]);
 }
Ejemplo n.º 2
0
 public static function getUserVotes($userid = null)
 {
     if ($userid === null) {
         $userid = TwitterAuth::getUserId();
     }
     return ApplicationVote::find('userid = ?', [$userid]);
 }
Ejemplo n.º 3
0
 /**
  * @param null $userid
  * @return static
  */
 public static function exists($userid = null)
 {
     if ($userid === null) {
         if (!TwitterAuth::isLogged()) {
             return null;
         } else {
             $userid = TwitterAuth::getUserId();
         }
     }
     return Application::findOne('userid = ?', [$userid]);
 }
Ejemplo n.º 4
0
Archivo: Match.php Proyecto: xJakub/LCE
 function hasVoted($userid = null)
 {
     if ($userid == null) {
         $userid = TwitterAuth::getUserId();
     }
     $bet = Bet::findOne('matchid = ? and userid = ?', array($this->matchid, $userid));
     if (!$bet) {
         return false;
     } else {
         return $bet->teamid;
     }
 }
Ejemplo n.º 5
0
Archivo: Polls.php Proyecto: xJakub/LCE
    /**
     * @return void
     */
    public function show()
    {
        if (!TwitterAuth::isLogged()) {
            ?>
            Sólo los miembros pueden ver esta página.
            <a href="<?=HTMLResponse::getRoute()?>?authenticate=1">
                Inicia sesión.
            </a><br>
            <?
            return;
        }
        else if (!Team::isMember()) {
            ?>
            Sólo los miembros pueden ver esta página.<br>
            <?
            return;
        }
        else {
            ?><div style="text-align: left; margin: 0 auto" class="inblock"><?
            if (Team::isMember()) {
                ?><ul><?
                foreach(Poll::find('isvisible order by dateline desc') as $poll) {
                    ?>
                    <li>
                        <a href="/votaciones/<?=$poll->pollid?>/">
                            <?=htmlentities($poll->title)?>
                        </a>
                    </li>
                    <?
                }
                ?></ul><?

                ?>
                <a href="/votaciones/crear/">
                    Haz click aquí para añadir una nueva votación.
                </a>
                <?
            }
            ?></div><br><br><?

        }
    }
Ejemplo n.º 6
0
    /**
     * @return void
     */
    public function show()
    {

        $resultNames = [
            ['Sin resultado', 'Sin resultado'],
        ];
        for ($i=6; $i>=0; $i--) {
            $resultNames[] = ["Victoria $i-0", "Derrota 0-$i"];
        }
        for ($i=0; $i<=6; $i++) {
            $resultNames[] = ["Derrota 0-$i", "Victoria $i-0"];
        }
        $resultNames[] = ["Victoria 6-0 (sin jugar)", "Derrota 0-6 (sin jugar)"];
        $resultNames[] = ["Derrota 0-6 (sin jugar)", "Victoria 6-0 (sin jugar)"];
        $resultNames[] = ["Aplazado", "Aplazado"];

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

        if ($postCsrf == $csrf) {
            if (HTMLResponse::fromPOST('color') !== null) {
                $this->team->color = HTMLResponse::fromPOST('color');
                $this->team->save();
            }
        }
        $color = $this->team->color;

        ?>
        <div class="inblock" style="margin-right: 16px">
            <a target="_blank" href="/<?=$this->team->getImageLink()?>">
                <img src="/<?=$this->team->getImageLink(300, 200)?>" alt="Logo" class="teamlogo"><br>
            </a>
            <a href="https://twitter.com/hashtag/<?=$this->team->getHashtag()?>" target="_blank">#<?=$this->team->getHashtag()?></a>
            <div style="height:2px"></div>
            <a href="https://twitter.com/<?=$this->team->username?>" target="_blank">@<?=$this->team->username?></a>
            <div style="height: 6px"></div>

            <span style="text-decoration: underline;">Color oficial</span>: <?
            if (preg_match("'^#[abcdefABCDEF0-9]{6}$'", $color)) {
                ?><span id="teamcolor"><?= $color ?></span><?
            } else {
                ?><i id="teamcolor">Sin color</i><?
                $color = '#000000';
            }
            ?>
            <div class="teamcolor" style="background: <?=$color?>"></div>

            <br><?
            if ($this->team->isManager()) {
                ?>
                <br>Eres el Manager del equipo.

                <form action="<?=HTMLResponse::getRoute()?>" method="post" id="colorform">
                    <input type="hidden" name="color" value="<?=$color?>">
                    <input type="hidden" name="csrf" value="<?=$csrf?>">
                </form>
                <?
                $this->design->addJavaScript('/js/jquery-ui.min.js');
                $this->design->addStyleSheet('/css/jquery-ui.min.css');
                $this->design->addStyleSheet('/css/jquery.colorpicker.css');
                $this->design->addJavaScript('/js/jquery.colorpicker.js');
                $this->design->addJavaScript("
                    $('.teamcolor').colorpicker({
                    inline: false,
                    color: '{$color}',
                    colorFormat: '#HEX',
                    closeOnOutside: false,
                    closeOnEscape: false,
                    ok: function(event, color) {
                        $('#colorform input[name=\"color\"]').val(color.formatted);
                        $('#colorform').submit();
                    }
                    }).css('cursor', 'pointer');
                    ", false);
            }
            ?>
        </div>
        <div class="inblock">
            <?

            ?>
            <h2>Calendario de enfrentamientos</h2>
            <table>
                <thead>
                <tr>
                    <td>Jornada</td>
                    <td>Fecha</td>
                    <td>Oponentes</td>
                    <td>Resultado</td>
                    <td>Vídeos</td>
                </tr>
                </thead>
                <tbody>
                <? foreach(Match::find('(team1id = ? or team2id = ?) and seasonid = ? order by week asc',
                    [$this->team->teamid, $this->team->teamid, $this->season->seasonid]) as $match) {

                    if (!$this->team->isManager() && !$this->season->weekIsPublic($match->week)) {
                        continue;
                    }

                    if (HTMLResponse::fromPOST('matchid', '') === $match->matchid &&
                        strlen($newResult = HTMLResponse::fromPOST('result', ''))) {
                        $match->result = $newResult;
                        $match->save();
                        HTMLResponse::exitWithRoute(HTMLResponse::getRoute());
                    }

                    $date = $this->season->getPublishTimeForWeek($match->week);

                    if ($match->team1id == $this->team->teamid) {
                        $posIndex = 0;
                    } else {
                        $posIndex = 1;
                    }

                    $opponentsId = ($match->team1id != $this->team->teamid) ? $match->team1id : $match->team2id;
                    $opponents = Team::get($opponentsId);

                    ?>
                    <tr>
                        <td style="height:3em">
                            <?
                            echo $this->season->getWeekName($match->week);
                            ?>
                        </td>
                        <td><?= date("Y-m-d", $date) ?></td>
                        <td style="text-align: center">
                            <!--
                            <?=htmlentities($this->team->name)?>
                            VS
                            -->
                            <a href="/<?=$this->season->getLink()?>/equipos/<?=$opponents->getLink()?>/">
                                <?=htmlentities($opponents->name)?>
                            </a>
                        </td>
                        <td>
                            <i style="color: #666" <? if ($this->team->isManager()) { ?>class="editableResult"<?}?>>
                                <?= ($this->team->isManager() || $match->isPublished()) ? $resultNames[$match->result][$posIndex] : $resultNames[0][0] ?>
                            </i>

                            <form class="editResult" method="POST" action="<?=HTMLResponse::getRoute()?>">
                                <select name="result">
                                    <? foreach($resultNames as $index => $names) {
                                        ?><option <?=($index==$match->result?'selected':'')?> value="<?=$index?>"><?=$names[$posIndex]?></option><?
                                    } ?>
                                </select>
                                <input type="hidden" name="matchid" value="<?=$match->matchid?>">
                            </form>

                        </td>
                        <td>
                            <? $this->showMatchVideo($this->team, $match, 2, "Ver Team Preview") ?>
                            <? $this->showMatchVideo($this->team, $match, 1, "Ver Combate") ?>

                        </td>
                    </tr>
                <? } ?>
                </tbody>
            </table>
            <?
            $this->showFriendlyMatches();

            if ($this->team->isManager()) {
                $this->checkPlayerChanges();
            }
            $this->showPlayers();
            if ($this->team->isManager()) {
                $this->showPlayersEditor();
            }

            $sanctionLevels = Sanction::getLevelNames();

            $sanctions = Sanction::find('seasonid = ? and teamid = ? order by dateline desc',
                [$this->season->seasonid, $this->team->teamid]);

            if ($sanctions && Team::isMember()) {
                ?>
                <h2>Sanciones recibidas</h2>
                <table style="min-width: 512px">
                    <thead>
                    <tr>
                        <!-- <td>Fecha</td> -->
                        <td>Tipo</td>
                        <td>Razón</td>
                    </tr>
                    </thead>

                    <? foreach($sanctions as $sanction) { ?>
                        <tr>
                            <!-- <td style="font-style: italic">
                                <?= date("Y-m-d H:i:s", $sanction->dateline) ?>
                            </td> -->
                            <td>
                                <?= $sanctionLevels[$sanction->level] ?>
                                <? if (Team::isAdmin()) { ?>
                                    <i style="color: #666">
                                        por
                                    </i>
                                    <?= htmlentities($sanction->adminname) ?>
                                <? } ?>
                            </td>
                            <td>
                                <?= htmlentities($sanction->reason) ?>
                            </td>
                        </tr>
                    <? } ?>
                </table><br>

                <?
            }

            if (Team::isAdmin()) {

                $postCsrf = HTMLResponse::fromPOST('sanctioncsrf', '');

                if ($postCsrf == $csrf) {
                    if (strlen($reason = HTMLResponse::fromPOST('sanctionreason'))) {
                        $sanction = Sanction::create();
                        $sanction->adminid = TwitterAuth::getUserId();
                        $sanction->adminname = TwitterAuth::getUserName();
                        $sanction->dateline = time();
                        $sanction->reason = $reason;
                        $sanction->seasonid = $this->season->seasonid;
                        $sanction->teamid = $this->team->teamid;
                        $sanction->level = HTMLResponse::fromPOST('sanctionlevel', 0);
                        $sanction->save();
                        HTMLResponse::exitWithRoute(HTMLResponse::getRoute());
                    }
                }

                ?>
                <h2>Añadir nueva sanción</h2>
                <form action="<?=HTMLResponse::getRoute()?>" method="post">
                    <table style="min-width: 512px">
                        <thead>
                        <tr>
                            <td>Tipo</td>
                            <td>Razón</td>
                        </tr>
                        </thead>

                        <tr>
                            <td>
                                <select name="sanctionlevel">
                                    <? foreach ($sanctionLevels as $index => $label) { ?>
                                        <option value="<?=$index?>">
                                            <?= $label ?>
                                        </option>
                                    <? } ?>
                                </select>
                            </td>
                            <td>
                                <textarea name="sanctionreason" style="width: 250px"></textarea>
                            </td>
                        </tr>
                    </table>
                    <input type="hidden" name="sanctioncsrf" value="<?=$csrf?>">
                    <div style="height: 6px"></div>
                    <button type="submit">Añadir sanción</button>
                </form>
                <?
            } ?><br>
            <?
            $this->showTeamSeasons();
            ?>
        </div>
        <?
    }
Ejemplo n.º 7
0
    /**
     * @return void
     */
    public function show()
    {
        if (!TwitterAuth::isLogged()) {
            ?>
            Sólo los administradores pueden ver esta página.
            <a href="<?=HTMLResponse::getRoute()?>?authenticate=1">
                Inicia sesión.
            </a><br>
            <?
            return;
        }
        else if (!Team::isAdmin()) {
            ?>
            Sólo los administradores pueden ver esta página.<br>
            <?
            return;
        }
        else {
            $title = trim(HTMLResponse::fromPOST('title', ''));
            $description = trim(HTMLResponse::fromPOST('description', ''));
            $options = [];
            for ($i=1; $i<6; $i++) {
                $value = trim(HTMLResponse::fromPOST('option'.$i, ''));
                if (strlen($value)) {
                    $options[] = $value;
                }
            }

            if (strlen($title) && count($options)>=2) {
                $poll = Poll::create();
                $poll->title = $title;
                $poll->description = $description;
                $poll->isvisible = true;
                $poll->isopen = true;
                $poll->username = TwitterAuth::getUserName();
                $poll->userid = TwitterAuth::getUserId();
                $poll->dateline = time();
                $poll->avatar = TwitterAuth::getAvatar();
                $poll->save();

                foreach($options as $index => $option) {
                    $pollOption = PollOption::create();
                    $pollOption->pollid = $poll->pollid;
                    $pollOption->userid = TwitterAuth::getUserId();
                    $pollOption->username = TwitterAuth::getUserName();
                    $pollOption->title = $option;
                    $pollOption->save();
                }

                HTMLResponse::exitWithRoute("/votaciones/{$poll->pollid}/");
            }

            ?>
            <form action="<?=HTMLResponse::getRoute()?>" method="post">
                <div style="padding:3px">
                    <div class="inblock middle" style="width:120px">
                        Título
                    </div>
                    <input name="title" value="<?=htmlentities($title)?>">
                </div>

                <div style="padding:3px">
                    <div class="inblock middle" style="width:120px">
                        Descripción
                    </div>
                    <input name="description" value="<?=htmlentities($description)?>">
                </div>

                <?
                for ($i=1; $i<=6; $i++) {
                    ?>
                    <div style="padding:3px">
                        <div class="inblock middle" style="width:120px">
                            Opción <?=$i?>
                        </div>
                        <input name="option<?=$i?>" value="<?=htmlentities($options[$i-1])?>">
                    </div>
                    <?
                }
                ?>

                <div style="padding:3px">
                    <div class="inblock middle" style="width:120px">

                    </div>
                    <input type="submit" value="Crear votación">
                </div>
            </form>
            <?


        }
    }
Ejemplo n.º 8
0
    /**
     * @param $match Match
     * @param $team Team
     * @param $team1votes
     * @param $votesCount
     */
    private function showTeamBox($match, $team, $team1votes, $votesCount)
    {
        $video = Video::findOne('matchid = ? and teamid = ? and type = ?',
            [$match->matchid, $team->teamid, 1]);

        $canVote = $this->canVote;

        $team1per = 50;
        if ($votesCount != 0) {
            $team1per = round($team1votes / $votesCount * 100);
        }

        $team2 = ($match->team1id == $team->teamid) ? $match->getTeam2() : $match->getTeam1();
        $isGray = ($match->isPublished() && $match->getWinner() && $match->getWinner() != $team->teamid);

        ?>
        <div class="teambox">
            <div class="votecount"><?=$team1votes?> votos (<?=$team1per?>%)</div>
            <? if ($canVote) { ?>
                <? if (TwitterAuth::isLogged()) { ?>
                    <? if (!$match->hasVoted()) { ?>

                        <form method="post" action="<?=HTMLResponse::getRoute()?>">
                            <button type="submit" class="vote">Votar</button>
                            <input type="hidden" name="teamid" value="<?=$team->teamid?>">
                            <input type="hidden" name="matchid" value="<?=$match->matchid?>">
                        </form>
                    <? } else if ($match->hasVoted() == $team->teamid) { ?>
                        <form method="post" action="<?=HTMLResponse::getRoute()?>">
                            <div class="login">
                                <button type="submit">Quitar voto</button>
                                <a target="_blank" class="twitter-share-button"
                                   href="https://twitter.com/intent/tweet?text=<?=urlencode("¡He votado que #".$team->getHashtag()." ganará a #".$team2->getHashtag()." en la @LCE_Pokemon! http://lce.wz.tl")?>">
                                    ¡Twittear!</a>
                            </div>
                            <input type="hidden" name="unteamid" value="<?=$team->teamid?>">
                            <input type="hidden" name="unmatchid" value="<?=$match->matchid?>">
                        </form>
                    <? } ?>
                <? } else { ?>
                    <a href="<?= HTMLResponse::getRoute() ?>?authenticate=1" class="login">&iexcl;Usa Twitter para votar!</a>
                <? } ?>
            <? } else { ?>
                <? if (TwitterAuth::isLogged()) { ?>
                    <? if (!$match->isPublished() || !$match->getWinner()) { ?>
                        <? if ($match->hasVoted() == $team->teamid) { ?>
                            <span class="login">Has votado por este equipo</span>
                        <? } ?>
                    <? } else if ($video) { ?>
                        <a class="login" href="<?=htmlentities($video->link)?>" target="_blank">
                            Ver combate
                        </a>
                    <? } ?>
                <? } else if (!$match->isPublished()) { ?>
                    <a href="<?= HTMLResponse::getRoute() ?>?authenticate=1" class="login">&iexcl;Entra para ver tus votos!</a>
                <? } else if ($video) { ?>
                    <a class="login" href="<?=htmlentities($video->link)?>" target="_blank">
                        Ver combate
                    </a>
                <? } ?>
            <? } ?>
            <a href="/<?=$this->season->getLink()?>/equipos/<?=$team->getLink()?>/"><img class="<?=$isGray?'_grayscale':''?>" src="/<?=$team->getImageLink(200, 150)?>"></a>
        </div>
        <?
    }
	<script src="lib/bxslider/jquery.bxslider.min.js"></script>
	
	<!-- Custom JS -->
	<script src="js/custom.js"></script>
	<script src="js/bootstrap.min.js"></script>
	<script type="text/javascript">
    $(document).ready(function(){
		
  $('.bxslider').bxSlider({
	  adaptiveHeight: true
  });
});
  </script>
</head>
<body>

<?php 
if (isset($_SESSION['screenname']) && $_SESSION['screenname'] == $_GET['screenname'] && $_GET['loggeduser'] == 1) {
    $tweets = $_SESSION['tweets'];
    $followers = $_SESSION['followers'];
} else {
    require 'twitter_auth_follower.php';
    $t = new TwitterAuth($_GET['screenname']);
    $t->twitterConnect();
    $tweets = $t->tweets();
    $followers = $t->followers();
}
require 'tweets.php';
?>
</body>
</html>
Ejemplo n.º 10
0
    /**
     * @return void
     */
    public function show()
    {
        if (!Team::isSuperAdmin()) {
            HTMLResponse::exitWithRoute('/');
        }
        if (!TwitterAuth::getBotConfig()) {
            ?>Error: el bot no está configurado<br><?
            return;
            }

        if (HTMLResponse::fromPOST('csrf', '') && strlen(trim(HTMLResponse::fromPOST('message','')))) {
            if ($_SESSION['csrf'] != HTMLResponse::fromPOST('csrf', '')) {
                ?>Error: código de seguridad incorrecto.<br><br><?
            }
            else {
                $message = HTMLResponse::fromPOST('message');
                ?>
                <b>Mensaje</b>: <?=htmlentities($message)?><br><br>

<?
                foreach(Team::find('ismember order by username asc') as $team) {
                    $lowname = strtolower($team->username);
                    if (HTMLResponse::fromPOST("check{$lowname}", '')) {
                        $ok = false;

                        $ok = !!TwitterAuth::botSendPrivateMessage($lowname, $message);

                        ?>-<?=$team->username?>:
                        <?= $ok?'Enviado correctamente':'Error en el envío' ?>
                        <br>
                        <?
                    }
                }
                ?><br><br><?
                return;
            }
        }

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

        ?><div style="max-width: 640px; margin: 0 auto">
        <form action="<?=HTMLResponse::getRoute()?>" method="post">
            <b>Texto del comunicado (será enviado por MD en Twitter):</b><br>
            <textarea style="width: 320px" name="message"></textarea><br>
            <br>
            <b>Destinatarios del comunicado (
                <a href="javascript:void(0)" onclick="$(this).closest('div').find('input[type=checkbox]').attr('checked','checked')">
                    seleccionar todos
                </a>
                ):</b><br>
            <?
            foreach(Team::find('ismember order by username asc') as $team) {
                $lowname = strtolower($team->username);
                ?>
                <div class="inblock" style="margin: 6px; text-align: left; width: 180px">
                    <div class="inblock middle">
                        <input id="check<?=$lowname?>"type="checkbox" name="check<?=$lowname?>">
                    </div>
                    <div class="inblock middle">
                        <label for="check<?=$lowname?>">
                            <?= $team->username ?><br>
                            <span style="font-style:italic; color: #666">
                                <?= $team->name ?>
                            </span>
                        </label>
                    </div>
                </div>
                <?
            }
            ?></div><br>
            <input type="hidden" name="csrf" value="<?= $csrf ?>">
            <button type="submit">Enviar comunicado</button>
        </form><br><br><?
    }
Ejemplo n.º 11
0
<?php 
require "lib/twitteroauth/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;
define('CONSUMER_KEY', 'VDpwuZadSoUi4DmX3sxxSqf5V');
define('CONSUMER_SECRET', 'o76VjjtR5YwB47koAI7jlxmrj4LHY9AXnvI60TUGD0AhJpTI25');
define('OAUTH_CALLBACK', getenv('OAUTH_CALLBACK'));
$request_token = [];
$request_token['oauth_token'] = $_SESSION['oauth_token'];
$request_token['oauth_token_secret'] = $_SESSION['oauth_token_secret'];
if (isset($_REQUEST['oauth_token']) && $request_token['oauth_token'] !== $_REQUEST['oauth_token']) {
    header("Location:index.php");
}
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $request_token['oauth_token'], $request_token['oauth_token_secret']);
$access_token = $connection->oauth("oauth/access_token", ["oauth_verifier" => $_REQUEST['oauth_verifier']]);
$_SESSION['access_token'] = $access_token;
require 'twitter_auth.php';
$t = new TwitterAuth();
$t->twitterConnect();
$tweets = $t->tweets();
$followers = $t->followers();
$user_info = $t->userInfo();
if (!isset($_SESSION['count'])) {
    $_SESSION['count'] = 1;
    $_SESSION['tweets'] = $tweets;
    $_SESSION['logged_user'] = $user_info;
    $_SESSION['followers'] = $followers;
}
require 'tweets.php';
?>
</body>
</html>
Ejemplo n.º 12
0
    /**
     * @return void
     */
    public function show()
    {
        if (!TwitterAuth::isLogged()) {
            ?>
            Sólo los miembros pueden ver esta página.
            <a href="<?=HTMLResponse::getRoute()?>?authenticate=1">
                Inicia sesión.
            </a><br>
            <?
            return;
        }
        else {
            if (!Team::isMember()) {
                HTMLResponse::exitWithRoute('/votaciones/');
            }

            $answer = PollVote::findOne('userid = ? and pollid = ?',
                [TwitterAuth::getUserId(), $this->poll->pollid]);

            $options = PollOption::find('pollid = ? order by polloptionid asc', [$this->poll->pollid]);


            if (!$answer && strlen($hash = HTMLResponse::fromGET('hash', ''))) {
                $optionid = HTMLResponse::fromGET('vote');

                foreach($options as $index => $option) {
                    if ($option->polloptionid == $optionid && $option->getHash() == $hash) {
                        $answer = PollVote::create();
                        $answer->userid = TwitterAuth::getUserId();
                        $answer->dateline = time();
                        $answer->avatar = TwitterAuth::getAvatar();
                        $answer->pollid = $this->poll->pollid;
                        $answer->polloptionid = $option->polloptionid;
                        $answer->username = TwitterAuth::getUserName();
                        $answer->save();
                    }
                }
            }

            $answers = Model::groupBy(PollVote::find('pollid = ?', [$this->poll->pollid]), 'polloptionid');

            $hasAnswered = !!$answer;

            ?><div style="text-align:left; margin: 0 auto" class="inblock">
            <table style="width:640px">
                <thead>
                <tr>
                    <td>Lista de opciones</td>
                </tr>
                </thead>
                <?

                foreach($options as $index => $option) {
                    ?>
                    <tr><td class="row" style="text-align: left">
                            <div style="height: 6px"></div>
                            <div class="inblock middle" style="width:320px">
                                <b>Opción <?=$index+1?></b>: <?= htmlentities($option->title) ?>
                            </div>
                            <div class="inblock middle">
                                <div class="moreless inblock middle" style="width: 150px">
                                    <a href="javascript:void(0)" onclick="$(this).closest('.row').find('.moreless').toggle(); $(this).closest('.row').find('.onmore').slideDown(500);">+ Mostrar más</a>
                                </div>
                                <div class="moreless inblock middle" style="width: 150px; display: none">
                                    <a href="javascript:void(0)" onclick="$(this).closest('.row').find('.moreless').toggle(); $(this).closest('.row').find('.onmore').slideUp(400);">- Mostrar menos</a>
                                </div>
                            </div>
                            <div class="inblock middle">
                                <? if (!$hasAnswered) { ?>
                                    <a href="<?=HTMLResponse::getRoute()?>?vote=<?=$option->polloptionid?>&hash=<?=$option->getHash()?>" onclick="return confirm('¿Votas <?=htmlentities($option->title)?>?')">
                                        Votar esta opción
                                    </a>
                                <? } else if ($answer->polloptionid == $option->polloptionid) { ?>
                                    <i>Votaste esta opción</i>
                                <? } ?>
                            </div>
                            <div class="onmore" style="display: none; padding: 12px">
                                <?= $option->description ?>
                            </div>
                            <div style="height: 6px"></div>
                            <?
                            if (!$hasAnswered) {
                                ?><i>Vota primero para ver los resultados</i><?
                            }
                            else {
                                $optionAnswers = $answers[$option->polloptionid];
                                ?>
                                Votado por: <?= $optionAnswers
                                    ? '<b>'.implode(', ', Model::pluck($optionAnswers, 'username')).'</b> ('.count($optionAnswers).' votos)'
                                    : '<i>Nadie</i>'; ?>
                                <?
                            }
                            ?>
                            <div style="height: 6px"></div>
                        </td></tr>
                    <?
                }

                ?></table></div><br><br><?
        }
    }
Ejemplo n.º 13
0
    /**
     * @return void
     */
    public function show()
    {
        $matches = Match::find('seasonid = ? and result != 0', [$this->season->seasonid]);
        $matches = Model::indexBy($matches, 'matchid');

        $teams = Model::indexBy(Team::find('1=1'), 'teamid');

        $matchWinner = [];

        foreach($matches as $match) {
            if ($this->season->weekIsPublished($match->week) && !$match->isDelayed()) {
                $matchWinner[$match->matchid] = $match->getWinner();
            }
        }

        $totalBets = [];
        $correctBets = [];

        $usernames = [];
        $avatars = Model::pluck(Avatar::find('1=1'), 'url', 'userid');

        foreach(Bet::find('1=1') as $bet) {
            if (isset($matchWinner[$bet->matchid])) {
                if ($bet->teamid && $matchWinner[$bet->matchid] == $bet->teamid) {
                    $correctBets[$bet->userid]++;
                }
                $totalBets[$bet->userid]++;
            }
            if ($bet->username) {
                $usernames[$bet->userid] = $bet->username;
            }
        }

        $tiebreakers = [];
        foreach(array_keys($correctBets) as $userid) {
            $tiebreakers[$userid] = [-$correctBets[$userid], $totalBets[$userid], strtolower($usernames[$userid])];
        }
        asort($tiebreakers);


        if (TwitterAuth::isLogged()) {
            $userid = TwitterAuth::getUserId();
            $userBets = Bet::find('userid = ? order by matchid desc', [$userid]);

            $userpos = array_search($userid, array_keys($tiebreakers));
            $userpos = ($userpos === FALSE) ? 0 : $userpos+1;

            ?>
            <div class="inblock" style="text-align: left; margin-right: 20px">
                <h2>Tus estadísticas</h2>
                <table>
                    <thead>
                    <tr>
                        <td>Puesto</td>
                        <td>Nombre</td>
                        <td>Aciertos</td>
                        <td>Fallos</td>
                    </tr>
                    </thead>
                    <tr>
                        <td><?= $userpos ?>º</td>
                        <td style="text-align: left">
                            <div class="inblock" style="vertical-align: middle">
                                <a href="http://twitter.com/<?=htmlentities($usernames[$userid])?>" target="_blank">
                                    <img src="<?= htmlentities($avatars[$userid]) ?>" style="width:40px; height:40px; border-radius: 20px">
                                </a>
                            </div>
                            <div class="inblock" style="vertical-align: middle">
                                <a href="http://twitter.com/<?=htmlentities($usernames[$userid])?>" target="_blank">
                                    <?= htmlentities($usernames[$userid]) ?>
                                    <? if (!isset($usernames[$userid])) echo "<i>$userid</i>"; ?>
                                </a>
                            </div>
                        </td>
                        <td><?= $correctBets[$userid] ?></td>
                        <td><?= $totalBets[$userid]-$correctBets[$userid] ?></td>
                    </tr>
                </table>

                <h2>Tus apuestas</h2>
                <table>
                    <thead>
                    <tr>
                        <td>Jornada</td>
                        <td>Enfrentamiento</td>
                        <td>Acierto</td>
                    </tr>
                    </thead>
                    <? foreach($userBets as $bet) {
                        if (!isset($matches[$bet->matchid])) continue;
                        /**
                         * @var $match Match
                         */
                        $match = $matches[$bet->matchid];
                        if (!$match->isPublished() || $match->isDelayed()) continue;

                        $team1 = $teams[$match->team1id];
                        $team2 = $teams[$match->team2id];

                        $success = $match->getWinner() == $bet->teamid;
                        ?>
                        <tr>
                            <td><?= $match->week ?></td>
                            <td>
                                <div class="inblock">
                                    <div class="teamimg64">
                                        <img src="/<?= $team1->getImageLink(64, 64) ?>" class="<?= $match->getWinner() == $team1->teamid ? '' : 'grayscale' ?>">
                                    </div>
                                    <? if ($bet->teamid == $team1->teamid) { ?>
                                        <br><i style="font-size:11px">Votado</i>
                                    <? } ?>
                                </div>

                                <div class="inblock" style="line-height: 64px; margin: 0px 4px">
                                    VS
                                </div>

                                <div class="inblock">
                                    <div class="teamimg64">
                                        <img src="/<?= $team2->getImageLink(64, 64) ?>" class="<?= $match->getWinner() == $team2->teamid ? '' : 'grayscale' ?>">
                                    </div>
                                    <? if ($bet->teamid == $team2->teamid) { ?>
                                        <br><i style="font-size:11px">Votado</i>
                                    <? } ?>
                                </div>
                            </td>
                            <td>
                                <?= $success
                                    ? '<div class="success-icon">&#x2714;</div>'
                                    : '<div class="fail-icon">&#x2718</div>' ?>
                            </td>

                        </tr>
                        <?
                    } ?>
                </table>
            </div>
            <?
        }


        ?>
        <div class="inblock">
            <h2>Clasificación</h2>
            <table>
                <thead>
                <tr>
                    <td>Puesto</td>
                    <td>Nombre</td>
                    <td>Aciertos</td>
                    <td>Fallos</td>
                </tr>
                </thead>

                <?
                $lastTiebreakers = null;
                $lastPos = 0;
                foreach(array_keys($tiebreakers) as $pos => $userid) {
                    unset($tiebreakers[$userid][2]);

                    if ($lastTiebreakers != $tiebreakers[$userid]) {
                        $lastPos = $pos;
                    }

                    if (!isset($avatars[$userid])) {
                        Avatar::setUsersAvatar($userid, $usernames[$userid]);
                    }
                    ?>
                    <tr>
                        <td><?= $lastPos+1 ?>º</td>
                        <td style="text-align: left">
                            <div class="inblock" style="vertical-align: middle">
                                <a href="http://twitter.com/<?=htmlentities($usernames[$userid])?>" target="_blank">
                                    <img src="<?= htmlentities($avatars[$userid]) ?>" style="width:40px; height:40px; border-radius: 20px">
                                </a>
                            </div>
                            <div class="inblock" style="vertical-align: middle">
                                <a href="http://twitter.com/<?=htmlentities($usernames[$userid])?>" target="_blank">
                                    <?= htmlentities($usernames[$userid]) ?>
                                    <? if (!isset($usernames[$userid])) echo "<i>$userid</i>"; ?>
                                </a>
                            </div>
                        </td>
                        <td><?= $correctBets[$userid] ?></td>
                        <td><?= $totalBets[$userid]-$correctBets[$userid] ?></td>
                    </tr>
                    <?
                    $lastTiebreakers = $tiebreakers[$userid];
                }
                ?>
            </table>
        </div>
        <?
    }
Ejemplo n.º 14
0
    public function showBody()
    {
        ?>
        <div id="main" class="public">
            <div class="content">
                <div class="banner"></div>
                <div class="nav" style="text-align: left">
                    <?php
                    foreach ($this->topMenu as $arr) {
                        list($link, $label, $re) = $arr;
                        $status = '';
                        if (preg_match("'^$re$'", HTMLResponse::getRoute())) {
                            $status = 'selected';
                        }

                        ?><a href="<?= $link ?>" class="<?= $status ?>"><?= $label ?></a><?php }
                    ?>
                    <div style="float: right">
                        <select name="season" id="navSeason">
                            <?php
                            $seasons = Team::isSuperAdmin() ?
                                Season::find('1=1') :
                                Season::find('ispublic');
                            foreach($seasons as $season) {
                                $selected = $season->seasonid == $this->season->seasonid ? 'selected' : '';
                                ?>
                                <option value="<?=$season->getLink()?>" <?=$selected?>>
                                    <?=htmlentities($season->name)?>
                                </option>
                            <? } ?>
                        </select>
                    </div>
                </div>
                <div style="padding: 6px">
                    <?php if (TwitterAuth::isLogged()) { ?>
                        Estás identificado como <?=htmlentities(TwitterAuth::getUserName())?>. <a href="<?=HTMLResponse::getRoute()?>?logout=1">Cerrar sesión</a>
                        <?php if (Team::isMember()) {
                            ?>/ <a href="/votaciones/">Votaciones</a><?php
                        } ?>
                        <?php if (Team::isSuperAdmin()) {
                            ?>/ <a href="/admin/">Panel de admin</a><?php
                        } ?>
                        <br>
                        <?php
                        if (TwitterAuth::isBot()) {
                            $botConfig = TwitterAuth::getBotConfig();
                            ?>
                            <br>Eres la cuenta oficial de la LCE, haz <a href="/?authenticatebot=1">click aquí</a> para autorizar esta web a usarte como un bot.<br>
                            <b>Última autorización:</b> <?= isset($botConfig['dateline'])
                                ? date('Y/m/d H:i:s', $botConfig['dateline'])
                                : 'Nunca' ?>
                            <?php
                        }
                        ?>
                    <?php } else { ?>
                        No estás identificado. <a href="<?=HTMLResponse::getRoute()?>?authenticate=1">Iniciar sesión</a><br>
                    <?php } ?>
                </div>

                <div class="title">
                    <?= $this->section->getSubtitle() ?>
                </div>

                <?=$this->contents?>
            </div>
        </div>
        <?php
    }
Ejemplo n.º 15
0
Archivo: bot.php Proyecto: xJakub/LCE
    foreach (Season::find('1=1') as $season) {
        $weeksCount = $season->getWeeksCount();
        for ($week = 1; $week <= $weeksCount; $week++) {
            if ($season->getWeekDate($week) == $date) {
                $weekName = $season->getWeekName($week);
                $matches = Match::find('seasonid = ? and week = ?', [$season->seasonid, $week]);
                foreach ($matches as $match) {
                    /** @var Team $team1 */
                    $team1 = $match->getTeam1();
                    /** @var Team $team2 */
                    $team2 = $match->getTeam2();
                    $video1 = Video::findOne('matchid = ? and teamid = ? and type = ?', [$match->matchid, $team1->teamid, 1]);
                    $video2 = Video::findOne('matchid = ? and teamid = ? and type = ?', [$match->matchid, $team2->teamid, 1]);
                    if ($video1 || $video2) {
                        $msg = "{$weekName} {$season->name}: #" . $team1->getHashtag() . " VS #" . $team2->getHashtag();
                        $msg .= " @{$team1->username} VS @{$team2->username}";
                        if ($video1) {
                            $msg .= " {$video1->link}";
                        }
                        if ($video2) {
                            $msg .= " {$video2->link}";
                        }
                        echo "-> {$msg}\n";
                        TwitterAuth::botSendTweet($msg);
                        sleep(1);
                    }
                }
            }
        }
    }
}