Spade

Mini Shell

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

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

google_products.php000064400000052372151157241570010475 0ustar00<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php
class plgHikashopGoogle_products extends JPlugin {

	function onHikashopCronTrigger(&$messages) {
		if(!hikashop_level(1))
			return;

		$pluginsClass = hikashop_get('class.plugins');
		$plugin =
$pluginsClass->getByName('hikashop','google_products');

		if( empty($plugin->params['enable_auto_update']) &&
empty($plugin->params['local_path'])){
			return true;
		}

		if(empty($plugin->params['frequency'])){
			$plugin->params['frequency'] = 86400;
		}
		if(!empty($plugin->params['last_cron_update']) &&
$plugin->params['last_cron_update']+$plugin->params['frequency']>time()){
			return true;
		}

		$plugin->params['last_cron_update']=time();
		$pluginsClass->save($plugin);
		$pluginsClass->loadParams($plugin);
		$xml = $this->generateXML();
		if(empty($xml))
			return;

		$app = JFactory::getApplication();
		if(!empty($plugin->params['local_path'])) {
			$path=$this->_getRelativePath($plugin->params['local_path']);
			jimport('joomla.filesystem.file');
			if(!JFile::write(JPATH_ROOT.DS.$path,$xml)){
				$message = 'Could not write Google Merchant file to
'.JPATH_ROOT.DS.$path;
			}else{
				$message = 'Google Merchant file written to
'.JPATH_ROOT.DS.$path;
			}
			$messages[] = $message;
			$app->enqueueMessage($message);
		}

		if(empty($plugin->params['enable_auto_update']))
			return true;

		if(empty($plugin->params['google_password']) ||
empty($plugin->params['user_name']) ||
empty($plugin->params['file_name']))
			return true;

		$pwd = $plugin->params['google_password'];
		$user = $plugin->params['user_name'];
		$name = $plugin->params['file_name'];

		$message = $this->_connectionToGoogleDB($user,$pwd, $xml, $plugin,
$name);
		if($message === true) {
			$message = 'Products information sent to Google Merchant';
		}

		$messages[] = $message;
		$app->enqueueMessage($message);
	}

	function _getRelativePath($path) {
		$relativePath=str_replace(JPATH_ROOT.DS,'',$path);
		return $relativePath;
	}

