forked from science-ation/science-ation
- Implement the last 2 missing warnings from ysfstats.php
- Change the YSF 1click affiliation to point to fair_stats.php - Add a hack in fair_stats.php to make it find and load the YSF stats on entry (on request). - No need for ysfstats.php anymore. The YSF fair has been added to everyone's SFIAB. The last update ensures the password is there too. Verified that this works witht he GVRSF. We could delete the YSF regionID and password now if we wanted from the config.
This commit is contained in:
parent
b5430b08b3
commit
e141676259
@ -29,6 +29,14 @@
|
||||
require_once('stats.inc.php');
|
||||
require_once('curl.inc.php');
|
||||
|
||||
/* Hack so we can jump right to YSC stats */
|
||||
if($_GET['abbrv'] == 'YSC') {
|
||||
$q = mysql_query("SELECT id FROM fairs WHERE abbrv='YSC'");
|
||||
$r = mysql_fetch_assoc($q);
|
||||
$_GET['id'] = $r['id'];
|
||||
}
|
||||
|
||||
|
||||
function stats_to_ysc($fair, $stats)
|
||||
{
|
||||
if($fair['type'] == 'ysc') {
|
||||
@ -57,10 +65,10 @@
|
||||
}
|
||||
|
||||
|
||||
send_header("Fair Stats",
|
||||
send_header("Upload Fair Statistics and Information",
|
||||
array('Committee Main' => 'committee_main.php',
|
||||
'Administration' => 'admin/index.php'),
|
||||
"one-click_ysf_affiliation_stats"
|
||||
"fair_stats"
|
||||
);
|
||||
echo "<br />";
|
||||
|
||||
@ -128,7 +136,7 @@
|
||||
echo "<form name=\"fairselect\" action=\"$PHPSELF\" method=\"get\">";
|
||||
$q=mysql_query("SELECT * FROM fairs WHERE `type`='sfiab' OR `type`='ysc'");
|
||||
echo "<select name=\"id\" \">";
|
||||
echo "<option value=\"\">".i18n("Choose a fair")."</option>\n";
|
||||
echo "<option value=\"\">".i18n("Choose a destination")."</option>\n";
|
||||
while($r=mysql_fetch_object($q)) {
|
||||
if($fairs_id==$r->id) $sel="selected=\"selected\""; else $sel="";
|
||||
echo "<option $sel value=\"{$r->id}\">{$r->name} ({$r->abbrv})</option>\n";
|
||||
@ -148,12 +156,23 @@
|
||||
echo "<hr />";
|
||||
|
||||
if($fairs_id == -1) {
|
||||
echo i18n('Statistics will be shown below this line before being sent. Please select a fair and year first.');
|
||||
echo i18n('Statistics will be shown below this line before being sent. Please select a destination and year first.');
|
||||
/* Wait for them to select somethign before generating stats */
|
||||
send_footer();
|
||||
exit;
|
||||
}
|
||||
|
||||
$ok = true;
|
||||
if(trim($fair['username']) == '') {
|
||||
echo error(i18n("You have not yet specified a username for this server. Go to the <a href=\"sciencefairs.php\">Science Fair Management</a> page to set it"));
|
||||
$ok=false;
|
||||
}
|
||||
if(trim($fair['password']) == '') {
|
||||
echo error(i18n("You have not yet specified a password for this server. Go to the <a href=\"sciencefairs.php\">Science Fair Management</a> page to set it"));
|
||||
$ok=false;
|
||||
}
|
||||
|
||||
|
||||
if($fair['type'] == 'ysc') {
|
||||
$data['statconfig'] = array('participation');
|
||||
} else {
|
||||
@ -478,7 +497,8 @@
|
||||
echo "<input type=\"hidden\" name=\"$k\" value=\"{$stats[$k]}\" />";
|
||||
}
|
||||
|
||||
echo "<input type=\"submit\" value=\"".i18n('Send stats to')." {$fair['name']}\">";
|
||||
$d = ($ok == true) ? '' : 'disabled="disabled"';
|
||||
echo "<input type=\"submit\" value=\"".i18n('Send stats to')." {$fair['name']}\" $d />";
|
||||
echo '</form>';
|
||||
echo "<br />";
|
||||
echo "<br />";
|
||||
|
@ -87,7 +87,7 @@
|
||||
}
|
||||
echo " <td><a href=\"winners.php\">".theme_icon("enter_winning_projects")."<br />".i18n("Enter Winning Projects")."</a></td>";
|
||||
echo " <td><a href=\"cwsfregister.php\">".theme_icon("one-click_cwsf_registration")."<br />".i18n("One-Click CWSF Registration")."</a></td>";
|
||||
echo " <td><a href=\"ysfstats.php\">".theme_icon("one-click_ysf_affiliation_stats")."<br />".i18n("One-Click YSF Affiliation Stats")."</a></td>";
|
||||
echo " <td><a href=\"fair_stats.php?abbrv=YSC\">".theme_icon("one-click_ysf_affiliation_stats")."<br />".i18n("One-Click YSF Affiliation Stats")."</a></td>";
|
||||
echo " <td><a href=\"fair_stats.php\">".theme_icon("fair_stats")."<br />".i18n("Upload Statistics")."</a></td>";
|
||||
echo " </tr>\n";
|
||||
echo "</table>\n";
|
||||
|
@ -1,289 +0,0 @@
|
||||
<?
|
||||
/*
|
||||
This file is part of the 'Science Fair In A Box' project
|
||||
SFIAB Website: http://www.sfiab.ca
|
||||
|
||||
Copyright (C) 2007 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.
|
||||
*/
|
||||
?>
|
||||
<?
|
||||
require("../common.inc.php");
|
||||
require_once("../user.inc.php");
|
||||
user_auth_required('committee', 'admin');
|
||||
include "xml.inc.php";
|
||||
|
||||
send_header("YSF Regional Affiliation Stats",
|
||||
array('Committee Main' => 'committee_main.php',
|
||||
'Administration' => 'admin/index.php'),
|
||||
"one-click_ysf_affiliation_stats"
|
||||
);
|
||||
echo "<br />";
|
||||
|
||||
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/xmlaffiliation.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 YSF Registration Server said:")."<br />";
|
||||
echo notice($datastream);
|
||||
echo "<a href=\"index.php\">".i18n("Return to admin")."</a>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo error("CURL Support Missing");
|
||||
echo i18n("Your PHP installation does not support CURL. You will need to login to the YSF system as the regional coodinator and upload the XML data manually");
|
||||
}
|
||||
send_footer();
|
||||
exit;
|
||||
}
|
||||
|
||||
$ok=true;
|
||||
//make sure we have the ysf_region_id and ysf_region_password
|
||||
if(!$config['ysf_region_id'])
|
||||
{
|
||||
echo error(i18n("You have not yet specified your YSF Region ID. Go to the Configuration Variables page to set it"));
|
||||
$ok=false;
|
||||
}
|
||||
if(!$config['ysf_region_password'])
|
||||
{
|
||||
echo error(i18n("You have not yet specified your YSF Region Password. Go to the Configuration Variables page to set it"));
|
||||
$ok=false;
|
||||
}
|
||||
|
||||
if($_GET['year']) $year=$_GET['year'];
|
||||
else if($_POST['year']) $POST=$_GET['year'];
|
||||
else $year=$config['FAIRYEAR'];
|
||||
|
||||
echo "<form name=\"yearselect\" action=\"ysfstats.php\" method=\"get\">";
|
||||
$q=mysql_query("SELECT DISTINCT(year) AS year FROM config WHERE year>0 ORDER BY year");
|
||||
echo "<select name=\"year\" onchange=\"document.forms.yearselect.submit()\">";
|
||||
echo "<option value=\"\">".i18n("Choose a year")."</option>\n";
|
||||
while($r=mysql_fetch_object($q)) {
|
||||
if($year==$r->year) $sel="selected=\"selected\""; else $sel="";
|
||||
echo "<option $sel value=\"$r->year\">$r->year</option>\n";
|
||||
}
|
||||
echo "</select>\n";
|
||||
echo "</form>";
|
||||
|
||||
if($year)
|
||||
{
|
||||
|
||||
echo i18n("The following information is collected by YSF Canada each year for all affiliated regions");
|
||||
echo "<br />";
|
||||
echo "<br />";
|
||||
|
||||
$stats=array();
|
||||
|
||||
//number of schools
|
||||
$q=mysql_query("SELECT COUNT(id) AS num FROM schools WHERE year='$year'");
|
||||
$r=mysql_fetch_object($q);
|
||||
$numberofschools=$r->num;
|
||||
echo i18n("Number of schools: %1",array($numberofschools))."<br />";
|
||||
$stats["numschoolstotal"]=$numberofschools;
|
||||
|
||||
//number of schools
|
||||
$q=mysql_query("SELECT DISTINCT(students.schools_id) AS sid FROM students,registrations WHERE students.registrations_id=registrations.id AND students.year='$year' AND registrations.year='$year' AND (registrations.status='complete' OR registrations.status='paymentpending')");
|
||||
echo mysql_error();
|
||||
$numberofactiveschools=mysql_num_rows($q);
|
||||
echo i18n("Number of active schools: %1",array($numberofactiveschools))."<br />";
|
||||
$stats["numschoolsactive"]=$numberofactiveschools;
|
||||
|
||||
//total number of students:
|
||||
$q=mysql_query("SELECT COUNT(students.id) AS num FROM students,registrations WHERE students.registrations_id=registrations.id AND students.year='$year' AND registrations.year='$year' AND (registrations.status='complete' OR registrations.status='paymentpending')");
|
||||
$r=mysql_fetch_object($q);
|
||||
$numberofstudents=$r->num;
|
||||
echo i18n("Number of students: %1",array($numberofstudents))."<br />";
|
||||
echo mysql_error();
|
||||
$stats["numstudents"]=$numberofstudents;
|
||||
|
||||
//number of students per grade per gender
|
||||
$q=mysql_query("SELECT COUNT(students.id) AS num, students.grade, students.sex FROM students,registrations WHERE students.registrations_id=registrations.id AND students.year='$year' AND registrations.year='$year' AND (registrations.status='complete' OR registrations.status='paymentpending') GROUP BY students.grade, students.sex");
|
||||
echo mysql_error();
|
||||
while($r=mysql_fetch_object($q)) {
|
||||
if($r->grade<=6)
|
||||
$nums["6down"][$r->sex]+=$r->num;
|
||||
else if($r->grade>6&&$r->grade<=8)
|
||||
$nums["78"][$r->sex]+=$r->num;
|
||||
else if($r->grade>8&&$r->grade<=10)
|
||||
$nums["910"][$r->sex]+=$r->num;
|
||||
else if($r->grade>10)
|
||||
$nums["11up"][$r->sex]+=$r->num;
|
||||
}
|
||||
echo "<br />";
|
||||
echo "Student participation (by age group/gender)<br />";
|
||||
echo i18n("K-6 Male: %1",array($nums["6down"]["male"]?$nums["6down"]["male"]:0))."<br />";
|
||||
echo i18n("K-6 Female: %1",array($nums["6down"]["female"]?$nums["6down"]["female"]:0))."<br />";
|
||||
if($nums["6down"][""]>0)
|
||||
echo i18n("K-6 Unknown: %1",array($nums["6down"][""]?$nums["6down"][""]:0))."<br />";
|
||||
echo "<br />";
|
||||
|
||||
echo i18n("7-8 Male: %1",array($nums["78"]["male"]?$nums["78"]["male"]:0))."<br />";
|
||||
echo i18n("7-8 Female: %1",array($nums["78"]["female"]?$nums["78"]["female"]:0))."<br />";
|
||||
if($nums["78"][""]>0)
|
||||
echo i18n("7-8 Unknown: %1",array($nums["78"][""]?$nums["78"][""]:0))."<br />";
|
||||
echo "<br />";
|
||||
|
||||
echo i18n("9-10 Male: %1",array($nums["910"]["male"]?$nums["910"]["male"]:0))."<br />";
|
||||
echo i18n("9-10 Female: %1",array($nums["910"]["female"]?$nums["910"]["female"]:0))."<br />";
|
||||
if($nums["910"][""]>0)
|
||||
echo i18n("9-10 Unknown: %1",array($nums["910"][""]?$nums["910"][""]:0))."<br />";
|
||||
echo "<br />";
|
||||
|
||||
echo i18n("11 up Male: %1",array($nums["11up"]["male"]?$nums["11up"]["male"]:0))."<br />";
|
||||
echo i18n("11 up Female: %1",array($nums["11up"]["female"]?$nums["11up"]["female"]:0))."<br />";
|
||||
if($nums["11up"][""]>0)
|
||||
echo i18n("11 up Unknown: %1",array($nums["11up"][""]?$nums["11up"][""]:0))."<br />";
|
||||
echo "<br />";
|
||||
|
||||
$stats["numk6m"]=$nums["6down"]["male"]?$nums["6down"]["male"]:0;
|
||||
$stats["numk6f"]=$nums["6down"]["female"]?$nums["6down"]["female"]:0;
|
||||
//add on unknown genders split evenly
|
||||
if($nums["6down"][""]>0)
|
||||
{
|
||||
$m=ceil($nums["6down"][""]/2);
|
||||
$f=$nums["6down"][""]-$m;
|
||||
$stats["numk6m"]+=$m;
|
||||
$stats["numk6f"]+=$f;
|
||||
}
|
||||
|
||||
$stats["num78m"]=$nums["78"]["male"]?$nums["78"]["male"]:0;
|
||||
$stats["num78f"]=$nums["78"]["female"]?$nums["78"]["female"]:0;
|
||||
if($nums["78"][""]>0)
|
||||
{
|
||||
$m=ceil($nums["78"][""]/2);
|
||||
$f=$nums["78"][""]-$m;
|
||||
$stats["num78m"]+=$m;
|
||||
$stats["num78f"]+=$f;
|
||||
}
|
||||
|
||||
|
||||
$stats["num910m"]=$nums["910"]["male"]?$nums["910"]["male"]:0;
|
||||
$stats["num910f"]=$nums["910"]["female"]?$nums["910"]["female"]:0;
|
||||
if($nums["910"][""]>0)
|
||||
{
|
||||
$m=ceil($nums["910"][""]/2);
|
||||
$f=$nums["910"][""]-$m;
|
||||
$stats["num910m"]+=$m;
|
||||
$stats["num910f"]+=$f;
|
||||
}
|
||||
|
||||
|
||||
|
||||
$stats["num11upm"]=$nums["11up"]["male"]?$nums["11up"]["male"]:0;
|
||||
$stats["num11upf"]=$nums["11up"]["female"]?$nums["11up"]["female"]:0;
|
||||
if($nums["11up"][""]>0)
|
||||
{
|
||||
$m=ceil($nums["11up"][""]/2);
|
||||
$f=$nums["11up"][""]-$m;
|
||||
$stats["num11upm"]+=$m;
|
||||
$stats["num11upf"]+=$f;
|
||||
}
|
||||
|
||||
|
||||
//number of students per grade per gender
|
||||
$q=mysql_query("SELECT MAX(students.grade) grade FROM students,registrations,projects WHERE students.registrations_id=registrations.id AND projects.registrations_id=registrations.id AND students.year='$year' AND registrations.year='$year' AND projects.year='$year' AND (registrations.status='complete' OR registrations.status='paymentpending') GROUP BY projects.id");
|
||||
echo mysql_error();
|
||||
while($r=mysql_fetch_object($q)) {
|
||||
if($r->grade<=6)
|
||||
$projs["6down"]++;
|
||||
else if($r->grade>6&&$r->grade<=8)
|
||||
$projs["78"]++;
|
||||
else if($r->grade>8&&$r->grade<=10)
|
||||
$projs["910"]++;
|
||||
else if($r->grade>10)
|
||||
$projs["11up"]++;
|
||||
}
|
||||
|
||||
echo "Project participation (by age group)<br />";
|
||||
echo i18n("K-6: %1",array($projs["6down"]?$projs["6down"]:0))."<br />";
|
||||
echo i18n("7-8: %1",array($projs["78"]?$projs["78"]:0))."<br />";
|
||||
echo i18n("9-10: %1",array($projs["910"]?$projs["910"]:0))."<br />";
|
||||
echo i18n("11 up: %1",array($projs["11up"]?$projs["11up"]:0))."<br />";
|
||||
echo "<br />";
|
||||
|
||||
$stats["projk6"]=$projs["6down"]?$projs["6down"]:0;
|
||||
$stats["proj78"]=$projs["78"]?$projs["78"]:0;
|
||||
$stats["proj910"]=$projs["910"]?$projs["910"]:0;
|
||||
$stats["proj11up"]=$projs["11up"]?$projs["11up"]:0;
|
||||
|
||||
$q=mysql_query("SELECT COUNT(id) AS num FROM users
|
||||
WHERE types LIKE '%committee%'
|
||||
AND year='$year'
|
||||
AND deleted='no'");
|
||||
$r=mysql_fetch_object($q);
|
||||
$numcommittee=$r->num;
|
||||
echo i18n("Committee Members: %1 (note: this is number of committee members who logged in to SFIAB for the year, anyone who was active but didn't log in to SFIAB will NOT be counted)",array($r->num));
|
||||
echo "<br />";
|
||||
$stats["committee"]=$numcommittee;
|
||||
|
||||
$q=mysql_query("SELECT COUNT(id) AS num FROM users LEFT JOIN users_judge ON users_judge.users_id=users.id
|
||||
WHERE users.year='$year'
|
||||
AND users.types LIKE '%judge%'
|
||||
AND users.deleted='no'
|
||||
AND users_judge.judge_complete='yes'
|
||||
AND users_judge.judge_active='yes'");
|
||||
$r=mysql_fetch_object($q);
|
||||
$numjudges=$r->num;
|
||||
echo i18n("Judges: %1",array($r->num));
|
||||
$stats["judges"]=$numjudges;
|
||||
echo "<br />";
|
||||
|
||||
if($ok)
|
||||
{
|
||||
|
||||
$affil=array("affiliation"=>array(
|
||||
"ysf_region_id"=>$config['ysf_region_id'],
|
||||
"ysf_region_password"=>$config['ysf_region_password'],
|
||||
"year"=>$year,
|
||||
"stats"=>$stats
|
||||
)
|
||||
);
|
||||
|
||||
$output="";
|
||||
xmlCreateRecurse($affil);
|
||||
$xmldata=$output;
|
||||
|
||||
echo "<h3>".i18n("The following data will be sent to YSF")."</h3>";
|
||||
echo "<form method=\"post\" action=\"ysfstats.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 "<input type=\"submit\" value=\"".i18n("Send Affiliation Stats to YSF")."\">";
|
||||
echo "</form>";
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
send_footer();
|
||||
?>
|
Loading…
Reference in New Issue
Block a user