Spade

Mini Shell

Directory:~$ /proc/self/root/home/lmsyaran/public_html/css/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ //proc/self/root/home/lmsyaran/public_html/css/vendorlocationfilter.tar

index.html000064400000000054151165335470006552 0ustar00<html><body
bgcolor="#FFFFFF"></body></html>vendorlocationfilter.php000064400000013224151165335470011525
0ustar00<?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 plgHikamarketVendorlocationfilter extends JPlugin {

	protected $db = null;

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

		if(!isset($this->params)) {
			$plugin = JPluginHelper::getPlugin('hikamarket',
'vendorlocationfilter');
			$this->params = new JRegistry($plugin->params);
		}
	}

	public function init() {
		static $init = null;
		if($init !== null)
			return $init;
		$use_search_module =
(int)$this->params->get('use_search_module', 1);
		if(!$use_search_module) {
			$init = false;
			return false;
		}
		$this->db = JFactory::getDBO();
		$init = true;
		return true;
	}

	private function dbEscape($data) {
		if(empty($this->db))
			$this->db = JFactory::getDBO();
		if(HIKASHOP_J30)
			return $this->db->escape($data, true);
		return $this->db->getEscaped($data, true);
	}

	public function onBeforeVendorListingDisplay(&$view, &$params) {
		$app = JFactory::getApplication();
		if($app->isAdmin() || !$this->init())
			return;

		$use_search_module =
(int)$this->params->get('use_search_module', 1);
		$empty_is_all = (int)$this->params->get('empty_is_all',
1);
		$hide_for_guest =
(int)$this->params->get('hide_for_guest', 0);


		$location_search = null;
		if($use_search_module) {
			$location_search =
hikaInput::get()->getVar('location_search', null);
			if($location_search !== null) {
				$app->setUserState(HIKAMARKET_COMPONENT.'.vendor_location_filter.search',
$location_search);
			} else {
				$location_search =
$app->getUserState(HIKAMARKET_COMPONENT.'.vendor_location_filter.search',
null);
			}
			if(empty($location_search))
				$location_search = null;
		}

		$filter_mode = $this->params->get('filter_mode',
'zip;city');
		if(empty($filter_mode)) $filter_mode = 'zip;city';
		$filter_mode = explode(';', trim($filter_mode));
		$vendorZipColumn =
$this->params->get('vendor_zip_column',
'accepted_zip');
		if(empty($vendorZipColumn)) $vendorZipColumn = 'accepted_zip';
		$vendorZipColumn = $this->db->quoteName($vendorZipColumn);
		$vendorCitiesColumn =
$this->params->get('vendor_city_column',
'accepted_cities');
		if(empty($vendorCitiesColumn)) $vendorCitiesColumn =
'accepted_cities';
		$vendorCitiesColumn = $this->db->quoteName($vendorCitiesColumn);

		$user_id = hikashop_loadUser();
		if(empty($user_id) && !$use_search_module) {
			if(!empty($hide_for_guest)) {
				$this->pushEmptyFilter($params, $filter_mode, $vendorZipColumn,
$vendorCitiesColumn);
				$this->mergeFilters($params);
			}
			return;
		}

		$addressClass = hikashop_get('class.address');
		if(!empty($user_id))
			$addresses = $addressClass->loadUserAddresses($user_id);
		$userZip = 0;
		$userCity = '';
		if(!empty($addresses)) {
			$address = reset($addresses);
			if(!empty($address->address_post_code))
				$userZip = trim($address->address_post_code);
			if(!empty($address->address_city))
				$userCity = trim($address->address_city);
		}

		if((int)$this->params->get('zipcode_digits', 0))
			$userZip = '' . ((int)$userZip);

		$zipMode = in_array('zip', $filter_mode);
		$cityMode = in_array('city', $filter_mode);

		if($location_search === null && (!$zipMode || empty($userZip))
&& (!$cityMode || empty($userCity))) {
			$this->pushEmptyFilter($params, $filter_mode, $vendorZipColumn,
$vendorCitiesColumn);
			$this->mergeFilters($params);
			return;
		}

		if(in_array('zip', $filter_mode)) {
			$f = array();
			$stars = '*';
			if($location_search !== null || !empty($userZip)) {
				if($location_search !== null) {
					$f[] = 'vendor.'.$vendorZipColumn.' LIKE
\'%'.$this->dbEscape($location_search).'%\'';
				} else {
					$f[] = 'vendor.'.$vendorZipColumn.' LIKE
\'%'.$this->dbEscape($userZip).'%\'';
				}
				if(!empty($userZip)) {
					for($i = strlen($userZip) - 1; $i > 1; $i--) {
						$z = substr($userZip, 0, $i) . $stars;
						$f[] = 'vendor.'.$vendorZipColumn.' LIKE
\'%'.$this->dbEscape($z).'%\'';
						$stars .= '*';
					}
				}
			}
			unset($stars);

			if(!empty($f))
				$params['filter']['zip_filter'] =
'('.implode(') OR (', $f).')';
		}

		if(in_array('city', $filter_mode) && ($location_search
!== null || !empty($userCity))) {
			if($location_search !== null) {
				$params['filter']['city_filter'] =
'vendor.'.$vendorCitiesColumn.' LIKE
\'%'.$this->dbEscape($location_search).'%\'';
			} else {
				$params['filter']['city_filter'] =
'vendor.'.$vendorCitiesColumn.' LIKE
\'%'.$this->dbEscape($userCity).'%\'';
			}
		}

		$this->mergeFilters($params);
	}

	private function pushEmptyFilter(&$params, $filter_mode,
$vendorZipColumn, $vendorCitiesColumn) {
		if(in_array('zip', $filter_mode))
			$params['filter']['hide_zip_guest'] =
'(vendor.'. $vendorZipColumn.' IS NULL OR vendor.'.
$vendorZipColumn.' = \'\' OR vendor.'.
$vendorZipColumn.' = \'*\')';
		if(in_array('city', $filter_mode))
			$params['filter']['hide_city_guest'] =
'(vendor.'. $vendorCitiesColumn.' IS NULL OR vendor.'.
$vendorCitiesColumn.' = \'\' OR vendor.'.
$vendorCitiesColumn.' = \'*\')';
	}

	private function mergeFilters(&$params) {
		if(isset($params['filter']['zip_filter']) &&
isset($params['filter']['city_filter'])) {
			$params['filter']['location_filter'] = '('
. $params['filter']['zip_filter'] . ') OR ('
. $params['filter']['city_filter'] . ')';
			unset($params['filter']['zip_filter']);
			unset($params['filter']['city_filter']);
		}
	}
}
vendorlocationfilter.xml000064400000007300151165335470011534
0ustar00<?xml version="1.0" encoding="utf-8"?>
<extension version="2.5" type="plugin"
group="hikamarket" method="upgrade">
	<name>HikaMarket Vendor User Location Filter</name>
	<hikainstall ordering="0" enable="0"
