<?php require_once('common.inc.php'); require_once('user.inc.php'); if($_SESSION['schoolid'] && $_SESSION['schoolaccesscode'] && $conference['type'] == 'scienceolympics'){ if($_GET['action'] == 'new'){ $results = process_newRecord($_POST['firstName'], $_POST['lastName'], $_POST['email']); if($results !== true){ echo "<script type=\"text/javascript\">var savedRecord = false;</script>"; error_($results); }else{ echo "<script type=\"text/javascript\">var savedRecord = true;</script>"; } }else if($_GET['action'] == 'delete'){ if(!delete_record($_POST['uid'])){ echo "<script type=\"text/javascript\">var deletedRecord = false;</script>"; error_("Unable to delete record"); }else{ echo "<script type=\"text/javascript\">var deletedRecord = true;</script>"; } }else{ $title = i18n("Manage Students"); send_header($title, array("School Home" => "schoolaccess.php")); draw_javascript(); draw_list(); send_footer(); } }else{ header('Location: schoolaccess.php'); } // create a new record with the given first name last name and e-mail address // return true on success, error message on failure function process_newRecord($firstName, $lastName, $email){ global $conference; $firstName = trim($firstName); $lastName = trim($lastName); $email = strtolower(trim($email)); $uid = null; // make sure we are actually given a first and last name if(strlen($firstName) == 0 || strlen($lastName) == 0) return "First and last names are required fields"; if($email != null){ $user = user_load_by_email($email); }else{ $user = false; } if($user != false){ // we're adding an existing user. First find out if they are in the school we have specified return "e-mail address is already in use"; // $user['firstname'] = $firstName; // $user['lastname'] = $lastName; /* $query = "INSERT INTO users_conferences_link(conferences_id, users_uid) VALUES("; $query .= $conference['id'] . ', ' . $user['uid']; $firstName = $user['firstname']; $lastName = $user['lastname']; */ }else{ // we're creating a new user if(strlen($email) != 0){ if(!isEmailAddress($email)){ // not a valid e-mail address return "Invalid e-mail address"; }else{ // new e-mail address specified. That'll be the username $username = $email; } }else{ // generate a user name $nameBase = substr(strtolower($firstName), 0, 1) . strtolower($lastName); $suffix = ''; do{ $q = mysql_fetch_array(mysql_query('SELECT COUNT(*) AS tally FROM users WHERE username="' . ($nameBase . $suffix) . '";')); if($q['tally'] > 0){ if($suffix == '') $suffix = 1; else $suffix++; } }while($q['tally'] > 0); $username = $nameBase . $suffix; } // now that we have the username we want to use, let's create the user $user = user_create('student', $username); $user['firstname'] = $firstName; $user['lastname'] = $lastName; if($username == $email) $user['email'] = $email; $user['schools_id'] = $_SESSION['schoolid']; user_save($user); $uid = $user['uid']; } echo user_row($uid, $username, $firstName, $lastName, $email); return true; } function user_row($uid, $username, $firstName, $lastName, $email){ $rval = "<tr id=\"$uid\">"; $rval .= "<td>$username</td>"; $rval .= "<td>$firstName</td>"; $rval .= "<td>$lastName</td>"; $rval .= "<td>$email</td>"; $rval .= '<td style="text-align:center"><img border="0" src="/sfiab/images/16/button_cancel.png" onclick="deleteRecord(' . $uid . ')"/></td>'; $rval .= "</tr>"; return $rval; } // delete the record for the specified user id. Returns true on succes, error message on failure function delete_record($uid){ $user = user_load_by_uid($uid); user_delete($user); $user = user_load_by_uid($uid); if($user['deleted'] != 'yes'){ return "Failed to delete user"; } return true; } function draw_javascript(){ ?> <script type="text/javascript"> var awaiting_ajax = false; // used to prevent the same record from being submitted multiple times function deleteRecord(uid){ var params; if(awaiting_ajax) return false; awaiting_ajax = true; params = [{ 'name' : 'uid', 'value' : uid }]; $("#debug").load("schoolstudents.php?action=delete", params, function(response){ if(deletedRecord){ $('#' + uid).remove(); } awaiting_ajax = false; }); } function addNewRecord(){ var params; var firstName = $('#newFirstName').val(); var lastName = $('#newLastName').val(); var email = $('#newEmail').val(); if(firstName == '' || lastName == ''){ notice_create('error', '<?=i18n('First and last names are required fields'); ?>', 5000); return false; } if(awaiting_ajax) return false; awaiting_ajax = true; params = [ { 'name' : 'firstName', 'value': firstName }, { 'name' : 'lastName', 'value': lastName }, { 'name' : 'email', 'value': email } ]; $("#debug").load("schoolstudents.php?action=new", params, function(response){ if(savedRecord){ $('#studentList > tbody:last').append(response); $('#newFirstName').select(); $('#newFirstName').attr({ value: '' }); $('#newLastName').attr({ value: '' }); $('#newEmail').attr({ value: '' }); } awaiting_ajax = false; }); } </script> <?php } // draw an editable list of all students for this school in the users_stunt table function draw_list(){ global $conference; ?> <table id="studentList" class="summarytable"> <thead> <tr> <th><?=i18n("Username");?></th> <th><?=i18n("First Name");?></th> <th><?=i18n("Last Name");?></th> <th><?=i18n("Email Address");?></th> <th></th> </tr> <tr> <th><?=i18n("New:")?></th> <th><input type="text" id="newFirstName"></input></th> <th><input type="text" id="newLastName"></input></th> <th><input type="text" id="newEmail"></input></th> <th><button name="newRecord" onclick="addNewRecord()"><?=i18n("Add")?></button></th> </tr> </thead> <tbody> <?php $query = 'SELECT * FROM users_student'; $query .= ' JOIN users ON users_student.users_id = users.uid'; $query .= ' JOIN users_conferences_link ucl ON ucl.users_uid = users_student.users_id'; $query .= ' WHERE schools_id = ' . $_SESSION['schoolid']; $query .= ' AND ucl.conferences_id=' . $conference['id']; $data = mysql_query($query); if($data){ while($row = mysql_fetch_array($data)){ $uid = $row['users_uid']; echo user_row($uid, $row['username'], $row['firstname'], $row['lastname'], $row['email']); } } ?> </tbody> </table> <?php }