forked from science-ation/science-ation
125437dd55
'self_nominate', and 'schedule_judges'. - self_nominate defaults to 'yes' for all new and existing awards. If turned off, the award will not appear in the student self-nomination pages. - schedule_judges specifies whether an award should have judges or not, we have some special awards that students can nominate for but do not require judges to find the winner. Similarly we have some awards students cannot nominate for but do require judges to determine a winner. This allows both cases to be handled.
274 lines
7.7 KiB
PHP
274 lines
7.7 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.
|
|
*/
|
|
?>
|
|
<?
|
|
function getProjectsEligibleForAward($award_id)
|
|
{
|
|
global $config;
|
|
|
|
$prjq=mysql_query("SELECT
|
|
award_awards.id,
|
|
award_awards_projectcategories.projectcategories_id,
|
|
award_awards_projectdivisions.projectdivisions_id,
|
|
projects.projectnumber,
|
|
projects.title,
|
|
projects.id AS projects_id
|
|
FROM
|
|
award_awards,
|
|
award_awards_projectcategories,
|
|
award_awards_projectdivisions,
|
|
projects
|
|
WHERE
|
|
award_awards.id='$award_id'
|
|
AND award_awards.id=award_awards_projectcategories.award_awards_id
|
|
AND award_awards.id=award_awards_projectdivisions.award_awards_id
|
|
AND projects.projectcategories_id=award_awards_projectcategories.projectcategories_id
|
|
AND projects.projectdivisions_id=award_awards_projectdivisions.projectdivisions_id
|
|
AND projects.projectnumber is not null
|
|
AND projects.year='".$config['FAIRYEAR']."'
|
|
ORDER BY
|
|
projectsort
|
|
");
|
|
$projects=array();
|
|
while($prjr=mysql_fetch_object($prjq))
|
|
{
|
|
$projects[$prjr->projectnumber]=array(
|
|
"id"=>$prjr->projects_id,
|
|
"projectnumber"=>$prjr->projectnumber,
|
|
"title"=>$prjr->title
|
|
);
|
|
}
|
|
return $projects;
|
|
}
|
|
|
|
function getProjectsEligibleOrNominatedForAwards($awards_ids_array)
|
|
{
|
|
$projects=array();
|
|
foreach($awards_ids_array AS $award_id)
|
|
{
|
|
$q=mysql_query("SELECT award_types.type FROM award_awards, award_types WHERE award_awards.id='$award_id' AND award_awards.award_types_id=award_types.id");
|
|
$r=mysql_fetch_object($q);
|
|
|
|
$awardprojects=array();
|
|
|
|
//for special awards, we only want the ones that were nominated for it.
|
|
//for everything else, we weant all the eligible projects
|
|
if($r->type=="Special")
|
|
$awardprojects=getProjectsNominatedForSpecialAward($award_id);
|
|
else
|
|
$awardprojects=getProjectsEligibleForAward($award_id);
|
|
|
|
// $projects[$award_id]=$awardprojects;
|
|
|
|
//this will just overwrite ones that already exist, but still keep things in order because the main key is the projectnumber (i hope)
|
|
foreach($awardprojects AS $proj)
|
|
$projects[$proj['projectnumber']]=$proj;
|
|
}
|
|
|
|
return $projects;
|
|
}
|
|
|
|
function getSpecialAwardsEligibleForProject($projectid)
|
|
{
|
|
global $config;
|
|
|
|
$awardsq=mysql_query("SELECT
|
|
award_awards.id,
|
|
award_awards.name,
|
|
award_awards.criteria,
|
|
award_awards_projectcategories.projectcategories_id,
|
|
award_awards_projectdivisions.projectdivisions_id,
|
|
projects.id AS projects_id,
|
|
award_awards.self_nominate
|
|
FROM
|
|
award_awards,
|
|
award_awards_projectcategories,
|
|
award_awards_projectdivisions,
|
|
award_types,
|
|
projects
|
|
WHERE
|
|
award_types.type='Special'
|
|
AND award_types.id=award_awards.award_types_id
|
|
AND award_awards.id=award_awards_projectcategories.award_awards_id
|
|
AND award_awards.id=award_awards_projectdivisions.award_awards_id
|
|
AND projects.projectcategories_id=award_awards_projectcategories.projectcategories_id
|
|
AND projects.projectdivisions_id=award_awards_projectdivisions.projectdivisions_id
|
|
AND award_awards.id is not null
|
|
AND projects.year='".$config['FAIRYEAR']."'
|
|
AND projects.id='$projectid'
|
|
AND award_types.year='".$config['FAIRYEAR']."'
|
|
AND award_awards.year='".$config['FAIRYEAR']."'
|
|
ORDER BY
|
|
award_awards.name
|
|
");
|
|
$awards=array();
|
|
echo mysql_error();
|
|
while($r=mysql_fetch_object($awardsq))
|
|
{
|
|
$awards[$r->id]=array(
|
|
"id"=>$r->id,
|
|
"criteria"=>$r->criteria,
|
|
"name"=>$r->name,
|
|
"self_nominate"=>$r->self_nominate
|
|
);
|
|
}
|
|
return $awards;
|
|
}
|
|
|
|
function getSpecialAwardsNominatedForProject($projectid)
|
|
{
|
|
global $config;
|
|
|
|
$awardsq=mysql_query("SELECT
|
|
award_awards.id,
|
|
award_awards.name,
|
|
award_awards.criteria,
|
|
projects.id AS projects_id
|
|
FROM
|
|
award_awards,
|
|
project_specialawards_link,
|
|
projects
|
|
WHERE
|
|
project_specialawards_link.projects_id='$projectid'
|
|
AND project_specialawards_link.award_awards_id=award_awards.id
|
|
AND projects.year='".$config['FAIRYEAR']."'
|
|
AND projects.id='$projectid'
|
|
ORDER BY
|
|
award_awards.name
|
|
");
|
|
$awards=array();
|
|
echo mysql_error();
|
|
while($r=mysql_fetch_object($awardsq))
|
|
{
|
|
$awards[$r->id]=array(
|
|
"id"=>$r->id,
|
|
"criteria"=>$r->criteria,
|
|
"name"=>$r->name
|
|
);
|
|
}
|
|
return $awards;
|
|
}
|
|
|
|
function getNominatedForNoSpecialAwardsForProject($projectid)
|
|
{
|
|
global $config;
|
|
$awardsq=mysql_query("SELECT
|
|
projects.id AS projects_id
|
|
FROM
|
|
project_specialawards_link,
|
|
projects
|
|
WHERE
|
|
project_specialawards_link.projects_id='$projectid'
|
|
AND projects.year='".$config['FAIRYEAR']."'
|
|
AND projects.id='$projectid'
|
|
AND project_specialawards_link.award_awards_id IS NULL
|
|
");
|
|
if(mysql_num_rows($awardsq) == 1) return true;
|
|
return false;
|
|
}
|
|
|
|
function getProjectsNominatedForSpecialAward($award_id)
|
|
{
|
|
global $config;
|
|
|
|
//if they dont use special award nominations, then we will instead get all of the projects that
|
|
//are eligible for the award, instead of nominated for it.
|
|
if($config['specialawardnomination']!="none")
|
|
{
|
|
$prjq=mysql_query("SELECT
|
|
projects.projectnumber,
|
|
projects.title,
|
|
projects.id AS projects_id
|
|
FROM
|
|
project_specialawards_link,
|
|
projects
|
|
WHERE
|
|
project_specialawards_link.award_awards_id='$award_id'
|
|
AND project_specialawards_link.projects_id=projects.id
|
|
AND projects.projectnumber is not null
|
|
AND projects.year='".$config['FAIRYEAR']."'
|
|
ORDER BY
|
|
projectsort
|
|
");
|
|
$projects=array();
|
|
while($prjr=mysql_fetch_object($prjq))
|
|
{
|
|
$projects[$prjr->projectnumber]=array(
|
|
"id"=>$prjr->projects_id,
|
|
"projectnumber"=>$prjr->projectnumber,
|
|
"title"=>$prjr->title
|
|
);
|
|
}
|
|
//return the projects that have self-nominated themselves for the award
|
|
return $projects;
|
|
}
|
|
else
|
|
{
|
|
//return the projects that are eligible for the award instead
|
|
return getProjectsEligibleForAward($award_id);
|
|
}
|
|
}
|
|
|
|
function getSpecialAwardsNominatedByRegistrationID($id)
|
|
{
|
|
global $config;
|
|
|
|
$awardq=mysql_query("SELECT
|
|
award_awards.id,
|
|
award_awards.name,
|
|
award_awards_projectcategories.projectcategories_id,
|
|
award_awards_projectdivisions.projectdivisions_id,
|
|
projects.id AS projects_id
|
|
FROM
|
|
award_awards,
|
|
award_awards_projectcategories,
|
|
award_awards_projectdivisions,
|
|
projects
|
|
WHERE
|
|
award_awards.id='$award_id'
|
|
AND award_awards.id=award_awards_projectcategories.award_awards_id
|
|
AND award_awards.id=award_awards_projectdivisions.award_awards_id
|
|
AND projects.projectcategories_id=award_awards_projectcategories.projectcategories_id
|
|
AND projects.projectdivisions_id=award_awards_projectdivisions.projectdivisions_id
|
|
AND projects.projectnumber is not null
|
|
AND projects.year='".$config['FAIRYEAR']."'
|
|
ORDER BY
|
|
projectsort
|
|
");
|
|
$projects=array();
|
|
while($prjr=mysql_fetch_object($prjq))
|
|
{
|
|
$projects[$prjr->projectnumber]=array(
|
|
"id"=>$prjr->projects_id,
|
|
"projectnumber"=>$prjr->projectnumber,
|
|
"title"=>$prjr->title
|
|
);
|
|
}
|
|
return $projects;
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|