forked from science-ation/science-ation
235 lines
9.0 KiB
PHP
235 lines
9.0 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');
|
|
include 'register_participants.inc.php';
|
|
|
|
// authenticate based on email address and registration number from the SESSION
|
|
if (!$_SESSION['email']) {
|
|
header('Location: register_participants.php');
|
|
exit;
|
|
}
|
|
if (!($_SESSION['registration_number'] && $_SESSION['registration_id'])) {
|
|
header('Location: register_participants.php');
|
|
exit;
|
|
}
|
|
|
|
global $pdo;
|
|
|
|
$q = $pdo->prepare('SELECT registrations.id AS regid, students.id AS studentid, students.firstname FROM registrations,students '
|
|
. "WHERE students.email=?"
|
|
. "AND registrations.num=?"
|
|
. "AND registrations.id=?"
|
|
. 'AND students.registrations_id=registrations.id '
|
|
. 'AND registrations.year=?'
|
|
. 'AND students.year=?');
|
|
$q->execute([$_SESSION['email'],$_SESSION['registration_number'],$_SESSION['registration_id'],$config['FAIRYEAR'],$config['FAIRYEAR']]);
|
|
show_pdo_errors_if_any($pdo);
|
|
|
|
if ($q->rowCount() == 0) {
|
|
header('Location: register_participants.php');
|
|
exit;
|
|
}
|
|
$r = $q->fetch(PDO::FETCH_OBJ);
|
|
|
|
send_header('Participant Registration - Mentor Information');
|
|
echo '<a href="register_participants_main.php"><< ' . i18n('Back to Participant Registration Summary') . '</a><br />';
|
|
echo '<br />';
|
|
|
|
// now do any data saves
|
|
|
|
if (get_value_from_array($_POST, 'action') == 'save') {
|
|
if (registrationFormsReceived()) {
|
|
echo error(i18n('Cannot make changes to forms once they have been received by the fair'));
|
|
} else if (registrationDeadlinePassed()) {
|
|
echo error(i18n('Cannot make changes to forms after registration deadline'));
|
|
} else {
|
|
$x = 1;
|
|
while ($_POST['num'][$x]) {
|
|
if ($_POST['id'][$x] == 0) {
|
|
// only insert if we have a name
|
|
if ($_POST['lastname'][$x]) {
|
|
// INSERT new record
|
|
$stmt = $pdo->prepare('INSERT INTO mentors (registrations_id,firstname,lastname,email,phone,organization,position,description,year) VALUES (
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?)');
|
|
$stmt->execute([$_SESSION['registration_id'],stripslashes($_POST['firstname'][$x]),stripslashes($_POST['lastname'][$x]),
|
|
stripslashes($_POST['email'][$x]),stripslashes($_POST['phone'][$x]),stripslashes($_POST['organization'][$x]),stripslashes($_POST['position'][$x]),
|
|
stripslashes($_POST['description'][$x]),$config['FAIRYEAR']]);
|
|
show_pdo_errors_if_any($pdo);
|
|
|
|
echo notice(i18n('%1 %2 successfully added', array($_POST['firstname'][$x], $_POST['lastname'][$x])));
|
|
}
|
|
} else {
|
|
// UPDATE existing record
|
|
$stmt = $pdo->prepare('UPDATE mentors SET
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
. "organization=?,"
|
|
. "position=?",
|
|
. "description=?"
|
|
. "WHERE id=?"');
|
|
$stmt->execute([stripslashes($_POST['firstname'][$x]),stripslashes($_POST['lastname'][$x]),stripslashes($_POST['email'][$x]),
|
|
stripslashes($_POST['phone'][$x]),stripslashes($_POST['organization'][$x]),stripslashes($_POST['position'][$x]),
|
|
stripslashes($_POST['description'][$x]),$_POST['id'][$x]]);
|
|
echo notice(i18n('%1 %2 successfully updated', array($_POST['firstname'][$x], $_POST['lastname'][$x])));
|
|
}
|
|
$x++;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (get_value_from_array($_GET, 'action') == 'removementor') {
|
|
if (registrationFormsReceived()) {
|
|
echo error(i18n('Cannot make changes to forms once they have been received by the fair'));
|
|
} else {
|
|
// first make sure this is one belonging to this registration id
|
|
$q = $pdo->prepare("SELECT id FROM mentors WHERE id=? AND registrations_id=?");
|
|
$q->execute([$_GET['removementor'], $_SESSION['registration_id']]);
|
|
if ($q->rowCount() == 1) {
|
|
$stmt = $pdo->prepare("DELETE FROM mentors WHERE id=? AND registrations_id=?");
|
|
$stmt->execute([$_GET['removementor'], $_SESSION['registration_id']]);
|
|
echo notice(i18n('Mentor successfully removed'));
|
|
} else {
|
|
echo error(i18n('Invalid mentor to remove'));
|
|
}
|
|
}
|
|
}
|
|
|
|
// now query and display
|
|
|
|
$q = $pdo->prepare("SELECT nummentors FROM registrations WHERE id=? AND year=?");
|
|
$q->execute([$_SESSION['registration_id'], $config['FAIRYEAR']]);
|
|
$r = $q->fetch(PDO::FETCH_OBJ);
|
|
$registrations_nummentors = $r->nummentors;
|
|
|
|
$q = $pdo->prepare("SELECT * FROM mentors WHERE registrations_id=? AND year=?");
|
|
$q->execute([$_SESSION['registration_id'], $config['FAIRYEAR']]);
|
|
$numfound = $q->rowCount();
|
|
|
|
if (isset($_GET['nummentors'])) {
|
|
$stmt = $pdo->prepare("UPDATE registrations SET nummentors=? WHERE id=?");
|
|
$stmt->execute([$_GET['nummentors'], $_SESSION['registration_id']]);
|
|
$registrations_nummentors = $_GET['nummentors'];
|
|
$numtoshow = $_GET['nummentors'];
|
|
} else
|
|
$numtoshow = $numfound;
|
|
|
|
// output the current status
|
|
|
|
$newstatus = mentorStatus();
|
|
|
|
if ($newstatus != 'complete') {
|
|
echo error(i18n('Mentor Information Incomplete'));
|
|
} else if ($newstatus == 'complete') {
|
|
echo happy(i18n('Mentor Information Complete'));
|
|
}
|
|
|
|
echo '<form name="nummentorsform" method="get" action="register_participants_mentor.php">';
|
|
echo i18n('Number of mentors that helped with the project: ');
|
|
echo "<select name=\"nummentors\" onchange=\"document.forms.nummentorsform.submit()\">\n";
|
|
|
|
if ($registrations_nummentors === -1) {
|
|
$sel = 'selected="selected"';
|
|
} else
|
|
$sel = '';
|
|
echo "<option $sel value=\"-1\">" . i18n('Choose') . "</option>\n";
|
|
|
|
for ($x = $config['minmentorsperproject']; $x <= $config['maxmentorsperproject']; $x++) {
|
|
// dont let them go less than the number we found. to go less, they must delete each record individually
|
|
if ($x < $numfound)
|
|
continue;
|
|
|
|
if ($numtoshow == $x && $registrations_nummentors !== -1)
|
|
$selected = 'selected="selected"';
|
|
else
|
|
$selected = '';
|
|
|
|
echo "<option $selected value=\"$x\">$x</option>\n";
|
|
}
|
|
echo '</select>';
|
|
echo '</form>';
|
|
|
|
echo '<form name="mentordata" method="post" action="register_participants_mentor.php">';
|
|
echo '<input type="hidden" name="action" value="save" />';
|
|
for ($x = 1; $x <= $numtoshow; $x++) {
|
|
$mentorinfo = $q->fetch(PDO::FETCH_OBJ);
|
|
echo '<h3>' . i18n('Mentor %1 Details', array($x)) . '</h3>';
|
|
// if we have a valid mentor, set their ID, so we can UPDATE when we submit
|
|
// if there is no record for this mentor, then set the ID to 0, so we will INSERT when we submit
|
|
if ($mentorinfo->id)
|
|
$id = $mentorinfo->id;
|
|
else
|
|
$id = 0;
|
|
|
|
// true should work here, it just has to be set to _something_ for it to work.
|
|
echo "<input type=\"hidden\" name=\"num[$x]\" value=\"true\" />";
|
|
|
|
// save the ID, or 0 if it doesnt exist
|
|
echo "<input type=\"hidden\" name=\"id[$x]\" value=\"$id\" />";
|
|
echo '<table>';
|
|
echo "<tr>\n";
|
|
echo ' <td>' . i18n('First Name') . "</td><td><input type=\"text\" name=\"firstname[$x]\" value=\"$mentorinfo->firstname\" />" . REQUIREDFIELD . "</td>\n";
|
|
echo ' <td>' . i18n('Last Name') . "</td><td><input type=\"text\" name=\"lastname[$x]\" value=\"$mentorinfo->lastname\" />" . REQUIREDFIELD . "</td>\n";
|
|
echo "</tr>\n";
|
|
echo "<tr>\n";
|
|
echo ' <td>' . i18n('Email Address') . "</td><td><input type=\"text\" name=\"email[$x]\" value=\"$mentorinfo->email\" />" . REQUIREDFIELD . "</td>\n";
|
|
echo ' <td>' . i18n('Phone') . "</td><td><input type=\"text\" name=\"phone[$x]\" value=\"$mentorinfo->phone\" />" . REQUIREDFIELD . "</td>\n";
|
|
echo "</tr>\n";
|
|
echo "<tr>\n";
|
|
echo ' <td>' . i18n('Organization') . "</td><td><input type=\"text\" name=\"organization[$x]\" value=\"$mentorinfo->organization\" />" . REQUIREDFIELD . "</td>\n";
|
|
echo ' <td>' . i18n('Position') . "</td><td><input type=\"text\" name=\"position[$x]\" value=\"$mentorinfo->position\" /></td>\n";
|
|
echo "</tr>\n";
|
|
echo "<tr>\n";
|
|
echo ' <td>' . i18n('Description of help') . '</td>';
|
|
echo "<td colspan=3><textarea rows=\"3\" cols=\"60\" name=\"description[$x]\">" . htmlspecialchars($mentorinfo->description) . '</textarea>' . REQUIREDFIELD . "</td>\n";
|
|
echo "</tr>\n";
|
|
|
|
echo '</table>';
|
|
|
|
if ($mentorinfo->id) {
|
|
echo '<div align="right"><a onclick="return confirmClick(\'' . i18n('Are you sure you want to remove this mentor?') . "');\" class=\"caution\" href=\"register_participants_mentor.php?action=removementor&removementor=$mentorinfo->id\"><img src=\"" . $config['SFIABDIRECTORY'] . '/images/16/button_cancel.' . $config['icon_extension'] . '" border=0> ' . i18n('Remove this Mentor from project') . '</a></div>';
|
|
}
|
|
|
|
echo '<br />';
|
|
echo '<br />';
|
|
}
|
|
if ($numtoshow != -1) {
|
|
echo '<input type="submit" value="' . i18n('Save Mentor Information') . "\" />\n";
|
|
}
|
|
echo '</form>';
|
|
|
|
send_footer();
|
|
?>
|