Файловый менеджер - Редактировать - /home/digilove/public_html/components/com_marketplace/controllers/addproduct.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'); $user = JFactory::getUser(); $param = JComponentHelper::getParams('com_marketplace'); $wk_addproduct_imgsize = $param->get('wk_addproduct_imgsize'); if (!class_exists('VmConfig')) { include JPATH_ADMINISTRATOR. '/components/com_virtuemart/helpers/config.php'; } JTable::addIncludePath(JPATH_COMPONENT_SITE.DIRECTORY_SEPARATOR.'tables'); if (!class_exists('MarketplaceHelper')) { include JPATH_ADMINISTRATOR.DIRECTORY_SEPARATOR. 'components'.DIRECTORY_SEPARATOR.'com_marketplace'. DIRECTORY_SEPARATOR.'helpers'.DIRECTORY_SEPARATOR.'marketplace.php'; } if (!class_exists('MarketplaceControllerAddproduct')) { /** * MarketplaceControllerAddproduct 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 MarketplaceControllerAddproduct extends JControllerLegacy { /** * Display function * * @param boolean $cachable var * @param array $urlparams var * * @return void */ public function display($cachable = false, $urlparams = array()) { parent::display(); } /** * Multilang function * * @return void */ public function multilang() { $defaultcountry_code = VmConfig::$vmlang; $app = JFactory::getApplication(); $_input = $app->input; $code = $_input->getInt('code', 0); $virtuemart_product_id = $_input->getInt('virtuemart_product_id', 0); $country_table = explode(' ', $code); $country_table_name = strtolower( str_replace("-", "_", $country_table['0']) ); $model=$this->getModel('addproduct'); $result=$model->checkUpdateLangTable( $country_table_name, $virtuemart_product_id, $defaultcountry_code ); $jsonstring = json_encode($result); echo $jsonstring; $app->close(); } /** * GetProductDetail function * * @return void */ public function getProductDetail() { $app = JFactory::getApplication(); $_input = $app->input; $virtuemart_product_id=$_input->getInt('vmid'); $model=$this->getModel('addproduct'); $pro_detail=$model->getProductDetail($virtuemart_product_id); $detail['product_sku']=@$pro_detail[0]->product_sku; $detail['product_weight']=@$pro_detail[0]->product_weight; $detail['product_in_stock']=@$pro_detail[0]->product_in_stock; $mediaModel=VmModel::getModel('media'); $data=$mediaModel->getFiles(false, false, $virtuemart_product_id); $image=array(); $vmmediaid=array(); foreach ($data as $key => $value) { $fileName = explode('.', $value->file_url); $NewFileName = $fileName[0].'_clone'.rand().'.'.$fileName[1]; JFile::copy($value->file_url, $NewFileName); $image[]=$NewFileName; $vmmediaid[]=$value->virtuemart_media_id; } $detail['image']=$image; $detail['virtuemart_media_id']=$vmmediaid; $productModel=VmModel::getModel('product'); $product=$productModel->getProduct($virtuemart_product_id); if (!isset($product->allPrices[0]['costPrice'])) { $product->allPrices[0]['costPrice']=''; } $detail['baseprice']=$product->allPrices[0]['costPrice']; if (!isset($product->allPrices[0]['salesPrice'])) { $product->allPrices[0]['salesPrice']=0; } $detail['salesprice']=number_format( $product->allPrices[0]['salesPrice'], 2 ); if (!count($product->virtuemart_manufacturer_id)) { $detail['manufacturer'][0]='0'; } else { $detail['manufacturer']=$product->virtuemart_manufacturer_id; } if (!count($product->categories)) { $detail['categories'][0]='0'; } else { $detail['categories']=$product->categories; } if (!isset($product->allPrices[0]['product_discount_id'])) { $product->allPrices[0]['product_discount_id']='na'; } $detail['price_discount']=$product->allPrices[0]['product_discount_id']; if (!isset($product->allPrices[0]['product_tax_id'])) { $product->allPrices[0]['product_tax_id']='na'; } $detail['price_tax']=$product->allPrices[0]['product_tax_id']; $detail['product_description_short']=$product->product_s_desc; $detail['product_description']=$product->product_desc; $detail['customfields']=$product->customfields; echo json_encode($detail); JFactory::getApplication()->close(); } /** * CategoryRequest function * * @return void */ public function categoryRequest() { $jinput=JFactory::getApplication()->input; $method=$jinput->getMethod(); $catname=$jinput->get('catval', '', $method); $catinfo=$jinput->get('catinfo', '', $method); $catdesc=$jinput->get('catdesc', '', $method); $seller_email=$jinput->get('seller_email', '', $method); $model=$this->getModel('addproduct'); $config=JFactory::getConfig(); $mailer=JFactory::getMailer(); $reciepient=$config->get('mailfrom'); $reciepientName=$config->get('fromname'); $message=''; $subject=JText::_('COM_MARKETPLACE_CATEGORY_REQUEST_SUBJECT'); $message.=JText::_('COM_MARKETPLACE_HELLO').$reciepientName. ",<br>".JText::_('COM_MARKETPLACE_CATEGORY_REQUEST')."<strong>".$catname. "</strong>".JText::_('COM_MARKETPLACE_CATEGORY_REQUEST_GENERATED') ."<strong>".JFactory::getUser()->name."</strong>.<br>". JText::_('COM_MARKETPLACE_PLEASE_GO'). "<a href='".JURI::root(). 'administrator/index.php?option=com_marketplace&view=suggestedcategory'. "'>".JText::_('COM_MARKETPLACE_CATEGORY_TAB'). "</a>".JText::_('COM_MARKETPLACE_TO_APPROVE'); if (strlen($reciepient)) { $check = $model->categoryRequest( $catname, $catdesc, $catinfo, $seller_email, $reciepient ); if ($check>0) { $mailer->addRecipient($reciepient); $mailer->isHtml(true); $mailer->setSender($seller_email); $mailer->setSubject($subject); $mailer->setBody($message); $mailer->send(); } echo $check; JFactory::getApplication()->close(); } else { echo "Admin Email Is Not Set"; JFactory::getApplication()->close(); } } /** * Deleteimage function * * @return void */ public function deleteimage() { $jinput=JFactory::getApplication()->input; $id = $jinput->getInt('id', 0); $model=$this->getModel('addproduct'); $success=$model->deleteimage($id); if ($success) { echo "true"; } else { echo "false"; } JFactory::getApplication()->close(); } /** * UploadImage function * * @return void */ public function uploadImage() { $app = JFactory::getApplication(); $_input = $app->input; $vmconf=VmConfig::loadConfig(); $rawData = $_input->get('imgBase64'); $filteredData = explode(',', $rawData); $unencoded = base64_decode($filteredData[1]); $randomName = rand(0, 99999); $uploadpath = JPATH_ROOT . DIRECTORY_SEPARATOR . $vmconf->get("media_product_path"); $fp = fopen($uploadpath.$randomName.'.jpg', 'w'); fwrite($fp, $unencoded); fclose($fp); $file_size=filesize($uploadpath.$randomName.'.jpg'); echo $randomName.'.jpg'.','.$file_size; $app->close(); } /** * Deleteimagepreview function * * @return void */ public function deleteimagepreview() { $app = JFactory::getApplication(); $_input = $app->input; $name = $_input->get('imgBase64'); $vmconf=VmConfig::loadConfig(); $uploadpath = JPATH_ROOT . DIRECTORY_SEPARATOR . $vmconf->get("media_product_path"); unlink($uploadpath.$name); echo "true"; $app->close(); } /** * SelectProduct function * * @return void */ public function selectProduct() { $app = JFactory::getApplication(); $_input = $app->input; $name = $_input->get('keyword'); if (!empty($name)) { $model=$this->getModel('addproduct'); $result = $model->selectProduct($name); if (!empty($result)) { ?> <ul id="product-list"> <?php foreach ($result as $result1) { ?> <li id="<?php echo $result1->virtuemart_product_id ?>" onClick="selectproducts('<?php echo $result1->product_name; ?>','<?php echo $result1->virtuemart_product_id ?>');"> <?php echo $result1->product_name; ?> </li> <?php } ?> </ul> <?php } } $app->close(); } /** * Product_save function * * @return void */ public function productSave() { $app = JFactory::getApplication(); $jinput=JFactory::getApplication()->input; $addproductmenu=plgSystemMarketplace::getMenuId( 'index.php?option=com_marketplace&view=addproduct' ); $productmenu=plgSystemMarketplace::getMenuId( 'index.php?option=com_marketplace&view=products' ); $usr=JFactory::getUser(); if (!MarketplaceHelper::checkSeller($usr->id)) { $app->enqueueMessage(JText::_("NOT_AUTH"), 'error'); $this->setRedirect( JRoute::_( 'index.php?option=com_marketplace&view=addproduct&Itemid='. $addproductmenu, false ) ); return false; } $model=$this->getModel('Addproduct', 'MarketplaceModel'); $requestData = $this->input->post->get('jform', array(), 'array'); $postVar = $this->input->getArray($requestData); if (in_array('exif', get_loaded_extensions())) { $exif_enable = true; } else { $exif_enable = false; } $vmconf=VmConfig::loadConfig(); $form = $model->getForm(); $params = JComponentHelper::getParams('com_marketplace'); $recaptcha_enable=trim($params->get('recaptcha_enable')); $captcha=(boolean)$params->get('captcha'); if ($recaptcha_enable && $captcha) { $url_str=""; if (isset($postVar['virtuemart_product_id']) && $postVar['virtuemart_product_id']!="" ) { $url_str = '&virtuemart_product_id=' .$postVar['virtuemart_product_id']; } $data = $model->validate($form, $requestData); if ($data === false) { $errors = $model->getErrors(); for ($i = 0, $n = count($errors); $i < $n && $i < 3; $i++) { if ($errors[$i] instanceof Exception) { $app->enqueueMessage( $errors[$i]->getMessage(), 'warning' ); } else { $app->enqueueMessage($errors[$i], 'warning'); } } $this->setRedirect( JRoute::_( 'index.php?option=com_marketplace&view=addprodu'. 'ct&Itemid='.$addproductmenu.$url_str, false ) ); return false; } } $jinput->set('post_max_size', ini_get('post_max_size')); $lastchar=strrev($jinput->get('post_max_size')); $lastchar=$lastchar{0}; $max_file_uploads=ini_get('max_file_uploads'); $global_size=$jinput->get('post_max_size', '0', 'INT'); $param = JComponentHelper::getParams('com_marketplace'); $wk_addproduct_imgsize = $param->get('wk_addproduct_imgsize'); $model = $this->getModel('productsave'); $postVar['product_description'] = $jinput->get( 'product_description', '', 'RAW' ); $postVar['product_description_short'] = $jinput->get( 'product_description_short', '', 'RAW' ); $image = $jinput->files->get('image'); $imagepre = $jinput->get('imagepre', "", "RAW"); $mpdownloadable_file = $jinput->files->get('downloadable_file'); if (isset($mpdownloadable_file['size'])) { $downloadableFileSize = $mpdownloadable_file['size']; if ($wk_unit == 'K') { $fileunit = 'KB'; $downloadableFileSize = $downloadableFileSize/1000; } elseif ($wk_unit == 'M') { $downloadableFileSize = $downloadableFileSize/(1000*1000); $fileunit = 'MB'; } elseif ($wk_unit == 'G') { $downloadableFileSize = $downloadableFileSize/(1000*1000*1000); $fileunit = 'GB'; } if (($downloadableFileSize>$global_size) || ($downloadableFileSize >$configDownloadfilesize) ) { $this->setRedirect( 'index.php?option=com_marketplace&view=addproduct', JText::_('MAX_UPLOAD_FILE_SIZE').$configDownloadfilesize . $fileunit ); return false; } } $uploadpath = JPATH_ROOT . DIRECTORY_SEPARATOR . $vmconf->get("media_product_path"); if (!is_dir($uploadpath)) { $message = "Error Uploading Image"; $app->enqueueMessage($message, 'error'); return false; } $imagePath = ''; $countimg = count($image); /** * GenerateRandomString function * * @param integer $length var * * @return void */ function generateRandomString($length = 10) { $characters = '0123456789abcdefghijklmnopqrstuvw'. 'xyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[rand(0, strlen($characters) - 1)]; } return $randomString; } $imagepre_count=count($imagepre); if ($imagepre && $max_file_uploads>$imagepre_count ) { if (is_array($image)) { for ($k=0;$k<$imagepre_count;$k++) { for ($i=0;$i<$countimg;$i++) { if ($image[$i]['name']==rawurldecode($imagepre[$k])) { if ($image[$i]['name']!='') { $safename = JFile::makeSafe($image[$i]['name']); $safename = strtolower($safename); $ext = pathinfo($safename, PATHINFO_EXTENSION); $allowedExts = array( "gif", "jpeg", "jpg", "png" ); if ((($ext == "gif") || ($ext == "jpeg") || ($ext == "jpg") || ($ext == "pjpeg") || ($ext == "x-png") || ($ext == "png")) && in_array($ext, $allowedExts) ) { } else { $this->setRedirect( 'index.php?option=com_marketplace&vie'. 'w=addproduct&virtuemart_product_id='. $postVar['virtuemart_product_id'], JText::_('ACCEPTED_PROD_IMG_EXTENSION') ); return false; } $param = JComponentHelper::getParams( 'com_marketplace' ); $bytes = $param->get('wk_addproduct_imgsize'); if ($lastchar=='K') { $bytes=$bytes; $fileunit='KB'; $imgsize=$image[$i]['size']/1000; } elseif ($lastchar=='M') { $bytes=$bytes/1000; $imgsize=$image[$i]['size']/(1000*1000); $fileunit='MB'; } elseif ($lastchar=='G') { $bytes=$bytes/(1000*1000); $imgsize=$image[$i]['size']/(1000*1000*1000); $fileunit='GB'; } if (($imgsize>$global_size) || ($imgsize >$bytes) ) { $this->setRedirect( 'index.php?option=com_marketplace&vie'. 'w=addproduct&Itemid='.$addproductmenu. '&virtuemart_product_id='. $postVar['virtuemart_product_id'], JText::_('MAX_UPLOAD_IMG_SIZE'). $bytes. $fileunit ); return false; } else { $wk_rename[$i] = generateRandomString(); $today = date("s"); if (!JFile::upload( $image[$i]['tmp_name'], $uploadpath . DIRECTORY_SEPARATOR . $wk_rename[$i].$today.'.'.$ext ) ) { $this->setRedirect( 'index.php?option=com_marketpl'. 'ace&view=addproduct&Itemid=' .$addproductmenu, $this->getError(), 'error' ); } chmod( $uploadpath . DIRECTORY_SEPARATOR . $wk_rename[$i].$today.'.'.$ext, 0755 ); if ($exif_enable && ($ext==='jpeg' || $ext==='jpg')) { $exif = exif_read_data( $uploadpath . DIRECTORY_SEPARATOR . $wk_rename[$i].$today.'.'.$ext ); if (isset($exif) && isset($exif['Orientation']) ) { $ort = $exif['Orientation']; $source = imagecreatefromjpeg( $uploadpath . DIRECTORY_SEPARATOR . $wk_rename[$i].$today.'.'.$ext ); $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, $uploadpath. DIRECTORY_SEPARATOR. $wk_rename[$i].$today. '.'.$ext ); imagedestroy($rotate); } } } $imagePath = $vmconf->get( "media_product_path" ). $wk_rename[$i].$today.'.'.$ext; $postVar['imagepath'][$k] = $imagePath; $postVar['imagepath'][$k] = $postVar['imagepath'][$k]; $postVar['imagetype'][$k] = $image[$i]['type']; } } } } } if (isset($postVar['imagepath']) && $postVar['imagepath']!= null ) { $totalImages = count($postVar['imagepath']); } else { $totalImages = 0; } for ($k=$totalImages;$k<$imagepre_count;$k++) { $postVar['imagetype'][$k] = 'image/jpeg'; $postVar['imagepath'][$k] = $postVar['imagepre'][$k]; } $pics=$jinput->get('mydata', ''); if ($pics!='') { $pics=explode(',', $pics); unset($pics[0]); foreach ($pics as $key => $value) { if ($key!='0') { $postVar['imagepath'][] =$vmconf->get("media_product_path").$value; } $postVar['imagetype'][]='image/jpeg'; } } } } else { $this->setRedirect( 'index.php?option=com_marketplace&view=ad'. 'dproduct&virtuemart_product_id=' .$postVar['virtuemart_product_id']."&Itemid=".$addproductmenu, ($imagepre_count-$max_file_uploads). " ".JText::_('MAX_UPLOAD_IMG_COUNT') ); } $app=JFactory::getApplication(); /* Mp Trigger onSellerBeforeAddProduct */ JPluginHelper::importPlugin('system'); $dispatcher =JDispatcher::getInstance(); $addonData=$dispatcher->trigger( 'onSellerBeforeAddProduct', array(&$postVar) ); $validate=true; foreach ($addonData as $value) { if (!$value) { $validate=false; break; } } if (!$validate) { $this->setRedirect( 'index.php?option=com_marketplace&view=add'. 'product&virtuemart_product_id='. $postVar['virtuemart_product_id']."&Itemid=".$addproductmenu, JText::_('SOME_ERROR_OCCURRED'), "error" ); return; } if (!$model->saveProduct($postVar)) { $app->enqueueMessage(JText::_('SOME_ERROR_OCCURRED'), 'error'); $app->redirect( JRoute::_( 'index.php?option=com_marketplace&view=addproduct&Itemid='. $addproductmenu, false ) ); } else { $app->enqueueMessage(JText::_('PRODUCT_SAVED'), 'success'); $app->redirect( JRoute::_( 'index.php?option=com_marketplace&view=products&Itemid=' .$productmenu, false ) ); } } } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка