Guest Posted August 6, 2003 Share Posted August 6, 2003 A completely new Family Products for osCommerce MS2. Products are assigned a Family in admin>categories>products>edit They are displayed on the product info page in the same manner as product listing in the main catalog and display is configurable in admin likewise. A screenshot may be viewed here: http://suomedia.com/family_products.jpg The contribution may be downloaded here: http://www.oscommerce.com/community/contributions,1429 Quote Link to comment Share on other sites More sharing options...
msheno01 Posted August 6, 2003 Share Posted August 6, 2003 Great cont. Several problems, I copied the files exactly as they were, so I didn't change any code. The heading of the family products table says TABLE_HEADING_IMAGE TABLE_HEADING_MODEL TABLE_HEADING_PRODUCTS TABLE_HEADING_PRICE TABLE_HEADING_BUY_NOW Also, this problem might be tied with the one above, but the width of the table is large and therefore moves the right colum off the screen. Thanks Quote Link to comment Share on other sites More sharing options...
Guest Posted August 6, 2003 Share Posted August 6, 2003 Yes.. the problem is tied to the other - looks like I zipped up the wrong folder and missed a language file. Paste the following at the top of catalog/includes/modules/family_products.php require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_FAMILY_PRODUCTS); Create a file named family_products.php, paste the following into it, and upload it to your catalog/includes/languages/english folder <?php /* $ID family_products.php osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2003 osCommerce Family Products - JOHNSON - 05/07/2003 [email protected] Copyright (c) 2003 Suomedia - Dynamic Content Management Released under the GNU General Public License */ define('TABLE_HEADING_IMAGE', ''); define('TABLE_HEADING_MODEL', 'Model'); define('TABLE_HEADING_PRODUCTS', 'Product Name'); define('TABLE_HEADING_MANUFACTURER', 'Manufacturer'); define('TABLE_HEADING_QUANTITY', 'Qty'); define('TABLE_HEADING_PRICE', 'Price'); define('TABLE_HEADING_WEIGHT', 'Weight'); define('TABLE_HEADING_BUY_NOW', 'Buy Now'); ?> I'll upload the update to contributions. Matti Quote Link to comment Share on other sites More sharing options...
kelantanpro Posted August 9, 2003 Share Posted August 9, 2003 Yes.. the problem is tied to the other - looks like I zipped up the wrong folder and missed a language file. Paste the following at the top of catalog/includes/family_products.php I dont see any file name family_products.php in catalog/includes/ From the download only got filename.php :? Quote Link to comment Share on other sites More sharing options...
kelantanpro Posted August 9, 2003 Share Posted August 9, 2003 Excuse me, I got this message: Warning: main(includes/modules/FILENAME_FAMILY_PRODUCTS) [function.main]: failed to create stream: No such file or directory in E:homeDefaultdrpc-technology.comhtdocsDRPCstorecatalogproduct_info.php on line 185 Warning: main() [function.main]: Failed opening 'includes/modules/FILENAME_FAMILY_PRODUCTS' for inclusion (include_path='.;c:php4pear') in E:homeDefaultdrpc-technology.comhtdocsDRPCstorecatalogproduct_info.php on line 185 Anyone kindly, please tell me what's wrong with this? Quote Link to comment Share on other sites More sharing options...
Guest Posted August 9, 2003 Share Posted August 9, 2003 You have not installed catalog/includes/filnames.php , or instead copied over the changes from the one provided in the package over to yours... // Family Products define('FILENAME_FAMILY_LISTING', 'family_listing.php'); define('FILENAME_FAMILY_PRODUCTS', 'family_products.php'); // Family Products EOF Quote Link to comment Share on other sites More sharing options...
Guest Posted August 9, 2003 Share Posted August 9, 2003 I dont see any file name family_products.php in catalog/includes/ From the download only got filename.php :? That was a typo, now corrected - you should have two files in catalog/includes/modules - family_products.php and family_listing.php In catalog/includes there are changes to filenames.php as in the post above - a modified file is provided in the package. I have done a test installation and it is safe to overwrite existing files if you have a standard, unmodified installation of MS2 Quote Link to comment Share on other sites More sharing options...
kelantanpro Posted August 10, 2003 Share Posted August 10, 2003 I used the updated version from the begining, but I got those errors and still the sama errors after checking some suspected files. I guess my product_info.php got a problem but I have no idea how to modified that because it looks very different with the one that the article script use. Almost 80% different when I compared those 2 file. Any tips? In admin section, I got it wrigt by just cut and past the part of the scripts that written Family Products. I have done the same with catalog, but no luck. Any :idea: ? FYI, this is my catalog/product_info.php <?php /* $Id: product_info.php,v 1.92 2003/02/14 05:51:21 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2003 osCommerce Released under the GNU General Public License */ require('includes/application_top.php'); require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCT_INFO); ?> <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html <?php echo HTML_PARAMS; ?>> <head> <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>"> <title><?php echo TITLE; ?></title> <base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>"> <link rel="stylesheet" type="text/css" href="stylesheet.css"> <script language="javascript"><!-- function popupWindow(url) { window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizab le=yes,copyhistory=no,width=100,height=100,screenX=150,screenY=150,top=150,left=1 50') } //--></script> </head> <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0"> <!-- header //--> <?php require(DIR_WS_INCLUDES . 'header.php'); ?> <!-- header_eof //--> <!-- body //--> <table border="0" width="100%" cellspacing="3" cellpadding="3"> <tr> <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2"> <!-- left_navigation //--> <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?> <!-- left_navigation_eof //--> </table></td> <!-- body_text //--> <td width="100%" valign="top"><?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=add_product')); ?><table border="0" width="100%" cellspacing="0" cellpadding="0"> <?php $product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . $languages_id . "'"); if (!tep_db_num_rows($product_info_query)) { // product not found in database ?> <tr> <td class="main"><br><?php echo TEXT_PRODUCT_NOT_FOUND; ?></td> </tr> <tr> <td align="right"><br><a href="<?php echo tep_href_link(FILENAME_DEFAULT); ?>"><?php echo tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE); ?></a></td> </tr> <?php } else { tep_db_query("update " . TABLE_PRODUCTS_DESCRIPTION . " set products_viewed = products_viewed+1 where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and language_id = '" . $languages_id . "'"); $product_info = tep_db_fetch_array($product_info_query); if ($new_price = tep_get_products_special_price($product_info['products_id'])) { $products_price = '<s>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</s> <span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>'; } else { $products_price = $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])); } ?> <tr> <td><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr height="40"> <td class="pageHeading"><?php echo $product_info['products_name']; ?></td> <td align="right" class="pageHeading"><?php echo $products_price; ?></td> </tr> <?php if (PRODUCT_LIST_MODEL > 0) { echo ' <tr>' . "n" . ' <td colspan="2" class="pageHeading">' . $product_info['products_model'] . '</td>' . "n" . ' </tr>' . "n"; } ?> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td class="main"><table border="0" cellspacing="0" cellpadding="2" align="right"> <?php if (tep_not_null($product_info['products_image'])) { ?> <tr> <td align="center" class="smallText"> <script language="javascript"><!-- document.write('<?php echo '<a href="javascript:popupWindow('' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $product_info['products_id']) . '')">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], addslashes($product_info['products_name']), SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>'); //--></script> <noscript> <?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?> </noscript> </td> </tr> <?php } ?> </table><p><?php echo stripslashes($product_info['products_description']); ?></p> <?php $products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . $languages_id . "'"); $products_attributes = tep_db_fetch_array($products_attributes_query); if ($products_attributes['total'] > 0) { echo '<b>' . TEXT_PRODUCT_OPTIONS . '</b><br>' . '<table border="0" cellpadding="0" cellspacing"0">'; $products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . $languages_id . "'"); while ($products_options_name = tep_db_fetch_array($products_options_name_query)) { $selected = 0; $products_options_array = array(); echo '<tr><td class="main">' . $products_options_name['products_options_name'] . ':</td><td>' . "n"; $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . $products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . $languages_id . "'"); while ($products_options = tep_db_fetch_array($products_options_query)) { $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']); if ($products_options['options_values_price'] != '0') { $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') '; } } echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']]); echo '</td></tr>'; } echo '</table>'; } ?> </td> </tr> <?php $reviews = tep_db_query("select count(*) as count from " . TABLE_REVIEWS . " where products_id = '" . $HTTP_GET_VARS['products_id'] . "'"); $reviews_values = tep_db_fetch_array($reviews); if ($reviews_values['count'] > 0) { ?> <tr> <td class="main"><br><?php echo TEXT_CURRENT_REVIEWS . ' ' . $reviews_values['count']; ?></td> </tr> <?php } if (tep_not_null($product_info['products_url'])) { ?> <tr> <td class="main"><br><?php echo sprintf(TEXT_MORE_INFORMATION, tep_href_link(FILENAME_REDIRECT, 'action=url&goto=' . urlencode($product_info['products_url']), 'NONSSL', true, false)); ?></td> </tr> <?php } if ($product_info['products_date_available'] > date('Y-m-d H:i:s')) { ?> <tr> <td align="center" class="smallText"><br><?php echo sprintf(TEXT_DATE_AVAILABLE, tep_date_long($product_info['products_date_available'])); ?></td> </tr> <?php } else { ?> <tr> <td align="center" class="smallText"><br><?php echo sprintf(TEXT_DATE_ADDED, tep_date_long($product_info['products_date_added'])); ?></td> </tr> <?php } ?> <tr> <td><br><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="main"><a href="<?php echo tep_href_link(FILENAME_PRODUCT_REVIEWS, substr(tep_get_all_get_params(), 0, -1)); ?>"><?php echo tep_image_button('button_reviews.gif', IMAGE_BUTTON_REVIEWS); ?></a></td> <td align="right" class="main"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART); ?></td> </tr> </table></td> </tr> <tr> <td><br> <?php if ( (USE_CACHE == 'true') && !defined('SID')) { echo tep_cache_also_purchased(3600); } else { include(DIR_WS_MODULES . FILENAME_ALSO_PURCHASED_PRODUCTS); } } ?> </td> </tr> </table></form></td> <!-- body_text_eof //--> <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2"> <!-- right_navigation //--> <?php require(DIR_WS_INCLUDES . 'column_right.php'); ?> <!-- right_navigation_eof //--> </table></td> </tr> </table> <!-- body_eof //--> <!-- footer //--> <?php require(DIR_WS_INCLUDES . 'footer.php'); ?> <!-- footer_eof //--> <br> </body> </html> <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> Quote Link to comment Share on other sites More sharing options...
Guest Posted August 10, 2003 Share Posted August 10, 2003 I used the updated version from the begining, but I got those errors and still the sama errors after checking some suspected files. I guess my product_info.php got a problem but I have no idea how to modified that because it looks very different with the one that the article script use. Almost 80% different when I compared those 2 file. This contribution is for osCommerce version 2.2 MS2 . I will not support installations into any other version. Any tips? Upgrade your installation to MS2. Matti Quote Link to comment Share on other sites More sharing options...
chirpy36 Posted August 10, 2003 Share Posted August 10, 2003 Hi, I've installed this contribution in an MS2 store, and under Family Products: listing I get 'TEXT_NO_PRODUCTS' instead of a list of the other products in that family. I didn't copy over the files but used a diff program to add all your changes to my files. Any ideas what I've done wrong? Here's a screenshot. Quote Link to comment Share on other sites More sharing options...
blueline Posted August 10, 2003 Share Posted August 10, 2003 Hi, I've installed this contribution in an MS2 store, and under Family Products: listing I get 'TEXT_NO_PRODUCTS' instead of a list of the other products in that family. I didn't copy over the files but used a diff program to add all your changes to my files. Any ideas what I've done wrong? Here's a screenshot. You are simply missing a definition. Please update your files in your /language folder which pertain to Family Products (sorry I don't know which one it is.) HTH -Chris Quote Chris Sullivan Link to comment Share on other sites More sharing options...
Guest Posted August 10, 2003 Share Posted August 10, 2003 It shouldn't appear at all - it is part of redundant code from product_listing.php which it is based on. The family products files are only called from product_info.php if there *are* related products in the database, so the 'else' that calls TEXT_NO_PRODUCTS should be skipped. TEXT_NO_PRODUCTS is not defined in a language file as its not required. Compare the files from the package to your own. I pasted the whole catalog directory from the package into a fresh installation of MS2 and cannot repeat the error. Quote Link to comment Share on other sites More sharing options...
Guest Posted August 10, 2003 Share Posted August 10, 2003 There is a small issue with the family.sql file in the package - the following line appears twice and one may be deleted from the file: INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) VALUES ('Display Product Name', 'FAMILY_LIST_NAME', '4', 'Do you wish to display the products name?', 16, 4, now()); It does not produce any errors that I can ascertain, other than making the "Display Product Name" option appear twice in admin>configuration>family products. If the file has already been run on your database the extra row can be dropped. Quote Link to comment Share on other sites More sharing options...
chirpy36 Posted August 10, 2003 Share Posted August 10, 2003 Thanks for the replies. I have now simply copied over the files from the contribution, as there were only two minor changes in two of my files which I can put back in once this is sorted out. I am still getting the same thing, TEXT_NO_PRODUCTS when I view a product that has related products. I DON'T get it when I view a product without related products. I see in family_listing.php where TEXT_NO_PRODUCTS is displayed but I don't really understand enough of the preceding code to tell what has happened to display it. Could it be a database problem? I'm stumped. :( Quote Link to comment Share on other sites More sharing options...
Guest Posted August 10, 2003 Share Posted August 10, 2003 What is happening is that the $family_query in product_info.php is detecting a products family for your product but by the time the script runs to family listing.php if ($listing_split->number_of_rows > 0) is false - hence the reason it wants to display TEXT_NO_PRODUCTS. What is your admin>configuration>>maximum values>search results setting? Quote Link to comment Share on other sites More sharing options...
chirpy36 Posted August 11, 2003 Share Posted August 11, 2003 Do you mean the admin>configuration>my store>default search operator? That's set to 'and'. I can't see any other search related configuration option, other than use search-engine-safe URLs, which is set to false. Quote Link to comment Share on other sites More sharing options...
Guest Posted August 11, 2003 Share Posted August 11, 2003 Sorry - I corrected the above Quote Link to comment Share on other sites More sharing options...
chirpy36 Posted August 11, 2003 Share Posted August 11, 2003 My admin>configuration>maximum values>search results is set to 20. Quote Link to comment Share on other sites More sharing options...
aezalpha Posted August 11, 2003 Share Posted August 11, 2003 Hi, I'm having the same problem as chirpy36. I have related 2 products (just for testing purposes) under the family name "Daniel". I have double-checked that the family name has been correctly entered in the database as well. The products didn't show up though under "Family Products". Here's the page with the 2 items on my test site... http://www.sunshinetradingcompany.com/cata...php?cPath=21_23 All it says under "Family Products" is TEXT_NO_PRODUCTS. I had copied the files directly from the contribution download into a fresh MS2 install. So I'm running out of ideas as to why the related products aren't being picked up. Any help would be greatly appreciated. I'll post again if I have a major breakthrough. :) Thanks, aezalpha Quote Link to comment Share on other sites More sharing options...
TaFfin Posted August 13, 2003 Share Posted August 13, 2003 Matti, The idea of this contribution is quite nice but if I look at the screenshot, the product Die Hard With A Vengeance is a family member of the (I think) action movies. So if I'm looking at the specs of Die Hard, the first family product is Die Hard again. That's rather strange since I've already selected that product. I think it's more obvious to see just the other action movies and not the other action movies + the same movie again. Is there a way to filter the family so the product a customer is viewing, is not mentioned in the list again? Regards, TaFfin Quote SIGnificant.....right? Link to comment Share on other sites More sharing options...
Guest Posted August 13, 2003 Share Posted August 13, 2003 Yes there is... I was waiting to see what kind of feedback I would get regarding that - my original mod had this filtered... I will post the code here tonight for doing that. Quote Link to comment Share on other sites More sharing options...
TheFinnisher Posted August 15, 2003 Share Posted August 15, 2003 Hey Matti, That looks like a great contribution. Just what I was looking to do a coupple of months ago but didn't have enough knowledge yet. I was actually trying to work on this again a few nights ago. I always wanted an optional way to display different sizes rather than using "attributes". Attributes can get messy sometimes if you have waaay to many of them! and then of course you don't have the ability to put one of those sizes on special... I was wondering. Have you ever used or seen the "Add multiple products" contribution? http://www.oscommerce.com/community/contributions,1129 I think this contribution would be beyond great if it was possible to add quantity boxes in a column and a add to cart at once. It seems like it wouldn't be that difficult. The "add multiple products" uses a form and just some additions to the application_top.php page... I'll have to look into it more tomorrow... Just wanted to stop by and say how wonderful I think it is that someone finally did add feautures to the otherwise to well functioning family contribution! by the way, in my case i would rather go without filtering the showing product... Thanks Matti! You'r great! :P Thomas Quote Link to comment Share on other sites More sharing options...
Guest Posted August 15, 2003 Share Posted August 15, 2003 Matti, Is there a way to filter the family so the product a customer is viewing, is not mentioned in the list again? Yes - in catalog/includes/modules/family_products.php change the $family_sql query to: $family_sql = "select p.products_id, p.manufacturers_id, p.products_model, p.products_image, p.products_tax_class_id, pd.products_name, s.specials_new_products_price, s.status, p.products_price, p.products_family, m.manufacturers_name from ". TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_id !=" . (int)$HTTP_GET_VARS['products_id'] . " and p.products_id = pd.products_id and p.products_family = '" . $thisquery['products_family'] . "' and p.manufacturers_id = m.manufacturers_id and p.products_status = '1' and pd.language_id = '" . (int)$languages_id . "'"; Quote Link to comment Share on other sites More sharing options...
Guest Posted August 15, 2003 Share Posted August 15, 2003 Just wanted to stop by and say how wonderful I think it is that someone finally did add feautures to the otherwise to well functioning family contribution! I have spoken to Chris Sullivan, who contributed the original Family Products, and he has indicated a renewed interest in developing this contribution further :D - there is a need for a drop menu in admin for selecting product families already in the database - I believe he is now working on this. Quote Link to comment Share on other sites More sharing options...
blueline Posted August 15, 2003 Share Posted August 15, 2003 Matti- I wanted to ask you.....does you current version allow products to be in more than one family? Thanks, -Chris Quote Chris Sullivan Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.