addElement('text', 'lastname', get_lang('Lastname'), array('size' => 40)); $form->addElement('text', 'firstname', get_lang('Firstname'), array('size' => 40)); $form->addRule('lastname', get_lang('ThisFieldIsRequired'), 'required'); $form->addRule('firstname', get_lang('ThisFieldIsRequired'), 'required'); // EMAIL $form->addElement('text', 'email', get_lang('Email'), array('size' => 40)); if (api_get_setting('registration', 'email') == 'true') $form->addRule('email', get_lang('ThisFieldIsRequired'), 'required'); $form->addRule('email', get_lang('EmailWrong'), 'email'); // OFFICIAL CODE if (CONFVAL_ASK_FOR_OFFICIAL_CODE) { $form->addElement('text', 'official_code', get_lang('OfficialCode'), array('size' => 40)); if (api_get_setting('registration', 'officialcode') == 'true') $form->addRule('official_code', get_lang('ThisFieldIsRequired'), 'required'); } // USERNAME $form->addElement('text', 'username', get_lang('Username'), array('size' => 40)); $form->addRule('username', get_lang('ThisFieldIsRequired'), 'required'); $form->addRule('username', get_lang('UsernameWrong'), 'username'); $form->addRule('username', get_lang('UserTaken'), 'username_available'); // PASSWORD $form->addElement('password', 'pass1', get_lang('Pass'), array('size' => 40)); $form->addElement('password', 'pass2', get_lang('Confirmation'), array('size' => 40)); $form->addRule('pass1', get_lang('ThisFieldIsRequired'), 'required'); $form->addRule(array('pass1', 'pass2'), get_lang('PassTwo'), 'compare'); if (CHECK_PASS_EASY_TO_FIND) $form->addRule('password1', get_lang('PassTooEasy').': '.api_generate_password(), 'callback', 'api_check_password'); // LANGUAGE if (get_setting('registration', 'language') == 'true') { $form->addElement('select_language', 'language', get_lang('Language')); } // STUDENT/TEACHER if (get_setting('allow_registration_as_teacher') <> 'false') { $form->addElement('radio', 'status', get_lang('Status'), get_lang('RegStudent'), STUDENT); $form->addElement('radio', 'status', null, get_lang('RegAdmin'), COURSEMANAGER); } $form->addElement('submit', 'submit', get_lang('Ok')); //$defaults['language'] = api_get_setting('platformLanguage'); $defaults['status'] = STUDENT; $form->setDefaults($defaults); if ($form->validate()) { /*----------------------------------------------------- STORE THE NEW USER DATA INSIDE THE MAIN DOKEOS DATABASE -----------------------------------------------------*/ $values = $form->exportValues(); if (get_setting('allow_registration_as_teacher') == 'false') { $values['status'] = STUDENT; } // creating a new user $user_id = UserManager::create_user($values['firstname'],$values['lastname'],$values['status'],$values['email'],$values['username'],$values['pass1'],$values['official_code'], $values['language']); if ($user_id) { // TODO: add language to parameter list of UserManager::create_user(...) $sql = "UPDATE ".Database::get_main_table(MAIN_USER_TABLE)." SET language = '".mysql_real_escape_string($values['language'])."' WHERE user_id = '".$_uid."' "; //api_sql_query($sql,__FILE__,__LINE__); // if there is a default duration of a valid account then we have to change the expiration_date accordingly if (get_setting('account_valid_duration')<>'') { $sql = "UPDATE ".Database::get_main_table(MAIN_USER_TABLE)." SET expiration_date='registration_date+1' WHERE user_id='".$_uid."'"; api_sql_query($sql,__FILE__,__LINE__); } // if the account has to be approved then we set the account to inactive, sent a mail to the platform admin and exit the page. if (get_setting('allow_registration')=='approval') { // 1. set account inactive $sql = "UPDATE ".Database::get_main_table(MAIN_USER_TABLE)." SET active='0' WHERE user_id='".$_uid."'"; api_sql_query($sql,__FILE__,__LINE__); // 2. send mail to the platform admin $emailfromaddr = api_get_setting('emailAdministrator'); $emailfromname = api_get_setting('siteName'); $emailto = api_get_setting('emailAdministrator'); $emailsubject = get_lang('ApprovalForNewAccount').': '.$values['username']; $emailbody = get_lang('ApprovalForNewAccount')."\n"; $emailbody .=get_lang('Username').': '.$values['username']."\n"; $emailbody .=get_lang('Lastname').': '.$values['lastname']."\n"; $emailbody .=get_lang('Firstname').': '.$values['firstname']."\n"; $emailbody .=get_lang('Email').': '.$values['email']."\n"; $emailbody .=get_lang('Status').': '.$values['status']."\n\n"; $emailbody .=get_lang('ManageUser').': '.api_get_path(WEB_CODE_PATH).'admin/user_edit.php?user_id='.$user_id; $emailheaders = "From: ".get_setting('administratorSurname')." ".get_setting('administratorName')." <".get_setting('emailAdministrator').">\n"; $emailheaders .= "Reply-To: ".get_setting('emailAdministrator'); @ api_send_mail($emailto, $emailsubject, $emailbody, $emailheaders); // 3. exit the page unset($_uid); Display :: display_footer(); exit; } /*-------------------------------------- SESSION REGISTERING --------------------------------------*/ $_uid=$user_id; $_user['firstName'] = stripslashes($values['firstname']); $_user['lastName'] = stripslashes($values['lastname']); $_user['mail'] = $values['email']; $_user['language'] = $values['language']; $is_allowedCreateCourse = ($values['status'] == 1) ? true : false; api_session_register('_uid'); api_session_register('_user'); api_session_register('is_allowedCreateCourse'); //stats include (api_get_path(LIBRARY_PATH)."events.lib.inc.php"); event_login(); // last user login date is now $user_last_login_datetime = 0; // used as a unix timestamp it will correspond to : 1 1 1970 api_session_register('user_last_login_datetime'); /*-------------------------------------- EMAIL NOTIFICATION --------------------------------------*/ if (strstr($values['email'], '@')) { // Lets predefine some variables. Be sure to change the from address! $firstname = $values['firstname']; $lastname = $values['lastname']; $emailto = "\"$firstname $lastname\" <".$values['email'].">"; $emailfromaddr = api_get_setting('emailAdministrator'); $emailfromname = api_get_setting('siteName'); $emailsubject = "[".get_setting('siteName')."] ".get_lang('YourReg')." ".get_setting('siteName'); // The body can be as long as you wish, and any combination of text and variables $emailbody = get_lang('langDear')." ".stripslashes("$firstname $lastname").",\n\n".get_lang('langYouAreReg')." ".get_setting('siteName')." ".get_lang('langSettings')." ".$values['username']."\n".get_lang('langPass')." : ".stripslashes($values['pass1'])."\n\n".get_lang('langAddress')." ".get_setting('siteName')." ".get_lang('langIs')." : ".$rootWeb."\n\n".get_lang('langProblem')."\n\n".get_lang('langFormula').",\n\n".get_setting('administratorName')." ".get_setting('administratorSurname')."\n".get_lang('langManager')." ".get_setting('siteName')."\nT. ".get_setting('administratorTelephone')."\n".get_lang('langEmail')." : ".get_setting('emailAdministrator'); // Here we are forming one large header line // Every header must be followed by a \n except the last $emailheaders = "From: ".get_setting('administratorSurname')." ".get_setting('administratorName')." <".get_setting('emailAdministrator').">\n"; $emailheaders .= "Reply-To: ".get_setting('emailAdministrator'); // Because I predefined all of my variables, this api_send_mail() function looks nice and clean hmm? @ api_send_mail($emailto, $emailsubject, $emailbody, $emailheaders); } } echo "
".get_lang('langDear')." ".stripslashes("$firstname $lastname").",
".get_lang('langPersonalSettings').".
".get_lang('langMailHasBeenSent').".
"; } if ($is_allowedCreateCourse) { echo "", get_lang('langNowGoCreateYourCourse'), ".
\n"; $actionUrl = "../create_course/add_course.php"; } else { echo "", get_lang('langNowGoChooseYourCourses'), ".
\n"; $actionUrl = "courses.php?action=subscribe"; } // ?uidReset=true&uidReq=$_uid echo "\n"; } else { $form->display(); } ?> <<