static function isMember($username = null) { if ($username === null) { $username = TwitterAuth::getUserName(); } return !!Team::findOne('lower(username) = ? and ismember', [strtolower($username)]); }
public static function getUserVotes($userid = null) { if ($userid === null) { $userid = TwitterAuth::getUserId(); } return ApplicationVote::find('userid = ?', [$userid]); }
/** * @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]); }
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; } }
/** * @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><? } }
/** * @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> <? }
/** * @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> <? } }
/** * @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">¡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">¡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>
/** * @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><? }
<?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>
/** * @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><? } }
/** * @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">✔</div>' : '<div class="fail-icon">✘</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> <? }
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 }
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); } } } } } }