Jump to content
xt:Commerce Community Forum

google base


Recommended Posts

Hi Leute,

habe beigefügte base-Dateien soweit in den Shop eingebaut, nur leider werden ein paar Variablen nicht mit in die zu erstellende Datei eingebaut.

Bspw. die id fehlt.

Was müsste noch hinzugefügt werden?

<?php
/* -----------------------------------------------------------------------------------------
$Id: googlebase.php 1188 2007-05-31 14:24:34Z franz $

XT-Commerce - community made shopping
http://www.xt-commerce.com

Copyright (c) 2003 XT-Commerce
-----------------------------------------------------------------------------------------
based on:
(c) 2000-2001 The Exchange Project (earlier name of osCommerce)
(c) 2002-2003 osCommerce(cod.php,v 1.28 2003/02/14); www.oscommerce.com
(c) 2003 nextcommerce (invoice.php,v 1.6 2003/08/24); www.nextcommerce.org

Released under the GNU General Public License
---------------------------------------------------------------------------------------*/
defined( '_VALID_XTC' ) or die( 'Direct Access to this location is not allowed.' );

define('MODULE_GOOGLEBASE_TEXT_DESCRIPTION', 'Export - Google Base (XML RSS 2.0)');
define('MODULE_GOOGLEBASE_TEXT_TITLE', 'Google Base - XML');
define('MODULE_GOOGLEBASE_FILE_TITLE' , '<hr noshade>Dateiname');
define('MODULE_GOOGLEBASE_FILE_DESC' , 'Geben Sie einen Dateinamen ein, falls die Exportadatei am Server gespeichert werden soll.<br>(Verzeichnis export/)');
define('MODULE_GOOGLEBASE_STATUS_DESC','Modulstatus');
define('MODULE_GOOGLEBASE_STATUS_TITLE','Status');
define('MODULE_GOOGLEBASE_CURRENCY_TITLE','Währung');
define('MODULE_GOOGLEBASE_CURRENCY_DESC','Welche Währung soll exportiert werden?');
define('EXPORT_YES','Nur Herunterladen');
define('EXPORT_NO','Am Server Speichern');
define('CURRENCY','<hr noshade><b>Währung:</b>');
define('CURRENCY_DESC','Währung in der Exportdatei');
define('EXPORT','Bitte den Sicherungsprozess AUF KEINEN FALL unterbrechen. Dieser kann einige Minuten in Anspruch nehmen.');
define('EXPORT_TYPE','<hr noshade><b>Speicherart:</b>');
define('EXPORT_STATUS_TYPE','<hr noshade><b>Kundengruppe:</b>');
define('EXPORT_STATUS','Bitte wählen Sie die Kundengruppe, die Basis für den Exportierten Preis bildet. (Falls Sie keine Kundengruppenpreise haben, wählen Sie <i>Gast</i>):</b>');
define('CAMPAIGNS','<hr noshade><b>Kampagnen:</b>');
define('CAMPAIGNS_DESC','Mit Kampagne zur Nachverfolgung verbinden.');
define('DATE_FORMAT_EXPORT', '%d.%m.%Y'); // this is used for strftime()

function entities2utf8 ($string) {
return utf8_encode(alphaentities2html(numericentities2html($string)));
}

