function ajaxregister() { $lang = JFactory::getLanguage(); $extension = 'com_users'; $base_dir = JPATH_SITE; $language_tag = $lang->getTag(); $reload = true; $lang->load($extension, $base_dir, $language_tag, $reload); $config = JFactory::getConfig(); $db = JFactory::getDbo(); $params = JComponentHelper::getParams('com_users'); $captchacode=strtolower(JRequest::getVar('captchacode')); $session_captchacode=$_SESSION['awdcpnumber']; if(strcmp($captchacode,$session_captchacode)!=0){ // set message in here : Registration is disable awdwallController::ajaxResponse('$errorcaptcha$'.JText::_('COM_COMAWDWALL_CAPTCHA_ERROR_TEXT')); } $requestData ['name']= JRequest::getVar('name'); $requestData ['username']= JRequest::getVar('username'); $requestData ['password1']= JRequest::getVar('passwd1'); $requestData ['password2']= JRequest::getVar('passwd2'); $requestData ['email1']= JRequest::getVar('email1'); $requestData ['email2']= JRequest::getVar('email2'); if(JComponentHelper::getParams('com_users')->get('allowUserRegistration') == 0){ // set message in here : Registration is disable awdwallController::ajaxResponse('$error$'.JText::_('COM_COMAWDWALL_REGISTRATION_NOTALLOWED_TEXT')); } // Initialise the table with JUser. $user = new JUser; // Merge in the registration data. foreach ($requestData as $k => $v) { $data[$k] = $v; } // Prepare the data for the user object. $data['email'] = $data['email1']; $data['password'] = $data['password1']; $useractivation = $params->get ( 'useractivation' ); // Check if the user needs to activate their account. if (($useractivation == 1) || ($useractivation == 2)) { $data ['activation'] = JApplication::getHash ( JUserHelper::genRandomPassword () ); $data ['block'] = 1; } $system = $params->get('new_usertype', 2); $data['groups'] = array($system); // Bind the data. if (! $user->bind ( $data )) { awdwallController::ajaxResponse('$error$'.JText::sprintf ( 'COM_USERS_REGISTRATION_BIND_FAILED', $user->getError () )); } // Load the users plugin group. JPluginHelper::importPlugin('user'); // Store the data. if (!$user->save()) { awdwallController::ajaxResponse('$error$'.JText::sprintf('COM_USERS_REGISTRATION_SAVE_FAILED', $user->getError())); } // Compile the notification mail values. $data = $user->getProperties(); $data['fromname'] = $config->get('fromname'); $data['mailfrom'] = $config->get('mailfrom'); $data['sitename'] = $config->get('sitename'); $data['siteurl'] = JURI::root(); // Handle account activation/confirmation emails. if ($useractivation == 2) { // Set the link to confirm the user email. $data['activate'] = $data['siteurl'].'index.php?option=com_users&task=registration.activate&token='.$data['activation']; $emailSubject = JText::sprintf( 'COM_USERS_EMAIL_ACCOUNT_DETAILS', $data['name'], $data['sitename'] ); $emailBody = JText::sprintf( 'COM_USERS_EMAIL_REGISTERED_WITH_ACTIVATION_BODY', $data['name'], $data['sitename'], $data['siteurl'].'index.php?option=com_users&task=registration.activate&token='.$data['activation'], $data['siteurl'], $data['username'], $data['password_clear'] ); } elseif ($useractivation == 1) { // Set the link to activate the user account. $data['activate'] = $data['siteurl'].'index.php?option=com_users&task=registration.activate&token='.$data['activation']; $emailSubject = JText::sprintf( 'COM_USERS_EMAIL_ACCOUNT_DETAILS', $data['name'], $data['sitename'] ); $emailBody = JText::sprintf( 'COM_USERS_EMAIL_REGISTERED_WITH_ACTIVATION_BODY', $data['name'], $data['sitename'], $data['siteurl'].'index.php?option=com_users&task=registration.activate&token='.$data['activation'], $data['siteurl'], $data['username'], $data['password_clear'] ); } else { $emailSubject = JText::sprintf( 'COM_USERS_EMAIL_ACCOUNT_DETAILS', $data['name'], $data['sitename'] ); $emailBody = JText::sprintf( 'COM_USERS_EMAIL_REGISTERED_BODY', $data['name'], $data['sitename'], $data['siteurl'] ); } // Send the registration email. $return = JFactory::getMailer()->sendMail($data['mailfrom'], $data['fromname'], $data['email'], $emailSubject, $emailBody); //Send Notification mail to administrators if (($params->get('useractivation') < 2) && ($params->get('mail_to_admin') == 1)) { $emailSubject = JText::sprintf( 'COM_USERS_EMAIL_REGISTERED_BODY', $data['name'], $data['sitename'] ); $emailBodyAdmin = JText::sprintf( 'COM_USERS_EMAIL_REGISTERED_NOTIFICATION_TO_ADMIN_BODY', $data['name'], $data['username'], $data['siteurl'] ); // get all admin users $query = 'SELECT name, email, sendEmail' . ' FROM #__users' . ' WHERE sendEmail=1'; $db->setQuery( $query ); $rows = $db->loadObjectList(); // Send mail to all superadministrators id foreach( $rows as $row ) { $return = JFactory::getMailer()->sendMail($data['mailfrom'], $data['fromname'], $row->email, $emailSubject, $emailBodyAdmin); // Check for an error. if ($return !== true) { echo(JText::_('COM_USERS_REGISTRATION_ACTIVATION_NOTIFY_SEND_MAIL_FAILED')); return false; } } } // Check for an error. if ($return !== true) { echo (JText::_('COM_USERS_REGISTRATION_SEND_MAIL_FAILED')); // Send a system message to administrators receiving system mails $db = JFactory::getDBO(); $q = "SELECT id FROM #__users WHERE block = 0 AND sendEmail = 1"; $db->setQuery($q); $sendEmail = $db->loadColumn(); if (count($sendEmail) > 0) { $jdate = new JDate(); // Build the query to add the messages $q = "INSERT INTO ".$db->quoteName('#__messages')." (".$db->quoteName('user_id_from'). ", ".$db->quoteName('user_id_to').", ".$db->quoteName('date_time'). ", ".$db->quoteName('subject').", ".$db->quoteName('message').") VALUES "; $messages = array(); foreach ($sendEmail as $userid) { $messages[] = "(".$userid.", ".$userid.", '".$jdate->toSql()."', '".JText::_('COM_USERS_MAIL_SEND_FAILURE_SUBJECT')."', '".JText::sprintf('COM_USERS_MAIL_SEND_FAILURE_BODY', $return, $data['username'])."')"; } $q .= implode(',', $messages); $db->setQuery($q); $db->query(); } return false; } if ($useractivation == 1) $return = "useractivate"; elseif ($useractivation == 2) $return = "adminactivate"; else $return = $user->id; if ($return === 'adminactivate'){ awdwallController::ajaxResponse(JText::_('COM_USERS_REGISTRATION_COMPLETE_VERIFY')); } elseif ($return === 'useractivate') { awdwallController::ajaxResponse(JText::_('COM_USERS_REGISTRATION_COMPLETE_ACTIVATE')); } else { awdwallController::ajaxResponse(JText::_('COM_USERS_REGISTRATION_SAVE_SUCCESS')); } exit; }