<? /* * 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> * Copyright (C) 2007 David Grant <dave@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_once ('common.inc.php'); require_once ('user.inc.php'); require_once ('volunteer.inc.php'); global $pdo; if ($_SESSION['embed'] == true) { $u = user_load($_SESSION['embed_edit_id']); } else { user_auth_required('volunteer'); $u = user_load($_SESSION['users_id']); } if ($_POST['action'] == 'save') { $vals = ''; if (is_array($_POST['posn'])) { /* Load available IDs */ $posns = array(); $q = "SELECT * FROM volunteer_positions WHERE year='{$config['FAIRYEAR']}'"; $r = $pdo->prepare($q); $r->execute(); while ($p = $r->fetch(PDO::FETCH_OBJ)) { $posns[] = $p->id; } /* Match selections with avaiulable positions */ foreach ($_POST['posn'] as $id => $val) { if (!in_array($id, $posns)) continue; if ($vals != '') $vals .= ','; $vals .= "('{$u['id']}','$id','{$config['FAIRYEAR']}')"; } } /* Delete existing selections */ $stmt = $pdo->prepare("DELETE FROM volunteer_positions_signup WHERE users_id='{$u['id']}' AND year='{$config['FAIRYEAR']}' "); $stmt->execute(); show_pdo_errors_if_any($pdo); /* Add new selections if there are any */ if ($vals != '') { $q = "INSERT INTO volunteer_positions_signup (users_id, volunteer_positions_id,year) VALUES $vals"; $r = $po->prepare($q); $r->execute(); show_pdo_errors_if_any($pdo); } message_push(notice(i18n('Volunteer Positions successfully updated'))); } /* update overall status */ volunteer_status_update($u); if ($_SESSION['embed'] != true) { // output the current status $newstatus = volunteer_status_position($u); if ($newstatus != 'complete') message_push(error(i18n('Volunteer Position Selection Incomplete'))); else message_push(happy(i18n('Volunteer Position Selection Complete'))); } if ($_SESSION['embed'] == true) { echo '<br />'; display_messages(); echo '<h3>' . i18n('Volutneer Positions') . '</h3>'; echo '<br />'; } else { // send the header send_header('Volunteer Positions', array('Volunteer Registration' => 'volunteer_main.php')); } $s = ($_SESSION['embed'] == true) ? $_SESSION['embed_submit_url'] : 'volunteer_position.php'; echo "<form name=\"personalform\" method=\"post\" action=\"$s\">\n"; echo "<input type=\"hidden\" name=\"action\" value=\"save\" />\n"; echo "<table>\n"; /* Read current selections */ $q = "SELECT * FROM volunteer_positions_signup WHERE \t\tusers_id = '{$u['id']}' \t\tAND year='{$config['FAIRYEAR']}'"; $r = $pdo->prepare($q); $r->execute(); $checked_positions = array(); while ($p = $r->fetch(PDO::FETCH_OBJ)) { $checked_positions[] = $p->volunteer_positions_id; } /* Load available volunteer positions */ $q = "SELECT *,UNIX_TIMESTAMP(start) as ustart, UNIX_TIMESTAMP(end) as uend \t\t\tFROM volunteer_positions WHERE year='{$config['FAIRYEAR']}'"; $r = $pdo->prepare($q); $r->execute(); while ($p = $r->fetch(PDO::FETCH_OBJ)) { echo '<tr><td>'; $checked = false; if ($_SESSION['lang'] == 'en') { $sday = strftime('%a. %B %e, %Y', $p->ustart); $stime = strftime('%H:%M', $p->ustart); $eday = strftime('%a. %B %e, %Y', $p->uend); $etime = strftime('%H:%M', $p->uend); if ($sday == $eday) { $start = $stime; $end = "$etime, $sday"; } else { $start = "$sday, $stime"; $end = "$eday, $etime"; } } else { $start = $p->start; $end = $p->end; } $ch = in_array($p->id, $checked_positions) ? 'checked="checked"' : ''; echo "<input $ch type=\"checkbox\" name=\"posn[$p->id]\" value=\"checked\" />"; echo '</td><td>'; echo '<b>' . i18n($p->name) . '</b></td>'; echo "<td align=\"right\">($start - $end)</td></tr>"; echo '<tr><td></td><td colspan="2"><div style="font-size: 0.75em;">'; echo i18n($p->desc); echo '<br /><br /></div></td></tr>'; } echo '</table>'; echo '<input type="submit" value="' . i18n('Save Position Selection') . "\" />\n"; echo '</form>'; echo '<br />'; if ($_SESSION['embed'] != true) send_footer(); ?>