	function downloadXML(){
		if(!hikashop_level(1))
			return;

		$xml = $this->generateXML();
		@ob_clean();
		header("Pragma: public");
		header("Expires: 0"); // set expiration time
		header("Cache-Control: must-revalidate, post-check=0,
pre-check=0");
		header("Content-Type: application/force-download");
		header("Content-Type: application/octet-stream");
		header("Content-Type: application/download");
		header("Content-Disposition: attachment;
filename=Google_data_feed_".time().".xml;");
		header("Content-Transfer-Encoding: binary");
		header('Content-Length: '.strlen($xml));
		echo $xml;
		exit;
	}

	function generateXML() {
		if(!hikashop_level(1))
			return '';

		$app = JFactory::getApplication();
		$db = JFactory::getDBO();
		$pluginsClass = hikashop_get('class.plugins');
		$plugin =
$pluginsClass->getByName('hikashop','google_products');
		if(empty($plugin->params['condition'])){
			$plugin->params['condition'] = "new";
		}

		if(@$plugin->params['increase_perf']){
			$memory = '128M';
			$max_execution = '120';
			if($plugin->params['increase_perf'] == 2){
				$memory = '512M';
				$max_execution = '600';
			}elseif($plugin->params['increase_perf'] == 3){
				$memory = '1024M';
				$max_execution = '6000';
			}elseif($plugin->params['increase_perf'] == 10){
				$memory = '4096M';
				$max_execution = '0';
			}
			ini_set('memory_limit',$memory);
			ini_set('max_execution_timeout',$max_execution);
		}

		$query = 'SELECT * FROM
'.hikashop_table('product').' WHERE
product_access=\'all\' AND product_published=1 AND
product_type=\'main\'';
		if(!empty($plugin->params['in_stock_only'])){
			$query .= ' AND product_quantity!=0';
		}
		$db->setQuery($query);
		$products = $db->loadObjectList();

		if(empty($products)){
			return true;
		}

		$ids = array();
		foreach($products as $key => $row){
			$ids[] = (int)$row->product_id;
			$products[$key]->alias =
JFilterOutput::stringURLSafe($row->product_name);
		}
		$queryCategoryId = 'SELECT * FROM
'.hikashop_table('product_category').' WHERE product_id
IN ('.implode(',',$ids).')';
		$db->setQuery($queryCategoryId);
		$categoriesId = $db->loadObjectList();
		foreach($products as $k => $row){
			foreach($categoriesId as $catId){
				if($row->product_id == $catId->product_id){
					$products[$k]->categories_id[] = $catId->category_id;
				}
			}
		}

		$usedCat=array();
		$catList="";
		foreach($products as $product){
			if(!empty($product->categories_id)){
				foreach($product->categories_id as $catId){
					if(!isset($usedCat[$catId])){
						$usedCat[$catId] = $catId;
						$catList .= $catId.',';
					}
				}
			}
		}
		$catList = substr($catList,0,-1);

		$parentCatId = 'product';
		$categoryClass = hikashop_get('class.category');
		$categoryClass->getMainElement($parentCatId);

		$query = 'SELECT DISTINCT b.* FROM
'.hikashop_table('category').' AS a LEFT JOIN '.
					hikashop_table('category').' AS b ON a.category_left
>= b.category_left WHERE '.
					'b.category_right >= a.category_right AND a.category_id IN
('.$catList.') AND a.category_published=1 AND
a.category_type=\'product\' AND
b.category_id!='.$parentCatId.' '.
					'ORDER BY b.category_left';
		$db->setQuery($query);
		$categories = $db->loadObjectList();

		$category_path=array();
		$discard_products_without_valid_categories = array();
		foreach($products as $k => $product){
			if(empty($product->categories_id)){
				$discard_products_without_valid_categories[] = $k;
			}else{
				$path = array();
				$at_least_a_category_valid = false;
				foreach($categories as $category){
					foreach($product->categories_id as $catID){
						if( $catID == $category->category_id){
							$at_least_a_category_valid = true;
							if( !isset($category_path[$catID])){
								$category_path[$catID] = $this->_getCategoryParent($category,
$categories, $path, $parentCatId);
							}
						}
					}
				}
				if(!$at_least_a_category_valid){
					$discard_products_without_valid_categories[] = $k;
				}
			}
		}
		if(!empty($discard_products_without_valid_categories)){
			foreach($discard_products_without_valid_categories as $k){
				unset($products[$k]);
			}
		}

		foreach($category_path as $id => $mainCat){
			$path='';
			for($i=count($mainCat);$i>0;$i--){
				$path .= $mainCat[$i-1]->category_name.' > ';
			}
			$category_path[$id]['path'] = substr($path,0,-3);
		}


		$queryImage = 'SELECT * FROM
'.hikashop_table('file').' WHERE file_ref_id IN
('.implode(',',$ids).') AND
file_type=\'product\' ORDER BY file_ordering ASC, file_id
ASC';
		$db->setQuery($queryImage);
		$images = $db->loadObjectList();
		foreach($products as $k => $row){
			$products[$k]->images = array();
			$i=0;
			foreach($images as $image){
				if($row->product_id == $image->file_ref_id){
					$products[$k]->images[$i] = new stdClass();
					foreach(get_object_vars($image) as $key => $name){
						$products[$k]->images[$i]->$key = $name;
					}
				}
				$i++;
			}
		}
		$db->setQuery('SELECT * FROM
'.hikashop_table('variant').' WHERE variant_product_id
IN ('.implode(',',$ids).')');
		$variants = $db->loadObjectList();
		if(!empty($variants)){
			foreach($products as $k => $product){
				foreach($variants as $variant){
					if($product->product_id == $variant->variant_product_id){
						$products[$k]->has_options = true;
						break;
					}
				}
			}
		}


		$currencyClass = hikashop_get('class.currency');
		$config =& hikashop_config();
		$main_currency = (int)$config->get('main_currency',1);
		if(empty($plugin->params['price_displayed']))
$plugin->params['price_displayed'] = 'cheapest';

		if($plugin->params['price_displayed'] ==
'average'){
			$currencyClass->getProductsPrices($products,
array('currency_id' => $main_currency,
'price_display_type' => 'range',
'no_discount' =>
(int)@$plugin->params['no_discount']));
			$tmpPrice = 0;
			$tmpTaxPrice = 0;
			foreach($products as $product){
				if(isset($product->prices[0]->price_value)){
					if(count($product->prices) > 1){
						for($i=0;$i<count($product->prices);$i++){
							if($product->prices[$i]->price_value > $tmpPrice){
								$tmpPrice += $product->prices[$i]->price_value;
								$tmpTaxPrice += @$product->prices[$i]->price_value_with_tax;
							}
						}
						$product->prices[0]->price_value =
$tmpPrice/count($product->prices);
						$product->prices[0]->price_value_with_tax =
$tmpTaxPrice/count($product->prices);
						for($i=1;$i<count($product->prices);$i++){
							unset($product->prices[$i]);
						}
					}
				}
			}
		}else{
			$currencyClass->getProductsPrices($products,
array('currency_id' => $main_currency,
'price_display_type' =>
$plugin->params['price_displayed'], 'no_discount'
=> (int)@$plugin->params['no_discount']));
		}

		if(!empty($plugin->params['use_brand'])){
			$parentCatId = 'manufacturer';
			$categoryClass->getMainElement($parentCatId);
			$query = 'SELECT DISTINCT * FROM
'.hikashop_table('category').' AS a WHERE
a.category_published=1 AND a.category_type=\'manufacturer\' AND
a.category_parent_id='.$parentCatId;
			$db->setQuery($query);
			$brands = $db->loadObjectList('category_id');
		}

		$config =& hikashop_config();
		$uploadFolder =
ltrim(JPath::clean(html_entity_decode($config->get('uploadfolder'))),DS);
		$uploadFolder = rtrim($uploadFolder,DS).DS;
		$this->uploadFolder_url =
str_replace(DS,'/',$uploadFolder);
		$this->uploadFolder = JPATH_ROOT.DS.$uploadFolder;
		$app = JFactory::getApplication();
		$this->thumbnail = $config->get('thumbnail',1);
		$this->thumbnail_x = $config->get('thumbnail_x',100);
		$this->thumbnail_y = $config->get('thumbnail_y',100);
		$this->main_thumbnail_x = $this->thumbnail_x;
		$this->main_thumbnail_y = $this->thumbnail_y;
		$this->main_uploadFolder_url = $this->uploadFolder_url;
		$this->main_uploadFolder = $this->uploadFolder;

		$conf = JFactory::getConfig();
		if(!HIKASHOP_J30) {
			$siteName = $conf->getValue('config.sitename');
			$siteDesc = $conf->getValue('config.MetaDesc');
		} else {
			$siteName = $conf->get('sitename');
			$siteDesc = $conf->get('MetaDesc');
		}
		if(!empty($plugin->params['channel_description'])) {
			$siteDesc = $plugin->params['channel_description'];
		}
		$siteAddress = JURI::base();
		$siteAddress =
str_replace('administrator/','',$siteAddress);
		$xml = '<?xml version="1.0" encoding="UTF-8"
?>'."\n".
					'<rss version="2.0"
xmlns:g="http://base.google.com/ns/1.0">'."\n".
					"\t".'<channel>'."\n".
								"\t\t".'<title><![CDATA[
'.$siteName.' ]]></title>'."\n".
								"\t\t".'<description><![CDATA[
'.$siteDesc.' ]]></description>'."\n".
								"\t\t".'<link><![CDATA[
'.$siteAddress.'
]]></link>'."\n"."\n";
		$productClass = hikashop_get('class.product');
		$volumeHelper = hikashop_get('helper.volume');
		$weightHelper = hikashop_get('helper.weight');
		foreach($products as $product) {

			if(isset($product->prices[0]->price_value)){
				$price_name = 'price_value';
				if(!empty($plugin->params['taxed_price'])){
					$price_name = 'price_value_with_tax';
				}
				if(empty($product->product_min_per_order)){
					$price = round($product->prices[0]->$price_name, 2);
				}
				else{
					$price = round($product->prices[0]->$price_name,
2)*$product->product_min_per_order;
				}
				$currencies = array();
				$currencyClass = hikashop_get('class.currency');
				$ids[$product->prices[0]->price_currency_id] =
$product->prices[0]->price_currency_id;
				$currencies =
$currencyClass->getCurrencies($ids[$product->prices[0]->price_currency_id],$currencies);
				$currency = reset($currencies);
				$xml .= '<item>'."\n";
				$productClass->addAlias($product);
				if(in_array($product->product_weight_unit, array('mg',
'kg'))) {
					$product->product_weight =
$weightHelper->convert($product->product_weight,
$product->product_weight_unit, 'g');
					$product->product_weight_unit = 'g';
				}
				if(in_array($product->product_weight_unit, array('ozt')))
{
					$product->product_weight =
$weightHelper->convert($product->product_weight,
$product->product_weight_unit, 'oz');
					$product->product_weight_unit = 'oz';
				}
				if(in_array($product->product_dimension_unit, array('m',
'dm', 'mm'))) {
					$product->product_length =
$volumeHelper->convert($product->product_length,
$product->product_dimension_unit, 'cm',
'dimension');
					$product->product_width =
$volumeHelper->convert($product->product_width,
$product->product_dimension_unit, 'cm',
'dimension');
					$product->product_height =
$volumeHelper->convert($product->product_height,
$product->product_dimension_unit, 'cm',
'dimension');
					$product->product_dimension_unit = 'cm';
				}
				if(in_array($product->product_dimension_unit, array('ft',
'yd'))) {
					$product->product_length =
$volumeHelper->convert($product->product_length,
$product->product_dimension_unit, 'in',
'dimension');
					$product->product_width =
$volumeHelper->convert($product->product_width,
$product->product_dimension_unit, 'in',
'dimension');
					$product->product_height =
$volumeHelper->convert($product->product_height,
$product->product_dimension_unit, 'in',
'dimension');
					$product->product_dimension_unit = 'in';
				}

				$xml .=
"\t".'<g:id>'.$product->product_id.'</g:id>'."\n";
				$xml .= "\t".'<title><![CDATA[
'.substr($product->product_name, 0 ,150).'
]]></title>'."\n";
				$itemID = '';

				if(!empty($plugin->params['item_id'])){
					$itemID =
'&Itemid='.$plugin->params['item_id'];
				}
				if(!empty($product->product_canonical)){
					$xml .= "\t".'<g:link><![CDATA[
'.str_replace('/administrator/','/',hikashop_cleanURL($product->product_canonical)).'
]]></g:link>'."\n";
				}else{
					$xml .= "\t".'<g:link><![CDATA[
'.$siteAddress.'index.php?option=com_hikashop&ctrl=product&task=show&cid='.$product->product_id.'&name='.$product->alias.$itemID.'
]]></g:link>'."\n";
				}
				$xml .= "\t".'<g:price>'.$price.'
