Your IP : 216.73.216.231


Current Path : /home/digilove/public_html/modules/mod_marketplacemenus/
Upload File :
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;
        }
    }
}