Copyright (C) 2005 James Grant 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. */ ?> 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.
", '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; } ?>