'.$currency->currency_code.'</g:price>'."\n";
				if(@$plugin->params['preview'] == 'meta') {
						$xml .= "\t".'<g:description><![CDATA[
'.substr(strip_tags($product->product_meta_description),0,5000).'
]]></g:description>'."\n";
				} elseif(!empty($product->product_description)){
					if(@$plugin->params['preview']) {
						 $xml .= "\t".'<g:description><![CDATA[
'.substr(strip_tags(preg_replace('#<hr
*id="system-readmore"
*/>.*#is','',$product->product_description)),0,5000).'
]]></g:description>'."\n";
					} else {
						$xml .= "\t".'<g:description><![CDATA[
'.substr(strip_tags($product->product_description),0,5000).'
]]></g:description>'."\n";
					}
				}elseif(!empty($plugin->params['message'])){
					$xml .= "\t".'<g:description><![CDATA[
'.substr($plugin->params['message'], 0 ,5000).'
]]></g:description>'."\n";
				}else{
					$xml .= "\t".'<g:description>No
description</g:description>'."\n";
				}
				$xml .=
$this->_additionalParameter($product,$plugin,'condition','condition');

				$xml .=
$this->_additionalParameter($product,$plugin,'gender','gender');

				$column = @$plugin->params['identifier_exists'];
				if(!empty($column) && ($column == 'TRUE' ||
(!empty($product->$column) && $product->$column ==
'TRUE')))
					$xml .=
