Jump to content
Sign in to follow this  
Chemo

Live Data Feed base class+Froogle - only 1 query!

Recommended Posts

I receive:

 

Fatal error: Call to undefined function: imagecreatefromstring() in D:\htdocs\multi-1\admin\includes\classes\feed.php on line 148

Share this post


Link to post
Share on other sites

Also,

 

Have you thought about using the values in configure.php as defaults so that it is easier to setup for default general installations?

 

ie.

var $imageurl = 'http://yourdomain.com/images/';

 

becomes:

var $imageurl = DIR_FS_CATALOG_IMAGES;

Share this post


Link to post
Share on other sites

I'm working a complete re-write of the entire base class. The version 2.0 is designed for flexibility and ease of installation. When I'm done it will be as simple as uploading the file and configuring the feed via browser.

 

Yes I have pulled most of the data straight from the configure file ;)

 

As for your undefined function: that is a server setup issue. If you don't have GD installed then you surely have ImageMagik...just redefine the image method.

Share this post


Link to post
Share on other sites
I'm working a complete re-write of the entire base class.  The version 2.0 is designed for flexibility and ease of installation.  When I'm done it will be as simple as uploading the file and configuring the feed via browser.

 

Yes I have pulled most of the data straight from the configure file ;)

 

As for your undefined function: that is a server setup issue.  If you don't have GD installed then you surely have ImageMagik...just redefine the image method.

 

 

Any prgress on version 2.0 ? great contrib, would love to be able to modify it and be able to add additional feeds, if you could give some type of setup guide/instructions for newbies that would be great. (not that I'm a complete moron but you know got alot of other stuff goin on.. :blink: )

Share this post


Link to post
Share on other sites

Sorry for the late reply but I've been terribly busy with other projects...

 

I'm working on it slowly but surely. I can't give a timeframe for getting it done since the work is in-between paid projects. I'll update as it gets near.

 

Bobby

Share this post


Link to post
Share on other sites

I've got a problem with this contribution.

 

I had it working for awhile and then i installed the YASU SEF (Search Engine Friendly URLS) contribution and now the path to the products shows up incorrectly and the images do not show up.

 

I'm not a programmer so I don't know what to do.

 

Any suggestions?

Share this post


Link to post
Share on other sites

I don't know about that contribution...maybe someone can help you that is familiar with that hack.

 

Bobby

Share this post


Link to post
Share on other sites

For example a product with the name "a splatter of pearls" that is contained within the category "bracelets" would have a URL of:

http://www.designsbymoya.com/Bracelets/A+Splatter+of+Pearls

 

This froogle mod needs to take into effect the new renaming scheme. For product_info.php and index.php, this rewrite mod is in effect. The way it is done is through the use of a new file rewrite.php and a different .htaccess file.

 

Here is rewrite.php

<?php 
/*
 Some parts Copyright 2004 osCommerce
 Remainder Copyright 2004 eCartz.com, Inc.
*/
 include('includes/application_top.php');

 if ($REQUEST_URI == '/catalog/') {
   tep_redirect(tep_href_link(FILENAME_DEFAULT));
 }

 if ($REQUEST_TYPE == 'SSL') {
   $comparison_array = explode('/', HTTPS_SERVER . DIR_WS_HTTPS_CATALOG, 4);
 } else {
   $comparison_array = explode('/', HTTP_SERVER . DIR_WS_HTTP_CATALOG, 4);
 }
 $comparison = $comparison_array[3];

 $parts = explode('?', str_replace($comparison, '', $REQUEST_URI), 2);
 $list = explode('/', preg_replace(array('#^/#', '#/$#'), '', $parts[0]));
 if (sizeof($parts) == 2) {
   $parameters = explode('&', $parts[1]);
   foreach ($parameters as $pair) {
     $pieces = explode('=', $pair);
     $HTTP_GET_VARS[$pieces[0]] = $pieces[1];
   }
 }
 $current_category_id = 0;
 $cPath_array = array();
 $count = 0;
 foreach ($list as $piece_encoded) {
   $count++;
   $piece = urldecode(preg_replace(array('/[+]/', '/%20/'), array(' ', '%2F'), $piece_encoded));
   if ($piece == 'catalog') {
     continue;
   }
   $query_string = "select cd.categories_id from categories_description cd, categories c where cd.categories_id=c.categories_id and cd.categories_name='" . tep_db_input($piece) . "' and c.parent_id='" . (int)$current_category_id . "'";
   $category_query = tep_db_query("select cd.categories_id from categories_description cd, categories c where cd.categories_id=c.categories_id and cd.categories_name='" . tep_db_input($piece) . "' and c.parent_id='" . (int)$current_category_id . "'");
   if ($category_array = tep_db_fetch_array($category_query)) {
     $cPath_array[]= $category_array['categories_id'];
     $breadcrumb->add($piece, tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', $cPath_array)));
     $current_category_id = $category_array['categories_id'];
   } else {
     if ($current_category_id != '0') {
       $parent_where_string = " and p2c.categories_id='" . (int)$current_category_id . "'";
     } else {
       $parent_where_string = '';
     }
     $product_query = tep_db_query("select pd.products_id from products_description pd, products_to_categories p2c, products p where p.products_id = pd.products_id and p.products_status = '1' and pd.products_id=p2c.products_id and pd.products_name='" . tep_db_input($piece) . "'" . $parent_where_string);
     if ($product_array = tep_db_fetch_array($product_query)) {
       if (sizeof($cPath_array) < 1) {
         $cPath = tep_get_product_path($product_array['products_id']);
         $cPath_array = explode('_', $cPath);
         for ($i=0, $n=sizeof($cPath_array); $i<$n; $i++) {
           $categories_query = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$cPath_array[$i] . "' and language_id = '" . (int)$languages_id . "'");
           if (tep_db_num_rows($categories_query) > 0) {
             $categories = tep_db_fetch_array($categories_query);        $breadcrumb->add($categories['categories_name'], tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1)))));
           } else {
             break;
           }
         }
       } else {
         $cPath = implode('_', $cPath_array);
       }
       $breadcrumb->add($piece, tep_href_link(FILENAME_PRODUCT_INFO, 'cPath=' . $cPath . '&products_id=' . $product_array['products_id']));
       $HTTP_GET_VARS['products_id'] = $product_array['products_id'];
       $PHP_SELF_REWRITE = dirname($PHP_SELF) . '/' . FILENAME_PRODUCT_INFO;
