Haxley Posted November 28, 2004 Report Share Posted November 28, 2004 Hallo Ich habe hier ein Script das zur Anmeldung bei einer Suchmaschine dient. Leider ist die f?r OSC geschrieben und ich bekomme die Anpassung nicht hin. Normalerweise sollte das Script eine Bildschirmausgabe mit formatiertem Text auswerfen. Hier der Code: <?php require_once('includes/configure.php'); require('includes/application_top.php'); // Wichtig: Diese Datei muss im selben Verzeichnis wie die product_info.php liegen, also meist /catalog/. // Datenbankparamter werden aus den oscommerce-config-files gelesen. $hostname_oscommerce = DB_SERVER; $database_oscommerce = DB_DATABASE; $username_oscommerce = DB_SERVER_USERNAME; $password_oscommerce = DB_SERVER_PASSWORD; // Pfadparameter werden aus den oscommerce-config-files gelesen. $cat=(defined('DIR_WS_HTTP_CATALOG'))?DIR_WS_HTTP_CATALOG:DIR_WS_CATALOG; $imagepath=HTTP_SERVER.$cat.DIR_WS_IMAGES; //falls Ihre Datailpage anders lautet, bitte entsprechend anpassen: $detailpage=HTTP_SERVER.$cat."product_info.php?products_id="; // Hier bitte Anpassungen vornehmen: $exclude_status_0=true; // Produkte, die als "nicht vorr?tig" eingestellt sind, nicht mit ausgeben. $lieferzeit_a="10"; // Lieferzeit in Tagen f?r "nicht vorr?tig" $lieferzeit_b="2"; // Lieferzeit in Tagen f?r "auf Lager" $lieferzeit="4"; // Standard-Lieferzeit. Wird genutzt, wenn $exclude_status_0=true; $versandkostenfrei_ab="50"; // Artikel versandkostenfrei ab ?? 0=immer 999999999=nie $oscommerce = mysql_pconnect($hostname_oscommerce, $username_oscommerce, $password_oscommerce) or die(mysql_error()); mysql_select_db($database_oscommerce, $oscommerce); $limit=0; $limit_step=1000; // Gruppengr??e, in der die Produkte gelesen werden do{ if ($exclude_status_0){ $query_Recordset1 = "SELECT products.products_id, products.products_model, products.products_image, products.products_price, products.products_tax_class_id, products_description.products_name, products_description.products_description FROM products, products_description WHERE products.products_id=products_description.products_id AND products_description.language_id=2 AND products.products_status > 0 LIMIT $limit, $limit_step"; }else{ $query_Recordset1 = "SELECT products.products_status, products.products_id, products.products_model, products.products_image, products.products_price, products.products_tax_class_id, products_description.products_name, products_description.products_description FROM products, products_description WHERE products.products_id=products_description.products_id AND products_description.language_id=2 LIMIT $limit, $limit_step"; } $Recordset1 = mysql_query($query_Recordset1, $oscommerce) or die(mysql_error()); $row_Recordset1 = mysql_fetch_assoc($Recordset1); $count = mysql_num_rows($Recordset1); if ($count > 0) do { $name=$row_Recordset1['products_name']; $name=str_replace('|',' ',$name); // | entfernen $name=strip_tags($name); // HTML entfernen if ($sonderpr=tep_get_products_special_price($row_Recordset1['products_id'])){ $price=$sonderpr; }else{ $price=$row_Recordset1['products_price']; } $tax=(100+tep_get_tax_rate($row_Recordset1['products_tax_class_id']))/100; $price=number_format($price*$tax,2,".",""); //Preis formatieren und 16% MwSt. draufrechnen $description=$row_Recordset1['products_description']; $description=str_replace("\n"," ",$description); //Zeilenumbruch entfernen $description=str_replace("\r","",$description); //CR entfernen $description=strip_tags($description); //HTML entfernen $description=str_replace('|',' ',$description); // | entfernen if ($exclude_status_0){ echo $row_Recordset1['products_id']."|".$name."|".((strlen($description) < 130 )?($description." "):(substr($description,0,130)." ... "))."|".$price."|".(($row_Recordset1['products_image'] <> "")?$imagepath.$row_Recordset1['products_image']:" ")."|".$detailpage.$row_Recordset1['products_id']."|".$lieferzeit."|".(($price >= $versandkostenfrei_ab)?"1":"0")."\n"; }else{ echo $row_Recordset1['products_id']."|".$name."|".((strlen($description) < 130 )?($description." "):(substr($description,0,130)." ... "))."|".$price."|".(($row_Recordset1['products_image'] <> "")?$imagepath.$row_Recordset1['products_image']:" ")."|".$detailpage.$row_Recordset1['products_id']."|".(($row_Recordset1['products_status']==0)?$lieferzeit_a:$lieferzeit_b)."|".(($price >= $versandkostenfrei_ab)?"1":"0")."\n"; } } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); mysql_free_result($Recordset1); $limit+=$limit_step; flush(); sleep(2); }while ($count > 0) ?> Der Fehler tritt in Line 46 auf, also bei if ($sonderpr=tep_get_products_special_price($row_Recordset1['products_id'])){ Nennen wir das Script mal shoplister.php und es muss in der Verzeichnis wo auch Ihre produkt_info.php liegt kopiert werden. http://www.hier-bitte-ihren-shop-eintragen.../shoplister.php m?sste eine korrekt formatierte Textdatei zu sehen sein. Mir ist klar das: "tep_get_products_special_price" nicht richtig ist und ich hab es durch "xtc_get_products_attribute_price" ersetzt, klappt aber auch nicht. Wenn ich if ($sonderpr=tep_get_products_special_price($row_Recordset1['products_id'])){ $price=$sonderpr; }else{ $price=$row_Recordset1['products_price']; } $tax=(100+tep_get_tax_rate($row_Recordset1['products_tax_class_id']))/100; $price=number_format($price*$tax,2,".",""); //Preis formatieren und 16% MwSt. draufrechnen auskommentier geht das script, aber halt ohne Preis. Wer kann mir da mal helfen? Super Dank Gru? Haxley Link to comment Share on other sites More sharing options...
Haxley Posted November 28, 2004 Author Report Share Posted November 28, 2004 So ich habs hinbekommen. Das ist die shoplisting.php f?r die Suchmaschine www.preissearch.de <?php require_once('includes/configure.php'); require('includes/application_top.php'); // Wichtig: Diese Datei muss im selben Verzeichnis wie die product_info.php liegen, also meist /catalog/. // Datenbankparamter werden aus den oscommerce-config-files gelesen. $hostname_oscommerce = DB_SERVER; $database_oscommerce = DB_DATABASE; $username_oscommerce = DB_SERVER_USERNAME; $password_oscommerce = DB_SERVER_PASSWORD; // Pfadparameter werden aus den oscommerce-config-files gelesen. $cat=(defined('DIR_WS_HTTP_CATALOG'))?DIR_WS_HTTP_CATALOG:DIR_WS_CATALOG; $imagepath=HTTP_SERVER.$cat.DIR_WS_IMAGES; //falls Ihre Datailpage anders lautet, bitte entsprechend anpassen: $detailpage=HTTP_SERVER.$cat."product_info.php?products_id="; // Hier bitte Anpassungen vornehmen: $exclude_status_0=true; // Produkte, die als "nicht vorr?tig" eingestellt sind, nicht mit ausgeben. $lieferzeit_a="10"; // Lieferzeit in Tagen f?r "nicht vorr?tig" $lieferzeit_b="2"; // Lieferzeit in Tagen f?r "auf Lager" $lieferzeit="4"; // Standard-Lieferzeit. Wird genutzt, wenn $exclude_status_0=true; $versandkostenfrei_ab="50"; // Artikel versandkostenfrei ab ?? 0=immer 999999999=nie $oscommerce = mysql_pconnect($hostname_oscommerce, $username_oscommerce, $password_oscommerce) or die(mysql_error()); mysql_select_db($database_oscommerce, $oscommerce); $limit=0; $limit_step=1000; // Gruppengr??e, in der die Produkte gelesen werden do{ if ($exclude_status_0){ $query_Recordset1 = "SELECT products.products_id, products.products_model, products.products_image, products.products_price, products.products_tax_class_id, products_description.products_name, products_description.products_description FROM products, products_description WHERE products.products_id=products_description.products_id AND products_description.language_id=2 AND products.products_status > 0 LIMIT $limit, $limit_step"; }else{ $query_Recordset1 = "SELECT products.products_status, products.products_id, products.products_model, products.products_image, products.products_price, products.products_tax_class_id, products_description.products_name, products_description.products_description FROM products, products_description WHERE products.products_id=products_description.products_id AND products_description.language_id=2 LIMIT $limit, $limit_step"; } $Recordset1 = mysql_query($query_Recordset1, $oscommerce) or die(mysql_error()); $row_Recordset1 = mysql_fetch_assoc($Recordset1); $count = mysql_num_rows($Recordset1); if ($count > 0) do { $name=$row_Recordset1['products_name']; $name=str_replace('|',' ',$name); // | entfernen $name=strip_tags($name); // HTML entfernen if ($sonderpr=xtc_get_products_special_price($row_Recordset1['products_id'])){ $price=$sonderpr; }else{ $price=$row_Recordset1['products_price']; } $tax=(100+xtc_get_tax_rate($row_Recordset1['products_tax_class_id']))/100; $price=number_format($price*$tax,2,".",""); //Preis formatieren und 16% MwSt. draufrechnen $description=$row_Recordset1['products_description']; $description=str_replace("\n"," ",$description); //Zeilenumbruch entfernen $description=str_replace("\r","",$description); //CR entfernen $description=strip_tags($description); //HTML entfernen $description=str_replace('|',' ',$description); // | entfernen if ($exclude_status_0){ echo $row_Recordset1['products_id']."|".$name."|".((strlen($description) < 130 )?($description." "):(substr($description,0,130)." ... "))."|".$price."|".(($row_Recordset1['products_image'] <> "")?$imagepath.$row_Recordset1['products_image']:" ")."|".$detailpage.$row_Recordset1['products_id']."|".$lieferzeit."|".(($price >= $versandkostenfrei_ab)?"1":"0")."\n"; }else{ echo $row_Recordset1['products_id']."|".$name."|".((strlen($description) < 130 )?($description." "):(substr($description,0,130)." ... "))."|".$price."|".(($row_Recordset1['products_image'] <> "")?$imagepath.$row_Recordset1['products_image']:" ")."|".$detailpage.$row_Recordset1['products_id']."|".(($row_Recordset1['products_status']==0)?$lieferzeit_a:$lieferzeit_b)."|".(($price >= $versandkostenfrei_ab)?"1":"0")."\n"; } } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); mysql_free_result($Recordset1); $limit+=$limit_step; flush(); sleep(2); }while ($count > 0) ?> So gehts: Dort anmelden und alles eintragen. Der Link ist dann: http://www.hier-bitte-ihren-shop-eintragen.../shoplister.php Dann per ftp: shoplister.php in das Verzeichnis wo auch Ihre produkt_info.php liegt. (also ins Grundverzeichnis) Wenn Sie alles korrekt eingetragen haben, geben Sie nachfolgende URL in Ihren Browser ein: http://www.hier-bitte-ihren-shop-eintragen.../shoplister.php Jetzt m?sste eine korrekt formatierte Textdatei zu sehen sein. Diese holt sich dann die Suchmaschine automatisch. Gru? Haxley Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.