Moin,
ich habe das mit dem Zustand quick & dirty gelöst indem ich einfach eine neue Spalte Zustand angelegt habe, die grundsätzlich immer mit neu gefüllt wird. Macht natürlich nur sinn wenn man nur neue Sachen verkauft....
Hier meine froogle.php
Zitat:
<?php
/* -----------------------------------------------------------------------------------------
$Id: froogle.php 1188 2005-08-28 14:24:34Z matthias $
XT-Commerce - community made shopping
xt:Commerce Shopsoftware VEYTON 4.0
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); osCommerce, Open Source Online Shop E-Commerce Solutions
(c) 2003 nextcommerce (invoice.php,v 1.6 2003/08/24); nextcommerce.org
Released under the GNU General Public License
---------------------------------------------------------------------------------------*/
defined( '_VALID_XTC' ) or die( 'Direct Access to this location is not allowed.' );
define('MODULE_FROOGLE_TEXT_DESCRIPTION', 'Export - Froogle.de (Tab getrennt)');
define('MODULE_FROOGLE_TEXT_TITLE', 'Froogle.de - TXT');
define('MODULE_FROOGLE_FILE_TITLE' , '<hr noshade>Dateiname');
define('MODULE_FROOGLE_FILE_DESC' , 'Geben Sie einen Dateinamen ein, falls die Exportadatei am Server gespeichert werden soll.<br>(Verzeichnis export/)');
define('MODULE_FROOGLE_STATUS_DESC','Modulstatus') ;
define('MODULE_FROOGLE_STATUS_TITLE','Status');
define('MODULE_FROOGLE_CURRENCY_TITLE','Währu ng');
define('MODULE_FROOGLE_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()
// include needed functions
class froogle {
var $code, $title, $description, $enabled;
function froogle() {
global $order;
$this->code = 'froogle';
$this->title = MODULE_FROOGLE_TEXT_TITLE;
$this->description = MODULE_FROOGLE_TEXT_DESCRIPTION;
$this->sort_order = MODULE_FROOGLE_SORT_ORDER;
$this->enabled = ((MODULE_FROOGLE_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']);
//KORREKTUR ZUSTAND
$schema = 'link'."\t".'id'."\t".'titel'."\t".'beschreibung'. "\t".'bild_url'."\t".'preis'."\t".'zustand'."\t".' marke'."\n" ;
$export_query =xtc_db_query("SELECT
p.products_id,
pd.products_name,
pd.products_description,
p.products_model,
p.products_image,
p.products_price,
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
ORDER BY
p.products_date_added DESC,
pd.products_name");
while ($products = xtc_db_fetch_array($export_query)) {
$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'];
}
// remove trash
$products_description = str_replace("<br>"," ",$products_description);
$products_description = str_replace("<br />"," ",$products_description);
$products_description = strip_tags($products['products_description']);
// $products_description = str_replace(";","",$products_description);
// anfang änderung wegen Umlautproblem
$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 = 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 = str_replace ("µ", "µ", $products_description);
// ende anderung wegen Umlautproblem
$products_description = str_replace("'",", ",$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 = str_replace("","," \"",$products_description);
$products_description = str_replace("&qout,"," \"",$products_description);
$products_description = str_replace(chr(13)," ",$products_description);
$products_description = substr($products_description, 0, 65536);
$cat = $this->buildCAT($categories);
if ($products['products_image'] != ''){
$image = HTTP_CATALOG_SERVER . DIR_WS_CATALOG_ORIGINAL_IMAGES .$products['products_image'];
}else{
$image = '';
}
//create content
//KORREKTUR ZUSTAND
$zustand = 'neu';
$schema .=
HTTP_CATALOG_SERVER . DIR_WS_CATALOG . 'product_info.php?'.$_POST['campaign'].xtc_product_link($products['products_id'], $products['products_name']) . "\t" .
$products['products_id'] ."\t".
$products['products_name'] ."\t".
$products_description ."\t".
$image ."\t" .
number_format($products_price,2,'.',''). "\t" .
//KORREKTUR ZUSTAND
$zustand . "\t" .
$products['manufacturers_name'] ."\n";
}
// create File
$fp = fopen(DIR_FS_DOCUMENT_ROOT.'export/' . $file, "w+");
fputs($fp, $schema);
fclose($fp);
switch ($_POST['export']) {
case '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;
break;
}
}
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_status es_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=froogle')));
}
function check() {
if (!isset($this->_check)) {
$check_query = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_FROOGLE_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_FROOGLE_FILE', 'froogle.txt', '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_FROOGLE_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_FROOGLE_STATUS','MODULE_FROOGLE_FILE ');
}
}
?>
|
|