$PHP_SELF = $PHP_SELF_REWRITE;
       include(FILENAME_PRODUCT_INFO);
       exit();
     } else {
       $manufacturer_query = tep_db_query("select manufacturers_id from manufacturers where manufacturers_name='" . tep_db_input($piece) . "'");
       if ($manufacturer_array = tep_db_fetch_array($manufacturer_query)) {
         $breadcrumb->add($piece, tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', $cPath_array) . 'manufacturers_id=' . (int)$manufacturers_array['manufacturers_id']));
         $HTTP_GET_VARS['manufacturers_id'] = $manufacturer_array['manufacturers_id'];
         if ($count == sizeof($list)) {
           $HTTP_GET_VARS['filter_id'] = $current_category_id;
           $PHP_SELF_REWRITE = dirname($PHP_SELF) . '/' . FILENAME_DEFAULT;
    $PHP_SELF = $PHP_SELF_REWRITE;
           $cPath = implode('_', $cPath_array);
           $HTTP_GET_VARS['cPath'] = $cPath;
           include(FILENAME_DEFAULT);
           exit();
         } 
       } else {
         reset($list);
         tep_redirect(tep_href_link(FILENAME_ADVANCED_SEARCH_RESULT, 'keywords=' . implode('+', $list)));
       }
     }
   }
 }
 $cPath = implode('_', $cPath_array);
 $HTTP_GET_VARS['cPath'] = $cPath;
 $PHP_SELF_REWRITE = dirname($PHP_SELF) . '/' . FILENAME_DEFAULT;
 $PHP_SELF = $PHP_SELF_REWRITE;
 include(FILENAME_DEFAULT);
?>

 

 

 

 

 

 

 

 

 

Here is includes/functions/html_output.php

