forked from science-ation/science-ation
953e95ac3e
Fix the registration_list.php to work again - temporarily disable "create new project" and the ability to ADD students to an existing project
352 lines
10 KiB
PHP
352 lines
10 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 $conference;
|
|
|
|
$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,
|
|
projects.fairs_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.conferences_id='".$conference['id']."'
|
|
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,
|
|
"fairs_id"=>$prjr->fairs_id
|
|
);
|
|
}
|
|
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 $conference;
|
|
|
|
$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.conferences_id='".$conference['id']."'
|
|
AND projects.id='$projectid'
|
|
AND award_types.conferences_id='".$conference['id']."'
|
|
AND award_awards.conferences_id='".$conference['id']."'
|
|
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 $conference;
|
|
|
|
$awardsq=mysql_query("SELECT
|
|
award_awards.id,
|
|
award_awards.name,
|
|
award_awards.criteria,
|
|
projects.id AS projects_id,
|
|
projects.fairs_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.conferences_id='".$conference['id']."'
|
|
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,
|
|
"fairs_id"=>$r->fairs_id
|
|
);
|
|
}
|
|
return $awards;
|
|
}
|
|
|
|
function getNominatedForNoSpecialAwardsForProject($projectid)
|
|
{
|
|
global $conference;
|
|
$awardsq=mysql_query("SELECT
|
|
projects_id
|
|
FROM
|
|
project_specialawards_link
|
|
WHERE
|
|
projects_id='$projectid'
|
|
AND conferences_id='{$conference['id']}'
|
|
AND award_awards_id=-1
|
|
");
|
|
if(mysql_num_rows($awardsq) == 1)
|
|
return true;
|
|
else
|
|
return false;
|
|
}
|
|
|
|
function getProjectsNominatedForSpecialAward($award_id)
|
|
{
|
|
global $config, $conference;
|
|
|
|
//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.conferences_id='".$conference['id']."'
|
|
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 $conference;
|
|
|
|
$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.conferences_id='".$conference['id']."'
|
|
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 project_load($pid)
|
|
{
|
|
/* Load this project */
|
|
$q = mysql_query("SELECT * FROM projects WHERE id='$pid'");
|
|
$proj = mysql_fetch_array($q);
|
|
|
|
/* Load the students */
|
|
$q = mysql_query("SELECT users.*,schools.school FROM users
|
|
LEFT JOIN schools ON schools.id=students.schools_id
|
|
WHERE registrations_id='{$proj['registrations_id']}' AND users.conferences_id='{$proj['conferences_id']}' ORDER BY users.id");
|
|
$proj['num_students'] = 0;
|
|
while($s = mysql_fetch_assoc($q)) {
|
|
$proj['num_students']++;
|
|
$proj['student'][] = $s;
|
|
}
|
|
return $proj;
|
|
}
|
|
|
|
function getProjectCategory($registrations_id){
|
|
global $conference;
|
|
$q=mysql_query("SELECT MAX(grade) AS maxgrade FROM users WHERE registrations_id='$registrations_id'");
|
|
$gradeinfo=mysql_fetch_object($q);
|
|
$projectcategories_id = null;
|
|
//now lets grab all the age categories, so we can choose one based on the max grade
|
|
$q=mysql_query("SELECT * FROM projectcategories WHERE conferences_id='".$conference['id']."' ORDER BY id");
|
|
while(($r=mysql_fetch_object($q)) && $projectcategories_id === null) {
|
|
if($gradeinfo->maxgrade >= $r->mingrade && $gradeinfo->maxgrade <= $r->maxgrade) {
|
|
$projectcategories_id = $r->id;
|
|
}
|
|
}
|
|
return $projectcategories_id;
|
|
}
|
|
|
|
function getProjectId($registrations_id){
|
|
$returnval = null;
|
|
$q = mysql_query("SELECT id FROM projects WHERE registrations_id = " . intval($registrations_id));
|
|
$row = mysql_fetch_assoc($q);
|
|
if($row){
|
|
$returnval = $row['id'];
|
|
}
|
|
return $returnval;
|
|
}
|
|
|
|
function getAwardListing($project_id){
|
|
$returnval = array();
|
|
$eligibleAwards = getSpecialAwardsEligibleForProject($project_id);
|
|
$nominatedAwards = getSpecialAwardsNominatedForProject($project_id);
|
|
|
|
$eligibleAwards = array_merge(array(array( 'id'=> -1,
|
|
'name' => "I do not wish to self-nominate for any special awards",
|
|
'criteria' => "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);
|
|
// echo "noawards=$noawards";
|
|
if($noawards == true) {
|
|
// echo "marging -1 award";
|
|
$nominatedAwards = array_merge(array(array('id' => '-1')), $nominatedAwards);
|
|
}
|
|
|
|
$nominatedawards_list=array();
|
|
foreach($nominatedAwards AS $naward){
|
|
$nominatedawards_list[] = $naward['id'];
|
|
}
|
|
foreach($eligibleAwards AS $eaward){
|
|
if(in_array($eaward['id'],$nominatedawards_list))
|
|
$eaward['selected']=true;
|
|
else
|
|
$eaward['selected']=false;
|
|
|
|
$returnval[] = $eaward;
|
|
}
|
|
return $returnval;
|
|
}
|
|
?>
|