forked from science-ation/science-ation
316 lines
9.4 KiB
PHP
316 lines
9.4 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');
|
|
require ('projects.inc.php');
|
|
require_once ('helper.inc.php');
|
|
|
|
global $pdo;
|
|
|
|
send_header('Winners');
|
|
|
|
if (get_value_from_array($_GET, 'edit'))
|
|
$edit = $_GET['edit'];
|
|
if (get_value_from_array($_POST, 'edit'))
|
|
$edit = $_POST['edit'];
|
|
|
|
if (get_value_from_array($_GET, 'action'))
|
|
$action = $_GET['action'];
|
|
if (get_value_from_array($_POST, 'action'))
|
|
$action = $_POST['action'];
|
|
|
|
if (get_value_from_array($_GET, 'year') && get_value_from_array($_GET, 'type')) {
|
|
$show_unawarded_awards = 'no';
|
|
$show_unawarded_prizes = 'no';
|
|
$year = intval($_GET['year']);
|
|
$type = $_GET['type'];
|
|
|
|
echo '<h2>' . i18n('%1 ' . $type . ' Award Winners', array($_GET['year'])) . '</h2>';
|
|
|
|
$ok = true;
|
|
|
|
// first, lets make sure someone isnt tryint to see something that they arent allowed to!
|
|
// but only if the year they want is the FAIRYEAR. If they want a past year, thats cool
|
|
if ($_GET['year'] >= $config['FAIRYEAR']) {
|
|
$q = $pdo->prepare("SELECT (NOW()>'" . $config['dates']['postwinners'] . "') AS test");
|
|
$q->execute();
|
|
$r = $q->fetch(PDO::FETCH_OBJ);
|
|
if ($r->test != 1) {
|
|
echo error(i18n('Crystal ball says future is very hard to see!'));
|
|
$ok = false;
|
|
}
|
|
}
|
|
|
|
if ($ok) {
|
|
$q = $pdo->prepare("SELECT
|
|
award_awards.id,
|
|
award_awards.name,
|
|
award_awards.order AS awards_order,
|
|
award_types.type
|
|
FROM
|
|
award_awards,
|
|
award_types
|
|
WHERE
|
|
award_awards.year='$year'
|
|
AND award_awards.award_types_id=award_types.id
|
|
AND award_types.type='$type'
|
|
AND award_types.year='$year'
|
|
ORDER BY
|
|
awards_order");
|
|
|
|
$q->execute();
|
|
show_pdo_errors_if_any($pdo);
|
|
|
|
if ($q->rowCount()) {
|
|
echo '<a href="winners.php">' . i18n('Back to Winners main page') . '</a>';
|
|
echo '<br />';
|
|
|
|
while ($r = $q->fetch(PDO::FETCH_OBJ)) {
|
|
$pq = $pdo->prepare("SELECT
|
|
award_prizes.prize,
|
|
award_prizes.number,
|
|
award_prizes.id,
|
|
award_prizes.cash,
|
|
award_prizes.scholarship,
|
|
winners.projects_id,
|
|
projects.projectnumber,
|
|
projects.title,
|
|
projects.registrations_id AS reg_id
|
|
FROM
|
|
award_prizes
|
|
LEFT JOIN winners ON winners.awards_prizes_id=award_prizes.id
|
|
LEFT JOIN projects ON projects.id=winners.projects_id
|
|
WHERE
|
|
award_awards_id='$r->id '
|
|
AND award_prizes.year='$year'
|
|
ORDER BY
|
|
`order`");
|
|
|
|
$pq->execute();
|
|
show_pdo_errors_if_any($pdo);
|
|
$awarded_count = 0;
|
|
if ($show_unawarded_awards == 'no') {
|
|
while ($pr = $pq->fetch(PDO::FETCH_OBJ)) {
|
|
if ($pr->projectnumber) {
|
|
$awarded_count++;
|
|
}
|
|
}
|
|
|
|
// $pq->fetch(PDO::FETCH_ORI_ABS, 0);
|
|
}
|
|
$pq = $pdo->prepare("SELECT
|
|
award_prizes.prize,
|
|
award_prizes.number,
|
|
award_prizes.id,
|
|
award_prizes.cash,
|
|
award_prizes.scholarship,
|
|
winners.projects_id,
|
|
projects.projectnumber,
|
|
projects.title,
|
|
projects.registrations_id AS reg_id
|
|
FROM
|
|
award_prizes
|
|
LEFT JOIN winners ON winners.awards_prizes_id=award_prizes.id
|
|
LEFT JOIN projects ON projects.id=winners.projects_id
|
|
WHERE
|
|
award_awards_id='$r->id'
|
|
AND award_prizes.year='$year'
|
|
ORDER BY
|
|
`order`");
|
|
|
|
$pq->execute();
|
|
|
|
if ($show_unawarded_awards == 'yes' || $awarded_count > 0) {
|
|
echo '<h3>' . i18n($r->name) . "</h3> \n";
|
|
}
|
|
|
|
$prevprizeid = -1;
|
|
while ($pr = $pq->fetch(PDO::FETCH_OBJ)) {
|
|
if (!($pr->projectnumber) && $show_unawarded_prizes == 'no') {
|
|
continue;
|
|
}
|
|
if ($prevprizeid != $pr->id) {
|
|
echo ' ';
|
|
echo ' ';
|
|
echo '<b>';
|
|
echo i18n($pr->prize);
|
|
if (($pr->cash || $pr->scholarship) && $config['winners_show_prize_amounts'] == 'yes') {
|
|
echo ' (';
|
|
if ($pr->cash && $pr->scholarship)
|
|
echo i18n('$%1 cash / $%2 scholarship', array($pr->cash, $pr->scholarship), array('Cash dollar value', 'Scholarship dollar value'));
|
|
else if ($pr->cash)
|
|
echo i18n('$%1 cash', array($pr->cash), array('Cash dollar value'));
|
|
else if ($pr->scholarship)
|
|
echo i18n('$%1 scholarship', array($pr->scholarship), array('Scholarship dollar value'));
|
|
echo ')';
|
|
}
|
|
echo '</b>';
|
|
echo '<br />';
|
|
$prevprizeid = $pr->id;
|
|
}
|
|
|
|
if ($pr->projectnumber) {
|
|
echo '  ';
|
|
echo "($pr->projectnumber) " . htmlspecialchars($pr->title);
|
|
|
|
$sq = $pdo->prepare("SELECT students.firstname,
|
|
students.lastname,
|
|
students.schools_id,
|
|
students.webfirst,
|
|
students.weblast,
|
|
students.webphoto,
|
|
schools.school
|
|
FROM
|
|
students,
|
|
schools
|
|
WHERE
|
|
students.registrations_id='$pr->reg_id'
|
|
AND students.schools_id=schools.id
|
|
");
|
|
$sq->execute();
|
|
|
|
$studnum = 0;
|
|
$students = '';
|
|
$schools = array();
|
|
while ($studentinfo = $sq->fetch(PDO::FETCH_OBJ)) {
|
|
if ($studnum > 0 && $prev)
|
|
$students .= ', ';
|
|
|
|
if ($studentinfo->webfirst == 'yes')
|
|
$students .= "$studentinfo->firstname ";
|
|
if ($studentinfo->weblast == 'yes')
|
|
$students .= "$studentinfo->lastname ";
|
|
if ($r->studentinfo->webfirst == 'yes' || $studentinfo->weblast == 'yes')
|
|
$prev = true;
|
|
else
|
|
$prev = false;
|
|
|
|
// $students.="$studentinfo->firstname $studentinfo->lastname";
|
|
$studnum++;
|
|
|
|
// we will assume that they are coming from the same school, so lets just grab the last students school
|
|
// and use it.
|
|
if (!in_array($studentinfo->school, $schools))
|
|
$schools[] = $studentinfo->school;
|
|
|
|
// $school=$studentinfo->school;
|
|
}
|
|
echo '<br />';
|
|
echo '  ';
|
|
echo '  ';
|
|
if ($studnum > 1)
|
|
echo i18n('Students') . ': ' . htmlspecialchars($students);
|
|
else
|
|
echo i18n('Student') . ': ' . htmlspecialchars($students);
|
|
|
|
echo '<br />';
|
|
echo '  ';
|
|
echo '  ';
|
|
echo i18n('School') . ': ';
|
|
$schoollist = '';
|
|
foreach ($schools AS $school)
|
|
$schoollist .= $school . ', ';
|
|
$schoollist = substr($schoollist, 0, -2);
|
|
echo $schoollist;
|
|
echo '<br />';
|
|
} else {
|
|
echo '  ';
|
|
echo i18n('Prize not awarded');
|
|
echo '<br />';
|
|
}
|
|
echo '<br />';
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
$q = $pdo->prepare("SELECT
|
|
DISTINCT(winners.year) AS year,
|
|
dates.date
|
|
FROM
|
|
winners,
|
|
dates
|
|
WHERE
|
|
winners.year=dates.year
|
|
AND dates.name='postwinners'
|
|
AND dates.date<=NOW()
|
|
ORDER BY
|
|
year DESC");
|
|
$q->execute();
|
|
|
|
$first = true;
|
|
if ($q->rowCount()) {
|
|
while ($r = $q->fetch(PDO::FETCH_OBJ)) {
|
|
if ($first && $r->year != $config['FAIRYEAR']) {
|
|
list($d, $t) = explode(' ', $config['dates']['postwinners']);
|
|
echo '<h2>' . i18n('%1 Winners', array($config['FAIRYEAR'])) . '</h2>';
|
|
echo i18n('Winners of the %1 %2 will be posted here on %3 at %4', array($config['FAIRYEAR'], $config['fairname'], format_date($d), format_time($t)));
|
|
echo "<br />\n";
|
|
echo "<br />\n";
|
|
$first = false;
|
|
}
|
|
// get the "winnersposted" date for the year, and make
|
|
echo '<h2>' . i18n('%1 Winners', array($r->year)) . '</h2>';
|
|
|
|
// do this each time, because each year the names of the award types could change, along with what is actually given out.
|
|
//
|
|
$tq = $pdo->prepare("SELECT
|
|
DISTINCT(award_types.type) AS type
|
|
FROM
|
|
winners,
|
|
award_types,
|
|
award_awards,
|
|
award_prizes
|
|
WHERE
|
|
award_awards.award_types_id=award_types.id
|
|
AND winners.awards_prizes_id=award_prizes.id
|
|
AND award_prizes.award_awards_id=award_awards.id
|
|
AND winners.year='$r->year'
|
|
ORDER BY
|
|
award_types.order
|
|
");
|
|
$tq->execute();
|
|
$errorInfo = $pdo->errorInfo();
|
|
if ($errorInfo[0] != '00000') {
|
|
// If there's an error (the SQLSTATE isn't '00000', which means no error)
|
|
echo 'Error: ' . $errorInfo[2]; // The third element contains the error message
|
|
}
|
|
while ($tr = $tq->fetch(PDO::FETCH_OBJ)) {
|
|
echo " <a href=\"winners.php?year=$r->year&type=$tr->type\">" . i18n("%1 $tr->type award winners", array($r->year)) . '</a><br />';
|
|
}
|
|
echo '<br />';
|
|
$first = false;
|
|
}
|
|
} else {
|
|
list($d, $t) = explode(' ', $config['dates']['postwinners']);
|
|
echo '<h2>' . i18n('%1 Winners', array($config['FAIRYEAR'])) . '</h2>';
|
|
echo i18n('Winners of the %1 %2 will be posted here on %3 at %4', array($config['FAIRYEAR'], $config['fairname'], format_date($d), format_time($t)));
|
|
}
|
|
}
|
|
|
|
send_footer();
|
|
|
|
?>
|