$this->_additionalParameter($product,$plugin,'gtin','gtin');

				$xml .=
$this->_additionalParameter($product,$plugin,'age_group','age_group');

				$xml .=
$this->_additionalParameter($product,$plugin,'size','size');

				$xml .=
$this->_additionalParameter($product,$plugin,'color','color');

				$xml .=
$this->_additionalParameter($product,$plugin,'identifier_exists','identifier_exists');

				$xml .= $this->_addShipping($product,$plugin);

				if(!empty($plugin->params['use_brand']) &&
!empty($brands[$product->product_manufacturer_id]->category_name)){
					$xml .= "\t".'<g:brand><![CDATA[
'.$brands[$product->product_manufacturer_id]->category_name.'
]]></g:brand>'."\n";
				}else{
					$xml .=
$this->_additionalParameter($product,$plugin,'brand','brand');
				}

				$xml .=
$this->_additionalParameter($product,$plugin,'category','google_product_category');

				if($plugin->params['add_code']){
					$xml .= "\t".'<g:mpn><![CDATA[
'.str_replace(array('
','-'),array('',''),$product->product_code).'
]]></g:mpn>'."\n";
				}else {
					$xml .=
$this->_additionalParameter($product,$plugin,'mpn','mpn');
				}

				if(isset($product->images) && count($product->images)){
					$i = 0;
					$name = "image_link";
					foreach($product->images as $image){
						if($i < 10){
							 $xml .=
"\t".'<g:'.$name.'>'.htmlspecialchars($siteAddress.$this->main_uploadFolder_url.$image->file_path).'</g:'.$name.'>'."\n";
							 $name = "additional_image_link";
							 $i++;
						}
					}
				}

				$type='';
				foreach($product->categories_id as $catID){
					foreach($category_path as $id=>$catPath){
						if($id == $catID){
							if(strlen($type.str_replace(',', ' ',
$catPath['path']).',') > 750) continue;
							$type .= str_replace(',', ' ',
$catPath['path']).',';
						}
					}
				}
				if(!empty($type)){
					$type = substr($type,0,-1);
					$xml .= "\t".'<g:product_type><![CDATA[
'.$type.' ]]></g:product_type>'."\n";
				}


				if($product->product_quantity != -1){
					$xml .=
"\t".'<g:quantity>'.$product->product_quantity.'</g:quantity>'."\n";
				}
				if($product->product_quantity == 0){
					$xml .= "\t".'<g:availability>out of
stock</g:availability>'."\n";
				}
				else{
					$xml .= "\t".'<g:availability>in
stock</g:availability>'."\n";
				}
				if( $product->product_weight > 0 &&
(($product->product_weight < 1000000 &&
$product->product_weight_unit == 'g')
					|| ($product->product_weight < 2000000 &&
$product->product_weight_unit == 'lb' )))
					$xml .=
