Jump to content
xt:Commerce Community Forum

Php F?r Suchmaschine Anpassen


Haxley

Recommended Posts

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

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

Archived

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

×
  • Create New...