Jump to content


Corporate Sponsors


Latest News: (loading..)

* * * * * 1 votes

RSS Feed contribution support thread


359 replies to this topic

#321 lordofcb

  • Community Member
  • 68 posts
  • Real Name:Homer Ford
  • Gender:Male
  • Location:Perth, West Australia

Posted 29 September 2009, 16:19

I thought I had everything working (version 2.2 march 23rd 2009), but am plagued with a few odd problems.
First off, when I go into admin, to copy one item to create a new one from it, I get the following error..

1062 - Duplicate entry '0-29' for key 1

insert into products_to_categories (products_id, categories_id) values ('0', '29')

[TEP STOP]

I already had the original duplicate key 80 error during setup and fixed it with the suggested patch. Using copy product is a very useful feature, sure is a lot easier than doing all products from scratch. I have no idea how to fix this one. Any ideas?
I have been able to add new products and categories etc with no problem. It was only when I tried the product copy function that this occured.

#322 lordofcb

  • Community Member
  • 68 posts
  • Real Name:Homer Ford
  • Gender:Male
  • Location:Perth, West Australia

Posted 29 September 2009, 16:47

Sorry about the duplicate messages, I was getting 500 errors when submitting the reply. I just thought of one other odd thing I could add to prior message that also has occured.. when I looked at my catalog products, all had the rss checked and checked in box on product details.. But, when I go to create a new product, instead of it starting as usual with the in stock unchecked.. now, in stock is checked, but the rss checkbox at lower right starts off as unchecked.
I have been looking and wonder if it is related to the area of code around line 300 in admin/categories.php such as...

elseif ($HTTP_POST_VARS['copy_as'] == 'duplicate') {
$product_query = tep_db_query("select products_quantity, products_model, products_image, products_price, products_date_available, products_weight, products_tax_class_id, manufacturers_id, products_to_rss from " . TABLE_PRODUCTS . " where products_id = '" . (int)$products_id . "'");
$product = tep_db_fetch_array($product_query);

tep_db_query("insert into " . TABLE_PRODUCTS . " (products_quantity, products_model,products_image, products_price, products_date_added, products_date_available, products_weight, products_status, products_tax_class_id, manufacturers_id, products_to_rss) values ('" . tep_db_input($product['products_quantity']) . "', '" . tep_db_input($product['products_model']) . "', '" . tep_db_input($product['products_image']) . "', '" . tep_db_input($product['products_price']) . "', now(), " . (empty($product['products_date_available']) ? "null" : "'" . tep_db_input($product['products_date_available']) . "'") . ", '" . tep_db_input($product['products_weight']) . "', '0', '" . (int)$product['products_tax_class_id'] . "', '" . (int)$product['manufacturers_id'] . "', '" . (int)$product['products_to_rss'] . "')");

Mine was slight different during the install since I have Header Tags SEO installed, so I tried to fit in the changes from install as best I could.

#323 lordofcb

  • Community Member
  • 68 posts
  • Real Name:Homer Ford
  • Gender:Male
  • Location:Perth, West Australia

Posted 30 September 2009, 04:08

I have found a bit more information, but am still unable to correct the problem. After browsing my database, I can see that since installing this contribution, creating a new product seems to add in correctly, but every attempt I made to duplicate an item, has created the duplicate product with a new product number, but none of them have been assigned to the category in the products_to_categories table. New products are being added in there ok, but not duplicates. It does seem odd to me though that no one else has reported this problem. So I went back and started with clean admin/categories.php and performed all the installation changes again, and still am getting the same result.

#324 lordofcb

  • Community Member
  • 68 posts
  • Real Name:Homer Ford
  • Gender:Male
  • Location:Perth, West Australia

Posted 30 September 2009, 07:31

I found my own error, and it was due to the editor I was using to change the php files.. for this section from the instructions..

###Find:

tep_db_query("insert into " . TABLE_PRODUCTS . " (products_quantity, products_model,products_image, products_price, products_date_added, products_date_available, products_weight, products_status, products_tax_class_id, manufacturers_id) values ('" . tep_db_input($product['products_quantity']) . "', '" . tep_db_input($product['products_model']) . "', '" . tep_db_input($product['products_image']) . "', '" . tep_db_input($product['products_price']) . "', now(), " . (empty($product['products_date_available']) ? "null" : "'" . tep_db_input($product['products_date_available']) . "'") . ", '" . tep_db_input($product['products_weight']) . "', '0', '" . (int)$product['products_tax_class_id'] . "', '" . (int)$product['manufacturers_id'] . "')");


###Replace with:

tep_db_query("insert into " . TABLE_PRODUCTS . " (products_quantity, products_model,products_image, products_price, products_date_added, products_date_available, products_weight, products_status, products_tax_class_id, manufacturers_id, products_to_rss) values ('" . tep_db_input($product['products_quantity']) . "', '" . tep_db_input($product['products_model']) . "', '" . tep_db_input($product['products_image']) . "', '" . tep_db_input($product['products_price']) . "', now(), " . (empty($product['products_date_available']) ? "null" : "'" . tep_db_input($product['products_date_available']) . "'") . ", '" . tep_db_input($product['products_weight']) . "', '0', '" . (int)$product['products_tax_class_id'] . "', '" . (int)$product['manufacturers_id'] . "', '" . (int)$product['products_to_rss'] . "')");

I was also accidentally deleting the line right under the original as I though it was the end of the line I was searching for
and I even did the same thing twice, because my editor didn't show me the end of the line i was looking at.
I accidentally deleted the following line which generated the errors since no product id was being set:

$dup_products_id = tep_db_insert_id();

#325 z4m0lx3

  • Community Member
  • 11 posts
  • Real Name:Grigoras Ionut

Posted 21 October 2009, 12:23

My RSS feed is empty...it doesn't show anything, and I've followed every step in the instructions file. Strange enough, the RSS does work for the manufacturers section, but not for the main page or any other.

This is my RSS file: http://shop.nutrishop.ro/rss.php (which is empty)and http://shop.nutrishop.ro/rss.php?language=en&manufacturers_id=23 (which shows up correctly)

Any help, please?:)