<?php
/*
 $Id: html_output.php,v 1.56 2003/07/09 01:15:48 hpdl Exp $

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

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

////
// The HTML href link wrapper function
 function tep_href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = true) {
   global $request_type, $session_started, $SID;

   if (!tep_not_null($page)) {
     die('</td></tr></table></td></tr></table><br><br><font color="#ff0000"><b>Error!</b></font><br><br><b>Unable to determine the page link!<br><br>');
   }

   if ($connection == 'NONSSL') {
     $link = HTTP_SERVER . DIR_WS_HTTP_CATALOG;
   } elseif ($connection == 'SSL') {
     if (ENABLE_SSL == true) {
       $link = HTTPS_SERVER . DIR_WS_HTTPS_CATALOG;
     } else {
       $link = HTTP_SERVER . DIR_WS_HTTP_CATALOG;
     }
   } else {
     die('</td></tr></table></td></tr></table><br><br><font color="#ff0000"><b>Error!</b></font><br><br><b>Unable to determine connection method on a link!<br><br>Known methods: NONSSL SSL</b><br><br>');
   }

   if (tep_not_null($parameters)) {
     $link .= $page . '?' . tep_output_string($parameters);
     $separator = '&';
   } else {
     $link .= $page;
     $separator = '?';
   }

   while ( (substr($link, -1) == '&') || (substr($link, -1) == '?') ) $link = substr($link, 0, -1);

// Add the session ID when moving from different HTTP and HTTPS servers, or when SID is defined
   if ( ($add_session_id == true) && ($session_started == true) && (SESSION_FORCE_COOKIE_USE == 'False') ) {
     if (tep_not_null($SID)) {
       $_sid = $SID;
     } elseif ( ( ($request_type == 'NONSSL') && ($connection == 'SSL') && (ENABLE_SSL == true) ) || ( ($request_type == 'SSL') && ($connection == 'NONSSL') ) ) {
       if (HTTP_COOKIE_DOMAIN != HTTPS_COOKIE_DOMAIN) {
         $_sid = tep_session_name() . '=' . tep_session_id();
       }
     }
   }

   if ( (SEARCH_ENGINE_FRIENDLY_URLS == 'true') && ($search_engine_safe == true) ) {
     while (strstr($link, '&&')) $link = str_replace('&&', '&', $link);

     $link = str_replace('?', '/', $link);
     $link = str_replace('&', '/', $link);
     $link = str_replace('=', '/', $link);

     $separator = '?';
   }

   if (isset($_sid)) {
     $link .= $separator . $_sid;
   }

   return $link;
 }

////
// The HTML image wrapper function
 function tep_image($src, $alt = '', $width = '', $height = '', $parameters = '') {
   if ( (empty($src) || ($src == DIR_WS_IMAGES)) && (IMAGE_REQUIRED == 'false') ) {
     return false;
   }

// BOF: Radders - Added Automatic Thumbnail Creator
  $src = tep_image_resample($src,$width,$height);
// EOF: Radders - Added Automatic Thumbnail Creator

// alt is added to the img tag even if it is null to prevent browsers from outputting
// the image filename as default
   $image = '<img src="' . tep_output_string($src) . '" border="0" alt="' . tep_output_string($alt) . '"';

   if (tep_not_null($alt)) {
     $image .= ' title=" ' . tep_output_string($alt) . ' "';
   }

   if ( (CONFIG_CALCULATE_IMAGE_SIZE == 'true') && (empty($width) || empty($height)) ) {
     if ($image_size = @getimagesize($src)) {
       if (empty($width) && tep_not_null($height)) {
         $ratio = $height / $image_size[1];
         $width = $image_size[0] * $ratio;
       } elseif (tep_not_null($width) && empty($height)) {
         $ratio = $width / $image_size[0];
         $height = $image_size[1] * $ratio;
       } elseif (empty($width) && empty($height)) {
         $width = $image_size[0];
         $height = $image_size[1];
       }
     } elseif (IMAGE_REQUIRED == 'false') {
       return false;
     }
   }

   if (tep_not_null($width) && tep_not_null($height)) {
     $image .= ' width="' . tep_output_string($width) . '" height="' . tep_output_string($height) . '"';
   }

   if (tep_not_null($parameters)) $image .= ' ' . $parameters;

   $image .= '>';

   return $image;
 }

////
// The HTML form submit button wrapper function
// Outputs a button in the selected language
 function tep_image_submit($image, $alt = '', $parameters = '') {
   global $language;

   $image_submit = '<input type="image" src="' . tep_output_string(DIR_WS_LANGUAGES . $language . '/images/buttons/' . $image) . '" border="0" alt="' . tep_output_string($alt) . '"';

   if (tep_not_null($alt)) $image_submit .= ' title=" ' . tep_output_string($alt) . ' "';

   if (tep_not_null($parameters)) $image_submit .= ' ' . $parameters;

   $image_submit .= '>';

   return $image_submit;
 }

////
// Output a function button in the selected language
 function tep_image_button($image, $alt = '', $parameters = '') {
   global $language;

   return tep_image(DIR_WS_LANGUAGES . $language . '/images/buttons/' . $image, $alt, '', '', $parameters);
 }

////
// Output a separator either through whitespace, or with an image
 function tep_draw_separator($image = 'pixel_black.gif', $width = '100%', $height = '1') {
   return tep_image(DIR_WS_IMAGES . $image, '', $width, $height);
 }

////
// Output a form
 function tep_draw_form($name, $action, $method = 'post', $parameters = '') {
   $form = '<form name="' . tep_output_string($name) . '" action="' . tep_output_string($action) . '" method="' . tep_output_string($method) . '"';

   if (tep_not_null($parameters)) $form .= ' ' . $parameters;

   $form .= '>';

   return $form;
 }

////
// Output a form input field
 function tep_draw_input_field($name, $value = '', $parameters = '', $type = 'text', $reinsert_value = true) {
   $field = '<input type="' . tep_output_string($type) . '" name="' . tep_output_string($name) . '"';

   if ( (isset($GLOBALS[$name])) && ($reinsert_value == true) ) {
     $field .= ' value="' . tep_output_string(stripslashes($GLOBALS[$name])) . '"';
   } elseif (tep_not_null($value)) {
     $field .= ' value="' . tep_output_string($value) . '"';
   }

   if (tep_not_null($parameters)) $field .= ' ' . $parameters;

   $field .= '>';

   return $field;
 }

////
// Output a form password field
 function tep_draw_password_field($name, $value = '', $parameters = 'maxlength="40"') {
   return tep_draw_input_field($name, $value, $parameters, 'password', false);
 }

////
// Output a selection field - alias function for tep_draw_checkbox_field() and tep_draw_radio_field()
 function tep_draw_selection_field($name, $type, $value = '', $checked = false, $parameters = '') {
   $selection = '<input type="' . tep_output_string($type) . '" name="' . tep_output_string($name) . '"';

   if (tep_not_null($value)) $selection .= ' value="' . tep_output_string($value) . '"';

   if ( ($checked == true) || ( isset($GLOBALS[$name]) && is_string($GLOBALS[$name]) && ( ($GLOBALS[$name] == 'on') || (isset($value) && (stripslashes($GLOBALS[$name]) == $value)) ) ) ) {
     $selection .= ' CHECKED';
   }

   if (tep_not_null($parameters)) $selection .= ' ' . $parameters;

   $selection .= '>';

   return $selection;
 }

////
// Output a form checkbox field
 function tep_draw_checkbox_field($name, $value = '', $checked = false, $parameters = '') {
   return tep_draw_selection_field($name, 'checkbox', $value, $checked, $parameters);
 }

////
// Output a form radio field
 function tep_draw_radio_field($name, $value = '', $checked = false, $parameters = '') {
   return tep_draw_selection_field($name, 'radio', $value, $checked, $parameters);
 }

////
// Output a form textarea field
 function tep_draw_textarea_field($name, $wrap, $width, $height, $text = '', $parameters = '', $reinsert_value = true) {
   $field = '<textarea name="' . tep_output_string($name) . '" wrap="' . tep_output_string($wrap) . '" cols="' . tep_output_string($width) . '" rows="' . tep_output_string($height) . '"';

   if (tep_not_null($parameters)) $field .= ' ' . $parameters;

   $field .= '>';

   if ( (isset($GLOBALS[$name])) && ($reinsert_value == true) ) {
     $field .= stripslashes($GLOBALS[$name]);
   } elseif (tep_not_null($text)) {
     $field .= $text;
   }

   $field .= '</textarea>';

   return $field;
 }

////
// Output a form hidden field
 function tep_draw_hidden_field($name, $value = '', $parameters = '') {
   $field = '<input type="hidden" name="' . tep_output_string($name) . '"';

   if (tep_not_null($value)) {
     $field .= ' value="' . tep_output_string($value) . '"';
   } elseif (isset($GLOBALS[$name])) {
     $field .= ' value="' . tep_output_string(stripslashes($GLOBALS[$name])) . '"';
   }

   if (tep_not_null($parameters)) $field .= ' ' . $parameters;

   $field .= '>';

   return $field;
 }

////
// Hide form elements
 function tep_hide_session_id() {
   global $session_started, $SID;

   if (($session_started == true) && tep_not_null($SID)) {
     return tep_draw_hidden_field(tep_session_name(), tep_session_id());
   }
 }

////
// Output a form pull down menu
 function tep_draw_pull_down_menu($name, $values, $default = '', $parameters = '', $required = false) {
   $field = '<select name="' . tep_output_string($name) . '"';

   if (tep_not_null($parameters)) $field .= ' ' . $parameters;

   $field .= '>';

   if (empty($default) && isset($GLOBALS[$name])) $default = stripslashes($GLOBALS[$name]);

   for ($i=0, $n=sizeof($values); $i<$n; $i++) {
     $field .= '<option value="' . tep_output_string($values[$i]['id']) . '"';
     if ($default == $values[$i]['id']) {
       $field .= ' SELECTED';
     }

     $field .= '>' . tep_output_string($values[$i]['text'], array('"' => '"', '\'' => ''', '<' => '<', '>' => '>')) . '</option>';
   }
   $field .= '</select>';

   if ($required == true) $field .= TEXT_FIELD_REQUIRED;

   return $field;
 }

////
// Creates a pull-down list of countries
 function tep_get_country_list($name, $selected = '', $parameters = '') {
   $countries_array = array(array('id' => '', 'text' => PULL_DOWN_DEFAULT));
   $countries = tep_get_countries();

   for ($i=0, $n=sizeof($countries); $i<$n; $i++) {
     $countries_array[] = array('id' => $countries[$i]['countries_id'], 'text' => $countries[$i]['countries_name']);
   }

   return tep_draw_pull_down_menu($name, $countries_array, $selected, $parameters);
 }

// BOF: Radders - Added Automatic Thumbnail Creator
function tep_image_resample($src,$width,$height) {

       define(JPEGQUALITY, 90);
       define(ALLOWSQUASH,0.10);
       if ($src=='') {
               return $src;
        }
       $i = @getimagesize( $src );   // 1-gif (ignore), 2-jpeg, 3-png

       if (!(($width == SMALL_IMAGE_WIDTH) && ($height == SMALL_IMAGE_HEIGHT))) {
               return $src; // can amend to work with other images
        }
       if (!( ($i[2] == 3) || ($i[2] ==2))) {
               return $src;
        }

       $file = eregi_replace( '\.([a-z]{3,4})$', "-{$width}x{$height}.\\1", $src );  // name of resampled image
       if (is_file( $file ) ) {        
               return $file;
       }

       $scr_w         =  $i[0];
       $scr_h         = $i[1];
       if (($scr_w * $scr_h * $width * $height) == 0) {
               return $src;
        }

       $howsquashed = ($width / $height * $scr_h / $scr_w);
       if (((1 / (1 + ALLOWSQUASH)) < $howsquashed) && ($howsquashed < (1 + ALLOWSQUASH))) $simpleway='true';
       $scalefactor = min($width/$scr_w, $height/$scr_h);          
       $scaled_w        = (int)($scr_w * $scalefactor);
       $scaled_h         = (int)($scr_h * $scalefactor); 
       $offset_w        = max(0,round(($width - $scaled_w) / 2,0));
       $offset_h         = max(0,round(($height - $scaled_h) / 2)); 
        $dst = DIR_FS_CATALOG . '/' . $file; 
          $dstim = @imagecreatetruecolor ($width, $height);
       $background_color = imagecolorallocate ($dstim, 255, 255, 255);
       imagefilledrectangle($dstim, 0, 0, $width, $height, $background_color);
       if ( $i[2] == 2) {
               $srcim = @ImageCreateFromJPEG ($src); // open
       }
       elseif ( $i[2] == 3) {
               $srcim         = @ImageCreateFromPNG ($src);
       }
       if ($simpleway == 'true') {        
               imagecopyresampled ($dstim, $srcim, 0, 0, 0, 0, $width, $height, $scr_w, $scr_h);        
       }
       else {
               $intim = @imagecreatetruecolor ($width, $height); 
               imagecopyresampled ($intim, $srcim, $offset_w, $offset_h, 0, 0, $scaled_w, $scaled_h, $scr_w, $scr_h);
               imagecopy ( $dstim, $intim, $offset_w, $offset_h, $offset_w, $offset_h, $scaled_w, $scaled_h);
               imagedestroy ($intim);
       }
       if ( $i[2] == 2) {
               imagejpeg ($dstim , $dst , JPEGQUALITY);  
       }
       elseif ( $i[2] == 3) {
               imagepng ($dstim , $dst);
       }
       imagedestroy ($srcim);
       imagedestroy ($dstim);
       return $file;                 // Use the newly resampled image
}
// BOF: Radders - Added Automatic Thumbnail Creator

?>

 

 

 

 

 

Here is .htaccess

# $Id: .htaccess,v 1.3 2003/06/12 10:53:20 hpdl Exp $
#
# This is used with Apache WebServers
#
# For this to work, you must include the parameter 'Options' to
# the AllowOverride configuration
#
# Example:
#
# <Directory "/usr/local/apache/htdocs">
#   AllowOverride Options
# </Directory>
#
# 'All' with also work. (This configuration is in the
# apache/conf/httpd.conf file)

# The following makes adjustments to the SSL protocol for Internet
# Explorer browsers

<IfModule mod_setenvif.c>
 <IfDefine SSL>
   SetEnvIf User-Agent ".*MSIE.*" \
            nokeepalive ssl-unclean-shutdown \
            downgrade-1.0 force-response-1.0
 </IfDefine>
</IfModule>

   Options +FollowSymLinks
   RewriteEngine   on
   RewriteBase     /
   RewriteRule     admin                      - [L]
   RewriteRule     catalog$                   /index.php [R,L]
   RewriteRule     catalog/$                   /index.php [R,L]
   RewriteCond     %{REQUEST_URI}             !-d
   RewriteCond     %{REQUEST_URI}             !^/$
   RewriteRule     !\.(gif|php|css|jpg|JPG|GIF)$      /rewrite.php

# Fix certain PHP values
# (commented out by default to prevent errors occuring on certain
# servers)

#<IfModule mod_php4.c>
#  php_value session.use_trans_sid 0
#  php_value register_globals 1
#</IfModule>

 

 

 

 

My store is all located in the root, not in "catalog". If anyone can figure this out, I would be eternally grateful.

Share this post


Link to post
Share on other sites

Just put this in today- went in nicely (after I consulted with my configure file) and as a bonus it ever so politely (error messages) found each and every broken image on my site- now all that's left is for me to figure out how to set up a cron job (I've been putting it off)- thanks!

Share this post


Link to post
Share on other sites

hhhmmm...usually Froogle wants the upload file in the same name as the user that is accessing the FTP. Check your file name and try again...

 

Bobby

Share this post


Link to post
Share on other sites

Ok so i'm lost I installed it all seems fine I'm not ready to upload products just yet, but modifying the froogle paths etc seems easy enough.. ok now lets say I want to add a new feed... do I just create a new feed called lets say Amazon.php and do I just copy the same info from the froogle file & adjust my paths or?? any clarification or if you need a beta tester for the 2.0 I'm open.. we have a large store several hundred thousand products & I'd love to be able to add as many feeds as possible...

 

hmm or if you need a little kickback to knock out the code early, I might be able to come up with something... = 0 )

 

 

rocksit.com/Products - my test site

Share this post


Link to post
Share on other sites
hhhmmm...usually Froogle wants the upload file in the same name as the user that is accessing the FTP.? Check your file name and try again...

 

Bobby

Ok, I changed the filename to my Froogle username and I'm still getting the messages:

 

Connected to hedwig.google.com as user kayewood ready to upload...

The FTP upload has FAILED!

Local file: /catalog/kayewood.txt

Remote file: kayewood.txt

 

It's probably in my paths, and I'm confused. When I put the whole path (URL) I get a blank page.

Technically my path is http://www.kayewood.com/catalog/kayewood.txt

 

Here is that part of the code:

//Where do you want to save the generated TXT file? Be sure to include the FULL path and title.

// ! REQUIRED !

/// Make sure this is your FULL path to the save directory and name of file

$this->savefilename = '/catalog/kayewood.txt';

 

//Do you want to enable auto enlarging for images?

//Default is true and dimensions are proportional 500px by 500px

$this->autoenlarge = false;

 

//Where do you want to save the enlarged image? Be sure to include the FULL path and title.

// ! REQUIRED !

/// Make sure this is the FULL path to your feed image directory

$this->feedimagepath = '/catalog/feeds/'; //Trailing slash required!

 

//What is the URL for the feed (enlarged) image folder?

// ! REQUIRED !

/// This is the URL to the feed images directory

$this->feedimageurl = 'http://www.kayewood.com/htdocs/catalog/feeds/'; //Trailing slashes required

 

//What is the path to your images folder?

// ! REQUIRED !

/// This is the FULL path to your normal images directory

$this->imagepath = '/catalog/images/'; //Trailing slash required!

 

//What is the URL for the images folder?

// ! REQUIRED !

/// This is the URL to your images directory

$this->imageurl = '/catalog/images/'; //Trailing slashes required!

Can you see what needs to be changed?

Edited by kincht

Share this post


Link to post
Share on other sites

Hi,

 

I installed your contribution and it looks excellent. Unfortunately, I need to add VAT @ 17.5% to all prices in my feed as I'm in the UK.

 

Can you tell me where (and how best) to do this please?

 

regards,

 

Stuart.

Share this post


Link to post
Share on other sites

Ladies and gentlemen,

 

I'll have the second version out directly that should deal with the majority of issues...

Share this post


Link to post
Share on other sites
I'll have the second version out directly that should deal with the majority of issues...

Definitely looking forward to this. Thanks for adding to osCommerce's functionality!

 

If anyone has additional data feeds that are working with this contribution please post the file so that we can see how a customized feed is created besides the included Froogle feed. Cheers!

Share this post


Link to post
Share on other sites

OK, I just installed this great mod and I get the following error 10 times:

 

Warning: getimagesize(): Read error! in /home/dance/public_html/admin/includes/classes/feed.php on line 185

 

I have about 400 items but I only get this error 10 times. I have read through all of the posts here and have tried the recommended fixed but still no luck. Any suggestions? Thanks in advance!

Share this post


Link to post
Share on other sites

Anything new with this great contribution. I have been trying to get a bizrate feed going with no success.

 

Thanks

Share this post


Link to post
Share on other sites
This thread is for support of the Live Data Feed base class contribution and also the included Froogle extended class.

 

Download it here: Live Data Feed base class + Froogle

 

Bobby

 

Hi,

I have problem with Froogle Feeder. :'( Can any one

help me?

When I click on "Froogle Feeder" in my admin, I get:

../froogle/gourmetcollection.txt File created

Could somebody tell me what that means?

Thanks, Greatly appreciated :D


OH Boy!!! Not again!!!!!!!!!!!!!!!!!!!!!!

Share this post


Link to post
Share on other sites

Just to let you know, I really appreciate this mod. Out of all the mods I've tried for OSC, this is the first one Ive done that worked on the first try. I uploaded, configured and ran. PRESTO!

 

 

Two thumbs up for you bud. Anxiously awaiting the shopping.com feed...

 

:thumbsup: :thumbsup:

Share this post


Link to post
Share on other sites
Hi,

I have problem with Froogle Feeder. :'(  Can any one

help me?

When I click on "Froogle Feeder" in my admin, I get:

../froogle/gourmetcollection.txt File created 

Could somebody tell me what that means?

Thanks,  Greatly appreciated  :D

 

(If I'm understanding you right)

It means it's working. It looks like an error, but it isnt. Its a confimation that your feed (gourmetcollection.txt) has been created. Now you need to click on "upload" which sets just a bit below that. If you have your account username and password set up right, you should end up with a confirmation up top saying it was uploaded to hedwig.google.com. If you get that...your in....

 

That uploads all of your catalog info to froogle....

Share this post


Link to post
Share on other sites

Hi,

I have problem with Froogle Feeder. :'( Can any one

help me?

When I click on "Froogle Feeder" in my admin, I get:

../froogle/gourmetcollection.txt File created

Could somebody tell me what that means?

Greatly appreciated :D

 

Hi Chemo,

Please, please help!.

I have problem with Froogle Feeder. :'( Would you help me?

When I click on "Froogle Feeder" in my admin, I get:

../froogle/gourmetcollection.txt File created

--- what that means?

:D

I appreciate your help.


OH Boy!!! Not again!!!!!!!!!!!!!!!!!!!!!!

Share this post


Link to post
Share on other sites
(If I'm understanding you right)

It means it's working.  It looks like an error, but it isnt.  Its a confimation that your feed (gourmetcollection.txt) has been created.  Now you need to click on "upload" which sets just a bit below that.  If you have your account username and password set up right, you should end up with a confirmation up top saying it was uploaded to hedwig.google.com.  If you get that...your in....

 

That uploads all of your catalog info to froogle....

Hi,

Thanks for your reply.

I could not find "upload" ,at least not in admin.

Should I look for it in my Cpanel?


OH Boy!!! Not again!!!!!!!!!!!!!!!!!!!!!!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×