| Current Path : /home/digilove/public_html/components/com_marketplace/controllers/ |
| 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();
}
}
}
?>