#326 ceteris

  • Community Member
  • 4 posts
  • Real Name:Robson Gomes

Posted 22 October 2009, 02:51

How to disable display manufacturer in rss?

Edited by ceteris, 22 October 2009, 02:52.


#327 zozzoozzz

  • Community Member
  • 219 posts
  • Real Name:JUN

Posted 31 October 2009, 01:46

I have installed the useful ADD-ON but here have a problems :


Top Category feeds not displaying when Top category has sub-categories (sub-categories show fine).

Example:
Category 1 ===> displays fine
Category 2 ===> DOESN'T DISPLAY
L Sub-Category 1 ===> displays fine
L Sub-Category 2 ===> displays fine
Category 3 ===> displays fine



anybody can help?

#328 jozinecko

  • Community Member
  • 34 posts
  • Real Name:Jozef Ziak

Posted 07 November 2009, 21:51

Hello,
please how I can modify category language? because all like name, description is from actual language whitin category name. Please help me.
here is my modified code:
<?php
/*
  $Id: rss.php,v 2.0 2007/05/12 19:30:06 hpdl Exp $

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2003 osCommerce

  Released under the GNU General Public License
*/

/*
 * Include the application_top.php script
 */
require('includes/application_top.php');

require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_RSS);

$navigation->remove_current_page();

// If the language is not specified
  $lang_query = tep_db_query("select languages_id, code from " . TABLE_LANGUAGES . " where languages_id = '" . (int)$languages_id . "'");

// Recover the code (fr, en, etc) and the id (1, 2, etc) of the current language
if (tep_db_num_rows($lang_query)) {
  $lang_a = tep_db_fetch_array($lang_query);
    $lang_code = $lang_a['code'];
}

define(RSS_STRIP_HTML_TAGS,false);
// If the default of your catalog is not what you want in your RSS feed, then
// please change this three constants:
// Enter an appropriate title for your website
define(RSS_TITLE, STORE_NAME);
// Enter your main shopping cart link
define(WEBLINK, HTTP_SERVER);
// Enter a description of your shopping cart
define(DESCRIPTION, TITLE);
/////////////////////////////////////////////////////////////
//That's it.  No More Editing (Unless you renamed DB tables or need to switch
//to SEO links (Apache Rewrite URL)
/////////////////////////////////////////////////////////////

$store_name = STORE_NAME;
$rss_title = RSS_TITLE;
$weblink = WEBLINK;
$description = DESCRIPTION;
$email_address = STORE_OWNER_EMAIL_ADDRESS;

$subtitle = '';

