#1 (permalink)  
Alt 16.12.2004, 21:00
Benutzerbild von Haxley
Erfahrener Benutzer
 
Registriert seit: 05.03.2004
Beiträge: 271
Daumen runter

Der Code f?r den Froogle Export ist fertig m??te auch funzn.
Bitte mal testen!
Gru? Haxley
Wie man den einbindet weiss ja wohl jeder... loool, erz?hl ich jetzt nicht.

Code:
<?php
/* -----------------------------------------------------------------------------------------
  $Id: froogle.php,v 0.2 2004/12/17 21:45:10 Haxley Exp $

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

  Copyright (c) 2004 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

 Modified for XT-Commerce by Haxley (froogle.php,v 0.2)
 http://www.plexcom.de
 Dez , 2004
  ---------------------------------------------------------------------------------------*/


define('MODULE_FROOGLE_TEXT_DESCRIPTION', 'Export - Froogle im txt Format');
define('MODULE_FROOGLE_TEXT_TITLE', 'Froogle - 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?hrung');
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('CHARSET','iso-8859-1');

// 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);

  }


  function process($file) {

    @xtc_set_time_limit(0);

    
    $schema .= 'product_url'."\t".'name'."\t".'description'."\t".'image_url'."\t".'category'."\t".'price'."\n";


    $export_query =xtc_db_query("SELECT
               p.products_id,
               pd.products_name,
               pd.products_description,
    p.products_image,
    p.products_discount_allowed,
    p.products_price,
               p.products_model,
               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 = xtc_get_products_price_export($products['products_id'],1,true,$_POST['status'],1,$_POST['currencies'],true);
     //Tausenderpunkt entfernen
     $products_price = str_replace(".","",$products_price);
  //dezimal Komma zu Punkt
  $products_price = str_replace(",",".",$products_price);
      // remove trash
      $products_description = strip_tags($products['products_description']);
      $products_description = substr($products_description, 0, 512 ) . '..';
       $products_description = str_replace(";",", ",$products_description);
      $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("&quot,"," \"",$products_description);
      $products_description = str_replace("&qout,"," \"",$products_description);

      // 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'];
       }
       $categorie_query=xtc_db_query("SELECT
                      categories_name
                      FROM ".TABLE_CATEGORIES_DESCRIPTION."
                      WHERE categories_id='".$categories."'
                      and language_id='".$_SESSION['languages_id']."'");
       $categorie_data=xtc_db_fetch_array($categorie_query);
  $categorie_data = str_replace(" ",">",$categorie_data);
      //create content

      //create content
if($products['products_image']==''){
$froogle_image="";
} else {
$froogle_image=HTTP_CATALOG_SERVER . DIR_WS_CATALOG_THUMBNAIL_IMAGES . $products['products_image'];
}
           $schema .=
            HTTP_CATALOG_SERVER . DIR_WS_CATALOG . 'product_info.php?products_id=' . $products['products_id']."\t".
            $products['products_name'] . "\t".
            $products_description ."\t".
    $froogle_image . "\t".
    $categorie_data['categories_name'] . "\t".
            $products_price. "\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 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>';
  }

  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.
              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_image_submit('button_export.gif', IMAGE_UPDATE) .

              '<a href="' . xtc_href_link(FILENAME_MODULE_EXPORT, 'set=' . $_GET['set'] . '&module=froogle') . '">' .
              xtc_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');


  }

  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');
  }

 }
?>
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #2 (permalink)  
Alt 16.12.2004, 21:08
Benutzerbild von Haxley
Erfahrener Benutzer
 
Registriert seit: 05.03.2004
Beiträge: 271
Standard

Ach so.... ist ?brigens f?r die 2 er Version von XTC
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #3 (permalink)  
Alt 16.12.2004, 21:33
HHGAG
Gast
 
Beiträge: n/a
Standard

F?r die v3 gab es schon vor dem offiziellem Start von froogle :-p
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #4 (permalink)  
Alt 16.12.2004, 22:20
Benutzerbild von SvFricke
Erfahrener Benutzer
 
Registriert seit: 25.04.2004
Beiträge: 370
Standard

Das Ergebnis bei mir:

