| Current Path : /home/digilove/public_html/modules/mod_marketplacemenus/ |
| Current File : /home/digilove/public_html/modules/mod_marketplacemenus/helper.php |
<?php
/**
* Marketplace Menus module
*
* PHP version 7.0
*
* @category Module
* @package Joomla
* @author WebKul software private limited <support@webkul.com>
* @copyright 2010 WebKul software private limited
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
* @version GIT:5.2
* @filesource http://store.webkul.com
* @link Technical Support: webkul.uvdesk.com
*/
// no direct access
defined('_JEXEC') or die();
/**
* ModSocLoginHelper class
*
* @category Module
* @package Joomla
* @author WebKul software private limited <support@webkul.com>
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
* @link Technical Support: webkul.uvdesk.com
*/
class ModMpMenuHelper
{
/**
* CheckAndStoreUser function
*
* @param array $user var
*
* @return void
*/
function checkAndStoreUser($user = array())
{
$chk_user = $this->_checkUser($user['email']);
if (!$chk_user) {
$this->_registerUser($user);
$chk_user = $this->_checkUser($user['email']);
}
// Login user
$result = $this->_forceLogin($chk_user);
$juri = JUri::getInstance();
/* $url = $juri->root();
JFactory::getApplication()->redirect($url); */
}
/**
* Check User exists using email function
*
* @param string $email var
*
* @return void
*/
private function _checkUser($email="")
{
$db=JFactory::getDbo();
$query=$db->getQuery(true);
$query->select("id")->from($db->quoteName("#__users"))->where(
$db->QuoteName("email")."=".$db->quote($email)
);
$db->setQuery($query);
$result = $db->loadObject();
if (isset($result->id)) {
return $result->id;
}
return 0;
}
/**
* Register User function
*
* @param array $user var
*
* @return void
*/
private function _registerUser($user = array())
{
JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_users/models/');
$model = JModelLegacy::getInstance('Registration', 'UsersModel');
$user["username"] = substr($user['name'], 0, strpos($user['name'], ' '));
if (empty($user["username"])) {
$user["username"] = $user['name'];
}
$username = $user["username"];
$match_found = true;
$i=0;
$db= JFactory::getDbo();
while ($match_found) {
$query = $db->getQuery(true);
$query->select($db->quoteName("email"))
->from($db->quoteName("#__users"))
->where($db->quoteName("username")."=".$db->quote($username));
$db->setQuery($query);
try {
$res_match_user = $db->loadObject();
} catch (Exception $e) {
$match_found= true;
}
if (isset($res_match_user) && $res_match_user->email !== $user["email"]) {
$username=$username.(++$i);
$match_found= true;
} else {
$match_found= false;
}
}
$user["username"] = $username;
$user["password"] = $this->randomPassword();
$lang = JFactory::getLanguage();
$extension = 'com_users';
$base_dir = JPATH_SITE;
$lang->load($extension, $base_dir);
$data=array(
"name" => $user["name"],
"username" => strtolower($user["username"]),
"password1" => $user["password"],
"password2" => $user["password"],
"email1" => $user["email"],
"email2" => $user["email"]
);
$res=$model->register($data);
return $res;
}
/**
* Random Password function
*
* @param integer $length Password length
*
* @return void
*/
function randomPassword($length = 8)
{
$alphabet = 'abcdefghijklmnopqrstuvwxyzAB'.
'CDEFGHIJKLMNOPQRSTUVWXYZ1234567890+-*/|{}[]()%^&#@!~';
$pass = array();
$alphaLength = strlen($alphabet) - 1;
for ($i = 0; $i < $length; $i++) {
$n = rand(0, $alphaLength);
$pass[] = $alphabet[$n];
}
return str_shuffle(implode($pass));
}
/**
* Force Login function
*
* @param [type] $userId var
*
* @return Mixed
*/
private function _forceLogin($userId)
{
$user = JFactory::getUser($userId);
if ($user->guest) {
return 'guest';
} else {
//Will authorize you as this user.
JPluginHelper::importPlugin('user');
$options = array();
$options['action'] = 'core.login.site';
$response = new stdClass();
$response->username = $user->username;
$response->language = '';
$response->email = $user->email;
$response->password_clear = '';
$response->fullname = '';
$result = JFactory::getApplication()->triggerEvent(
'onUserLogin', array((array)$response, $options)
);
return $result;
}
}
}