Jump to content
xt:Commerce Community Forum

Im Export Modul Categorie Mit > Trennen


Haxley

Recommended Posts

Hallo

Ich versuche gerade ein Export Modul f?r eine gro?e Suchmaschiene zu bauen.

Nur hab ich da ein Problem.

Dort m?ssen die Categorien mit > getrennt werden. Wie mach ich das?

Der Codeteil sieht im Moment so aus:

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

      //create content

und macht im Moment die Categorie z.B so: Notebook Zubeh?r HD

ich brauch es aber so: Notebook > Zubeh?r > HD

Also mit > und jew. einem Leerzeichen davor und dahinter.

Kann mir da mal jemand einen Tipp geben?

Danke Gru? Haxley

PS: Wenn das Teil fertig ist gibts das nat?rlich hier auch f?r alle!

Link to comment
Share on other sites

Ja es geht um froogle :rock:

Bis auf 2 Dinge hab ich den Code fertig. Leider bekomme ich diese 2 Sachen mit meinen php Kenntnissen nicht hin.

1. die Categorien m?ssen mit "Leerzeichen > Leerzeichen" noch getrennt werden

2. Im Preis mu? im das 1000er Trennkomma weg.

Rest m?sste stimmen.

Wenn mir da mal einer Helfen k?nnte....!

Hier der vorl?ufige Code:


 <?php

/* -----------------------------------------------------------------------------------------

  $Id: froogle.php,v 0.1 2004/12/17 20:05: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); [url]www.oscommerce.com[/url]

  (c) 2003 nextcommerce (invoice.php,v 1.6 2003/08/24); [url]www.nextcommerce.org[/url]


  Released under the GNU General Public License


 Modified for XT-Commerce by Haxley (froogle.php,v 0.1)

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


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

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

  }


 }

?>

Gru? Haxley

Link to comment
Share on other sites

hi !

bin zwar nicht so gut in php, aber probier bez?glich tausender-komma beim preis folgendes:

nach zeile 96:

     

 $products_price = xtc_get_products_price_export($products['products_id'],1,true,$_POST['status'],1,$_POST['currencies'],true);

einf?gen:

     //Tausender-Komma bei Preis entfernen

      $products_price = str_replace("",",",$products_price);

k?nnte funktionieren ;-)

Link to comment
Share on other sites

Archived

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

×
  • Create New...