forked from science-ation/science-ation

award_awards award_prizes award_types award_awards_projectcategories award_awards_projectdivisions winners students projects registrations Also modified all code that uses those tables to work with the conference id instead of the year, with the exception of these files: communication.inc.php reports_students.inc.php rerollprizes.php remote.php The "rerollprizes.php" probably doesn't matter, having been a one-time usage file anyway. The others will need to be modified in the future to correctly use the conference id instead of the year.
338 lines
10 KiB
PHP
338 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.
|
|
*/
|
|
|
|
include "xml.inc.php";
|
|
require_once("../user.inc.php");
|
|
|
|
function get_cwsf_award_winners()
|
|
{
|
|
global $config;
|
|
$winners=array();
|
|
$winners_ids=array();
|
|
|
|
$q=mysql_query("SELECT * FROM award_awards WHERE cwsfaward='1' AND conferences_id='".$conference['id']."'");
|
|
while($award=mysql_fetch_object($q))
|
|
{
|
|
$pq=mysql_query("SELECT * FROM award_prizes WHERE award_awards_id='$award->id'");
|
|
while($prize=mysql_fetch_object($pq))
|
|
{
|
|
$wq=mysql_query("SELECT
|
|
projects.id,
|
|
projects.projectnumber,
|
|
projects.title,
|
|
projects.summary,
|
|
projects.registrations_id,
|
|
projects.cwsfdivisionid,
|
|
projects.projectdivisions_id
|
|
|
|
FROM
|
|
winners,
|
|
projects
|
|
WHERE
|
|
winners.projects_id=projects.id AND
|
|
awards_prizes_id='$prize->id' AND
|
|
winners.conferences_id='".$conference['id']."'");
|
|
echo mysql_error();
|
|
while($project=mysql_fetch_object($wq))
|
|
{
|
|
if(array_key_exists($project->id, $winners_ids)) {
|
|
continue;
|
|
} else {
|
|
$winners_ids[$project->id] = true;
|
|
}
|
|
$sq=mysql_query("SELECT * FROM students WHERE registrations_id='$project->registrations_id' AND conferences_id='".$conference['id']."'");
|
|
$students=array();
|
|
$cwsf_agecategory=0;
|
|
while($s=mysql_fetch_object($sq))
|
|
{
|
|
if($s->grade>=7 && $s->grade<=8)
|
|
{
|
|
if($cwsf_agecategory<1)
|
|
$cwsf_agecategory=1;
|
|
}
|
|
if($s->grade>=9 && $s->grade<=10)
|
|
{
|
|
if($cwsf_agecategory<2)
|
|
$cwsf_agecategory=2;
|
|
}
|
|
if($s->grade>=11 && $s->grade<=13)
|
|
{
|
|
if($cwsf_agecategory<3)
|
|
$cwsf_agecategory=3;
|
|
}
|
|
$students[]=array(
|
|
"xml_type"=>"student",
|
|
"firstname"=>$s->firstname,
|
|
"lastname"=>$s->lastname,
|
|
"email"=>$s->email,
|
|
"gender"=>$s->sex,
|
|
"grade"=>$s->grade,
|
|
"language"=>$s->lang,
|
|
"birthdate"=>$s->dateofbirth,
|
|
"address1"=>$s->address,
|
|
"address2"=>"",
|
|
"city"=>$s->city,
|
|
"province"=>$s->province,
|
|
"postalcode"=>$s->postalcode,
|
|
"homephone"=>$s->phone,
|
|
"cellphone"=>"",
|
|
);
|
|
}
|
|
$winners[]=array(
|
|
"xml_type"=>"project",
|
|
"projectid"=>$project->id,
|
|
"projectnumber"=>$project->projectnumber,
|
|
"title"=>$project->title,
|
|
"abstract"=>$project->summary,
|
|
"category_id"=>$cwsf_agecategory,
|
|
"division_id"=>$project->cwsfdivisionid,
|
|
"projectdivisions_id"=>$project->projectdivisions_id,
|
|
"students"=>$students,
|
|
);
|
|
}
|
|
}
|
|
//print_r($award);
|
|
}
|
|
return $winners;
|
|
}
|
|
|
|
|
|
|
|
?>
|
|
<?
|
|
require("../common.inc.php");
|
|
require("../projects.inc.php");
|
|
user_auth_required('admin');
|
|
send_header("One-Click CWSF Registration",
|
|
array('Committee Main' => 'committee_main.php',
|
|
'Administration' => 'admin/index.php'),
|
|
"one-click_cwsf_registration"
|
|
);
|
|
echo "<br />";
|
|
|
|
if(count($_POST['cwsfdivision']))
|
|
{
|
|
foreach($_POST['cwsfdivision'] AS $p=>$d)
|
|
{
|
|
mysql_query("UPDATE projects SET cwsfdivisionid='$d' WHERE id='$p'");
|
|
}
|
|
echo happy(i18n("CWSF Project Divisions saved"));
|
|
}
|
|
|
|
if($_POST['action']=="register" && $_POST['xml'])
|
|
{
|
|
if(function_exists('curl_init'))
|
|
{
|
|
$ch = curl_init(); /// initialize a cURL session
|
|
curl_setopt ($ch, CURLOPT_URL,"https://secure.ysf-fsj.ca/registration/xmlregister.php");
|
|
curl_setopt ($ch, CURLOPT_HEADER, 0); /// Header control
|
|
curl_setopt ($ch, CURLOPT_POST, 1); /// tell it to make a POST, not a GET
|
|
curl_setopt ($ch, CURLOPT_POSTFIELDS, "xml=".$_POST['xml']); /// put the query string here starting with "?"
|
|
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); /// This allows the output to be set into a variable $datastream
|
|
curl_setopt ($ch, CURLOPT_POSTFIELDSIZE, 0);
|
|
curl_setopt ($ch, CURLOPT_TIMEOUT, 360);
|
|
curl_setopt ($ch, CURLOPT_SSLVERSION, 3);
|
|
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false);
|
|
$datastream = curl_exec ($ch); /// execute the curl session and return the output to a variable $datastream
|
|
$datastream = str_replace(" standalone=\"yes\"","",$datastream);
|
|
// echo "curl close <br />";
|
|
curl_close ($ch); /// close the curl session
|
|
|
|
echo i18n("The YSC Registration Server said:")."<br />";
|
|
echo notice($datastream);
|
|
}
|
|
else
|
|
{
|
|
echo error("CURL Support Missing");
|
|
echo i18n("Your PHP installation does not support CURL. You will need to login to the YSC system as the regional coodinator and upload the XML data manually");
|
|
}
|
|
send_footer();
|
|
exit;
|
|
}
|
|
|
|
/* Load the YSC fair */
|
|
$q = mysql_query("SELECT * FROM fairs WHERE abbrv='YSC'");
|
|
if(mysql_num_rows($q) < 1) {
|
|
echo error(i18n("You have not defined the YSC upstream fair in the Science Fair Management area."));
|
|
$ok = false;
|
|
} else {
|
|
$f = mysql_fetch_assoc($q);
|
|
$ysc_region_id = $f['username'];
|
|
$ysc_region_password = $f['password'];
|
|
}
|
|
$ok=true;
|
|
//make sure we have the ysc_region_id and ysc_region_password
|
|
if($ysc_region_id == '') {
|
|
echo error(i18n("You have not yet specified a username for YSC (your Region ID). Go to the <a href=\"sciencefairs.php\">Science Fair Management</a> page to set it"));
|
|
$ok=false;
|
|
}
|
|
if($ysc_region_password == '') {
|
|
echo error(i18n("You have not yet specified a password for YSC (your Region Password). Go to the <a href=\"sciencefairs.php\">Science Fair Management</a> page to set it"));
|
|
$ok=false;
|
|
}
|
|
|
|
if($ok)
|
|
{
|
|
$q=mysql_query("SELECT * FROM award_awards WHERE cwsfaward='1' AND conferences_id='".$conference['id']."'");
|
|
if(!mysql_num_rows($q))
|
|
{
|
|
echo error(i18n("Cannot find an award that is specified as the Canada-Wide Science Fair Award"));
|
|
echo i18n("Please go to the awards manager and select which award identifies your CWSF students");
|
|
}
|
|
else
|
|
{
|
|
echo "<b>".i18n("CWSF Awards").":</b> <br />";
|
|
echo "<ul>";
|
|
while($award=mysql_fetch_object($q)) {
|
|
echo "<li>{$award->name}</li>";
|
|
}
|
|
echo "</ul>";
|
|
echo i18n("Please review the list of winning projects/students below. If it is all correct then you can click the 'Register for CWSF' button at the bottom of the page to send the information to YSC");
|
|
echo "<br />";
|
|
echo "<br />";
|
|
$winners=get_cwsf_award_winners();
|
|
echo "<b>".i18n("Found %1 CWSF prize winners",array(count($winners)))."</b>";
|
|
echo "<br />";
|
|
$error=false;
|
|
echo "<form method=\"post\" action=\"cwsfregister.php\">";
|
|
echo "<table class=\"tableview\"><thead>";
|
|
echo "<tr><th>".i18n("Project Information")."</th>";
|
|
echo "<th>".i18n("Project Division / CWSF Project Division")."</th>";
|
|
echo "</tr></thead>";
|
|
|
|
foreach($winners AS $winner)
|
|
{
|
|
echo "<tr><td>";
|
|
echo "<b>";
|
|
echo $winner['projectnumber']." - ".$winner['title'];
|
|
echo "</b>";
|
|
echo "<br />";
|
|
foreach($winner['students'] AS $s)
|
|
{
|
|
echo " "; echo " "; echo " "; echo " ";
|
|
echo i18n("Name").": ";
|
|
echo $s['firstname']." ".$s['lastname'];
|
|
echo "<br />";
|
|
|
|
echo " "; echo " "; echo " "; echo " ";
|
|
echo i18n("Email").": ".$s['email'];
|
|
if(!$s['email'])
|
|
{
|
|
echo error(i18n("No Email Address"),"inline");
|
|
$error=true;
|
|
}
|
|
echo "<br />";
|
|
echo " "; echo " "; echo " "; echo " ";
|
|
|
|
echo i18n("Grade").": ".$s['grade'];
|
|
if(!$s['grade'])
|
|
{
|
|
echo error(i18n("No Grade"),"inline");
|
|
$error=true;
|
|
}
|
|
|
|
echo "<br />";
|
|
}
|
|
if(!$winner['division_id'])
|
|
{
|
|
echo "<br />";
|
|
echo error(i18n("Choose a CWSF Division"),"inline");
|
|
$error=true;
|
|
}
|
|
|
|
echo "</td><td>";
|
|
|
|
$t=mysql_query("SELECT * FROM projectdivisions WHERE conferences_id='".$conference['id']."' AND id='".$winner['projectdivisions_id']."'");
|
|
$tr=mysql_fetch_object($t);
|
|
echo $tr->division;
|
|
echo "<br />";
|
|
|
|
echo "<select name=\"cwsfdivision[".$winner['projectid']."]\">";
|
|
echo "<option value=\"\">".i18n("No corresponding CWSF division")."</option>\n";
|
|
foreach($CWSFDivisions AS $k=>$v)
|
|
{
|
|
if($winner['division_id'])
|
|
{
|
|
if($k==$winner['division_id']) $sel="selected=\"selected\""; else $sel="";
|
|
}
|
|
else
|
|
{
|
|
|
|
if($k==$tr->cwsfdivisionid) $sel="selected=\"selected\""; else $sel="";
|
|
}
|
|
|
|
echo "<option $sel value=\"$k\">".i18n($v)."</option>\n";
|
|
}
|
|
echo "</select>\n";
|
|
|
|
echo "</td></tr>";
|
|
|
|
}
|
|
echo "<tr><td></td><td>";
|
|
echo "<input type=\"submit\" value=\"Save CWSF Divisions\">";
|
|
echo "</td></tr>";
|
|
echo "</table>";
|
|
echo "</form>";
|
|
|
|
if(!$error)
|
|
{
|
|
$reg=array("registration"=>array(
|
|
"ysf_region_id"=>$ysc_region_id,
|
|
"ysf_region_password"=>$ysc_region_password,
|
|
"projects"=>$winners
|
|
)
|
|
);
|
|
|
|
$output="";
|
|
xmlCreateRecurse($reg);
|
|
$xmldata=$output;
|
|
|
|
echo "<h3>".i18n("The following data will be sent to Youth Science Canada")."</h3>";
|
|
echo "<form method=\"post\" action=\"cwsfregister.php\">";
|
|
echo "<input type=\"hidden\" name=\"action\" value=\"register\">";
|
|
echo "<textarea rows=\"15\" cols=\"80\" name=\"xml\">";
|
|
echo $xmldata;
|
|
echo "</textarea>";
|
|
echo "<br />";
|
|
echo "<br />";
|
|
echo i18n("Warning! You can only use this feature once, and it will send whatever data is listed above. If you try to submit this data a second time to YSC it will not work. So please make sure everything is correct before submitting!");
|
|
echo "<br />";
|
|
echo "<br />";
|
|
echo "<input type=\"submit\" value=\"".i18n("Register for CWSF")."\">";
|
|
echo "</form>";
|
|
}
|
|
else
|
|
{
|
|
echo error(i18n("You must correct the above errors before registration can proceed"));
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
send_footer();
|
|
|
|
?>
|