function replace_problem_characters($text) {
    $formattags = array("&"); 	
    $replacevals = array("&");
    $text = str_replace($formattags, $replacevals, $text);
    //$in[] = '@&(amp|#038);@i'; $out[] = '&';
    $in[] = '@&(#036);@i'; $out[] = '$';
    $in[] = '@&(quot);@i'; $out[] = '"';
    $in[] = '@&(#039);@i'; $out[] = '\'';
    $in[] = '@&(nbsp|#160);@i'; $out[] = ' ';
    $in[] = '@&(hellip|#8230);@i'; $out[] = '...';
    $in[] = '@&(copy|#169);@i'; $out[] = '(c)';
    $in[] = '@&(trade|#129);@i'; $out[] = '(tm)';
    $in[] = '@&(lt|#60);@i'; $out[] = '<';
    $in[] = '@&(gt|#62);@i'; $out[] = '>';
    $in[] = '@&(laquo);@i'; $out[] = '«';
    $in[] = '@&(raquo);@i'; $out[] = '»';
    $in[] = '@&(deg);@i'; $out[] = '°';
    $in[] = '@&(mdash);@i'; $out[] = '—';
    $in[] = '@&(reg);@i'; $out[] = '®';
	$in[] = '@&(–);@i'; $out[] = '-';
    $text = preg_replace($in, $out, $text);
	return $text;
}

function strip_html_tags($str) {
// $document should contain an HTML document.
// This will remove HTML tags, javascript sections
// and white space. It will also convert some
// common HTML entities to their text equivalent.

	$search = array ("'<script[^>]*?>.*?</script>'si",  // Strip out javascript
					 "'<[/!]*?[^<>]*?>'si",          // Strip out HTML tags
					 //"'([rn])[s]+'",                // Strip out white space
					 "'&(quot|#34);'i",                // Replace HTML entities
					 "'&(amp|#38);'i",
					 "'&(lt|#60);'i",
					 "'&(gt|#62);'i",
					 "'&(nbsp|#160);'i",
					 "'&(iexcl|#161);'i",
					 "'&(cent|#162);'i",
					 "'&(pound|#163);'i",
					 "'&(copy|#169);'i",
					 "'&#(d+);'e");                    // evaluate as php
	
	$replace = array ("",
					 "",
					 //"\1",
					 "\"",
					 "&",
					 "<",
					 ">",
					 " ",
					 chr(161),
					 chr(162),
					 chr(163),
					 chr(169),
					 "chr(\1)");
	
	return preg_replace($search, $replace, $str);
}


  if(!function_exists('eval_rss_urls')) {
    function eval_rss_urls($string) {
			// rewrite all local urls to absolute urls
		return preg_replace_callback("/(href|src|action)=[\"']{0,1}(\.{0,2}[\\|\/]{1})(.*?)[\"']{0,1}( .*?){0,1}>/is","rewrite_rss_local_urls",$string);
		//"/(href|src|action)=[\"']{0,1}(\.{2}[\\|\/]{1})(.*?)[\"']{0,1}( .*?){0,1}>/is"
	}
  } 

  	function rewrite_rss_local_urls($string) {

	$repl_text = $string[0];
	$repl_by = HTTP_SERVER.'\\';
	$repl_len = 0;
	
	$index_pos = strpos  ( $repl_text , '..');
	if ($index_pos > -1) {
		$repl_len = 2;	
	} else {
	 	$index_pos = strpos  ( $repl_text , '\"\\');	
		if ($index_pos > -1) {
			$repl_len = 0;	
			$index_pos+=1;
		}
	}
	if ($index_pos > -1) {
		substr_replace($repl_text, $repl_by, $index_pos,2 );	
	}
		ob_start();
			echo $repl_text;
			$return = ob_get_contents();
		   ob_end_clean();
		return $return;
	}
	
// to strip html or not to strip html tags
if (isset($HTTP_GET_VARS['html'])) {
	if ($HTTP_GET_VARS['html']=='false') {
		$strip_html_tags = true;	
	} else {
		$strip_html_tags = false;	
	}
} else {
	$strip_html_tags = RSS_STRIP_HTML_TAGS;
}