function alphaentities2html($text, $quote_style = ENT_COMPAT) {
if (function_exists('html_entity_decode')) {
$text = html_entity_decode($text, $quote_style, 'ISO-8859-1'); // NOTE: UTF-8 does not work!
}
else {
$trans_tbl = get_html_translation_table(HTML_ENTITIES, $quote_style);
$trans_tbl = array_flip($trans_tbl);
$text = strtr($text, $trans_tbl);
}
$text = preg_replace('~([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $text);
$text = preg_replace('~([0-9]+);~e', 'chr("\\1")', $text);
return $text;
}

function numericentities2html($string){
return preg_replace('/(\d+);/e', 'chr(str_replace(";","",str_replace("","","$0")))', $string);
}
// include needed functions
class googlebase {
var $code, $title, $description, $enabled;

function googlebase() {
global $order;

$this->code = 'googlebase';
$this->language = 'de';
$this->title = MODULE_GOOGLEBASE_TEXT_TITLE;
$this->description = MODULE_GOOGLEBASE_TEXT_DESCRIPTION;
$this->sort_order = MODULE_GOOGLEBASE_SORT_ORDER;
$this->enabled = ((MODULE_GOOGLEBASE_STATUS == 'True') ? true : false);
$this->CAT=array();
$this->PARENT=array();
}

function process($file) {
@xtc_set_time_limit(0);
require(DIR_FS_CATALOG.DIR_WS_CLASSES . 'xtcPrice.php');

$xtPrice = new xtcPrice($_POST['currencies'],$_POST['status']);

$export_query =xtc_db_query("SELECT
p.products_id,
pd.products_name,
pd.products_description,
p.products_model,
p.products_image,
p.products_status,
p.products_date_available,
p.products_shippingtime,
p.products_discount_allowed,
pd.products_meta_keywords,
p.products_tax_class_id,
p.products_date_added,
m.manufacturers_name
FROM
" . TABLE_PRODUCTS . " p LEFT JOIN
" . TABLE_MANUFACTURERS . " m
ON p.manufacturers_id = m.manufacturers_id LEFT JOIN
" . TABLE_PRODUCTS_DESCRIPTION . " pd
ON p.products_id = pd.products_id AND
pd.language_id = '".$_SESSION['languages_id']."' LEFT JOIN
" . TABLE_SPECIALS . " s
ON p.products_id = s.products_id
WHERE
p.products_status = 1 AND
p.products_price > 0
ORDER BY
p.products_date_added DESC,
pd.products_name");

$export_xml = sprintf('<?xml version="1.0" encoding="UTF-8"?>%s' .
'<rss version ="2.0" xmlns:g="http://base.google.com/ns/1.0">%s' .
'<channel>%s' .
' <title>%s</title>%s' .
' <description>%s</description>%s' .
' <link>%s</link>%s',
"\r\n\r\n",
"\r\n\r\n",
"\r\n",
TITLE,
"\r\n",
TITLE,
"\r\n",
HTTP_SERVER,
"\r\n\r\n"
);

while ($products = xtc_db_fetch_array($export_query)) {
$products_name = str_replace("<br>", " ", $products['products_name']);
$products_name = str_replace("<br />", " ", $products_name);
$products_name = str_replace(" ", "", $products_name);
$products_name = str_replace("–", "-", $products_name);
$products_name = str_replace("„", "", $products_name);
$products_name = str_replace("“", "", $products_name);
$products_name = str_replace("’", "", $products_name);
$products_name = str_replace("…", "...", $products_name);
$products_name = str_replace("™", "", $products_name);
$products_name = strip_tags($products_name);
$products_name = str_replace("\n", " ", $products_name);
$products_name = str_replace("\r", " ", $products_name);
$products_name = str_replace("\t", " ", $products_name);
$products_name = str_replace("\v", " ", $products_name);
$products_name = entities2utf8($products_name);

$products_description = str_replace("<br>", " ", $products['products_description']);
$products_description = str_replace("<br />", " ", $products_description);
$products_description = str_replace(" ", "", $products_description);
$products_description = str_replace("–", "-", $products_description);
$products_description = str_replace("„", "", $products_description);
$products_description = str_replace("“", "", $products_description);
$products_description = str_replace("’", "", $products_description);
$products_description = str_replace("…", "...", $products_description);
$products_description = str_replace("™", "", $products_description);
$products_description = strip_tags($products_description);
$products_description = str_replace("\n", " ", $products_description);
$products_description = str_replace("\r", " ", $products_description);
$products_description = str_replace("\t", " ", $products_description);
$products_description = str_replace("\v", " ", $products_description);
$products_description = entities2utf8($products_description);

$products_price = $xtPrice->xtcGetPrice($products['products_id'], $format=false, 1, $products['products_tax_class_id'], '');

// get product categorie
$categorie_query=xtc_db_query("SELECT
categories_id
FROM ".TABLE_PRODUCTS_TO_CATEGORIES."
WHERE products_id='".$products['products_id']."'");
while ($categorie_data=xtc_db_fetch_array ($categorie_query)) {
$categories=$categorie_data['categories_id'];
}

//create content
$export_xml .= sprintf ('<item>%s' .
'<title>%s</title>%s' .
'<description>%s</description>%s' .
'<link>%s</link>%s' .
'<g:bild_url>%s</g:bild_url>%s' .
'<g:preis>%s</g:preis>%s' .
'<g:hersteller>%s</g:hersteller>%s' .
'<g:produktart>%s</g:produktart>%s' .
'</item>%s',
"\r\n",
$products_name, "\r\n",
substr($products_description, 0, 65536), "\r\n",
$link, "\r\n",
$image, "\r\n",
number_format($products_price,2,'.',''), "\r\n",
utf8_encode($products['manufacturers_name']), "\r\n",
utf8_encode(substr($cat,0,strlen($cat)-3)), "\r\n",
"\r\n\r\n"
);
}

$export_xml .= "</channel>\r\n</rss>";
$export_xml = str_replace("&", "<![CDATA[&]]>", $export_xml);

// create File
$fp = fopen(DIR_FS_DOCUMENT_ROOT.'export/' . $file, "w+");
fputs($fp, $export_xml);
fclose($fp);

if ($_POST['export'] == yes) {
// send File to Browser
$extension = substr($file, -3);
$fp = fopen(DIR_FS_DOCUMENT_ROOT.'export/' . $file,"rb");
$buffer = fread($fp, filesize(DIR_FS_DOCUMENT_ROOT.'export/' . $file));
fclose($fp);
header('Content-type: application/x-octet-stream');
header('Content-disposition: attachment; filename=' . $file);
echo $buffer;
exit;
}
}

function buildCAT($catID) {
if (isset($this->CAT[$catID])) {
return $this->CAT[$catID];
} else {
$cat=array();
$tmpID=$catID;

while ($this->getParent($catID)!=0 || $catID!=0) {
$cat_select=xtc_db_query("SELECT categories_name FROM ".TABLE_CATEGORIES_DESCRIPTION." WHERE categories_id='".$catID."' and language_id='".$_SESSION['languages_id']."'");
$cat_data=xtc_db_fetch_array($cat_select);
$catID=$this->getParent($catID);
$cat[]=$cat_data['categories_name'];
}

$catStr='';
for ($i=count($cat);$i>0;$i--) {
$catStr.=$cat[$i-1].' > ';
}

$this->CAT[$tmpID]=$catStr;
return $this->CAT[$tmpID];
}
}

function getParent($catID) {
if (isset($this->PARENT[$catID])) {
return $this->PARENT[$catID];
} else {
$parent_query=xtc_db_query("SELECT parent_id FROM ".TABLE_CATEGORIES." WHERE categories_id='".$catID."'");
$parent_data=xtc_db_fetch_array($parent_query);
$this->PARENT[$catID]=$parent_data['parent_id'];
return $parent_data['parent_id'];
}
}

function display() {
$customers_statuses_array = xtc_get_customers_statuses();

// build Currency Select
$curr='';
$currencies=xtc_db_query("SELECT code FROM ".TABLE_CURRENCIES);
while ($currencies_data=xtc_db_fetch_array($currencies)) {
$curr.=xtc_draw_radio_field('currencies', $currencies_data['code'],true).$currencies_data['code'].'<br>';
}

$campaign_array = array(array('id' => '', 'text' => TEXT_NONE));
$campaign_query = xtc_db_query("select campaigns_name, campaigns_refID from ".TABLE_CAMPAIGNS." order by campaigns_id");
while ($campaign = xtc_db_fetch_array($campaign_query)) {
$campaign_array[] = array ('id' => 'refID='.$campaign['campaigns_refID'], 'text' => $campaign['campaigns_name'],);
}

return array('text' => EXPORT_STATUS_TYPE.'<br>'.
EXPORT_STATUS.'<br>'.
xtc_draw_pull_down_menu('status',$customers_statuses_array, '1').'<br>'.
CURRENCY.'<br>'.
CURRENCY_DESC.'<br>'.
$curr.
CAMPAIGNS.'<br>'.
CAMPAIGNS_DESC.'<br>'.
xtc_draw_pull_down_menu('campaign',$campaign_array).'<br>'.
EXPORT_TYPE.'<br>'.
EXPORT.'<br>'.
xtc_draw_radio_field('export', 'no',false).EXPORT_NO.'<br>'.
xtc_draw_radio_field('export', 'yes',true).EXPORT_YES.'<br>'.
'<br>' . xtc_button(BUTTON_EXPORT) .
xtc_button_link(BUTTON_CANCEL, xtc_href_link(FILENAME_MODULE_EXPORT, 'set=' . $_GET['set'] . '&module=googlebase')));
}

function check() {
if (!isset($this->_check)) {
$check_query = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_GOOGLEBASE_STATUS'");
$this->_check = xtc_db_num_rows($check_query);
}
return $this->_check;
}

function install() {
xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_GOOGLEBASE_FILE', 'googlebase.xml', '6', '1', '', now())");
xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_GOOGLEBASE_STATUS', 'True', '6', '1', 'xtc_cfg_select_option(array(\'True\', \'False\'), ', now())");
}

function remove() {
xtc_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
}

function keys() {
return array('MODULE_GOOGLEBASE_STATUS','MODULE_GOOGLEBASE_FILE');
}
}
?>
[/PHP]

googlebase.zip

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...