report="0" />
	<creationDate>20 juillet 2020</creationDate>
	<version>3.1.1</version>
	<author>Obsidev</author>
	<authorEmail>contact@obsidev.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>(C) 2011-2020 OBSIDEV. All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<description>HikaMarket Vendor User Location
Filter</description>
	<files>
		<filename
plugin="vendorlocationfilter">vendorlocationfilter.php</filename>
	</files>
	<params addpath="/components/com_hikamarket/params">
		<param name="use_search_module" type="radio"
default="1" label="Use search module"
description="">
			<option value="0">No</option>
			<option value="1">Yes</option>
		</param>
		<param name="filter_mode" type="list"
default="zip" label="Filter Mode"
description="">
			<option value="zip">Zip</option>
			<option value="city">City</option>
			<option value="zip;city">Both</option>
		</param>
		<param name="vendor_zip_column" type="text"
label="Vendor Zips field" size="30"
default="accepted_zip" description="The vendor custom field
column name for the list of zip" />
		<param name="vendor_city_column" type="text"
label="Vendor City field" size="30"
default="accepted_cities" description="The vendor custom
field column name for the list of cities" />
		<param name="empty_is_all" type="radio"
default="1" label="Empty field means *all*"
description="">
			<option value="0">No</option>
			<option value="1">Yes</option>
		</param>
		<param name="hide_for_guest" type="radio"
default="0" label="Hide for guest"
description="">
			<option value="0">No</option>
			<option value="1">Yes</option>
		</param>
		<param name="zipcode_digits" type="radio"
default="0" label="Zips are only digits"
description="">
			<option value="0">No</option>
			<option value="1">Yes</option>
		</param>
	</params>
	<config>
		<fields name="params"
addfieldpath="/components/com_hikamarket/fields">
			<fieldset name="basic">
				<field name="use_search_module" type="radio"
default="1" label="Use search module"
description="" class="btn-group btn-group-yesno">
					<option value="0">No</option>
					<option value="1">Yes</option>
				</field>
				<field name="filter_mode" type="list"
default="zip" label="Filter Mode"
description="">
					<option value="zip">Zip</option>
					<option value="city">City</option>
					<option value="zip;city">Both</option>
				</field>
				<field name="vendor_zip_column" type="text"
label="Vendor Zips field" size="30"
default="accepted_zip" description="The vendor custom field
column name for the list of zip" />
				<field name="vendor_city_column" type="text"
label="Vendor City field" size="30"
default="accepted_cities" description="The vendor custom
field column name for the list of cities" />
				<field name="empty_is_all" type="radio"
default="1" label="Empty field means *all*"
description="" class="btn-group btn-group-yesno">
					<option value="0">No</option>
					<option value="1">Yes</option>
				</field>
				<field name="hide_for_guest" type="radio"
default="0" label="Hide for guest"
description="" class="btn-group btn-group-yesno">
					<option value="0">No</option>
					<option value="1">Yes</option>
				</field>
				<field name="zipcode_digits" type="radio"
default="0" label="Zips are only digits"
description="" class="btn-group btn-group-yesno">
					<option value="0">No</option>
					<option value="1">Yes</option>
				</field>
			</fieldset>
		</fields>
	</config>
</extension>