3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?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("&nbsp;"," ",$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; ?>
Output for 5.6.0
Warning: require(../includes/configure.php): failed to open stream: No such file or directory in /in/l1huq on line 18 Fatal error: require(): Failed opening required '../includes/configure.php' (include_path='.:') in /in/l1huq on line 18
Process exited with code 255.