Example #1
0
    WHERE
       c.category = :category AND
       c.exposed = 1
    ORDER BY c.points ASC, c.id ASC', array('user_id_1' => $_SESSION['id'], 'user_id_2' => $_SESSION['id'], 'user_id_3' => $_SESSION['id'], 'user_id_4' => $_SESSION['id'], 'category' => $current_category['id']));
echo '<div id="challenges-container" class="panel-group">';
foreach ($challenges as $challenge) {
    // if the challenge isn't available yet, display a message and continue to next challenge
    if ($time < $challenge['available_from']) {
        echo '
        <div class="panel panel-default challenge-container">
            <div class="panel-heading">
                <h4 class="challenge-head">Hidden challenge worth ', number_format($challenge['points']), 'pts</h4>
            </div>
            <div class="panel-body">
                <div class="challenge-description">
                    Available in ', time_remaining($challenge['available_from']), ' (from ', date_time($challenge['available_from']), ' until ', date_time($challenge['available_until']), ')
                </div>
            </div>
        </div>';
        continue;
    }
    $remaining_submissions = $challenge['num_attempts_allowed'] ? $challenge['num_attempts_allowed'] - $challenge['num_submissions'] : 1;
    $panel_class = "panel-default";
    if (!$remaining_submissions) {
        $panel_class = "panel-danger";
    } else {
        if ($challenge['correct_submission_added']) {
            $panel_class = "panel-success";
        }
    }
    echo '
Example #2
0
        if ($remaining_submissions) {
            if ($challenge['num_submissions'] && !$challenge['automark'] && !$challenge['marked']) {
                message_inline_blue('Your submission is awaiting manual marking.');
            }
            echo '
            <div class="challenge-submit">
                <form method="post" class="form-flag" action="actions/challenges">
                    <textarea name="flag" type="text" class="form-control" placeholder="Please enter flag for challenge: ', htmlspecialchars($challenge['title']), '"></textarea>
                    <input type="hidden" name="challenge" value="', htmlspecialchars($challenge['id']), '" />
                    <input type="hidden" name="action" value="submit_flag" />';
            form_xsrf_token();
            if (CONFIG_RECAPTCHA_ENABLE_PRIVATE) {
                display_captcha();
            }
            echo '  <p>
                        ', $challenge['min_seconds_between_submissions'] ? 'Minimum of ' . seconds_to_pretty_time($challenge['min_seconds_between_submissions']) . ' between submissions. ' : '', '
                        ', $challenge['num_attempts_allowed'] ? number_format($remaining_submissions) . ' submissions remaining. ' : '', '
                        Available for another ', time_remaining($challenge['available_until']), '.
                    </p>
                    <button class="btn btn-sm btn-primary" type="submit">Submit flag</button>
                </form>
            </div>
            ';
        } else {
            message_inline_red("You have no remaining submission attempts. If you've made an erroneous submission, please contact the organizers.");
        }
    }
    echo '
    </div> <!-- / challenge-container -->';
}
foot();
Example #3
0
function print_time_left($challenge)
{
    echo '<span data-countdown="', $challenge['available_until'], '">
    ', lang_get('time_remaining', array('time' => time_remaining($challenge['available_until']))), '
    </span>';
}
function print_time_left($challenge)
{
    echo '<span data-countdown="', $challenge['available_until'], '">
    ', time_remaining($challenge['available_until']), ' remaining
    </span>';
}