"\t".'<g:shipping_weight>'.ceil($product->product_weight).'
'.$product->product_weight_unit.'</g:shipping_weight>'."\n";

				if( (
					$product->product_length > 0 &&
					$product->product_width > 0 &&
					$product->product_height > 0 &&
					$product->product_length < 400 &&
					$product->product_width < 1000 &&
					$product->product_height < 1000 &&
					$product->product_dimension_unit == 'cm')
					|| (
					$product->product_length > 0 &&
					$product->product_width > 0 &&
					$product->product_height > 0 &&
					$product->product_length < 150 &&
					$product->product_width < 1000 &&
					$product->product_height < 1000 &&
					$product->product_dimension_unit == 'in')) {
					$xml .=
"\t".'<g:shipping_length>'.ceil($product->product_length).'
'.$product->product_dimension_unit.'</g:shipping_length>'."\n";
					$xml .=
"\t".'<g:shipping_width>'.ceil($product->product_width).'
'.$product->product_dimension_unit.'</g:shipping_width>'."\n";
					$xml .=
"\t".'<g:shipping_height>'.ceil($product->product_height).'
'.$product->product_dimension_unit.'</g:shipping_height>'."\n";
				}
				$xml .= '</item>'."\n";
			}
		}

		$xml .=
'</channel>'."\n".'</rss>'."\n";
		return $xml;
	}

	function _addShipping(&$product,&$plugin){
		$xml = '';

		if(empty($plugin->params['shipping'])){
			return $xml;
		}

		$column = $plugin->params['shipping'];
		if(isset($product->$column)){
			if(empty($product->$column)) return $xml;

			$text = $product->$column;
		}else{
			$text = $column;
		}

		$shipping_methods = explode(',',$text);

		foreach($shipping_methods as $shipping_method){
			$shipping_data = explode(':',$shipping_method);
			if(count($shipping_data)!=4) continue;
			$xml.="\t".'<g:shipping>'."\n";
			$xml.="\t\t".'<g:country>'.$shipping_data[0].'</g:country>'."\n";
			if(!empty($shipping_data[1]))
$xml.="\t\t".'<g:region>'.$shipping_data[1].'</g:region>'."\n";
			if(!empty($shipping_data[2]))
$xml.="\t\t".'<g:service>'.$shipping_data[2].'</g:service>'."\n";
			$xml.="\t\t".'<g:price>'.$shipping_data[3].'</g:price>'."\n";
			$xml.="\t".'</g:shipping>'."\n";
		}
		return $xml;
	}

	function