// show the products of a specified manufacturer

    if (isset($HTTP_GET_VARS['manufacturers_id'])) {

      if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {

// We are asked to show only a specific category

        $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_model, p.products_price, p.products_image, p.products_date_added, pd.products_name, pd.products_description,
               m.manufacturers_name, cd.categories_name, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c LEFT JOIN " . TABLE_CATEGORIES_DESCRIPTION . " cd
               ON p2c.categories_id = cd.categories_id where p.products_status = '1' and p.products_to_rss='1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "' 
			   GROUP BY p.products_id
        ORDER BY p.products_id DESC
        LIMIT ". (int)MAX_RSS_ARTICLES."";

      } else {

// We show them all

        $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_model, p.products_price, p.products_image, p.products_date_added, pd.products_name, pd.products_description,
               m.manufacturers_name, cd.categories_name, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c LEFT JOIN " . TABLE_CATEGORIES_DESCRIPTION . " cd
               ON p2c.categories_id = cd.categories_id  where p.products_status = '1' and p.products_to_rss='1' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id']  . "' 
			   GROUP BY p.products_id
        ORDER BY p.products_id DESC
        LIMIT ". (int)MAX_RSS_ARTICLES."";


      }
	  
	  $subtitle = tep_db_query("select manufacturers_name from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'");
      $subtitle = tep_db_fetch_array($subtitle);
      $subtitle = $subtitle['manufacturers_name'];
  	  $rss_title = BOX_INFORMATION_RSS_MANUFACTURER;
    } else if (tep_not_null($current_category_id)) {

// show the products in a given categorie

      if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {
// We are asked to show only specific catgeory
        $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_model, p.products_price, p.products_image, p.products_date_added, pd.products_name, pd.products_description,
               m.manufacturers_name, cd.categories_name, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c LEFT JOIN " . TABLE_CATEGORIES_DESCRIPTION . " cd
               ON p2c.categories_id = cd.categories_id where p.products_status = '1' and p.products_to_rss='1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id  . "' 
			   GROUP BY p.products_id
        ORDER BY p.products_id DESC
        LIMIT ". (int)MAX_RSS_ARTICLES."";

      } else {
// We show them all
        $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_model, p.products_price, p.products_image, p.products_date_added, pd.products_name, pd.products_description,
               m.manufacturers_name, cd.categories_name, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c LEFT JOIN " . TABLE_CATEGORIES_DESCRIPTION . " cd
               ON p2c.categories_id = cd.categories_id where p.products_status = '1' and p.products_to_rss='1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' 
			   and p2c.categories_id = '" . (int)$current_category_id  . "' 
			   GROUP BY p.products_id
        ORDER BY p.products_id DESC
        LIMIT ". (int)MAX_RSS_ARTICLES."";
      }

    	$subtitle= tep_db_query("select cd.categories_name, c.categories_image from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$current_category_id . "' and cd.categories_id = '" . (int)$current_category_id . "' and cd.language_id = '" . (int)$languages_id . "'");
      $subtitle = tep_db_fetch_array($subtitle);
      $subtitle = $subtitle['categories_name'];
   	  $rss_title = BOX_INFORMATION_RSS_CATEGORY;

    } else {
	
		// show realy al products
	        $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_model, p.products_price, p.products_image, p.products_date_added, pd.products_name, pd.products_description,
               m.manufacturers_name, cd.categories_name, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c LEFT JOIN " . TABLE_CATEGORIES_DESCRIPTION . " cd
               ON p2c.categories_id = cd.categories_id where p.products_status = '1' and p.products_to_rss='1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "'  
			   GROUP BY p.products_id
        ORDER BY p.products_id DESC
        LIMIT ". (int)MAX_RSS_ARTICLES."";
		
		$rss_title = BOX_INFORMATION_RSS;
	}
//	echo $listing_sql;
// Execute SQL query and get result
$query = tep_db_query($listing_sql);

	/*
	 * If there are returned rows...
	 * Basic sanity check 
	 */
	if ( tep_db_num_rows($query) > 0 ){

if ($subtitle != '') $rss_title .= ' - '.$subtitle;

// Encoding to UTF-8
//$store_name =  utf8_encode (replace_problem_characters($store_name));
//$rss_title =  utf8_encode (replace_problem_characters($rss_title));
//$weblink =  utf8_encode ($weblink);
//$description =  utf8_encode (replace_problem_characters($description));
//$email_address =  utf8_encode ($email_address);

	// SQL header(Last-Modified)
$last_modified = '';
$sql = "SELECT MAX(products_date_added) as mPla, MAX(products_last_modified) as mPlm FROM products WHERE products_to_rss = '1' ORDER BY products_id DESC LIMIT 1";
  $sql_result = tep_db_query($sql);
    $row = tep_db_fetch_array($sql_result);

	if ($row['mPlm'] != '') { $last_modified = $row['mPlm']; }
	else { $last_modified = $row['mpla']; }

  if(!function_exists('getallheaders')){
		function getallheaders(){
			settype($headers,'array');
			foreach($_SERVER as $h => $v){
				if(ereg('HTTP_(.+)',$h,$hp)){
					$headers[$hp[1]] = $v;
				}
			}
			return $headers;
		}
  }

$headers = getallheaders(); 

  $refresh = 1; // refresca por defecto 
  $etag = md5($last_modified);

  if(isset($headers["If-Modified-Since"])) { // Verificamos fecha enviada por el lector RSS
  	$since = strtotime($headers["If-Modified-Since"]); 
	if($since >= strtotime($last_modified)) { $refresh = 0; }
  } 

  if(isset($headers["If-None-Match"])) { // Verificamos el ETag
  	if(strcmp($headers["If-None-Match"], $etag) == 0) {
	  $refresh = 0;
	} else {
	  $refresh = 1;
	}
  }

  if($refresh == 0) {
    header("HTTP/1.1 304 Not changed");
    // La primera línea de los headers debe ser el status
    // sino el Netcrap se lía y da "No Data"
    ob_end_clean(); // Descartamos los contenidos del búfer de salida en cola y lo deshabilitamos
  }


// Begin sending of the data
header('Content-Type: application/rss+xml; charset=windows-1250');
//header("Last-Modified: " . tep_date_raw($last_modified));
header('Last-Modified: ' .gmdate("D, d M Y G:i:s", strtotime($last_modified)). ' GMT');
//header('Last-Modified: ' .gmdate("D, d M Y G:i:s T",strtotime($last_modified)) . ' GMT');
header("ETag: " . md5($etag));

echo "<?xml version='1.0' encoding='windows-1250' ?>" . "\n";
?>
<CATALOG>
<LOGO><?php echo $weblink . DIR_WS_CATALOG.'images/store_logo.png';?></LOGO>

<?php
// Format results by row
while( $row = tep_db_fetch_array($query) ){
  $id = $row['products_id'];

  // RSS Links for Ultimate SEO (Gareth Houston 10 May 2005)
  $link = tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $id, 'NONSSL', false);

  $model = $row['products_model'];
  $image = $row['products_image'];
  $added = date(r,strtotime($row['products_date_added']));

  // Setting and cleaning the data
  $name = $row['products_name'];
  $desc = eval_rss_urls($row['products_description']);

  // Encoding to UTF-8  
  if ($strip_html_tags ==true) {
  	$name = strip_html_tags($name);
  	$desc = strip_html_tags($desc);
  }
  
//  $name = utf8_encode(replace_problem_characters($name));
//  $desc = utf8_encode(replace_problem_characters($desc));
//  $link = utf8_encode($link);

  $manufacturer = $row['manufacturers_name'];
  //$manufacturer = utf8_encode ($manufacturer);
//  $price = tep_add_tax($row['products_price'], tep_get_tax_rate($row['products_tax_class_id']));


    if (tep_not_null($row['specials_new_products_price'])) {
	$price = tep_add_tax($row['specials_new_products_price'], tep_get_tax_rate($row['products_tax_class_id']));
    } else {
       $price = tep_add_tax($row['products_price'], tep_get_tax_rate($row['products_tax_class_id']));
    }
	
  if( $discount = tep_get_products_special_price($id) ) {
    $offer = tep_add_tax($discount, tep_get_tax_rate($row['products_tax_class_id']));
  } else {
    $offer = '';
  }
//add price limit decimals to 2  
$price = sprintf("%01.2f", $price);

  $cat_name = $row['categories_name'];

  // Encoding to UTF-8
 // $cat_name = utf8_encode (replace_problem_characters(strip_html_tags($cat_name)));

  // Setting the URLs to the images and buttons
  $relative_image_url = tep_image(DIR_WS_IMAGES . $image, $name, SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'style="float: left; margin: 0px 8px 8px 0px;"');
  $relative_image_url = str_replace('">', '', $relative_image_url);
  $relative_image_url = str_replace('<img src="', '', $relative_image_url);
  $image_url = HTTP_SERVER . DIR_WS_CATALOG . DIR_WS_IMAGES . $image;

  $relative_buy_url = tep_image_button('button_shopping_cart.gif', IMAGE_BUTTON_IN_CART, 'style="margin: 0px;"');
  $relative_buy_url = str_replace('">', '', $relative_buy_url);
  $relative_buy_url = str_replace('<img src="', '', $relative_buy_url);
  $buy_url = HTTP_SERVER . DIR_WS_CATALOG . $relative_buy_url;

  $relative_button_url = tep_image_button('button_more_info.gif', IMAGE_BUTTON_MORE_INFO, 'style="margin: 0px;"');
  $relative_button_url = str_replace('">', '', $relative_button_url);
  $relative_button_url = str_replace('<img src="', '', $relative_button_url);
  $button_url = HTTP_SERVER . DIR_WS_CATALOG . $relative_button_url;


  // http://www.w3.org/TR/REC-xml/#dt-chardata
  // The ampersand character (&) and the left angle bracket (<) MUST NOT appear in their literal form
  $name = str_replace('&','&amp;',$name);
  $desc = str_replace('&','&amp;',$desc);
  $link = str_replace('&','&amp;',$link);
  //$cat_name = str_replace('&','&amp;',$cat_name);

  $name = str_replace('<','&lt;',$name);
  $desc = str_replace('<','&lt;',$desc);
  $link = str_replace('<','&lt;',$link);
  $cat_name = str_replace('<','&lt;',$cat_name);

  $name = str_replace('>','&gt;',$name);
  $desc = str_replace('>','&gt;',$desc);
  $link = str_replace('>','&gt;',$link);
  $cat_name = str_replace('>','&gt;',$cat_name);
  
  
  $buy_link = tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $id);
  // Encoding to UTF-8
//  $buy_link = utf8_encode ($buy_link);
  $buy_link = str_replace('&','&amp;',$buy_link);
  $buy_link = str_replace('<','&lt;',$buy_link);
  $buy_link = str_replace('>','&gt;',$buy_link);

  // Writing the output
  echo '<ITEM>' . "\n";
  echo '  <ID>' . $id . '</ID>' . "\n";
  echo '  <TITLE>' . $name . '</TITLE>' . "\n";
  echo '  <DESCRIPTION>' . $name . '</DESCRIPTION>' . "\n";
 
  echo '  <PRICE>' . $price . '</PRICE>' . "\n";
  echo '  <CATEGORY>' . $cat_name . '</CATEGORY>' . "\n";
  
  echo '  <URL>' . $link . '</URL>' . "\n";
  echo '  <IMAGE>' . $image_url . '</IMAGE>' . "\n";
  
  echo '  <MANUFACTURER>' . $manufacturer . '</MANUFACTURER>' . "\n";
  echo '  <DUES>' . 'ZADARMO V CELEJ SR' . '</DUES>' . "\n";
   

  echo '</ITEM>' . "\n";
}
}

