forked from science-ation/science-ation
218 lines
7.3 KiB
PHP
218 lines
7.3 KiB
PHP
<?
|
|
|
|
/*
|
|
* This file is part of the 'Science Fair In A Box' project
|
|
* SFIAB Website: http://www.sfiab.ca
|
|
*
|
|
* Copyright (C) 2005 Sci-Tech Ontario Inc <info@scitechontario.org>
|
|
* Copyright (C) 2005 James Grant <james@lightbox.org>
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public
|
|
* License as published by the Free Software Foundation, version 2.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; see the file COPYING. If not, write to
|
|
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
* Boston, MA 02111-1307, USA.
|
|
*/
|
|
?>
|
|
<?
|
|
require ('common.inc.php');
|
|
include 'register_participants.inc.php';
|
|
include 'projects.inc.php';
|
|
|
|
global $pdo;
|
|
|
|
// authenticate based on email address and registration number from the SESSION
|
|
if (!$_SESSION['email']) {
|
|
header('Location: register_participants.php');
|
|
exit;
|
|
}
|
|
if (!$_SESSION['registration_number']) {
|
|
header('Location: register_participants.php');
|
|
exit;
|
|
}
|
|
|
|
$q = $pdo->prepare('SELECT registrations.id AS regid, students.id AS studentid, students.firstname FROM registrations,students '
|
|
. 'WHERE students.email=?'
|
|
. 'AND registrations.num=?'
|
|
. 'AND registrations.id=?'
|
|
. 'AND students.registrations_id=registrations.id '
|
|
. 'AND registrations.year=?'
|
|
. 'AND students.year=?');
|
|
$q->execute([$_SESSION['email'], $_SESSION['registration_number'], $_SESSION['registration_id'], $config['FAIRYEAR'], $config['FAIRYEAR']]);
|
|
show_pdo_errors_if_any($pdo);
|
|
|
|
if ($q->rowCount() == 0) {
|
|
header('Location: register_participants.php');
|
|
exit;
|
|
}
|
|
$authinfo = $q->fetch(PDO::FETCH_OBJ);
|
|
|
|
$q = $pdo->prepare('SELECT * FROM projects WHERE registrations_id=?');
|
|
$q->execute([$_SESSION['registration_id']]);
|
|
$project = $q->fetch(PDO::FETCH_OBJ);
|
|
|
|
// send the header
|
|
send_header('Participant Registration - Self-Nomination for Special Awards');
|
|
?>
|
|
<script language="javascript" type="text/javascript">
|
|
function checkboxclicked(b)
|
|
{
|
|
max=<?= $config['maxspecialawardsperproject']; ?>;
|
|
num=0;
|
|
df=document.forms["specialawards"];
|
|
for (i=0; i<df.elements.length; i++) {
|
|
if (df[i].type=="checkbox" && df[i].name=="spaward[]") {
|
|
if (df[i].checked==true) {
|
|
num++;
|
|
}
|
|
}
|
|
}
|
|
if(num>max)
|
|
{
|
|
b.checked=false;
|
|
alert('<?= i18n('You can only self-nominate for up to %1 special awards', array($config['maxspecialawardsperproject'])) ?>');
|
|
}
|
|
|
|
}
|
|
</script>
|
|
|
|
<?
|
|
|
|
echo '<a href="register_participants_main.php"><< ' . i18n('Back to Participant Registration Summary') . '</a><br />';
|
|
echo '<br />';
|
|
|
|
if ($config['specialawardnomination'] == 'date') {
|
|
echo notice(i18n('Special award self-nomination is only available from %1 to %2. Please make sure you complete your nominations between these dates.', array($config['dates']['specawardregopen'], $config['dates']['specawardregclose'])));
|
|
$q = $pdo->prepare('SELECT (NOW()>? AND NOW()<?) AS datecheck');
|
|
$q->execute([$config['dates']['specawardregopen'], $config['dates']['specawardregclose']]);
|
|
$r = $q->fetch(PDO::FETCH_OBJ);
|
|
// this will return 1 if its between the dates, 0 otherwise.
|
|
if ($r->datecheck == 1)
|
|
$readonly = false;
|
|
else
|
|
$readonly = true;
|
|
} else {
|
|
/* Never make the awards readonly, when registration closes, so do the awards */
|
|
$readonly = false;
|
|
}
|
|
echo notice(i18n('You may apply to a maximum of %1 special awards.', array($config['maxspecialawardsperproject'])));
|
|
|
|
if ($_POST['action'] == 'save') {
|
|
// this will return 1 if its between the dates, 0 otherwise.
|
|
if (!$readonly) {
|
|
$splist = array();
|
|
$noawards = false;
|
|
|
|
if (is_array($_POST['spaward']))
|
|
$splist = $_POST['spaward'];
|
|
|
|
/* If all they've selected is they don't want to self nominate, then erase all other selections */
|
|
if (in_array(-1, $splist)) {
|
|
$splist = array(-1);
|
|
$noawards = true;
|
|
}
|
|
|
|
$num = count($splist);
|
|
if ($num > $config['maxspecialawardsperproject']) {
|
|
echo error(i18n('You can only apply to %1 special awards. You have selected %2', array($config['maxspecialawardsperproject'], $num)));
|
|
} else {
|
|
try {
|
|
$stmt = $pdo->prepare('DELETE FROM project_specialawards_link WHERE projects_id=? AND year=?');
|
|
$stmt->execute([$project->id, $config['FAIRYEAR']]);
|
|
foreach ($splist AS $spaward) {
|
|
$stmt = $pdo->prepare('INSERT INTO project_specialawards_link (award_awards_id,projects_id,year) VALUES (
|
|
?,
|
|
?,
|
|
?)');
|
|
$stmt->execute([$spaward, $project->id, $config['FAIRYEAR']]);
|
|
show_pdo_errors_if_any($pdo);
|
|
}
|
|
if ($num) {
|
|
if ($noawards == true)
|
|
echo happy(i18n('Successfully registered for no special awards'));
|
|
else
|
|
echo happy(i18n('Successfully registered for %1 special awards', array($num)));
|
|
}
|
|
} catch (PDOException $exception) {
|
|
error(happy(i18n('Failed to register your settings for special awards')));
|
|
error_log($exception);
|
|
}
|
|
}
|
|
} else {
|
|
echo error(i18n('Special award self-nomination is only available from %1 to %2', array($config['dates']['specawardregopen'], $config['dates']['specawardregclose'])));
|
|
}
|
|
}
|
|
|
|
// output the current status
|
|
$newstatus = spawardStatus();
|
|
if ($newstatus != 'complete') {
|
|
echo error(i18n('Special Awards Self-Nomination Incomplete'));
|
|
} else if ($newstatus == 'complete') {
|
|
echo happy(i18n('Special Awards Self-Nomination Complete'));
|
|
}
|
|
|
|
echo "<form name=\"specialawards\" method=\"post\" action=\"register_participants_spawards.php\">\n";
|
|
echo "<input type=\"hidden\" name=\"action\" value=\"save\">\n";
|
|
echo "<table>\n";
|
|
|
|
$eligibleawards = getSpecialAwardsEligibleForProject($project->id);
|
|
$nominatedawards = getSpecialAwardsNominatedForProject($project->id);
|
|
|
|
$eligibleawards = array_merge(array(array('id' => -1,
|
|
'name' => i18n('I do not wish to self-nominate for any special awards'),
|
|
'criteria' => i18n('Select this option if you do not wish to self-nominate you project for any special awards.') . '<hr>',
|
|
'self_nominate' => 'yes')),
|
|
$eligibleawards);
|
|
/* See if they have the -1 award selected */
|
|
$noawards = getNominatedForNoSpecialAwardsForProject($project->id);
|
|
if ($noawards == true) {
|
|
$nominatedawards = array_merge(array(array('id' => '-1')), $nominatedawards);
|
|
}
|
|
|
|
/*
|
|
* echo "eligible awards <br>";
|
|
* echo nl2br(print_r($eligibleawards,true));
|
|
* echo "nominated awards <br>";
|
|
* echo nl2br(print_r($nominatedawards,true));
|
|
*/
|
|
|
|
$nominatedawards_list = array();
|
|
foreach ($nominatedawards AS $naward) {
|
|
$nominatedawards_list[] = $naward['id'];
|
|
}
|
|
|
|
echo '<table>';
|
|
foreach ($eligibleawards AS $eaward) {
|
|
if ($eaward['self_nominate'] == 'no')
|
|
continue;
|
|
echo '<tr><td rowspan="2">';
|
|
if (in_array($eaward['id'], $nominatedawards_list))
|
|
$ch = 'checked="checked"';
|
|
else
|
|
$ch = '';
|
|
echo "<input onclick=\"checkboxclicked(this)\" $ch type=\"checkbox\" name=\"spaward[]\" value=\"" . $eaward['id'] . '" />';
|
|
echo '</td><td>';
|
|
echo '<b>' . i18n($eaward['name']) . '</b>';
|
|
echo '</td></tr>';
|
|
echo '<tr><td>';
|
|
echo i18n($eaward['criteria']);
|
|
if ($eaward['id'] != -1)
|
|
echo '<br /><br />';
|
|
echo '</td></tr>';
|
|
}
|
|
echo '</table>';
|
|
if (!$readonly)
|
|
echo '<input type="submit" value="' . i18n('Save Special Award Nominations') . "\" />\n";
|
|
echo '</form>';
|
|
|
|
send_footer();
|
|
?>
|