diff --git a/admin/project_editor.php b/admin/project_editor.php new file mode 100644 index 0000000..51e8b43 --- /dev/null +++ b/admin/project_editor.php @@ -0,0 +1,280 @@ + + 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. +*/ +?> +<< ".i18n("Back to Registration List")."
"; + echo "
"; + + if($_POST['registration_id']) $registration_id=$_POST['registration_id']; + else if($_GET['registration_id']) $registration_id=$_GET['registration_id']; + + if($_POST['action']=="save") + { +// { + //first, lets make sure this project really does belong to them + $q=mysql_query("SELECT * FROM projects WHERE id='".$_POST['id']."' AND registrations_id='".$registration_id."' AND year='".$config['FAIRYEAR']."'"); + if($projectinfo=mysql_fetch_object($q)) + { + $summarywords=preg_split("/[\s,]+/",$_POST['summary']); + $summarywordcount=count($summarywords); + if($summarywordcount>$config['participant_project_summary_wordmax']) + $summarycountok=0; + else + $summarycountok=1; + + if($config['participant_project_title_charmax'] && strlen(stripslashes($_POST['title']))>$config['participant_project_title_charmax']) //0 for no limit, eg 255 database field limit + { + $title=substr(stripslashes($_POST['title']),0,$config['participant_project_title_charmax']); + echo error(i18n("Project title truncated to %1 characters",array($config['participant_project_title_charmax']))); + } + else + $title=stripslashes($_POST['title']); + + mysql_query("UPDATE projects SET ". + "title='".mysql_escape_string($title)."', ". + "projectdivisions_id='".$_POST['projectdivisions_id']."', ". + "language='".mysql_escape_string(stripslashes($_POST['language']))."', ". + "req_table='".mysql_escape_string(stripslashes($_POST['req_table']))."', ". + "req_electricity='".mysql_escape_string(stripslashes($_POST['req_electricity']))."', ". + "req_special='".mysql_escape_string(stripslashes($_POST['req_special']))."', ". + "summary='".mysql_escape_string(stripslashes($_POST['summary']))."', ". + "summarycountok='$summarycountok'". + "WHERE id='".$_POST['id']."'"); + echo mysql_error(); + echo notice(i18n("Project information successfully updated")); + + //check if they changed the project number + if($_POST['projectnumber']!=$projectinfo->projectnumber) + { + //check if hte new one is available + $q=mysql_query("SELECT * FROM projects WHERE year='".$config['FAIRYEAR']."' AND projectnumber='".$_POST['projectnumber']."'"); + if(mysql_num_rows($q)) + { + echo error(i18n("Could not change project number. %1 is already in use",array($_POST['projectnumber']))); + } + else + { + mysql_query("UPDATE projects SET + projectnumber='".$_POST['projectnumber']."' + WHERE id='".$_POST['id']."'"); + echo happy(i18n("Project number successfully changed to %1",array($_POST['projectnumber']))); + } + } + } + else + { + echo error(i18n("Invalid project to update")); + } + //} + } + + + //now lets find out their MAX grade, so we can pre-set the Age Category + $q=mysql_query("SELECT MAX(grade) AS maxgrade FROM students WHERE registrations_id='".$registration_id."'"); + $gradeinfo=mysql_fetch_object($q); + + //now lets grab all the age categories, so we can choose one based on the max grade + $q=mysql_query("SELECT * FROM projectcategories WHERE year='".$config['FAIRYEAR']."' ORDER BY id"); + while($r=mysql_fetch_object($q)) + { + //save these in an array, just incase we need them later (FIXME: remove this array if we dont need it) + $agecategories[$r->id]['category']=$r->category; + $agecategories[$r->id]['mingrade']=$r->mingrade; + $agecategories[$r->id]['maxgrade']=$r->maxgrade; + + if($gradeinfo->maxgrade >= $r->mingrade && $gradeinfo->maxgrade <= $r->maxgrade) + { + $projectcategories_id=$r->id; + } + } + //now select their project info + $q=mysql_query("SELECT * FROM projects WHERE registrations_id='".$registration_id."' AND year='".$config['FAIRYEAR']."'"); + //check if it exists, if we didnt find any record, lets insert one + $projectinfo=mysql_fetch_object($q); + + //make sure that if they changed their grade on the student page, we update their projectcategories_id accordingly + if($projectcategories_id && $projectinfo->projectcategories_id!=$projectcategories_id) + { + echo notice(i18n("Age category changed, updating to %1",array($agecategories[$projectcategories_id]['category']))); + mysql_query("UPDATE projects SET projectcategories_id='$projectcategories_id' WHERE id='$projectinfo->id'"); + } + + + +//output the current status +?> + + +\n"; + echo "\n"; + echo "id\">\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + + echo ""; + + echo ""; + + echo ""; + + echo "
".i18n("Project Title").": title\" />".REQUIREDFIELD; + if($config['participant_project_title_charmax']) + echo i18n("(Max %1 characters)",array($config['participant_project_title_charmax'])); + echo "
".i18n("Project Number").": projectnumber\" />"; + echo "
".i18n("Age Category").": "; + echo i18n($agecategories[$projectcategories_id]['category']); + echo " (".i18n("Grades %1-%2",array($agecategories[$projectcategories_id]['mingrade'],$agecategories[$projectcategories_id]['maxgrade'])).")"; + echo "
".i18n("Division").": "; + +//###### Feature Specific - filtering divisions by category + if($config['filterdivisionbycategory']=="yes"){ + $q=mysql_query("SELECT projectdivisions.* FROM projectdivisions,projectcategoriesdivisions_link WHERE projectdivisions.id=projectdivisions_id AND projectcategories_id=".$projectcategories_id." AND projectdivisions.year='".$config['FAIRYEAR']."' AND projectcategoriesdivisions_link.year='".$config['FAIRYEAR']."' ORDER BY division"); + echo mysql_error(); +//### +}else + $q=mysql_query("SELECT * FROM projectdivisions WHERE year='".$config['FAIRYEAR']."' ORDER BY division"); + echo "".REQUIREDFIELD; + if($config['usedivisionselector']=="yes") + { + ?> + + "; + echo i18n("WARNING! If you change the division you must manually change the project number too! It will NOT be assigned a new number automatically"); + echo "
".i18n("Language").": "; + echo "".REQUIREDFIELD; + echo "
".i18n("Requirements").": "; + echo ""; + + echo ""; + echo " "; + if($projectinfo->req_table=="yes") $check="checked=\"checked\""; else $check=""; + echo " "; + echo " "; + if($projectinfo->req_table=="no") $check="checked=\"checked\""; else $check=""; + echo " "; + echo ""; + + echo ""; + echo " "; + if($projectinfo->req_electricity=="yes") $check="checked=\"checked\""; else $check=""; + echo " "; + echo " "; + if($projectinfo->req_electricity=="no") $check="checked=\"checked\""; else $check=""; + echo " "; + echo ""; + + echo ""; + echo " "; + echo " "; + echo ""; + + echo "
".i18n("Table").REQUIREDFIELD."Yes No
".i18n("Electricity").REQUIREDFIELD."Yes No
".i18n("Special")."req_special\" />
"; + + echo "
".i18n("Summary").": ".REQUIREDFIELD."
"; + + $summarywords=preg_split("/[\s,]+/",$projectinfo->summary); + $summarywordcount=count($summarywords); + if($summarywordcount>$config['participant_project_summary_wordmax']) + echo "
"; + else + echo "
"; + + echo "$summarywordcount/"; + echo i18n("%1 words maximum",array($config['participant_project_summary_wordmax'])); + echo "
"; + + echo "
"; + echo "\n"; + echo ""; +} +else +{ + echo error(i18n("Invalid project to edit")); + +} + + send_footer(); +?> diff --git a/admin/registration_list.php b/admin/registration_list.php index b05fbe2..3726fe2 100644 --- a/admin/registration_list.php +++ b/admin/registration_list.php @@ -30,6 +30,7 @@ ?>