echo '</CATALOG>' . "\n";


	/*
	 * Include the application_bottom.php script 
	 */
	include_once('includes/application_bottom.php');
?>


#329 proimage

  • Community Member
  • 109 posts
  • Real Name:Fabian
  • Gender:Male

Posted 11 November 2009, 16:30

Hi I am getting this error when trying to run the sql

INSERT INTO configuration( configuration_id, configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added, use_function, set_function )
VALUES (

'24', 'RSS Articles', 'MAX_RSS_ARTICLES', '20', 'Number of articles displayed by the RSS feed', '3', '25', '2007-03-14 22:15:35', '2007-03-14 22:15:35', NULL , NULL
);



MySQL said:

#1062 - Duplicate entry '24' for key 1


I have changed so many a times the configuration group id value, always to non occupied ones but still I can't manage to overcome this... :angry:

Any Help

#330 Xpajun

  • Community Member
  • 1,272 posts
  • Real Name:Julian
  • Gender:Male
  • Location:UK

Posted 11 November 2009, 18:19

Try this:
INSERT INTO configuration( configuration_id, configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added, use_function, set_function )
VALUES (

'', 'RSS Articles', 'MAX_RSS_ARTICLES', '20', 'Number of articles displayed by the RSS feed', '3', '25', '2007-03-14 22:15:35', '2007-03-14 22:15:35', NULL , NULL
);


