Spade

Mini Shell

Directory:~$ /home/lmsyaran/public_html/joomla4/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ /home/lmsyaran/public_html/joomla4/vendorgroupafterpurchase.zip

PK(:�[�#o,,
index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK(:�[�fd�0&0&vendorgroupafterpurchase.phpnu�[���<?php
/**
 * @package    HikaMarket for Joomla!
 * @version    3.1.1
 * @author     Obsidev S.A.R.L.
 * @copyright  (C) 2011-2020 OBSIDEV. All rights reserved.
 * @license    GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php
class plgHikashopVendorgroupafterpurchase extends JPlugin {

	public function __construct(&$subject, $config) {
		parent::__construct($subject, $config);
	}

	private function init() {
		static $init = null;
		if($init !== null)
			return $init;

		$init = defined('HIKAMARKET_COMPONENT');
		if(!$init) {
			$filename =
rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikamarket'.DS.'helpers'.DS.'helper.php';
			if(file_exists($filename)) {
				include_once($filename);
				$init = defined('HIKAMARKET_COMPONENT');
			}
		}
		return $init;
	}

	function onProductDisplay(&$product, &$html) {
		if(!$this->init())
			return;

		if(!empty($product->product_vendor_params) &&
is_string($product->product_vendor_params))
			$product->product_vendor_params =
hikamarket::unserialize($product->product_vendor_params);

		$joomlaAclType = hikamarket::get('type.joomla_acl');
		$trStyle = '';

		if(empty($product->product_vendor_params['vendorgroupafterpurchase_isproduct']))
			$trStyle = 'display:none;';

		$html[] = '
<div class="hkc-xl-4 hkc-lg-6 hikashop_product_block
hikashop_product_edit_vendorgroupafterpurchase"><div>
	<div class="hikashop_product_part_title
hikashop_product_edit_vendorgroupafterpurchase_title">'.JText::_('VENDOR_GROUP_AFTER_PURCHASE').'</div>
		<table class="admintable table"
style="width:100%">
			<tr>
				<td
class="key"><label>'.JText::_('HIKAM_IS_VENDOR_SPECIAL_PRODUCT').'</label></td>
				<td>'.JHTML::_('hikaselect.booleanlist',
'data[product][product_vendor_params][vendorgroupafterpurchase_isproduct]',
'onchange="window.localPage.vendorproduct_update(this);"',
@$product->product_vendor_params['vendorgroupafterpurchase_isproduct']).'</td>
			</tr>
			<tr id="hikamarket_vendor_group_activator"
style="'.$trStyle.'">
				<td
class="key"><label>'.JText::_('HIKAM_IS_VENDOR_ACTIVATION_PRODUCT').'</label></td>
				<td>'.JHTML::_('hikaselect.booleanlist',
'data[product][product_vendor_params][vendorgroupafterpurchase_vendoractivation]',
'',
@$product->product_vendor_params['vendorgroupafterpurchase_vendoractivation']).'</td>
			</tr>
			<tr id="hikamarket_vendor_group_selector"
style="'.$trStyle.'">
				<td
class="key"><label>'.JText::_('HIKAM_VENDOR_GROUP').'</label></td>
				<td>'.$joomlaAclType->display('data[product][product_vendor_params][vendorgroupafterpurchase_group]',
@$product->product_vendor_params['vendorgroupafterpurchase_group']).'</td>
			</tr>
		</table>
<script type="text/javascript">
if(!window.localPage)
	window.localPage = {};
window.localPage.vendorproduct_update = function(el) {
	var d = document,
		tr1 = d.getElementById("hikamarket_vendor_group_activator")
		tr2 = d.getElementById("hikamarket_vendor_group_selector");
	if(!tr1 && !tr2) return;
	s = (el.value == "1" && el.checked) ? "" :
"none";
	if(tr1) tr1.style.display = s;
	if(tr2) tr2.style.display = s;
}
</script>
</div></div>';
	}

	protected function loadProductVendorParams(&$order) {
		if(empty($order->hikamarket))
			$order->hikamarket = new stdClass();

		if(!empty($order->hikamarket->products_vendor_params))
			return;

		$db = JFactory::getDBO();
		$product_ids = array();
		$order_id = 0;

		if(!empty($order->cart->products)) {
			foreach($order->cart->products as $product) {
				$product_ids[] = (int)$product->product_id;
			}
		} else if(!empty($order->product)) {
			if(is_array($order->product)) {
				foreach($order->product as $product) {
					$product_ids[] = (int)$product->product_id;
				}
			} else {
				$product_ids[] = $order->product->product_id;
			}
		} else {
			$order_id = $order->order_id;
		}

		if(!empty($product_ids)) {
			$query = 'SELECT p.product_id, p.product_parent_id,
p.product_vendor_params, v.product_vendor_params as
parent_product_vendor_params '.
				' FROM ' . hikashop_table('product') . ' AS p
LEFT JOIN ' . hikashop_table('product') . ' AS v ON
p.product_id = v.product_parent_id '.
				' WHERE p.product_id IN ('.implode(',',
$product_ids).')';
		} else if(!empty($order_id)) {
			$query = 'SELECT p.product_id, p.product_parent_id,
p.product_vendor_params, v.product_vendor_params as
parent_product_vendor_params '.
				' FROM ' . hikashop_table('order_product') . '
AS op '.
				' INNER JOIN ' . hikashop_table('product') . '
AS p ON op.product_id = p.product_id '.
				' LEFT JOIN ' . hikashop_table('product') . '
AS v ON p.product_id = v.product_parent_id '.
				' WHERE op.order_id = ' . (int)$order_id;
		}

		if(!empty($query)) {
			$db->setQuery($query);
			$order->hikamarket->products_vendor_params =
$db->loadObjectList('product_id');
		}
	}


	public function onBeforeOrderCreate(&$order, &$do) {
		if(empty($order) || empty($order->cart) ||
empty($order->cart->products))
			return;

		$app = JFactory::getApplication();
		if($app->isAdmin())
			return;

		if(!$this->init())
			return;
		$this->loadProductVendorParams($order);
		$vendor = false;

		foreach($order->hikamarket->products_vendor_params as
&$product) {
			if(empty($product->product_vendor_params) &&
empty($product->parent_product_vendor_params))
				continue;
			if(!empty($product->product_vendor_params) &&
is_string($product->product_vendor_params))
				$product->product_vendor_params =
hikamarket::unserialize($product->product_vendor_params);
			if(!empty($product->parent_product_vendor_params) &&
is_string($product->parent_product_vendor_params))
				$product->parent_product_vendor_params =
hikamarket::unserialize($product->parent_product_vendor_params);

			if(!empty($product->product_vendor_params['vendorgroupafterpurchase_isproduct'])
||
!empty($product->parent_product_vendor_params['vendorgroupafterpurchase_isproduct']))
{
				if(!$this->init())
					continue;

				if($vendor === false)
					$vendor = hikamarket::loadVendor(true);

				if($vendor === null) {
					$do = false;
					foreach($order->cart->products as $p) {
						if($p->product_id == $product->product_id) {
							$app->enqueueMessage(JText::sprintf('HIKAM_NEED_TO_BE_VENDOR_FOR_BUYING_PRODUCT',
$p->order_product_name), 'error');
							break;
						}
					}
				}
			}
		}
	}

	public function onAfterOrderCreate(&$order, &$send_email) {
		return $this->onAfterOrderUpdate($order, $send_email);
	}

	public function onAfterOrderUpdate(&$order, &$send_email) {
		if(empty($order) || empty($order->order_status))
			return;
		if(!empty($order->old) &&
!empty($order->old->order_status) && $order->order_status
== $order->old->order_status)
			return;

		$config = hikashop_config();
		$confirmed_status = $config->get('order_confirmed_status');
		$invoice_statuses = explode(',',
$config->get('invoice_order_statuses'));
		if(empty($invoice_statuses))
			$invoice_statuses = array('confirmed','shipped');

		if($order->order_status != $confirmed_status &&
!in_array($order->order_status, $invoice_statuses))
			return;

		if(!$this->init())
			return;
		$this->loadProductVendorParams($order);

		$user_id = 0;
		if(!empty($order->old->order_user_id))
			$user_id = (int)$order->old->order_user_id;
		if(!empty($order->order_user_id))
			$user_id = (int)$order->order_user_id;

		$vendor = false;
		$saveVendor = null;
		$vendorClass = null;

		foreach($order->hikamarket->products_vendor_params as
&$product) {
			if(empty($product->product_vendor_params) &&
empty($product->parent_product_vendor_params))
				continue;
			if(!empty($product->product_vendor_params) &&
is_string($product->product_vendor_params))
				$product->product_vendor_params =
hikamarket::unserialize($product->product_vendor_params);
			if(!empty($product->parent_product_vendor_params) &&
is_string($product->parent_product_vendor_params))
				$product->parent_product_vendor_params =
hikamarket::unserialize($product->parent_product_vendor_params);

			$params = null;
			if(!empty($product->parent_product_vendor_params))
				$params = $product->parent_product_vendor_params;
			if(!empty($product->product_vendor_params))
				$params = $product->product_vendor_params;

			if(!empty($params['vendorgroupafterpurchase_isproduct'])) {
				$this->init();
				if($vendor === false) {
					$vendorClass = hikamarket::get('class.vendor');
					$vendor = $vendorClass->get($user_id, 'user');
					if(!empty($vendor->vendor_access) &&
is_string($vendor->vendor_access))
						$vendor->vendor_access = explode(',',
$vendor->vendor_access);
					if(empty($vendor->vendor_access))
						$vendor->vendor_access = array();
				}

				if(!empty($params['vendorgroupafterpurchase_vendoractivation'])
&& empty($vendor->vendor_published)) {
					if(empty($saveVendor)) {
						$saveVendor = new stdClass();
						$saveVendor->vendor_id = $vendor->vendor_id;
					}
					$saveVendor->vendor_published = 1;
				}

				if(!empty($params['vendorgroupafterpurchase_group'])) {
					$groups = explode(',',
$params['vendorgroupafterpurchase_group']);
					foreach($groups as $group) {
						$group = '@' . $group;
						if(!in_array($group, $vendor->vendor_access)) {
							$vendor->vendor_access[] = $group;
							if(empty($saveVendor)) {
								$saveVendor = new stdClass();
								$saveVendor->vendor_id = $vendor->vendor_id;
							}
							$saveVendor->vendor_access = implode(',',
$vendor->vendor_access);
						}
					}
				}
			}
		}

		if(!empty($saveVendor)) {
			$vendorClass->save($saveVendor);
		}
	}
}
PK(:�[A���vendorgroupafterpurchase.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="2.5" type="plugin"
group="hikashop" method="upgrade">
	<name>HikaShop - Vendor group after purchase</name>
	<hikainstall ordering="0" enable="0"
report="0" />
	<creationDate>20 juillet 2020</creationDate>
	<version>3.1.1</version>
	<author>Obsidev</author>
	<authorEmail>dev@obsidev.com</authorEmail>
	<authorUrl>http://www.obsidev.com</authorUrl>
	<copyright>Copyright (C) 2012-2020 OBSIDEV SARL - All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<description>HikaShop/HikaMarket integration - Vendor group after
purchase</description>
	<files>
		<filename
plugin="vendorgroupafterpurchase">vendorgroupafterpurchase.php</filename>
	</files>
	<params addpath="/components/com_hikashop/params">
	</params>
	<config>
		<fields name="params"
addfieldpath="/components/com_hikashop/fields">
		</fields>
	</config>
</extension>
PK(:�[�#o,,
index.htmlnu�[���PK(:�[�fd�0&0&fvendorgroupafterpurchase.phpnu�[���PK(:�[A����&vendorgroupafterpurchase.xmlnu�[���PK�*