Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Version | System time (s) | User time (s) | Memory (MiB) |
---|---|---|---|
5.6.0 | 0.010 | 0.067 | 20.61 |
<?php
/* export/google_xml.php
.---------------------------------------------------------------------------.
| Software: GOOGLE-Shopping XML-Export for modified-shops and xt:c 3 |
| Author: Andreas Guder |
| Version: 1.4 Standard |
| Contact: info@andreas-guder.de / http://www.andreas-guder.de |
| Copyright (c) 2013, Andreas Guder [info@andreas-guder.de] |
| GNU General Public License (Version 3) |
'--------------------------------------------------------------------------ö'
http://www.google.com/basepages/producttype/taxonomy.de-DE.txt
########## ACHTUNG - MODUL läufz derzeit nur bis PHP Version 5.3 ###########################
########## www.andreas-guder.de/agi-software/xt-commerce/google-xml-export-modul-maerz.html
*/
require '../includes/configure.php';
error_reporting(E_ALL ^E_DEPRECATED ^E_NOTICE);
$cache_days = 0; // number of days, the xml-file will be cached before
$export_language = 2; // GET['lang'] language-id to export
$export_group = 1; // GET['group'] customers-group
$limit_page = 0; // GET['page'] number of page to export, empty or not set to export the whole database
$limit_amount = 19999; // amount of article to export if GET['page'] is set
$country_id = 0; // GET['country'] country-id, will be get shop-country-id if empty
$zone_id = 0; // GET['zone'] zone-id, will be get shop-zone-id if empty
define('LN',chr(10));
if (isset($_GET['lang']) && !empty($_GET['lang']))
$export_language = (int) $_GET['lang'];
if (isset($_GET['group']) && !empty($_GET['group']))
$export_group = (int) $_GET['group'];
if (isset($_GET['page']) && !empty($_GET['page']))
$limit_page = (int) $_GET['page'];
if (isset($_GET['cache']))
$cache_days = (int) $_GET['cache'];
if (isset($_GET['country']))
$country_id = (int) $_GET['country'];
if (isset($_GET['zone']))
$zone_id = (int) $_GET['zone'];
$cache_file_name = 'google_xml_l'.$export_language.'_g'.$export_group.'_p'.$limit_page.'_'.$country_id.$zone_id.'.xml';
define('CACHED_GOOGLE_FILE', DIR_FS_CATALOG.'export/'.$cache_file_name);
// check cache
if ($cache_days > 0)
{
if (file_exists(CACHED_GOOGLE_FILE))
{
if (time()-filemtime(CACHED_GOOGLE_FILE) < $cache_days * 24 * 3600)
{
// print out cached file
header("Content-Type: text/xml");
echo file_get_contents(CACHED_GOOGLE_FILE);
exit;
}
}
}
session_start();
$_SESSION['languages_id'] = $export_language;
require DIR_WS_INCLUDES.'database_tables.php';
require DIR_WS_INCLUDES.'filenames.php';
// require some functions anc classes
// Database
require_once (DIR_FS_INC.'xtc_db_connect.inc.php');
require_once (DIR_FS_INC.'xtc_db_close.inc.php');
require_once (DIR_FS_INC.'xtc_db_error.inc.php');
require_once (DIR_FS_INC.'xtc_db_perform.inc.php');
require_once (DIR_FS_INC.'xtc_db_query.inc.php');
require_once (DIR_FS_INC.'xtc_db_queryCached.inc.php');
require_once (DIR_FS_INC.'xtc_db_fetch_array.inc.php');
require_once (DIR_FS_INC.'xtc_db_num_rows.inc.php');
require_once (DIR_FS_INC.'xtc_db_data_seek.inc.php');
require_once (DIR_FS_INC.'xtc_db_insert_id.inc.php');
require_once (DIR_FS_INC.'xtc_db_free_result.inc.php');
require_once (DIR_FS_INC.'xtc_db_fetch_fields.inc.php');
require_once (DIR_FS_INC.'xtc_db_output.inc.php');
require_once (DIR_FS_INC.'xtc_db_input.inc.php');
require_once (DIR_FS_INC.'xtc_db_prepare_input.inc.php');
require_once (DIR_FS_INC.'xtc_get_top_level_domain.inc.php');
require_once (DIR_FS_INC.'xtc_href_link.inc.php');
require_once (DIR_FS_INC.'xtc_product_link.inc.php');
require_once (DIR_FS_INC.'xtc_category_link.inc.php');
require_once (DIR_FS_INC.'xtc_get_category_path.inc.php');
require_once (DIR_FS_INC.'xtc_get_parent_categories.inc.php');
require_once (DIR_FS_INC.'xtc_image.inc.php');
require_once (DIR_FS_INC.'xtc_get_tax_rate.inc.php');
require_once (DIR_FS_INC.'xtc_add_tax.inc.php');
require_once (DIR_FS_INC.'xtc_cleanName.inc.php');
require_once (DIR_FS_INC.'xtc_get_products_mo_images.inc.php');
require_once (DIR_FS_INC.'xtc_set_time_limit.inc.php');
require_once (DIR_FS_INC.'xtc_parse_category_path.inc.php');
require_once (DIR_FS_INC.'xtc_get_product_path.inc.php');
@xtc_set_time_limit(0);
// old functions
function xtDBquery($query) {
if (strtolower(DB_CACHE) == 'true') {
// echo 'cached query: '.$query.'<br />';
$result = xtc_db_queryCached($query);
} else {
// echo '::'.$query .'<br />';
$result = xtc_db_query($query);
}
return $result;
}
// make a connection to the database... now
$connection = xtc_db_connect() or die('Unable to connect to database server!');
$configuration_query = xtc_db_query('select configuration_key as cfgKey, configuration_value as cfgValue from '.TABLE_CONFIGURATION);
while ($configuration = xtc_db_fetch_array($configuration_query)) {
define($configuration['cfgKey'], $configuration['cfgValue']);
}
if (!defined('MODULE_AGI_GOOGLE_CHECK_GRADUATED_PRICE'))
define('MODULE_AGI_GOOGLE_CHECK_GRADUATED_PRICE', 'FALSE');
if (!defined('MODULE_AGI_GOOGLE_IGNORE_FREESHIPPING_MODULES'))
define('MODULE_AGI_GOOGLE_IGNORE_FREESHIPPING_MODULES', 'FALSE');
if (!defined('MODULE_AGI_GOOGLE_XML_STATUS') || MODULE_AGI_GOOGLE_XML_STATUS != 'TRUE')
{
header("HTTP/1.0 403 Forbidden");
exit;
}
// prepare own functions
$temp_category = array(0=>'Top');
$temp_tax = array();
$vpe_names= array();
$brand_names= array();
$google_cat=array(0=>MODULE_AGI_GOOGLE_XML_DEFAULT_CATEGORY);
function buildCAT($catID, $export_language = 2)
{
$cat=array();
$tmpID=$catID;
while (getParent($catID)!=0 || $catID!=0)
{
$cat_select=xtc_db_query("SELECT `categories_name` FROM ".TABLE_CATEGORIES_DESCRIPTION." WHERE `categories_id`='".$catID."' AND `language_id`=$export_language");
$cat_data=xtc_db_fetch_array($cat_select);
$catID=getParent($catID);
$cat[]=$cat_data['categories_name'];
}
$catStr='';
for ($i=count($cat);$i>0;$i--)
{
$catStr.= ($i > 1) ? $cat[$i-1].' > ' : $cat[$i-1];
}
return $catStr;
}
function getParent($catID)
{
$parent_query=xtc_db_query("SELECT `parent_id` FROM `".TABLE_CATEGORIES."` WHERE `categories_id`='".$catID."'");
$parent_data=xtc_db_fetch_array($parent_query);
return $parent_data['parent_id'];
}
function getCategory($pID)
{
$categories = 0;
$categorie_query=xtc_db_query("SELECT `categories_id` FROM `".TABLE_PRODUCTS_TO_CATEGORIES."` WHERE `categories_id` > 0 AND `products_id`='".$pID."' LIMIT 0,1");
while ($categorie_data=xtc_db_fetch_array($categorie_query)) {
$categories=$categorie_data['categories_id'];
}
return $categories;
}
function getGoogleCategory($catID)
{
$parent_query = xtc_db_query("SELECT `parent_id`,`google_category` FROM `".TABLE_CATEGORIES."` WHERE `categories_id`='".$catID."'");
$parent_data = xtc_db_fetch_array($parent_query);
while (empty($parent_data['google_category']) && $parent_data['parent_id'] > 0)
{
$parent_query = xtc_db_query("SELECT `parent_id`,`google_category` FROM `".TABLE_CATEGORIES."` WHERE `categories_id`='".$parent_data['parent_id']."'");
$parent_data = xtc_db_fetch_array($parent_query);
}
return empty($parent_data['google_category']) ? '' : $parent_data['google_category'];
}
function explode_vpe_parts($vpe_text)
{
$vpe_parts = array('value' => 1, 'unit' => 'Stck.');
if (preg_match('/[0-9]{1,}/', $vpe_text, $matches))
{
$vpe_parts['value'] = $matches[0];
$vpe_parts['unit'] = trim(substr($vpe_text, strlen($vpe_parts['value'])));
}
else
$vpe_parts['unit'] = trim($vpe_text);
settype($vpe_parts['value'], 'integer');
return $vpe_parts;
}
function get_vpe_name($vpeID, $export_language = 2)
{
$vpe_query="SELECT `products_vpe_name` FROM `" . TABLE_PRODUCTS_VPE . "` WHERE `language_id`=$export_language AND `products_vpe_id`='".$vpeID."'";
$vpe_query = xtDBquery($vpe_query);
$vpe = xtc_db_fetch_array($vpe_query,true);
$tmp = array('name'=>$vpe['products_vpe_name'], 'parts' => explode_vpe_parts($vpe['products_vpe_name']));
return $tmp;
}
function get_brand_name($manID)
{
$marke = xtc_db_fetch_array(xtc_db_query("SELECT `manufacturers_name` FROM `".TABLE_MANUFACTURERS."` WHERE `manufacturers_id` = '".$manID."'"));
return $marke['manufacturers_name'];
}
function cartesian_helper($sofar,$arr,$pos,$max,&$collector)
{
$tmp = array_keys($arr);
for($i = 0; $i < count($arr[$tmp[$pos]]);$i++)
{
if($pos == $max)
$collector[] = array_merge($sofar,array($arr[$tmp[$pos]][$i]));
else
cartesian_helper(array_merge($sofar,array($arr[$tmp[$pos]][$i])),$arr,$pos+1,$max,$collector);
}
}
function cartesian($arr)
{
$bucket = array();
cartesian_helper(array(),$arr,0,count($arr)-1,$bucket);
return $bucket;
}
function calculate_shipping_from_table($s_price, $s_weight)
{
$shipping = -1;
$shippinglist = preg_split("/[:,]/" , MODULE_AGI_GOOGLE_XML_SHIPPING_LIST);
$base = (MODULE_AGI_GOOGLE_XML_SHIPPING_BASE == 'weight') ? $s_weight : $s_price;
for ($i=0; $i<sizeof($shippinglist); $i+=2)
{
if ($base <= $shippinglist[$i])
{
$shipping = $shippinglist[$i+1];
break;
}
}
if ($shipping == -1)
$shipping = 0;
return $shipping;
}
function clean_html_to_text($text, $short = 0)
{
$find = array('</p>', '<br />', '<li />', '>');
$replace = array('</p>'.chr(10), '<br />'.chr(10), '</li>'.chr(10), '> ');
$text = str_replace($find, $replace, $text);
$cleared_text = strip_tags($text);
$cleared_text = html_entity_decode($cleared_text,ENT_QUOTES);
$cleared_text = str_replace(" "," ",$cleared_text);
$cleared_text = str_replace("'",", ",$cleared_text);
$cleared_text = str_replace("\n"," ",$cleared_text);
$cleared_text = str_replace("\r"," ",$cleared_text);
$cleared_text = str_replace("\t"," ",$cleared_text);
$cleared_text = str_replace("\v"," ",$cleared_text);
$cleared_text = str_replace("|",",",$cleared_text);
$cleared_text = preg_replace("/ {2,}/"," ",$cleared_text);
if ($short > 0)
{
$shorten = wordwrap($cleared_text, $short, "|");
$shorten = explode("|", $shorten);
$cleared_text = $shorten[0];
}
$cleared_text = trim($cleared_text);
return $cleared_text;
}
function print_out_xml_item($key, $value)
{
if (is_string($value) && ($value != 'TRUE' || $value != 'FALSE'))
echo '<',$key,'><![CDATA[',utf8_encode($value),']]></',$key,'>',LN;
else
echo '<',$key,'>',$value,'</',$key,'>',LN;
}
function print_out_product($products_data)
{
$products_description = strtolower(MODULE_AGI_GOOGLE_XML_LONG_DESCRIPTION) == 'true' ? $products_data['products_description'] : $products_data['products_short_description'];
$products_description = clean_html_to_text($products_description);
$products_name = $products_data['products_name'];
if (!empty($products_data['vpe']))
{
if (strtolower(MODULE_AGI_GOOGLE_XML_VPE_TITLE) == 'true')
$products_name .= ' ('.$products_data['vpe'].')';
if (strtolower(MODULE_AGI_GOOGLE_XML_VPE_DESCRIPTION) == 'true')
$products_description = '('.$products_data['vpe'].') '.$products_description;
}
// check condition
$condition = 'new';
if (empty($products_data['agi_google_condition']))
{
if (!empty($products_data['products_zustand']))
{
switch ($products_data['products_zustand'])
{
case 'neu':
case 'new':
$condition = 'new';
break;
case 'gebraucht':
case 'used':
$condition = 'used';
break;
case 'erneuert':
case 'refurbished':
$condition = 'refurbished';
break;
default: $condition = 'new'; break;
}
}
}
else
$condition = $products_data['agi_google_condition'];
// check availability
$availability = 'in stock';
if (strtolower(MODULE_AGI_GOOGLE_XML_AVAILABILITY_FROM_QUANTITY) == 'true')
{
if ($products_data['products_quantity'] <= 0)
$availability = 'out of stock';
}
// calculate shipping
$s_price = $products_data['products_price'];
if ($products_data['product_has_special'])
$s_price = $products_data['specials_new_products_price'];
$shipping = 0;
if (strtolower(MODULE_AGI_GOOGLE_IGNORE_FREESHIPPING_MODULES) == 'true')
{
$shipping = calculate_shipping_from_table($s_price, $products_data['products_weight']);
}
else
{
if (defined('MODULE_SHIPPING_FREEAMOUNT_AMOUNT') && defined('MODULE_SHIPPING_FREEAMOUNT_STATUS') && strtolower(MODULE_SHIPPING_FREEAMOUNT_STATUS) == 'true' && $s_price >= MODULE_SHIPPING_FREEAMOUNT_AMOUNT)
$shipping = 0;
elseif (defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER') && strtolower(MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING) == 'true' && $s_price > MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER)
$shipping = 0;
else
$shipping = calculate_shipping_from_table($s_price, $products_data['products_weight']);
}
echo '<item>',LN;
print_out_xml_item('title', $products_name);
print_out_xml_item('description', $products_description);
if (array_key_exists('agi_google_adwords_redirect', $products_data) && !empty($products_data['agi_google_adwords_redirect']))
print_out_xml_item('link', $products_data['agi_google_adwords_redirect']);
else
print_out_xml_item('link', $products_data['link']);
print_out_xml_item('g:id', $products_data['products_id']);
if (!empty($products_data['item_group_id']))
print_out_xml_item('g:item_group_id', $products_data['item_group_id']);
print_out_xml_item('g:google_product_category', $products_data['google_category']);
print_out_xml_item('g:product_type', $products_data['category']);
$image_dir = DIR_WS_POPUP_IMAGES;
if (defined('MODULE_AGI_GOOGLE_XML_USE_PRODUCT_IMAGE') && MODULE_AGI_GOOGLE_XML_USE_PRODUCT_IMAGE == 'info_images')
$image_dir = DIR_WS_INFO_IMAGES;
print_out_xml_item('g:image_link', HTTP_SERVER . DIR_WS_CATALOG . $image_dir . $products_data['products_image']);
$i_count = 0;
foreach ($products_data['additional_image'] as $value)
{
print_out_xml_item('g:additional_image_link', HTTP_SERVER . DIR_WS_CATALOG . $image_dir . $value);
$i_count++;
if ($i_count >= 10)
break;
}
print_out_xml_item('g:condition', $condition);
print_out_xml_item('g:availability', $availability);
print_out_xml_item('g:price', number_format($products_data['products_price'],2,'.','').' '.DEFAULT_CURRENCY);
if ($products_data['product_has_special'])
{
print_out_xml_item('g:sale_price', number_format($products_data['specials_new_products_price'],2,'.','').' '.DEFAULT_CURRENCY);
if (!empty($products_data['special_expires_date']))
{
$tmp = strtotime($products_data['special_expires_date'].' +1 day');
if ($tmp > 0)
print_out_xml_item('g:sale_price_effective_date', date('Y-m-d').'T00:00'.date('O').'/'.date('Y-m-d',$tmp).'T'.date('H:iO',$tmp));
}
}
if ($products_data['agi_google_identifier_exists'])
print_out_xml_item('g:brand', empty($products_data['brand']) ? 'Hausmarke' : $products_data['brand']);
else
print_out_xml_item('g:brand', $products_data['brand']);
if (!empty($products_data['products_ean']))
print_out_xml_item('g:gtin', $products_data['products_ean']);
print_out_xml_item('g:mpn', !empty($products_data['products_manufacturers_model']) ? $products_data['products_manufacturers_model'] : $products_data['products_model']);
echo '<g:shipping>',LN;
print_out_xml_item('g:country', COUNTRY_CODE);
print_out_xml_item('g:service', $shipping > 0 ? 'Standard' : 'Versandkostenfrei');
print_out_xml_item('g:price', number_format($shipping,2,'.','').' '.DEFAULT_CURRENCY);
echo '</g:shipping>',LN;
if (!empty($products_data['products_weight']))
print_out_xml_item('g:shipping_weight', number_format($products_data['products_weight'],3,'.',''). 'kg');
if (!empty($products_data['agi_google_energy_efficiency']))
print_out_xml_item('g:energy_efficiency_class', $products_data['agi_google_energy_efficiency']);
if ($products_data['products_fsk18'])
print_out_xml_item('g:adult', 'TRUE');
if ($products_data['agi_google_multipack_amount'] > 1)
print_out_xml_item('g:multipack', $products_data['agi_google_multipack_amount']);
if (!empty($products_data['vpe']))
{
print_out_xml_item('g:unit_pricing_measure', $products_data['unit_pricing_measure']);
print_out_xml_item('g:unit_pricing_base_measure', $products_data['unit_pricing_base_measure']);
}
if (array_key_exists('agi_google_adwords_grouping', $products_data) && !empty($products_data['agi_google_adwords_grouping']))
print_out_xml_item('g:adwords_grouping', $products_data['agi_google_adwords_grouping']);
if (array_key_exists('agi_google_adwords_labels', $products_data) && !empty($products_data['agi_google_adwords_labels']))
{
$tmp = explode(',',$products_data['agi_google_adwords_labels']);
foreach ($tmp as $row)
{
$row = trim($row);
if (!empty($row))
print_out_xml_item('g:adwords_labels', $row);
}
}
if (array_key_exists('agi_google_adwords_redirect', $products_data) && !empty($products_data['agi_google_adwords_redirect']))
print_out_xml_item('g:adwords_redirect', $products_data['agi_google_adwords_redirect']);
if (array_key_exists('agi_google_online_only', $products_data))
print_out_xml_item('g:online_only', $products_data['agi_google_online_only'] ? 'y' : 'n');
if (array_key_exists('agi_google_excluded_destination', $products_data) && !empty($products_data['agi_google_excluded_destination']))
print_out_xml_item('g:excluded_destination', $products_data['agi_google_excluded_destination']);
if (array_key_exists('agi_google_expiration_date', $products_data) && !empty($products_data['agi_google_expiration_date']))
print_out_xml_item('g:expiration_date', $products_data['agi_google_expiration_date']);
echo '</item>',LN;
}
$tmp_bluegate = false;
if (defined('MODULE_BLUEGATE_SEO_INDEX_STATUS') && file_exists(DIR_FS_CATALOG.'inc/bluegate_seo.inc.php'))
{
if (strtolower(MODULE_BLUEGATE_SEO_INDEX_STATUS) == 'true')
{
require_once(DIR_FS_CATALOG.'inc/bluegate_seo.inc.php');
$bluegateSeo = new BluegateSeo();
$tmp_bluegate = true;
}
}
define('USE_BLUEGATE_SEO_URL',$tmp_bluegate);
// get google-attributes-options
$google_attribute_options = array();
$google_attribute_options_ids = array();
$google_attribute_options_ids_name = array();
// get customers_status
$c_check = xtc_db_query("SELECT * FROM `".TABLE_CUSTOMERS_STATUS."` WHERE `customers_status_id`=$export_group AND `language_id`=$export_language");
if (xtc_db_num_rows($c_check) == 0)
$c_check = xtc_db_query("SELECT * FROM `".TABLE_CUSTOMERS_STATUS."` WHERE `customers_status_id`=1 AND `language_id`=1");
$customers_status = xtc_db_fetch_array($c_check);
// get country-id if not set by GET
if (empty($country_id))
$country_id = STORE_COUNTRY;
if (empty($zone_id))
$zone_id = STORE_ZONE;
if (empty($zone_id) && !empty($country_id))
{
$tmp = xtc_db_query("SELECT `zone_id` FROM `".TABLE_ZONES."` WHERE `zone_country_id`=$country_id LIMIT 0,1");
$tmp = xtc_db_fetch_array($tmp);
$zone_id = $tmp['zone_id'];
}
$currency_code = DEFAULT_CURRENCY;
$tmp = xtc_db_query("SELECT `countries_iso_code_2` FROM `".TABLE_COUNTRIES."` WHERE `countries_id`=$country_id LIMIT 0,1");
$tmp = xtc_db_fetch_array($tmp);
if (!$tmp)
$tmp['countries_iso_code_2'] = 'DE';
define('COUNTRY_CODE',$tmp['countries_iso_code_2']);
// Prepare general database query
$general_query = "SELECT
p.*,
pd.products_short_description,
pd.products_name,
pd.products_description,
IFNULL(s.status, 0) AS product_has_special,
IFNULL(s.specials_new_products_price, 0) AS specials_new_products_price,
IFNULL(s.expires_date,'') AS special_expires_date
FROM
`".TABLE_PRODUCTS."` AS p
LEFT JOIN `".TABLE_PRODUCTS_DESCRIPTION."` AS pd ON pd.products_id=p.products_id AND pd.language_id=$export_language
LEFT JOIN `".TABLE_SPECIALS."` AS s ON s.products_id=p.products_id
WHERE
p.products_status=1 AND p.agi_google_export=1
";
if (strtolower(GROUP_CHECK) == 'true')
$general_query .= " AND p.group_permission_$export_group=1";
// Export FSK-Article?
//if (!$customers_status['customers_fsk18_display'])
// $general_query .= ' AND p.products_fsk18!=1';
if ($customers_status['customers_fsk18_display'])
$general_query .= ' AND p.products_fsk18!=1';
// GROUP BY ORDER BY
$general_query .= ' ORDER BY p.products_id ASC';
// Export-Limit ?
if ($limit_page > 0)
{
$lstart = ($limit_page-1) * $limit_amount;
$general_query .= " LIMIT $lstart, $limit_amount";
}
$main_product_query = xtc_db_query($general_query);
$tmp = xtc_db_num_rows($main_product_query);
if (empty($tmp))
{
header("HTTP/1.0 204 No Content");
exit;
}
// Start OUTPUT
// start caching
ob_start();
echo '<?xml version="1.0" encoding="UTF-8"?>'.LN;
echo '<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">'.LN;
echo '<channel>',LN;
echo '<title><![CDATA[',utf8_encode(STORE_NAME),']]></title>',LN;
echo '<link><![CDATA[',utf8_encode(HTTP_SERVER),']]></link>',LN;
echo '<description><![CDATA[Google product feed created at ',date('Y-m-d H:i'),']]></description>',LN;
while ($listing = xtc_db_fetch_array($main_product_query))
{
if (empty($listing['products_image']))
continue;
$allready_print_out = false;
if (!array_key_exists($listing['products_tax_class_id'], $temp_tax))
$temp_tax[$listing['products_tax_class_id']] = xtc_get_tax_rate($listing['products_tax_class_id'], $country_id, $zone_id);
if($listing['product_has_special'] && !empty($listing['special_expires_date']))
{
$tmp = strtotime($listing['special_expires_date']);
if ($tmp < time() && $tmp>0)
$listing['product_has_special'] = 0;
if ($listing['products_price']<$listing['specials_new_products_price'])
$listing['product_has_special'] = 0;
}
// personal offer?
if ($customers_status['customers_status_graduated_prices'] && strtolower(MODULE_AGI_GOOGLE_CHECK_GRADUATED_PRICE) == 'true')
{
$offer_check = xtc_db_query("SELECT `personal_offer` FROM `".TABLE_PERSONAL_OFFERS_BY.$export_group."` WHERE `products_id`=".$listing['products_id']." AND `personal_offer`>0 ORDER BY `quantity` DESC LIMIT 0,1");
if (xtc_db_num_rows($offer_check) == 1)
{
$tmp = xtc_db_fetch_array($offer_check);
if (!empty($tmp['personal_offer']))
$listing['products_price'] = $tmp['personal_offer'];
}
}
if ($customers_status['customers_status_show_price_tax'])
{
$listing['products_price'] = xtc_add_tax($listing['products_price'], $temp_tax[$listing['products_tax_class_id']]);
$listing['specials_new_products_price'] = xtc_add_tax($listing['specials_new_products_price'], $temp_tax[$listing['products_tax_class_id']]);
}
$products_data = $listing;
$products_data['link'] = USE_BLUEGATE_SEO_URL ? $bluegateSeo->getProductLink(xtc_product_link($listing['products_id'], $listing['products_name']),'NONSSL',$export_language) : xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($listing['products_id'],$listing['products_name']),'NONSSL', false);
if (MODULE_AGI_GOOGLE_XML_CAMPAIGN != '')
$products_data['link'] .= strpos($products_data['link'], '?') ? '&'.MODULE_AGI_GOOGLE_XML_CAMPAIGN : '?'.MODULE_AGI_GOOGLE_XML_CAMPAIGN;
if ($listing['products_vpe_status'] == 1 && $listing['products_vpe_value'] != 0.0 && $listing['products_price'] > 0)
{
if (!array_key_exists($listing['products_vpe'],$vpe_names))
$vpe_names[$listing['products_vpe']] = get_vpe_name($listing['products_vpe'], $export_language);
$tmp_price = $listing['product_has_special'] ? $listing['specials_new_products_price'] : $listing['products_price'];
$vpe_price = number_format($tmp_price * (1 / $listing['products_vpe_value']), 2,',','').' '.$currency_code.' pro '.$vpe_names[$listing['products_vpe']]['name'];
$products_data['vpe'] = $vpe_price;
$tmp = round($vpe_names[$listing['products_vpe']]['parts']['value']*$listing['products_vpe_value'],3);
$products_data['unit_pricing_measure'] = $tmp.$vpe_names[$listing['products_vpe']]['parts']['unit'];
$products_data['unit_pricing_base_measure'] = $vpe_names[$listing['products_vpe']]['parts']['value'].$vpe_names[$listing['products_vpe']]['parts']['unit'];
}
if (!empty($listing['manufacturers_id']) && !array_key_exists($listing['manufacturers_id'], $brand_names))
$brand_names[$listing['manufacturers_id']] = get_brand_name($listing['manufacturers_id'], $export_language);
$products_data['brand'] = !empty($listing['manufacturers_id']) ? $brand_names[$listing['manufacturers_id']] : '';
if (!empty($products_data['agi_google_products_brand']))
$products_data['brand'] = $products_data['agi_google_products_brand'];
$pCategory = getCategory($listing['products_id']);
if (empty($pCategory))
$pCategory = 0;
if (!array_key_exists($pCategory, $temp_category))
$temp_category[$pCategory] = buildCAT($pCategory);
$products_data['category'] = $temp_category[$pCategory];
if (!empty($pCategory))
{
if (!array_key_exists($pCategory, $google_cat))
{
$tmp = getGoogleCategory($pCategory);
$google_cat[$pCategory] = empty($tmp) ? MODULE_AGI_GOOGLE_XML_DEFAULT_CATEGORY : $tmp;
}
}
else
$pCategory = 0;
$use_google_category = MODULE_AGI_GOOGLE_XML_DEFAULT_CATEGORY;
if (!empty($listing['google_category']))
$use_google_category = $listing['google_category'];
elseif (!empty($google_cat[$pCategory]))
$use_google_category = $google_cat[$pCategory];
$products_data['google_category'] = $use_google_category;
$products_data['additional_image'] = array();
$images = xtc_get_products_mo_images($listing['products_id']);
if ($images)
{
foreach($images as $image) {
$products_data['additional_image'][] = $image['image_name'];
}
}
if (!$allready_print_out)
{
// Produkt hier ausgeben
if (defined('SHIPPING_BOX_WEIGHT'))
$products_data['products_weight'] += SHIPPING_BOX_WEIGHT;
// print out products data
print_out_product($products_data);
}
}
echo '</channel>',LN;
echo '</rss>';
// END OUTPUT
// end caching
$content = ob_get_clean();
// save cache
$fp = fopen(CACHED_GOOGLE_FILE,'w');
fputs($fp, $content);
fclose($fp);
// show cached content
header("Content-Type: text/xml");
echo $content;
?>
Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Version | System time (s) | User time (s) | Memory (MiB) |
---|---|---|---|
5.6.0 | 0.010 | 0.067 | 20.61 |