Haxley Posted December 16, 2004 Report Share Posted December 16, 2004 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 More sharing options...
sff Posted December 16, 2004 Report Share Posted December 16, 2004 Also der Codeteil da oben liest dir nur alles in ein Array... Wie der Kommentar "//create content" vermuten l?sst, wird das zusammenf?gen ab dort passieren.... Um welche Suma geht's denn? Link to comment Share on other sites More sharing options...
SvFricke Posted December 16, 2004 Report Share Posted December 16, 2004 K?nnte Froogle sein! Habe gestern meine Zugansdaten bekommen und bin jetzt auf der Suche nach einem Modul. F?r xtc 3 gibt es das ja bereits. xtc2 werde ich heute abend testen. Sven Link to comment Share on other sites More sharing options...
Haxley Posted December 16, 2004 Author Report Share Posted December 16, 2004 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("","," \"",$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 More sharing options...
klenny Posted December 16, 2004 Report Share Posted December 16, 2004 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 More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.