_additionalParameter(&$product,&$plugin,$param,$attribute){
		$xml = '';
		if(!empty($plugin->params[$param])){
			$column = $plugin->params[$param];
			if(isset($product->$column)){
				if(empty($product->$column)) return $xml;

				$text = $product->$column;
			} else {
				$text = $column;
			}
			$xml="\t".'<g:'.$attribute.'><![CDATA[
'.$text.'
]]></g:'.$attribute.'>'."\n";
		}
		return $xml;
	}


	function _connectionToGoogleDB($login, $pwd, $xml, $plugin, $name){
		jimport('joomla.client.ftp');
		$ftp = new JFTP();
		$conn_id=$ftp->connect("uploads.google.com");
		if(!$conn_id)
			return "Could not connect to uploads.google.com. Please contact
hosting support about that.";

		if(!$ftp->login($login, $pwd))
			return "Could not login to uploads.google.com. Please check the FTP
credentials in the google products plugin settings.";

		$ftp->write($name, $xml);
		return true;
	}

	function _getCategoryParent($theCat, &$categories, $path,
$parentCatId){
		if($theCat->category_parent_id==$parentCatId){
			$path[]=$theCat;
			return $path;
		}
		foreach($categories as $category){
			if($category->category_id==$theCat->category_parent_id){
				$path[]=$theCat;
				$path=$this->_getCategoryParent($category,$categories,$path,
$parentCatId);
			}
		}
		return $path;
	}

}
google_products.xml000064400000026566151157241570010514 0ustar00<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="1.5"
method="upgrade" group="hikashop">
	<name>Hikashop Google Products Plugin</name>
	<creationDate>12 février 2021</creationDate>
	<version>4.4.1</version>
	<author>Hikashop</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>(C) 2010-2021 HIKARI SOFTWARE. All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<description>This plugin enables you to get a Google Product
feed</description>
	<files>
		<filename
plugin="google_products">google_products.php</filename>
	</files>
	<params addpath="/components/com_hikashop/params">
		<param name="enable_auto_update" type="radio"
default="0" label="HIKA_ENABLE_AUTO_UPDATE"
description="ENABLE_AUTO_UPDATE">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="user_name" type="text"
size="50" default=""
label="GOOGLE_FTP_USER_NAME"
description="GOOGLE_FTP_USER_NAME_DESC" />
		<param name="google_password" type="password"
size="50" default=""
label="GOOGLE_FTP_PASSWORD"
description="GOOGLE_FTP_PASSWORD_DESC" />
		<param name="file_name" type="text"
size="50" default="" label="FILE_NAME"
description="GOOGLE_FILE_NAME" />
		<param name="local_path" type="text"
size="50" default=""
label="HIKA_LOCAL_XML_FILE_PATH"
description="LOCAL_XML_FILE_PATH" />
		<param name="frequency" type="text"
size="50" default="86400" label="FREQUENCY"
description="GOOGLE_FREQUENCY" />
		<param name="last_cron_update" type="text"
size="50" default="1274903175"
label="HIKA_LAST_UPDATE" description="LAST_UPDATE"
/>
		<param name="increase_perf" type="list"
default="" label="HIKA_INCREASE_PERFORMANCES"
description="INCREASE_PERFORMANCES">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
			<option
value="2">INCREASE_PERFORMANCES_A_LOT</option>
			<option
value="3">INCREASE_PERFORMANCES_A_LOT_MORE</option>
			<option
value="10">INCREASE_PERFORMANCES_NO_LIMIT</option>
		</param>
		<param name="channel_description" type="text"
size="50" default=""
label="CHANNEL_DESCRIPTION"
description="CHANNEL_DESCRIPTION_DESC" />
		<param name="use_brand" type="list"
default="1" label="HIKA_USE_PRODUCTS_BRAND"
description="USE_PRODUCTS_BRAND">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="brand" type="text"
size="50" default=""
label="HIKA_BRAND_OVERRIDE"
description="BRAND_OVERRIDE" />
		<param name="category" type="text"
size="50" default="" label="CATEGORY"
description="GOOGLE_PRODUCTS_CATEGORY" />
		<param name="price_displayed" type="list"
default="0" label="HIKA_PRICE_DISPLAYED"
description="PRICE_DISPLAYED">
			<option
value="cheapest">CHEAPEST_PRICE_DISPLAYED</option>
			<option
value="average">AVERAGE_PRICE_DISPLAYED</option>
			<option