- Die description endet mit 2 Punkten
- Es wird nur die unterste Kategorie ausgegeben. Hierin werden Blanks durch ">" ersetzt
- der Preis enth?lt keine Zeichen (1995 f?r 19.95)

Sven
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #5 (permalink)  
Alt 17.12.2004, 05:39
Benutzerbild von Haxley
Erfahrener Benutzer
 
Registriert seit: 05.03.2004
Beiträge: 271
Standard

Die description endet mit 2 Punkten
- dann ist keine Beschreibung des Artikels vorhanden

Es wird nur die unterste Kategorie ausgegeben. Hierin werden Blanks durch ">" ersetzt
- das > wird von froogle gefordert, nur die Unterste...? hmm pr?f ich noch mal

der Preis enth?lt keine Zeichen (1995 f?r 19.95)
- das ist bissel ein Problem, da jeder eine andere Formatierung verwendet. Kann aber ge?ndert werden, einfach mal die Zeile
//Tausenderpunkt entfernen
$products_price = str_replace(".","",$products_price);
//dezimal Komma zu Punkt
$products_price = str_replace(",",".",$products_price);

anpassen.

Erkl?rung:
Tausenderpunkt: wenn ein Punkt dann durch nichts ersetzt = (".","",
Dezikomma: Wenn ein Komma dann durch Punkt ersetzen = (",",".",

Halt das Ersetzen so anpassen das es dann so aussieht: 1243.57
Froggle will das Dezimal als Punkt und keine Tausendertrennung.

Gru? Haxley
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #6 (permalink)  
Alt 17.12.2004, 07:45
 
Registriert seit: 21.01.2004
Beiträge: 131
Standard

Alos f?r den Preis ist dies wohl eine bessere l?sung.

Code:
$products_price = number_format($products_price , 2, '.', '');
das wir kaufm?nnisch gerundet und gibt auch keine tausender aus!
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #7 (permalink)  
Alt 17.12.2004, 08:33
Benutzerbild von SvFricke
Erfahrener Benutzer
 
Registriert seit: 25.04.2004
Beiträge: 370
Standard

Nur kurz zu den Kategorien:

ich habe z.B. 1Poster, 2Die Walk?re

SOLL: Poster > Die Walk?re
IST: Die>Walk?re

Eine Beschreibung des Artikels ist vorhanden.


Im ?brigen finde ich es gut, dass du dich der Sache annimmst


Gru?
Sven
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #8 (permalink)  
Alt 17.12.2004, 11:34
Benutzerbild von Haxley
Erfahrener Benutzer
 
Registriert seit: 05.03.2004
Beiträge: 271
Standard

SOLL: Poster > Die Walk?re
IST: Die>Walk?re


Hmm ist klar, ich bin davon ausgegangen das die Kat. nur ein Wort enth?llt.

Na das bekomm ich auch noch hin. Wird aber erst heute abend.

Gru? Haxley
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #9 (permalink)  
Alt 17.12.2004, 15:22
Benutzerbild von leinedesign
xt:Commerce Support Kunde
 
Registriert seit: 01.10.2004
Ort: Hannover
Beiträge: 514
Beitrag

hallo,
wei? jemand was man angeben mu?, damit der Preis richtig gerundet wird von
--> 13.804 und mal so 1.2876 auf zwei stellen hinterm Komma???

Im Export Modul Froogle f?r 3.02 Version funktioniert das immer noch nicht richtig!!!!

Hab auch schon diberse Sachen ausprobiert:

CODE

$products_price. "\t" .


durch

CODE
number_format($products_price,2). "\t" .


ersetzen

funktioniert auch nicht!!!!!

Gru?

leinedesign
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #10 (permalink)  
Alt 17.12.2004, 15:48
 
Registriert seit: 21.01.2004
Beiträge: 131
Standard

so hat das auch ganz ganz ganz .... sicher keiner gesaget !

f?ge das mal so wie es dort steht in unter
//remove trash ein.

so wie du es gemacht hast kann es nicht gehen!
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
export, fertig, froogle

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:14 Uhr.

Copyright © 2011 xt:Commerce GmbH / xt:Commerce International Ltd. - All Rights Reserved

xt:Commerce is a SafeCharge brand