Your IP : 216.73.216.11


Current Path : /home/digilove/public_html/components/com_marketplace/controllers/
Upload File :
Current File : /home/digilove/public_html/components/com_marketplace/controllers/profile.php

<?php
/**
 * Marketplace - Component Marketplace 
 * ******************************************************************
 *
 * PHP version 7.0
 *
 * @category   Component
 * @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('Restricted access');
jimport('joomla.application.component.controller');
jimport('joomla.filesystem.file');
jimport('joomla.filesystem.folder');

if (!class_exists('MarketplaceControllerProfile')) {
    /**
     * MarketplaceControllerProfile class
     * 
     * @category Component
     * @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 MarketplaceControllerProfile extends JControllerLegacy
    {
        /**
         * Display function
         *
         * @param boolean $cachable  var
         * @param array   $urlparams var
         * 
         * @return void
         */
        function display($cachable = false, $urlparams = array())
        {
            parent::display();
        }
        /**
         * ProfileSave function
         *
         * @return void
         */
        function profileSave()
        {
            JSession::checkToken() or die('Invalid Token');
            $profilemenu=plgSystemMarketplace::getMenuId(
                'index.php?option=com_marketplace&view=profile'
            );
            $model = $this->getModel('profilesave');
            $jInpupt=JFactory::getApplication()->input;
            $postVar=array();
            $postVar = $jInpupt->getArray($postVar);
            $profMod=$this->getModel("Profile");
            
            $method=JFactory::getApplication()->input->getMethod();
            $instanse=JFilterInput::getInstance();
            
            $postVar['companydescription'] = $jInpupt->get(
                'companydescription',
                '',
                "RAW"
            );
            $postVar['descriptioninhtml'] = $jInpupt->get(
                'descriptioninhtml',
                '',
                'STR'
            );
            $companyBanner = $jInpupt->files->get('companybanner');
            $companyLogo = $jInpupt->files->get('companylogo');

            $customerfolder = JPATH_ROOT .DIRECTORY_SEPARATOR .
                'media' . DIRECTORY_SEPARATOR . 'marketplace';

            $lat=$jInpupt->get('latitude', 0);
            $lang=$jInpupt->get('longtitude', 0);
            
            if (!isset($postVar['payment_mode'])) {
                $postVar['payment_mode']=array();
            }
            if (in_array('remitasplit', $postVar['payment_mode'])) {
                $remitaIndex=array_search('remitasplit', $postVar['payment_mode']);
                if (strlen(trim($postVar['remita_name'])) !=0 
                    &&strlen(trim($postVar['remita_account'])) !=0
                    && strlen(trim($postVar['remita_bank_code'])) !=0
                ) {
                    $modelProfile=$this->getModel('profile');
                    $modelProfile->saveRemitaDetails(
                        $postVar['remita_name'],
                        $postVar['remita_account'],
                        $postVar['remita_bank_code']
                    );
                } else {
                    unset($postVar['payment_mode'][$remitaIndex]);
                    JFactory::getApplication()->enqueueMessage(
                        JText::_('EMPTY_REMITA_FIELDS'),
                        'warning'
                    );
                }
            }
            $pay_mode=$postVar['payment_mode'];
            if (isset($postVar['payment'])) {
                $pay_desc=$postVar['payment'];
            } else {
                $pay_desc=array();
            }
            
            
            foreach ($pay_mode as $key => $value) {
                if ($pay_desc[$key] == "") {
                    $pay_mode[$key]="";
                }
            }
            
            $pay_mode_str='';
            $pay_desc_str='';
            $pay_mode_str=implode(',', $pay_mode);
            $pay_desc_str=implode(',', $pay_desc);
            
            $postVar['payment'] = $pay_desc_str;
            
            if (array_key_exists('social_mode', $postVar)) {
                $social_mode=$postVar['social_mode'];
                if (count($social_mode)>0) {
                    $social_id=$postVar['social_id'];
                }
                $i=0;
                $social_ids=array();
                $postVar['social_mode']=implode(',', $social_mode);
                $postVar['social_id']=implode(',', $social_id);
            } else {
                $postVar['social_mode']='';
                $postVar['social_id']='';
            }
            if ($pay_mode_str==null) {
                $postVar['payment_mode']="";
            } else {
                $postVar['payment_mode']=$pay_mode_str;
            }
            if ($pay_desc_str==null) {
                $postVar['payment_desc']="";
            } else {
                $postVar['payment_desc']=$pay_desc_str;
            }
            $shop_location=$lat.'::'.$lang;
            $postVar['shop_location']=$shop_location;
            if (!is_dir($customerfolder)) {
                $suc_create = JFolder::create($customerfolder, 0777);
                if (!$suc_create) {
                    $message = "MP_FOLDER_CUSTOM_PARTNER_CREATE_MESS_ERROR. ";
                    return false;
                }
            }
            $customer_id = $postVar['seller_id'];
            $uploadpath =  $customerfolder . DIRECTORY_SEPARATOR .
                'user'.$customer_id;
            if (!is_dir($uploadpath)) {
                $suc_create = JFolder::create($uploadpath, 0777);
                if (!$suc_create) {
                    $message = "MP_FOLDER_CREATE_MESS_ERROR.";
                    return false;
                }
            }
            $pro_path = $uploadpath. DIRECTORY_SEPARATOR ."profile";
            if (!is_dir($pro_path)) {
                $suc_create = JFolder::create($pro_path, 0777);
                if (!$suc_create) {
                    $message = "MP_FOLDER_CREATE_MESS_ERROR.";
                    return false;
                }
            }

            $ban_path = $uploadpath. DIRECTORY_SEPARATOR ."banner";
            if (!is_dir($ban_path)) {
                $suc_create = JFolder::create($ban_path, 0777);
                if (!$suc_create) {
                    $message = "MP_FOLDER_CREATE_MESS_ERROR.";
                    return false;
                }
            }

            $webPath = '';
            if (!empty($companyBanner['name'])) {
                // Adjust some settings to the uploadresume name
                $safename = JFile::makeSafe(
                    time() . "." .
                    JFile::getExt($companyBanner['name'])
                );
                $safename = strtolower($safename);
                $check_ban = JFolder::files(
                    $ban_path, $filter = '.',
                    false,
                    true,
                    array()
                );
                if (!JFile::upload($companyBanner['tmp_name'], $ban_path . DIRECTORY_SEPARATOR . $safename)) {
                    $this->setRedirect(
                        'index.php?option=com_marketplace&view=profile&Itemid='
                        .$profilemenu,
                        $this->getError(),
                        'error'
                    );
                    $this->redirect();
                }
                foreach ($check_ban as $val) {
                    if ($val == $ban_path . DIRECTORY_SEPARATOR . $safename) {
                        continue;
                    }
                    JFile::delete($val);
                }
                chmod($ban_path . DIRECTORY_SEPARATOR . $safename, 0755);
                $exif = exif_read_data($ban_path . DIRECTORY_SEPARATOR . $safename);
                if (isset($exif) && isset($exif['Orientation'])) {
                    $ort = $exif['Orientation'];
                    $source = imagecreatefromjpeg(
                        $ban_path . DIRECTORY_SEPARATOR . $safename
                    );
                    $rotate=null;
                    switch ($ort) {
                    case 3:
                        $rotate = imagerotate($source, 180, 0);
                        break;
                    case 6:
                        $rotate = imagerotate($source, -90, 0);
                        break;
                    case 8:
                        $rotate = imagerotate($source, 90, 0);
                        break;
                    }
                    if ($rotate !== null) {
                        imagejpeg(
                            $rotate,
                            $ban_path. DIRECTORY_SEPARATOR . $safename
                        );
                        imagedestroy($rotate);
                    }
                }
                $webPath = 'media/marketplace/user'.$customer_id. DIRECTORY_SEPARATOR
                .'banner' . DIRECTORY_SEPARATOR .$safename;
                $postVar['companybanner'] = $webPath;
            }
            if (!empty($companyLogo['name'])) {
                $safename = JFile::makeSafe(
                    time() . "." . JFile::getExt($companyLogo['name'])
                );
                $safename = strtolower($safename);
                $check_ban = JFolder::files(
                    $pro_path,
                    $filter = '.',
                    false,
                    true,
                    array()
                );
                if (!JFile::upload($companyLogo['tmp_name'], $pro_path . DIRECTORY_SEPARATOR . $safename)) {
                    $this->setRedirect(
                        'index.php?option=com_marketplace&view=profile&Itemid='
                        .$profilemenu,
                        $this->getError(),
                        'error'
                    );
                    $this->redirect();
                }
                foreach ($check_ban as $val) {
                    if ($val == $pro_path . DIRECTORY_SEPARATOR . $safename) {
                        continue;
                    }
                    JFile::delete($val);
                }
                chmod($pro_path . DIRECTORY_SEPARATOR . $safename, 0755);
                if ($companyLogo["type"] === "image/jpeg") {
                    $exif = exif_read_data($pro_path . DIRECTORY_SEPARATOR . $safename);
                }
                if (isset($exif) && isset($exif['Orientation'])) {
                    $ort = $exif['Orientation'];
                    $source = imagecreatefromjpeg(
                        $pro_path . DIRECTORY_SEPARATOR . $safename
                    );
                    $rotate=null;
                    switch ($ort) {
                    case 3:
                        $rotate = imagerotate($source, 180, 0);
                        break;
                    case 6:
                        $rotate = imagerotate($source, -90, 0);
                        break;
                    case 8:
                        $rotate = imagerotate($source, 90, 0);
                        break;
                    }
                    if ($rotate !== null) {
                        imagejpeg(
                            $rotate, $pro_path . DIRECTORY_SEPARATOR . $safename
                        );
                        imagedestroy($rotate);
                    }
                }
               
                $webPath = 'media/marketplace/user'.$customer_id.
                    DIRECTORY_SEPARATOR .'profile'.DIRECTORY_SEPARATOR . $safename;
                $postVar['companylogo'] = $webPath;
            }
            $postVar["countrylogo"] = $postVar["countries"];
            unset($postVar["countries"]);
            $validateRequired = $this->_validateMpRequiredFields($postVar);
            if (!$validateRequired) {
                $this->setRedirect(
                    JRoute::_(
                        'index.php?option=com_marketplace&view=profile&Itemid='
                        .$profilemenu
                    )
                );
                return false;
            }
            /* Mp Trigger onSellerBeforeProfileSave */
            JPluginHelper::importPlugin('system');
            $dispatcher =JDispatcher::getInstance();
            $addonData=$dispatcher->trigger(
                'onSellerBeforeProfileSave',
                array(&$postVar)
            );
            $validate=true;
            foreach ($addonData as $value) {
                if (!$value) {
                    $validate=false;
                    break;
                }
            }
            if (!$validate) {
                $this->setRedirect(
                    JRoute::_(
                        'index.php?option=com_marketplace&view=profile&Itemid='
                        .$profilemenu
                    ),
                    JText::_('SOME_ERROR_OCCURRED_PROFILE'),
                    "error"
                );
                return;
            }
            if (!$model->saveItem($postVar)) {
                JFactory::getApplication()->enqueueMessage(
                    JText::_('Error'),
                    'error'
                );
                $this->setRedirect(
                    JRoute::_(
                        'index.php?option=com_marketplace&view=profile&Itemid='
                        .$profilemenu,
                        false
                    ),
                    'error'
                );
            } else {
                JFactory::getApplication()->enqueueMessage(
                    JText::_('SELLER_PROFILE_SUSS_SAVE'),
                    'success'
                );
                $this->setRedirect(
                    JRoute::_(
                        'index.php?option=com_marketplace&view=profile&Itemid='
                        .$profilemenu,
                        false
                    )
                );
            }
        }
        /**
         * Validae Profile Required fields function
         *
         * @param array $postVar Profile variables
         * 
         * @return boolen
         */
        private function _validateMpRequiredFields($postVar=array())
        {
            $req_fields = array(
                'screenname', 'gender', 'first_name', 'last_name',
                'companyname', 'phone', 'companylocality', 'address',
                'zip', 'countrylogo'
            );
            $err_fields = array(
                'screenname'=> JText::_('SCREEN_NAME'), 'gender' => JText::_('SELECT_GENDER'),
                'first_name' => JText::_('FIRST_NAME'), 'last_name' => JText::_('LAST_NAME'),
                'companyname' => JText::_('SHOP_NAME'), 'phone' => JText::_('PHONE_NO_1'),
                'companylocality' => JText::_('SHOP_LOCALITY'), 'address' => JText::_('SHOP_ADDRESS'),
                'zip' => JText::_('ZIP_POSTAL_CODE'), 'countrylogo' => JText::_('SELECT_YOUR_COUNTRY')
            );
            $invalid_fields=array();
            foreach ($req_fields as $key => $value) {
                if (!array_key_exists($value, $postVar) || $postVar[$value]==="") {
                    $invalid_fields[] = $err_fields[$value];
                }
            }
            if (count($invalid_fields)) {
                $message ="<b>".JText::_("CANNOT_BYPASS_REQUIRED")."</b><br> - ".
                    implode("<br> - ", $invalid_fields);
                JFactory::getApplication()->enqueueMessage($message, 'error');
                return false;
            }
            return true;
        }
        /**
         * Remove function
         *
         * @return void
         */
        function remove()
        {
            $mainframe = JFactory::getApplication('site');
            $mainframe->initialise();
            $_input = $mainframe->input;
            $seller_id = $_input->get('seller_id', 0, 'INT');
            $seller_id_for_cover = $_input->get('seller_id_for_cover', 0, 'INT');
            $wkurl = $_input->get('wkurl', '');

            if ($seller_id_for_cover) {
                $object = new stdClass();
                $object->seller_id = $seller_id_for_cover;
                $object->companybanner
                    = "components/com_marketplace/images/defaultcover.png";
                $result = JFactory::getDbo()->updateObject(
                    '#__marketplace_sellerprofile',
                    $object,
                    'seller_id'
                );
            }
            if ($seller_id) {
                $object = new stdClass();
                $object->seller_id = $seller_id;
                $object->companylogo
                    = "components/com_marketplace/images/generic-pic.png";
                $result = JFactory::getDbo()->updateObject(
                    '#__marketplace_sellerprofile',
                    $object,
                    'seller_id'
                );
            }
            echo $result;
            JFactory::getApplication()->close();
        }
        /**
         * Uploadpic function
         *
         * @return void
         */
        function uploadpic()
        {
            $app = JFactory::getApplication();
            $_input = $app->input;
            $seller_id= $_input->getInt('seller_id', 0);
            $rawData = $_input->get('imgBase64');
            $filteredData = explode(',', $rawData);
            $unencoded = base64_decode($filteredData[1]);
            $randomName = rand(0, 99999);
            $folder =  JPATH_ROOT.'/media/marketplace/user'.$seller_id.'/';
            $filename = $randomName.'.jpg';
            $original = $folder.$filename;
            $input = file_get_contents('php://input');
            $result = file_put_contents($original, $unencoded);
            $object = new stdClass();
            $object->seller_id = $seller_id;
            $object->companylogo = JURI::root().
                'media/marketplace/user'.$seller_id.'/'.$filename;
            $result = JFactory::getDbo()->updateObject(
                '#__marketplace_sellerprofile',
                $object,
                'seller_id'
            );
            echo $object->companylogo;
            $app->close();
        }
        /**
         * UploadCover function
         *
         * @return void
         */
        function uploadCover()
        {
            $app = JFactory::getApplication();
            $_input = $app->input;
            $seller_id= $_input->getInt('seller_id', 0);
            $rawData = $_input->get('imgBase64');
            $filteredData = explode(',', $rawData);
            $unencoded = base64_decode($filteredData[1]);
            $randomName = rand(0, 99999);
            $folder =  JPATH_ROOT.'/media/marketplace/user'.$seller_id.'/';
            $filename = $randomName.'.jpg';
            $original = $folder.$filename;
            $input = file_get_contents('php://input');
            $result = file_put_contents($original, $unencoded);
            $object = new stdClass();
            $object->seller_id = $seller_id;
            $object->companybanner = JURI::root().
                'media/marketplace/user'.$seller_id.'/'.$filename;
            $result = JFactory::getDbo()->updateObject(
                '#__marketplace_sellerprofile',
                $object,
                'seller_id'
            );
            echo $object->companybanner;
            JFactory::getApplication()->close();
        }
    }
    
}
?>