forked from science-ation/science-ation
245 lines
9.4 KiB
PHP
245 lines
9.4 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.
|
|
*/
|
|
?>
|
|
<?
|
|
require("../common.inc.php");
|
|
require_once("../user.inc.php");
|
|
require_once('../helper.inc.php');
|
|
user_auth_required('committee', 'config');
|
|
|
|
if(get_value_from_array($_GET, 'action') == "edit" || get_value_from_array($_GET,'action') == "new") {
|
|
send_header(get_value_from_array($_GET,'action') == "edit" ? "Edit Division" : "New Division",
|
|
array('Committee Main' => 'committee_main.php',
|
|
'SFIAB Configuration' => 'config/index.php',
|
|
'Project Divisions' => 'config/divisions.php'),
|
|
"project_divisions" );
|
|
} else {
|
|
send_header("Project Divisions",
|
|
array('Committee Main' => 'committee_main.php',
|
|
'SFIAB Configuration' => 'config/index.php'),
|
|
"project_divisions");
|
|
}
|
|
|
|
|
|
if(get_value_from_array($_POST,'action') == "edit")
|
|
{
|
|
if(get_value_from_array($_POST, 'id') && get_value_from_array($_POST, 'division' ))
|
|
{
|
|
$q=$pdo->prepare("SELECT id FROM projectdivisions WHERE id='".$_POST['id']."' AND year='".$config['FAIRYEAR']."'");
|
|
$q->execute();
|
|
if($q->rowCount() && $_POST['saveid']!=$_POST['id'])
|
|
{
|
|
echo error(i18n("Division ID %1 already exists",array($_POST['id']),array("division ID")));
|
|
}
|
|
else
|
|
{
|
|
$stmt = $pdo->prepare("UPDATE projectdivisions SET ".
|
|
"id='".$_POST['id']."', ".
|
|
"division='".stripslashes($_POST['division'])."', ".
|
|
"division_shortform='".stripslashes($_POST['division_shortform'])."' ".
|
|
"WHERE id='".$_POST['saveid']."' AND year='{$config['FAIRYEAR']}'");
|
|
$stmt->execute();
|
|
|
|
//###### Feature Specific - filtering divisions by category
|
|
if($config['filterdivisionbycategory']=="yes"){
|
|
$stmt = $pdo->prepare("DELETE FROM projectcategoriesdivisions_link WHERE projectdivisions_id='".$_POST['saveid']."' AND year='".$config['FAIRYEAR']."'");
|
|
$stmt->execute();
|
|
if(is_array($_POST['divcat']))
|
|
{
|
|
foreach($_POST['divcat'] as $tempcat)
|
|
{
|
|
$stmt = $pdo->prepare("INSERT INTO projectcategoriesdivisions_link (projectdivisions_id,projectcategories_id,year) VALUES ( ".
|
|
"'".$_POST['id']."', ".
|
|
"'".$tempcat."', ".
|
|
"'".$config['FAIRYEAR']."') ");
|
|
$stmt->execute();
|
|
}
|
|
}
|
|
}
|
|
//###########
|
|
|
|
echo happy(i18n("Division successfully saved"));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
echo error(i18n("All fields are required"));
|
|
}
|
|
}
|
|
|
|
if(get_value_from_array($_POST, 'action') == "new")
|
|
{
|
|
if(get_value_from_array($_POST, 'id') && get_value_from_array($_POST, 'division'))
|
|
{
|
|
$q=$pdo->prepare("SELECT id FROM projectdivisions WHERE id='".$_POST['id']."' AND year='".$config['FAIRYEAR']."'");
|
|
$q->execute();
|
|
if($q->rowCount())
|
|
{
|
|
echo error(i18n("Division ID %1 already exists",array($_POST['id']),array("division ID")));
|
|
}
|
|
else
|
|
{
|
|
$stmt = $pdo->prepare("INSERT INTO projectdivisions (id,division,division_shortform,year) VALUES ( ".
|
|
"'".$_POST['id']."', ".
|
|
"'".stripslashes($_POST['division'])."', ".
|
|
"'".stripslashes($_POST['division_shortform'])."', ".
|
|
"'".$config['FAIRYEAR']."') ");
|
|
$stmt->execute();
|
|
|
|
|
|
//###### Feature Specific - filtering divisions by category
|
|
if($config['filterdivisionbycategory']=="yes"){
|
|
foreach($_POST['divcat'] as $tempcat){
|
|
$stmt = $pdo->prepare("INSERT INTO projectcategoriesdivisions_link (projectdivisions_id,projectcategories_id,year) VALUES ( ".
|
|
"'".$tempcat."', ".
|
|
"'".$config['FAIRYEAR']."') ");
|
|
$stmt->execute();
|
|
}
|
|
}
|
|
//#######
|
|
echo happy(i18n("Division successfully added"));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
echo error(i18n("All fields are required"));
|
|
}
|
|
}
|
|
|
|
if(get_value_from_array($_GET,'action') == "remove" && get_value_from_array($_GET, 'remove'))
|
|
{
|
|
//###### Feature Specific - filtering divisions by category - not conditional, cause even if they have the filtering turned off..if any links
|
|
//for this division exist they should be deleted
|
|
$stmt = $pdo->prepare("DELETE FROM projectcategoriesdivisions_link where projectdivisions_id='".$_GET['remove']."' AND year='".$config['FAIRYEAR']."'");
|
|
$stmt->execute();
|
|
$stmt = $pdo->prepare("DELETE FROM projectdivisions WHERE id='".$_GET['remove']."' AND year='".$config['FAIRYEAR']."'");
|
|
$stmt->execute();
|
|
echo happy(i18n("Division successfully removed"));
|
|
}
|
|
|
|
echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">";
|
|
|
|
if(! get_value_from_array($_GET, 'action') == "edit"|| get_value_from_array($_GET,'action') == "new")
|
|
echo "<a href=\"".$_SERVER['PHP_SELF']."?action=new\">".i18n("Add new division")."</a>\n";
|
|
|
|
echo "<table class=\"summarytable\">";
|
|
echo "<tr>";
|
|
echo "<th>".i18n("Division ID")."</th>\n";
|
|
echo "<th>".i18n("Division Name")."</th>\n";
|
|
echo "<th>".i18n("Short Form")."</th>\n";
|
|
//###### Feature Specific - filtering divisions by category
|
|
if($config['filterdivisionbycategory']=="yes")
|
|
echo "<th>".i18n("Categories")."</th>\n";
|
|
//#####
|
|
echo "<th>".i18n("Actions")."</th>\n";
|
|
echo "</tr>";
|
|
|
|
if(get_value_from_array($_GET, 'action') == "edit" ||get_value_from_array( $_GET,'action') == "new")
|
|
{
|
|
echo "<input type=\"hidden\" name=\"action\" value=\"".get_value_from_array($_GET, 'action')."\">\n";
|
|
if(get_value_from_array($_GET,'action') == "edit")
|
|
{
|
|
echo "<input type=\"hidden\" name=\"saveid\" value=\"".get_value_from_array($_GET,'edit')."\">\n";
|
|
$q=$pdo->prepare("SELECT * FROM projectdivisions WHERE id='".get_value_from_array($_GET,'edit')."' AND year='".$config['FAIRYEAR']."'");
|
|
$q->execute();
|
|
$divisionr=$q->fetch(PDO::FETCH_OBJ);
|
|
|
|
$buttontext="Save";
|
|
}
|
|
else if(get_value_from_array($_GET,'action') == "new")
|
|
{
|
|
$buttontext="Add";
|
|
}
|
|
echo "<tr>";
|
|
echo " <td><input type=\"text\" size=\"3\" name=\"id\" value=\"$divisionr->id\" /></td>";
|
|
echo " <td><input type=\"text\" size=\"40\" name=\"division\" value=\"$divisionr->division\" /></td>";
|
|
echo " <td align=\"center\"><input type=\"text\" size=\"5\" name=\"division_shortform\" value=\"$divisionr->division_shortform\" /></td>";
|
|
|
|
//###### Feature Specific - filtering divisions by category
|
|
if($config['filterdivisionbycategory']=="yes"){
|
|
echo " <td>";
|
|
$q=$pdo->prepare("SELECT * FROM projectcategories WHERE year='".$config['FAIRYEAR']."' ORDER BY mingrade");
|
|
$q->execute();
|
|
while($categoryr=$q->fetch(PDO::FETCH_OBJ)){
|
|
$query="SELECT * FROM projectcategoriesdivisions_link WHERE projectdivisions_id=".$divisionr->id." AND projectcategories_id=".$categoryr->id." AND year='".$config['FAIRYEAR']."'";
|
|
$t=$pdo->prepare($query);
|
|
$t->execute();
|
|
if($t && $t->rowCount()>0)
|
|
echo "<nobr><input type=\"checkbox\" name=\"divcat[]\" value=\"$categoryr->id\" checked=\"checked\" /> $categoryr->category</nobr><br/>";
|
|
else
|
|
echo "<nobr><input type=\"checkbox\" name=\"divcat[]\" value=\"$categoryr->id\" /> $categoryr->category</nobr><br/>";
|
|
|
|
}
|
|
echo "</td>";
|
|
}
|
|
|
|
echo " <td><input type=\"submit\" value=\"".i18n($buttontext)."\" /></td>";
|
|
echo "</tr>";
|
|
}
|
|
else
|
|
{ $q = $pdo->prepare("SELECT * FROM projectdivisions WHERE year='".$config['FAIRYEAR']."' ORDER BY id");
|
|
$q->execute();
|
|
while($r=$q->fetch(PDO::FETCH_OBJ))
|
|
{
|
|
echo "<tr>";
|
|
echo " <td>$r->id</td>";
|
|
echo " <td>".i18n($r->division)."</td>";
|
|
echo " <td align=\"center\">$r->division_shortform</td>";
|
|
//###### Feature Specific - filtering divisions by category
|
|
if($config['filterdivisionbycategory']=="yes"){
|
|
|
|
$c=$pdo->prepare("SELECT category FROM projectcategoriesdivisions_link, projectcategories
|
|
WHERE projectcategoriesdivisions_link.projectcategories_id = projectcategories.id
|
|
AND projectdivisions_id='$r->id'
|
|
AND projectcategoriesdivisions_link.year='".$config['FAIRYEAR']."'
|
|
AND projectcategories.year='".$config['FAIRYEAR']."'
|
|
ORDER BY projectcategories.mingrade");
|
|
$c->execute();
|
|
show_pdo_errors_if_any($pdo);
|
|
if(!$c){
|
|
$tempcat=" ";
|
|
}else{
|
|
$tempcat="";
|
|
while($categoryr=$c->fetch(PDO::FETCH_OBJ)){
|
|
$tempcat.=",".$categoryr->category;
|
|
}
|
|
$tempcat=substr($tempcat,1);
|
|
}
|
|
echo "<td> {$tempcat} </td>";
|
|
}
|
|
//############
|
|
echo " <td>";
|
|
echo "<a title=\"Edit\" href=\"".$_SERVER['PHP_SELF']."?action=edit&edit=$r->id\"><img src=\"".$config['SFIABDIRECTORY']."/images/16/edit.".$config['icon_extension']."\" border=0></a>";
|
|
echo " ";
|
|
echo "<a title=\"Remove\" onClick=\"return confirmClick('Are you sure you want to remove this division?');\" href=\"".$_SERVER['PHP_SELF']."?action=remove&remove=$r->id\"><img src=\"".$config['SFIABDIRECTORY']."/images/16/button_cancel.".$config['icon_extension']."\" border=0></a>";
|
|
echo " </td>";
|
|
echo "</tr>";
|
|
}
|
|
}
|
|
echo "</table>";
|
|
echo "</form>";
|
|
echo i18n("You should assign the 'Division ID's in numerical order, starting with 1. This Division ID is used to generate the project number");
|
|
|
|
send_footer();
|
|
?>
|