2005-05-06 20:02:20 +00:00
< ?
/*
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 )
{
2010-11-01 15:24:59 +00:00
global $conference ;
2005-05-06 20:02:20 +00:00
$prjq = mysql_query ( " SELECT
award_awards . id ,
award_awards_projectcategories . projectcategories_id ,
award_awards_projectdivisions . projectdivisions_id ,
projects . projectnumber ,
projects . title ,
2010-01-27 20:24:19 +00:00
projects . id AS projects_id ,
projects . fairs_id
2005-05-06 20:02:20 +00:00
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
2010-11-01 15:24:59 +00:00
AND projects . conferences_id = '".$conference[' id ']."'
2005-05-06 20:02:20 +00:00
ORDER BY
2007-12-29 08:46:40 +00:00
projectsort
2005-05-06 20:02:20 +00:00
" );
$projects = array ();
while ( $prjr = mysql_fetch_object ( $prjq ))
{
$projects [ $prjr -> projectnumber ] = array (
" id " => $prjr -> projects_id ,
" projectnumber " => $prjr -> projectnumber ,
2010-01-27 20:24:19 +00:00
" title " => $prjr -> title ,
" fairs_id " => $prjr -> fairs_id
2005-05-06 20:02:20 +00:00
);
}
return $projects ;
}
2005-05-12 19:47:50 +00:00
function getProjectsEligibleOrNominatedForAwards ( $awards_ids_array )
2005-05-06 20:02:20 +00:00
{
$projects = array ();
foreach ( $awards_ids_array AS $award_id )
{
2005-05-12 19:47:50 +00:00
$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 );
2005-05-06 20:02:20 +00:00
$awardprojects = array ();
2005-05-12 19:47:50 +00:00
//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;
2005-05-06 20:02:20 +00:00
//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 ;
}
2005-05-10 21:51:22 +00:00
2005-05-11 04:13:27 +00:00
function getSpecialAwardsEligibleForProject ( $projectid )
2005-05-10 21:51:22 +00:00
{
2010-11-01 15:24:59 +00:00
global $conference ;
2005-05-10 21:51:22 +00:00
2005-05-11 04:13:27 +00:00
$awardsq = mysql_query ( " SELECT
award_awards . id ,
award_awards . name ,
award_awards . criteria ,
award_awards_projectcategories . projectcategories_id ,
award_awards_projectdivisions . projectdivisions_id ,
2008-01-24 07:46:12 +00:00
projects . id AS projects_id ,
award_awards . self_nominate
2005-05-11 04:13:27 +00:00
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
2010-11-01 15:24:59 +00:00
AND projects . conferences_id = '".$conference[' id ']."'
2005-05-11 04:13:27 +00:00
AND projects . id = '$projectid'
2010-11-01 15:24:59 +00:00
AND award_types . conferences_id = '".$conference[' id ']."'
AND award_awards . conferences_id = '".$conference[' id ']."'
2005-05-11 04:13:27 +00:00
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 ,
2008-01-24 07:46:12 +00:00
" name " => $r -> name ,
" self_nominate " => $r -> self_nominate
2005-05-11 04:13:27 +00:00
);
}
return $awards ;
}
function getSpecialAwardsNominatedForProject ( $projectid )
{
2010-11-01 15:24:59 +00:00
global $conference ;
2005-05-11 04:13:27 +00:00
$awardsq = mysql_query ( " SELECT
award_awards . id ,
award_awards . name ,
award_awards . criteria ,
2010-01-27 20:24:19 +00:00
projects . id AS projects_id ,
projects . fairs_id
2005-05-11 04:13:27 +00:00
FROM
award_awards ,
project_specialawards_link ,
projects
WHERE
project_specialawards_link . projects_id = '$projectid'
AND project_specialawards_link . award_awards_id = award_awards . id
2010-11-01 15:24:59 +00:00
AND projects . conferences_id = '".$conference[' id ']."'
2005-05-11 04:13:27 +00:00
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 ,
2010-01-27 20:24:19 +00:00
" name " => $r -> name ,
" fairs_id " => $r -> fairs_id
2005-05-11 04:13:27 +00:00
);
}
return $awards ;
}
2007-03-05 04:27:44 +00:00
function getNominatedForNoSpecialAwardsForProject ( $projectid )
{
2010-11-01 15:24:59 +00:00
global $conference ;
2007-03-05 04:27:44 +00:00
$awardsq = mysql_query ( " SELECT
2011-03-04 19:21:30 +00:00
projects_id
2007-03-05 04:27:44 +00:00
FROM
2011-03-04 19:21:30 +00:00
project_specialawards_link
2007-03-05 04:27:44 +00:00
WHERE
2011-03-04 19:21:30 +00:00
projects_id = '$projectid'
AND conferences_id = '{$conference[' id ']}'
AND award_awards_id =- 1
2007-03-05 04:27:44 +00:00
" );
2011-03-04 19:21:30 +00:00
if ( mysql_num_rows ( $awardsq ) == 1 )
return true ;
else
return false ;
2007-03-05 04:27:44 +00:00
}
2005-05-12 19:47:50 +00:00
function getProjectsNominatedForSpecialAward ( $award_id )
{
2010-11-01 15:24:59 +00:00
global $config , $conference ;
2005-05-12 19:47:50 +00:00
2006-01-26 15:06:56 +00:00
//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 " )
2005-05-12 19:47:50 +00:00
{
2006-01-26 15:06:56 +00:00
$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
2010-11-01 15:24:59 +00:00
AND projects . conferences_id = '".$conference[' id ']."'
2006-01-26 15:06:56 +00:00
ORDER BY
2007-12-29 08:46:40 +00:00
projectsort
2006-01-26 15:06:56 +00:00
" );
$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 );
2005-05-12 19:47:50 +00:00
}
}
2005-05-11 04:13:27 +00:00
function getSpecialAwardsNominatedByRegistrationID ( $id )
{
2010-11-01 15:24:59 +00:00
global $conference ;
2005-05-11 04:13:27 +00:00
$awardq = mysql_query ( " SELECT
2005-05-10 21:51:22 +00:00
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
2010-11-01 15:24:59 +00:00
AND projects . conferences_id = '".$conference[' id ']."'
2005-05-10 21:51:22 +00:00
ORDER BY
2007-12-29 08:46:40 +00:00
projectsort
2005-05-10 21:51:22 +00:00
" );
$projects = array ();
while ( $prjr = mysql_fetch_object ( $prjq ))
{
$projects [ $prjr -> projectnumber ] = array (
" id " => $prjr -> projects_id ,
" projectnumber " => $prjr -> projectnumber ,
" title " => $prjr -> title
);
}
return $projects ;
2005-05-11 04:13:27 +00:00
2005-05-10 21:51:22 +00:00
}
2009-09-25 19:14:37 +00:00
function project_load ( $pid )
{
/* Load this project */
$q = mysql_query ( " SELECT * FROM projects WHERE id=' $pid ' " );
$proj = mysql_fetch_array ( $q );
/* Load the students */
2011-03-04 21:52:37 +00:00
$q = mysql_query ( " SELECT users.*,schools.school FROM users
2009-09-25 19:14:37 +00:00
LEFT JOIN schools ON schools . id = students . schools_id
2011-03-04 21:52:37 +00:00
WHERE registrations_id = '{$proj[' registrations_id ']}' AND users . conferences_id = '{$proj[' conferences_id ']}' ORDER BY users . id " );
2009-09-25 19:14:37 +00:00
$proj [ 'num_students' ] = 0 ;
while ( $s = mysql_fetch_assoc ( $q )) {
$proj [ 'num_students' ] ++ ;
$proj [ 'student' ][] = $s ;
}
return $proj ;
}
2011-03-02 22:41:26 +00:00
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 " );
2011-03-04 21:52:37 +00:00
while (( $r = mysql_fetch_object ( $q )) && $projectcategories_id === null ) {
if ( $gradeinfo -> maxgrade >= $r -> mingrade && $gradeinfo -> maxgrade <= $r -> maxgrade ) {
2011-03-02 22:41:26 +00:00
$projectcategories_id = $r -> id ;
}
}
return $projectcategories_id ;
}
2005-05-11 04:13:27 +00:00
2011-03-03 03:00:35 +00:00
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 ();
2011-03-03 04:24:21 +00:00
$eligibleAwards = getSpecialAwardsEligibleForProject ( $project_id );
2011-03-04 19:21:30 +00:00
$nominatedAwards = getSpecialAwardsNominatedForProject ( $project_id );
2011-03-04 16:38:15 +00:00
2011-03-04 19:21:30 +00:00
$eligibleAwards = array_merge ( array ( array ( 'id' => - 1 ,
2011-03-04 16:38:15 +00:00
'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' )),
2011-03-04 19:21:30 +00:00
$eligibleAwards );
2011-03-04 16:38:15 +00:00
/* See if they have the -1 award selected */
$noawards = getNominatedForNoSpecialAwardsForProject ( $project_id );
2011-03-04 19:21:30 +00:00
// echo "noawards=$noawards";
2011-03-04 16:38:15 +00:00
if ( $noawards == true ) {
2011-03-04 19:21:30 +00:00
// echo "marging -1 award";
$nominatedAwards = array_merge ( array ( array ( 'id' => '-1' )), $nominatedAwards );
2011-03-04 16:38:15 +00:00
}
2011-03-03 03:00:35 +00:00
$nominatedawards_list = array ();
2011-03-04 19:21:30 +00:00
foreach ( $nominatedAwards AS $naward ){
2011-03-03 03:00:35 +00:00
$nominatedawards_list [] = $naward [ 'id' ];
}
foreach ( $eligibleAwards AS $eaward ){
2011-03-03 04:24:21 +00:00
if ( in_array ( $eaward [ 'id' ], $nominatedawards_list ))
$eaward [ 'selected' ] = true ;
else
$eaward [ 'selected' ] = false ;
$returnval [] = $eaward ;
2011-03-03 03:00:35 +00:00
}
return $returnval ;
}
2005-05-10 21:51:22 +00:00
?>