value="expensive">MOST_EXPENSIVE_PRICE_DISPLAYED</option>
			<option
value="unit">UNIT_PRICE_DISPLAYED</option>
		</param>
		<param name="taxed_price" type="radio"
default="0" label="HIKA_TAXED_PRICES"
description="TAXED_PRICES">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="no_discount" type="list"
default="0" label="NO_DISCOUNT"
description="NO_DISCOUNT">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="condition" type="text"
size="50" default=""
label="HIKA_PRODUCT_CONDITION"
description="PRODUCT_CONDITION" />
		<param name="preview" type="radio"
default="0" label="HIKA_SHORT_DESCRIPTION"
description="SHORT_DESCRIPTION">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
			<option
value="meta">USE_META_DESCRIPTION</option>
		</param>
		<param name="message" type="text"
size="50" default="No description"
label="HIKA_MESSAGE_IF_NO_DEDSCRIPTION"
description="MESSAGE_IF_NO_DEDSCRIPTION" />
		<param name="item_id" type="text"
size="50" default="" label="HIKA_ITEM_ID"
description="GOOGLE_PRODUCTS_ITEMID" />
		<param name="add_code" type="radio"
default="0" label="ADD_PRODUCT_CODE_MPN"
description="ADD_PRODUCT_CODE">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="mpn" type="text" size="50"
default="" label="MPN"
description="GOOGLE_PRODUCTS_MPN"/>
		<param name="gtin" type="text" size="50"
default="" label="GTIN"
description="GOOGLE_PRODUCTS_GTIN" />
		<param name="in_stock_only" type="radio"
default="0" label="HIKA_IN_STOCK_PRODUCTS_ONLY"
description="IN_STOCK_PRODUCTS_ONLY">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="identifier_exists" type="text"
size="50" default=""
label="HIKA_IDENTIFIER_EXISTS"
description="IDENTIFIER_EXISTS" />
		<param name="age_group" type="text"
size="50" default="" label="AGE_GROUP"
description="GOOGLE_PRODUCTS_AGE_GROUP" />
		<param name="gender" type="text"
size="50" default="" label="GENDER"
description="GOOGLE_PRODUCTS_GENDER" />
		<param name="size" type="text" size="50"
default="" label="PRODUCT_SIZE"
description="GOOGLE_PRODUCTS_SIZE" />
		<param name="color" type="text"
size="50" default="" label="PRODUCT_COLOR"
description="GOOGLE_PRODUCTS_COLOR" />
		<param name="shipping" type="textarea"
cols="40" rows="2" default=""
label="SHIPPING" description="GOOGLE_PRODUCTS_SHIPPING"
/>
		<param name="download" type="plugintrigger" 
default="downloadXML" label="DOWNLOAD_NOW"
description="GOOGLE_PRODUCTS_DOWNLOAD_XML_FILE" />
	</params>
	<config>
		<fields name="params"
addfieldpath="/components/com_hikashop/fields">
			<fieldset name="basic">
				<field name="enable_auto_update" type="radio"
default="0" label="HIKA_ENABLE_AUTO_UPDATE"
description="ENABLE_AUTO_UPDATE" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field
					name="user_name"
					type="text"
					label="FTP_USER_NAME"
					size="50"
					default=""
					description="GOOGLE_FTP_USER_NAME"
					showon="enable_auto_update:1" />
				<field
					name="google_password"
					type="password"
					label="FTP_PASSWORD"
					size="50"
					default=""
					description="GOOGLE_FTP_PASSWORD"
					showon="enable_auto_update:1" />
				<field
					name="file_name"
					type="text"
					label="FILE_NAME"
					size="50"
					default=""
					description="GOOGLE_FILE_NAME"
					showon="enable_auto_update:1" />
				<field
					name="local_path"
					type="text"
					size="50"
					default=""
					label="HIKA_LOCAL_XML_FILE_PATH"
					description="LOCAL_XML_FILE_PATH" />
				<field
					name="frequency"
					type="text"
					label="FREQUENCY"
					size="50"
					default="86400"
					description="GOOGLE_FREQUENCY"
					showon="enable_auto_update:1" />
				<field
					name="last_cron_update"
					type="text"
					label="HIKA_LAST_UPDATE"
					size="50"
					default="1274903175"
					description="LAST_UPDATE"
					showon="enable_auto_update:1"  />
				<field
					name="increase_perf"
					type="list"
					default=""
					label="HIKA_INCREASE_PERFORMANCES"
					description="INCREASE_PERFORMANCES">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
					<option
