From 6eb1a39d0b8c81f40cc8b2769af5daa6dcd30d2b Mon Sep 17 00:00:00 2001 From: james Date: Fri, 25 Nov 2005 19:37:10 +0000 Subject: [PATCH] add the ability for schools to invite participants IF participant_registration_type=="invite" also switch the new participant email to read from the emails table instead of hardcoded from the file --- common.inc.php | 2 +- db/db.update.9.sql | 2 + register_participants.php | 10 +---- schoolaccess.php | 83 +++++++++++++++++++++++++++++++++++++-- 4 files changed, 84 insertions(+), 13 deletions(-) diff --git a/common.inc.php b/common.inc.php index b0a245f..8063193 100644 --- a/common.inc.php +++ b/common.inc.php @@ -735,7 +735,7 @@ function email_send($val,$to,$sub_subject=array(),$sub_body=array()) */ - mail($to,$subject,$body,"From: $r->from\r\nReply-To: $r->from"); + mail($to,$subject,$body,"From: $r->from\r\nReply-To: $r->from\r\nReturn-Path: $r->from"); } else { diff --git a/db/db.update.9.sql b/db/db.update.9.sql index 05b10e5..7131d24 100644 --- a/db/db.update.9.sql +++ b/db/db.update.9.sql @@ -4,4 +4,6 @@ INSERT INTO `config` ( `var` , `val` , `description` , `year` ) VALUES ( 'judge_ INSERT INTO `config` ( `var` , `val` , `description` , `year` ) VALUES ( 'participant_registration_singlepassword', '', 'The single password to use for participant registraiton if participant_registration_type is singlepassword. Leave blank if not using singlepassword participant registration','-1'); INSERT INTO `config` ( `var` , `val` , `description` , `year` ) VALUES ( 'judge_registration_singlepassword', '', 'The single password to use for judge registration if judge_registration_type is singlepassword. Leave blank if not using singlepassword judge registraiton', '-1'); ALTER TABLE `schools` ADD `registration_password` VARCHAR( 32 ) NOT NULL; +INSERT INTO `emails` VALUES ('', 'register_participants_resend_regnum', 'Participant Registration - Resend Registration Number', 'Resend the password to the participant if they submit a ''forgot regnum'' request', 'website@sfiab.ca', 'Registration for [FAIRNAME]', 'We have received a request for the retrieval if your registration number from this email address. Please find your existing registration number below\r\n\r\nRegistration Number: [REGNUM]\r\n', 'system'); +INSERT INTO `emails` VALUES ('', 'new_participant', 'New Participant', 'Email that new participants receive when they are added to the system', 'website@sfiab.ca', 'Registration for [FAIRNAME]', 'A new registration account has been created for you. To access your registration account, please enter enter the following registration number into the registration website:\r\n\r\nRegistration Number: [REGNUM]\r\n', 'system'); diff --git a/register_participants.php b/register_participants.php index a78d1eb..a50771a 100644 --- a/register_participants.php +++ b/register_participants.php @@ -321,15 +321,7 @@ $config['FAIRYEAR']. ")"); - - $mailbody= "A new registration account has been created for you.\n". - "To access your registration account, please enter\n". - "enter the following registration number into the\n". - "registration website:\n". - "\n". - "Registration Number: $regnum\n". - "\n"; - mail($_SESSION['email'],i18n("Registration for %1",array(i18n($config['fairname']))),$mailbody); + email_send("new_participant",$_SESSION['email'],array("FAIRNAME"=>i18n($config['fairname'])),array("REGNUM"=>$regnum)); echo i18n("You have been identified as a new registrant. An email has been sent to %1 which contains your new registration number. Please check your email to obtain your registration number and then enter it below:",array($_SESSION['email'])); echo ""; diff --git a/schoolaccess.php b/schoolaccess.php index ac7d257..439c98e 100644 --- a/schoolaccess.php +++ b/schoolaccess.php @@ -87,6 +87,45 @@ if($_SESSION['schoolid'] && $_SESSION['schoolaccesscode']) } + if($_POST['action']=="invite") + { + if($_POST['firstname'] && $_POST['lastname'] && $_POST['email']) + { + $regnum=0; + //now create the new registration record, and assign a random/unique registration number to then. + do + { + //random number between + //100000 and 999999 (six digit integer) + $regnum=rand(100000,999999); + $q=mysql_query("SELECT * FROM registrations WHERE num='$regnum' AND year=".$config['FAIRYEAR']); + }while(mysql_num_rows($q)>0); + + //actually insert it + mysql_query("INSERT INTO registrations (num,email,start,status,year) VALUES (". + "'$regnum',". + "'".$_POST['email']."',". + "NOW(),". + "'open',". + $config['FAIRYEAR']. + ")"); + $regid=mysql_insert_id(); + + mysql_query("INSERT INTO students (registrations_id,email,firstname,lastname,schools_id,year) VALUES ( + '$regid', + '".mysql_escape_string($_POST['email'])."', + '".mysql_escape_string($_POST['firstname'])."', + '".mysql_escape_string($_POST['lastname'])."', + '".mysql_escape_string($_SESSION['schoolid'])."', + '".$config['FAIRYEAR']."')"); + + email_send("new_participant",$_POST['email'],array("FAIRNAME"=>i18n($config['fairname'])),array("REGNUM"=>"$regnum")); + echo happy(i18n("The participant has been successfully invited")); + } + } + + + echo "

$school->school

"; echo "

School Information

"; echo "Please make sure your school contact information is correct, make any necessary changes:"; @@ -122,6 +161,43 @@ if($_SESSION['schoolid'] && $_SESSION['schoolaccesscode']) echo "
"; echo "
"; } + else if($config['participant_registration_type']=="invite") + { + $q=mysql_query("SELECT (NOW()>'".$config['dates']['regopen']."' AND NOW()<'".$config['dates']['regclose']."') AS datecheck"); + $datecheck=mysql_fetch_object($q); + if($datecheck!=0) + { + echo "

".i18n("Participant Registration Invitations")."

"; + + echo i18n("In order for your school's students to register for the fair, you will need to invite them to register. Simply enter their email address below to invite them to register. Important: for group projects, only add one of the participants, that participant will then add the other group member(s) to the project"); + echo "
"; + echo "
"; + + echo "
"; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo "
".i18n("Email Address")."
".i18n("First Name")."
".i18n("Last Name")."
"; + echo ""; + echo "
"; + } + echo "
"; + + echo "

".i18n("Invited participants from your school")."

"; + $q=mysql_query("SELECT * FROM students WHERE schools_id='".$school->id."' AND year='".$config['FAIRYEAR']."' ORDER BY lastname,firstname"); + echo ""; + echo ""; + while($r=mysql_fetch_object($q)) + { + echo ""; + + } + echo "
".i18n("Last Name")."".i18n("First Name")."".i18n("Email Address")."
$r->lastname$r->firstname$r->email
"; + + } /* //the participation section needs to be updated to handle the age categories as specified @@ -211,8 +287,9 @@ else

- - - + +
School: +
:
Access Code:
:
">