EVOLUTION-MANAGER
Edit File: class.newuser.php
<?php /* UserCake Version: 2.0.2 http://usercake.com */ class User { public $user_active = 0; private $clean_email; public $status = false; private $clean_password; private $username; private $displayname; private $phoneNumber; private $userType; public $sql_failure = false; public $mail_failure = false; public $email_taken = false; public $username_taken = false; public $displayname_taken = false; public $activation_token = 0; public $success = NULL; function __construct($user,$display,$pass,$email,$phoneNumber,$userType) { //Used for display only $this->displayname = $display; //Sanitize $this->clean_email = sanitize($email); $this->clean_password = trim($pass); $this->username = sanitize($user); $this->phoneNumber = sanitize($phoneNumber); $this->userType = sanitize($userType); if(usernameExists($this->username)) { $this->username_taken = true; } else if(displayNameExists($this->displayname)) { $this->displayname_taken = true; } else if(emailExists($this->clean_email)) { $this->email_taken = true; } else { //No problems have been found. $this->status = true; } } public function userCakeAddUser() { global $mysqli,$emailActivation,$websiteUrl,$db_table_prefix; //Prevent this function being called if there were construction errors if($this->status) { //Construct a secure hash for the plain text password $secure_pass = generateHash($this->clean_password); //Construct a unique activation token $this->activation_token = generateActivationToken(); //Do we need to send out an activation email? if($emailActivation == "true") { //User must activate their account first $this->user_active = 0; $mail = new userCakeMail(); //Build the activation message $activation_message = lang("ACCOUNT_ACTIVATION_MESSAGE",array($websiteUrl,$this->activation_token)); //Define more if you want to build larger structures $hooks = array( "searchStrs" => array("#ACTIVATION-MESSAGE","#ACTIVATION-KEY","#USERNAME#"), "subjectStrs" => array($activation_message,$this->activation_token,$this->displayname) ); /* Build the template - Optional, you can just use the sendMail function Instead to pass a message. */ if(!$mail->newTemplateMsg("new-registration.txt",$hooks)) { $this->mail_failure = true; } else { //Send the mail. Specify users email here and subject. //SendMail can have a third parementer for message if you do not wish to build a template. if(!$mail->sendMail($this->clean_email,"New User")) { $this->mail_failure = true; } } $this->success = lang("ACCOUNT_REGISTRATION_COMPLETE_TYPE2"); } else { //Instant account activation $this->user_active = 1; $this->success = lang("ACCOUNT_REGISTRATION_COMPLETE_TYPE1"); } if(!$this->mail_failure) { //Insert the user into the database providing no errors have been found. $stmt = $mysqli->prepare("INSERT INTO ".$db_table_prefix."users ( user_name, display_name, password, email, phone, usertype, activation_token, last_activation_request, lost_password_request, active, title, sign_up_stamp, last_sign_in_stamp ) VALUES ( ?, ?, ?, ?, ?, ?, ?, '".time()."', '0', ?, 'New Member', '".time()."', '0' )"); $stmt->bind_param("sssssisi", $this->username, $this->displayname, $secure_pass, $this->clean_email, $this->phoneNumber, $this->userType, $this->activation_token, $this->user_active); $stmt->execute(); $inserted_id = $mysqli->insert_id; $stmt->close(); //Insert default permission into matches table $stmt = $mysqli->prepare("INSERT INTO ".$db_table_prefix."user_permission_matches ( user_id, permission_id ) VALUES ( ?, ? )"); //1 for "User" role, 4 for "Host" role $stmt->bind_param("ss", $inserted_id, $this->userType); $stmt->execute(); $stmt->close(); //Insert default user details if($this->userType==1){ $usr_desc ="Add your profile description"; $usr_tags ="Friendly chat"; $usr_langs ="English"; $usr_time ="09,00,17,00"; $stmt = $mysqli->prepare("INSERT INTO ".$db_table_prefix."user_details ( user_id, user_desc, user_tags, user_lang, user_timing ) VALUES ( ?, ?, ?, ?, ? )"); $stmt->bind_param("sssss", $inserted_id, $usr_desc, $usr_tags, $usr_langs, $usr_time); $stmt->execute(); $stmt->close(); } } } } } ?>