Beispiel #1
0
 public static function create_proceed()
 {
     jimport('joomla.application.application');
     jimport('joomla.user.helper');
     jimport('joomla.utilities.utility');
     JPluginHelper::importPlugin('user');
     jimport('joomla.environment.request');
     JRequest::checkToken() or die('Invalid Token');
     //JSession::checkToken() or die( 'Invalid Token' );
     $session = JFactory::getSession();
     $db = JFactory::getDBO();
     $user = clone JFactory::getUser();
     $usersConfig = JComponentHelper::getParams('com_users');
     $session_me = $session->get('user_details', '');
     $myparams = JComponentHelper::getParams('com_fbconnct');
     $mainframe = JFactory::getApplication();
     $redirAfterReg = $myparams->get('redirect-after-reg');
     $postToFB = $myparams->get('post-to-facebook');
     $UserFBmsg = $myparams->get('facebook-message');
     if (!$user->get('guest')) {
         die($user->name . JText::_('COM_FBCONNCT_ALREADY_LOGGED_IN'));
     }
     $uid = $session_me['id'];
     $username = JRequest::getVar('username', '');
     $username = fbconnctController::clean_username($username);
     $createUser_url = JRoute::_('index.php?task=create&option=com_fbconnct&format=raw');
     $user_allow_post = JRequest::getVar('fbpost', '');
     if (strlen($username) < 5) {
         $fb_error = array('<div class="error">' . JText::_('COM_FBCONNCT_USERNAMETOOSHORT') . '</div>');
         $session->set('fb_custom_error', $fb_error);
         $mainframe->redirect($createUser_url);
         exit;
     }
     if (fbconnctController::count_jusername($username) > 0) {
         $fb_error = array('<div class="error">' . JText::_('COM_FBCONNCT_USERNAMEINUSE') . '</div>');
         $session->set('fb_custom_error', $fb_error);
         $mainframe->redirect($createUser_url);
         exit;
     }
     //proceed to creating user
     $session_me = $session->get('user_details', '');
     $pathway = $mainframe->getPathway();
     $newUsertype = $usersConfig->get('new_usertype', 2);
     if (!$newUsertype) {
         $newUsertype = 'Registered';
     }
     $authorize = JFactory::getACL();
     $document = JFactory::getDocument();
     $fullname = $session_me['name'];
     $email = $session_me['email'];
     $randomepass = JUserHelper::genRandomPassword(5);
     $intdatetime = time();
     //email data
     $emailData = array();
     $emailData['name'] = $fullname;
     $emailData['username'] = $username;
     $emailData['email'] = $email;
     $emailData['temp_pass'] = $randomepass;
     $emailData['fbid'] = $uid;
     // binding process
     $userData = array();
     $userData['name'] = $fullname;
     $userData['username'] = $username;
     $userData['email'] = $email;
     $userData['password'] = $randomepass;
     $userData['password2'] = $randomepass;
     $userData['sendEmail'] = 0;
     if (!$user->bind($userData, 'usertype')) {
         $fb_error = array('<div class="error">' . $user->getError() . '</div>');
         $session->set('fb_custom_error', $fb_error);
         $mainframe->redirect($createUser_url);
         exit;
     }
     $user->set('groups', array($newUsertype));
     $user->set('id', 0);
     $date = JFactory::getDate();
     //j3 change
     $user->set('registerDate', $date->toSql());
     //j3 change
     if ($user->save()) {
         $jomuserid = $user->get('id');
         if (fbconnctController::count_fb_user($uid) >= 1) {
             $fbinsertquary = "UPDATE #__facebook_joomla_connect SET joomla_userid={$jomuserid},joined_date={$intdatetime} WHERE facebook_userid={$uid}";
         } else {
             $fbinsertquary = "INSERT INTO #__facebook_joomla_connect(joomla_userid,facebook_userid,joined_date,linked) VALUES ({$jomuserid},{$uid},{$intdatetime},1)";
         }
         $db->setQuery($fbinsertquary);
         $result = $db->query();
         if ($result) {
             $options = array();
             $options['action'] = 'core.login.site';
             $response = new stdClass();
             $response->username = $username;
             $response->password = $randomepass;
             $result = $mainframe->triggerEvent('onUserLogin', array((array) $response, $options));
             fbconnctController::emailUsers($emailData);
             fbconnctController::displayMessage(JText::_('COM_FBCONNCT_YOUR_MSG'), JText::_('COM_FBCONNCT_REGSUCCESS'), $redirAfterReg);
         } else {
             fbconnctController::emailUsers($emailData);
             fbconnctController::displayMessage(JText::_('COM_FBCONNCT_YOUR_MSG'), JText::_('COM_FBCONNCT_REGSUCCESS'), $redirAfterReg);
         }
         if ($postToFB && $user_allow_post) {
             fbconnctController::post_to_facebook($UserFBmsg, $emailData);
         }
     }
 }