#1 (permalink)  
Alt 28.11.2004, 14:19
Benutzerbild von Haxley
Erfahrener Benutzer
 
Registriert seit: 05.03.2004
Beiträge: 271
Standard

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:
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
Code:
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
Code:
 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
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #2 (permalink)  
Alt 28.11.2004, 17:37
Benutzerbild von Haxley
Erfahrener Benutzer
 
Registriert seit: 05.03.2004
Beiträge: 271
Daumen runter

So ich habs hinbekommen.
Das ist die shoplisting.php f?r die Suchmaschine www.preissearch.de

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=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
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
anpassen, php, suchmaschine

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 16:55 Uhr.

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

xt:Commerce is a SafeCharge brand