#331 garnet

  • Community Member
  • 118 posts
  • Real Name:az

Posted 13 November 2009, 16:19

Hi
is there a way that when a product is sold and it is not available anymore the entry in the RSS feed is also removed for the same product.
How can I modify the contrib to do that?
Thanks
OSC beginner

#332 Xpajun

  • Community Member
  • 1,272 posts
  • Real Name:Julian
  • Gender:Male
  • Location:UK

Posted 13 November 2009, 19:08

I don't think that that is possible as RSS is a news feed rather than a history feed, but what you could do is have a news page feeding into the RSS then when you update your news page - eg. "We are sorry to say that our popular product is now sold out and is no longer available etc." - It would also help if you had a store with a low turnover of new articles, very much like publishing a news letter every couple of days ;)

#333 pederb

  • Community Member
  • 357 posts
  • Real Name:Peder
  • Gender:Male
  • Location:Oakland, CA

Posted 23 November 2009, 01:16

How can I limit my rss output to below 512k?

Feedburner does not accept feeds larger the 512k

Cheers
-Peder Beckman-
Kool Kat Jazz Records

#334 pederb

  • Community Member
  • 357 posts
  • Real Name:Peder
  • Gender:Male
  • Location:Oakland, CA

Posted 05 December 2009, 18:46