value="2">INCREASE_PERFORMANCES_A_LOT</option>
					<option
value="3">INCREASE_PERFORMANCES_A_LOT_MORE</option>
					<option
value="10">INCREASE_PERFORMANCES_NO_LIMIT</option>
				</field>
				<field name="channel_description" type="text"
size="50" default=""
label="CHANNEL_DESCRIPTION"
description="CHANNEL_DESCRIPTION_DESC" />
				<field name="use_brand" type="list"
default="1" label="HIKA_USE_PRODUCTS_BRAND"
description="USE_PRODUCTS_BRAND">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field name="brand" type="text"
size="50" default=""
label="HIKA_BRAND_OVERRIDE"
description="BRAND_OVERRIDE" />
				<field name="category" type="text"
size="50" default=""
label="GOOGLE_PRODUCT_CATEGORY"
description="GOOGLE_PRODUCTS_CATEGORY" />
				<field name="price_displayed" type="list"
default="0" label="HIKA_PRICE_DISPLAYED"
description="PRICE_DISPLAYED">
					<option
value="cheapest">CHEAPEST_PRICE_DISPLAYED</option>
					<option
value="average">AVERAGE_PRICE_DISPLAYED</option>
					<option
value="expensive">MOST_EXPENSIVE_PRICE_DISPLAYED</option>
					<option
value="unit">UNIT_PRICE_DISPLAYED</option>
				</field>
				<field name="taxed_price" type="radio"
default="0" label="HIKA_TAXED_PRICES"
description="TAXED_PRICES" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field name="no_discount" type="list"
default="0" label="NO_DISCOUNT"
description="NO_DISCOUNT">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field
					name="condition"
					type="text"
					label="HIKA_PRODUCT_CONDITION"
					size="50"
					default=""
					description="PRODUCT_CONDITION" />
				<field name="preview" type="radio"
default="0" label="HIKA_SHORT_DESCRIPTION"
description="SHORT_DESCRIPTION" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
					<option
value="meta">USE_META_DESCRIPTION</option>
				</field>
				<field name="message" type="text"
size="50" default="No description"
label="HIKA_MESSAGE_IF_NO_DEDSCRIPTION"
description="MESSAGE_IF_NO_DEDSCRIPTION" />
				<field name="item_id" type="text"
size="50" default="" label="HIKA_ITEM_ID"
description="GOOGLE_PRODUCTS_ITEMID" />
				<field name="add_code" type="radio"
default="0" label="ADD_PRODUCT_CODE_MPN"
description="ADD_PRODUCT_CODE" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>

				<field name="mpn" type="text"
size="50" default="" label="MPN"
description="GOOGLE_PRODUCTS_MPN"
showon="add_code:0"/>
				<field name="gtin" type="text"
size="50" default="" label="GTIN"
description="GOOGLE_PRODUCTS_GTIN" />

				<field name="in_stock_only" type="radio"
default="0" label="HIKA_IN_STOCK_PRODUCTS_ONLY"
description="IN_STOCK_PRODUCTS_ONLY" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field name="identifier_exists" type="text"
size="50" default=""
label="HIKA_IDENTIFIER_EXISTS"
description="IDENTIFIER_EXISTS" />
				<field name="age_group" type="text"
size="50" default="" label="AGE_GROUP"
description="GOOGLE_PRODUCTS_AGE_GROUP" />
				<field name="gender" type="text"
size="50" default="" label="GENDER"
description="GOOGLE_PRODUCTS_GENDER" />
				<field name="size" type="text"
size="50" default="" label="PRODUCT_SIZE"
description="GOOGLE_PRODUCTS_SIZE" />
				<field name="color" type="text"
size="50" default="" label="PRODUCT_COLOR"
description="GOOGLE_PRODUCTS_COLOR" />
				<field name="shipping" type="textarea"
cols="40" rows="2" default=""
label="SHIPPING" description="GOOGLE_PRODUCTS_SHIPPING"
/>
				<field
					name="download"
					type="plugintrigger"
					default="downloadXML"
					label="DOWNLOAD_NOW"
					description="GOOGLE_PRODUCTS_DOWNLOAD_XML_FILE" />
			</fieldset>
		</fields>
	</config>
</extension>
index.html000064400000000054151157241570006550 0ustar00<html><body
bgcolor="#FFFFFF"></body></html>