Any way to have a image of the product showing up instead of the rss_logo?

Cheers
-Peder Beckman-
Kool Kat Jazz Records

#335 acstudios

  • Community Member
  • 13 posts
  • Real Name:Todd

Posted 09 December 2009, 11:12

This is what I am getting after install, I have the newest rss.php as well.

Sorry

This feed does not validate.

line 211, column 0: XML parsing error: <unknown>:211:0: junk after document element [help]
<script type="text/javascript">

In addition, interoperability with the widest range of feed readers could be improved by implementing the following recommendations.
line 13, column 21: Image title doesn't match channel title [help]

<title>UsbDirect.ca</title>
^
line 169, column 9: title should not be blank [help]
<title></title>
^
line 209, column 0: Missing atom:link with rel="self" [help]
</channel>

Any help would be great, would love to get this going :) Thanks!

#336 acstudios

  • Community Member
  • 13 posts
  • Real Name:Todd

Posted 09 December 2009, 11:13

Sorry got a double post. Just fixing it :)

Edited by acstudios, 09 December 2009, 11:14.


#337 danic

  • Community Member
  • 34 posts
  • Real Name:Dan Larsen
  • Gender:Male
  • Location:Denmark

Posted 01 February 2010, 07:56

Can anyone explain why non-breaking space & # 1 6 0 ; is displayed in my feed? is it the FCK editor?


&lt;p&gt;&amp;#38;#160;&lt;/p&gt;
&lt;p&gt;Christys egen&amp;#38;#160;beskrivelse af varen:&lt;/p&gt;

&lt;p&gt;Available in palette of&amp;#38;#160;rich colours, by using 100% organic cotton and low impact dyes, we have created a range of natural products that are not only soft and luxurious to touch, but also environmentally friendly.&lt;/p&gt;

I'm the owner of a danish gift shop, where you will find gifts, ideas & presents for her & him.

#338 cellcom

  • Community Member
  • 14 posts
  • Real Name:Andy

Posted 14 June 2010, 10:52

never mind

Edited by cellcom, 14 June 2010, 10:59.


#339 mandata1

  • Community Member
  • 30 posts
  • Real Name:Dave

Posted 16 July 2010, 05:15

Hi all

Forgive me if this has been discussed. I have the contribution working but I want to change the items in the feed. I have thousands of items but I can only get the newest ones to show in the feed. Most of them will not be updated so they don't show up. Is there a way to change it so different ones will show up or just be able to set up different feeds without having to go thru each category unchecking items.

#340 FashionSense

  • Community Member
  • 23 posts
  • Real Name:Anders G Nielsen
  • Gender:Male

Posted 23 September 2010, 10:41

I don't know much about RSS, but I have installed this contribution on my website: Tasker
But when I try to add the RSS.php I just get an error message saying the link is not a valid RSS.

Also when I use the validator I get errors:
http://www.feedvalidator.org/check?url=http://www.fashionsense.dk/rss.php

Can anyone help me with this?