ftrippie Posted December 6, 2011 Share Posted December 6, 2011 finally, i think I have it working! I reckon it changes the cart ID, so that's why it went back to the shipping confirmation page. I put the code now just AFTER the cart ID check and now it works. Needed to change the code above a little bit, because it didn't remove the gift if the code changed or was wrong. So now: // test to add here: BOF //////////////////////// dangling carrot v2.0 ////////////////////////////////// if ($cart->count_contents() > 0 ){ // find any free gifts, and remove invalid ones $num_in_cart = $cart->show_total(); $products = $cart->get_products(); $gift_query = tep_db_query("SELECT fg.*, p.products_id, p.products_model, p.products_price, p.products_image, p.products_tax_class_id, p.products_status, pd.products_name FROM (" . TABLE_CARROT . " fg, " . TABLE_PRODUCTS . " p) LEFT JOIN " . TABLE_PRODUCTS_DESCRIPTION . " pd ON (pd.products_id=fg.products_id) WHERE pd.language_id = '".$languages_id."' AND p.products_id = fg.products_id AND p.products_status = '1' ORDER BY fg.threshold ASC"); $threshold = 0; $p=0; $gift_price=0; $gift_exists=0; while ($gift = tep_db_fetch_array($gift_query)) { // loop through the current gifts if ($gift_exists == 0){ for ($i=0, $n=sizeof($products); $i<$n; $i++) { if ($products[$i]['id'] == $gift['products_id']) { // gift already in cart $gift_exists = $products[$i]['id']; $gift_price = $gift['products_price']; break; } } } if ($num_in_cart >= $gift['threshold'] && strtoupper($sess_discount_code)=='xxxxx') { // cart could qualify for this gift // check to see if in cart already // add to gift list if not in cart if ($gift['products_id'] != $gift_exists ) { // this particular gift is not in cart but qualifies if (!$cart->in_cart($gift['products_id'])) $cart->add_cart($gift['products_id']); } } else { // cart cannot qualify for this gift // remove if in cart $cart->remove($gift['products_id']); } $threshold = $gift['threshold']; }//while } //EOF dangling carrot v2.0 Quote Link to comment Share on other sites More sharing options...
ftrippie Posted December 6, 2011 Share Posted December 6, 2011 Oops, still not entirely. The free gifts are nicely added or removed according to the discount code action, but the weight is not added unless I refresh the page manually or go back to the shopping cart page. Anybody knows how to refresh the cart contents in the background? Quote Link to comment Share on other sites More sharing options...
ftrippie Posted December 9, 2011 Share Posted December 9, 2011 Does anybody know how to solve this? Basically the only think I am missing is that if I am going from the Payment_confirmation page (where I add the DiscountCode) to the CheckOut_Confirmation page, I don't see the shipping weight and costs updated. The items are correctly updated, but the weight is not being checked at the point apparantly. Is there no simple function to update weight and shipping? Quote Link to comment Share on other sites More sharing options...
ftrippie Posted December 16, 2011 Share Posted December 16, 2011 YES! I finally got it working! Created an extra field at customer registration to enter the code already and also had some extra checks built throughout the site. Quote Link to comment Share on other sites More sharing options...
roneada Posted December 21, 2011 Share Posted December 21, 2011 (edited) CREATE TABLE `free_gifts` ( `gift_id` tinyint(4) NOT NULL auto_increment, `threshold` mediumint(9) NOT NULL default '0', `products_id` mediumint(9) NOT NULL default '0', PRIMARY KEY (`gift_id`) ) TYPE=MyISAM; 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 (1200, 'Gifts Image Width', 'GIFTS_IMAGE_WIDTH', '90', 'The pixel width of heading images', '4', '25', now(), now(), NULL, NULL); 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 (1201, 'Gifts Image Height', 'GIFTS_IMAGE_HEIGHT', '100', 'The pixel height of heading images', '4', '26', now(), now(), NULL, NULL); UPDATE configuration_group SET sort_order=last_insert_id() WHERE configuration_group_id=last_insert_id(); ALTER TABLE `products` ADD `products_carrot` tinyint(1) default '0' AFTER `products_status` ; Hello the sql code give error Error consulta SQL: CREATE TABLE `free_gifts` ( `gift_id` tinyint( 4 ) NOT NULL AUTO_INCREMENT , `threshold` mediumint( 9 ) NOT NULL default '0', `products_id` mediumint( 9 ) NOT NULL default '0', PRIMARY KEY ( `gift_id` ) ) TYPE = MYISAM ; MySQL ha dicho: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=MyISAM' at line 6 Edited December 21, 2011 by roneada Quote Link to comment Share on other sites More sharing options...
roneada Posted December 23, 2011 Share Posted December 23, 2011 hello my problem is not shown in a choice shopping_cart gift that can be? this is my code <?php /* $Id: shopping_cart.php 1739 2007-12-20 00:52:16Z hpdl $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2007 osCommerce Released under the GNU General Public License */ require("includes/application_top.php"); if ($cart->count_contents() > 0) { include(DIR_WS_CLASSES . 'payment.php'); $payment_modules = new payment; } require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_SHOPPING_CART); $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_SHOPPING_CART)); //BOF //////////////////////// dangling carrot v2.0 ////////////////////////////////// if ($cart->count_contents() > 0){ // find any free gifts, and remove invalid ones $num_in_cart = $cart->show_total(); $products = $cart->get_products(); $gift_query = tep_db_query("SELECT fg.*, p.products_id, p.products_model, p.products_price, p.products_image, p.products_status, pd.products_name FROM (" . TABLE_CARROT . " fg, " . TABLE_PRODUCTS . " p) LEFT JOIN " . TABLE_PRODUCTS_DESCRIPTION . " pd ON (pd.products_id=fg.products_id) WHERE pd.language_id = '".$languages_id."' AND p.products_id = fg.products_id AND p.products_status = '1' ORDER BY fg.threshold ASC"); $threshold = 0; $p=0; $gift_price=0; $gift_exists=0; while ($gift = tep_db_fetch_array($gift_query)) { // loop through the current gifts if ($gift_exists == 0){ for ($i=0, $n=sizeof($products); $i<$n; $i++) { if ($products[$i]['id'] == $gift['products_id']) { // gift already in cart $gift_exists = $products[$i]['id']; $gift_price = $gift['products_price']; $deficit = $gift['threshold'] - $num_in_cart + $gift_price; break; } else { $deficit = $gift['threshold'] - $num_in_cart; } } } else { $deficit = $gift['threshold'] - $num_in_cart + $gift_price; } if ( $deficit < 20 && $deficit > 0 ) { $near_limit = 1; } else { $near_limit = 0; } if ($num_in_cart >= $gift['threshold'] && $deficit <= 0) { // cart could qualify for this gift // check to see if in cart already // add to gift list if not in cart if ($gift['products_id'] != $gift_exists && $deficit <= 0) { // this particular gift is not in cart but qualifies $freebie[$p]['message'] .= sprintf(TEXT_QUALIFIED_FOR_GIFT, $currencies->display_price($product_gift['threshold'], $gift['threshold'],tep_get_tax_rate($gift['products_tax_class_id']))); $freebie[$p]['link'] = '<a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $gift['products_id']) . '">' . tep_image_button('button_add_now.gif', 'Select ' . $gift['products_id'] ) . '</a>'; $freebie[$p]['name'] = $gift['products_name']; $freebie[$p]['id'] = $gift['products_id']; $freebie[$p]['image'] = $gift['products_image']; $p++; } } else if ($near_limit) { if ($gift['products_id'] != $gift_exists) { // this particular gift is not in cart $freebie[$p]['message'] .= sprintf(TEXT_CLOSE_TO_FREE_GIFT, $currencies->display_price($product_gift['threshold'], $deficit,tep_get_tax_rate($gift['products_tax_class_id']))); $freebie[$p]['link'] = ''; $freebie[$p]['name'] = $gift['products_name']; $freebie[$p]['id'] = $gift['products_id']; $freebie[$p]['image'] = $gift['products_image']; $p++; } else { // cart cannot qualify for this gift // remove if in cart $cart->remove($gift['products_id']); } } else { // cart cannot qualify for this gift // remove if in cart $cart->remove($gift['products_id']); } $threshold = $gift['threshold']; }//while } //EOF dangling carrot v2.0 ?> <!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"> <link href="carrusel.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="iepngfix_tilebg.js"></script> <style type="text/css"> .ie6_png {behavior: url("iepngfix.htc") } .ie6_png img {behavior: url("iepngfix.htc") } .ie6_png input {behavior: url("iepngfix.htc") } </style> <!--[if IE]> <script type="text/javascript" src="ie_png.js"></script> <script type="text/javascript"> ie_png.fix('.png'); </script> <![endif]--> </head> <body> <!-- header //--> <?php require(DIR_WS_INCLUDES . 'header.php'); ?> <!-- header_eof //--> <!-- body //--> <table border="0" class="<?php echo MAIN_TABLE; ?>" cellspacing="0" cellpadding="0"> <tr> <td class="<?php echo BOX_WIDTH_TD_LEFT; ?>"><table border="0" class="<?php echo BOX_WIDTH_LEFT; ?>" cellspacing="0" cellpadding="0"> <!-- left_navigation //--> <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?> <!-- left_navigation_eof //--> </table></td> <!-- body_text //--> <td class="<?php echo CONTENT_WIDTH_TD; ?>"><?php echo panel_top(); ?><?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_SHOPPING_CART, 'action=update_product')); ?> <?php echo tep_draw_top();?> <?php echo tep_draw_title_top();?> <?php echo HEADING_TITLE; ?> <?php echo tep_draw_title_bottom();?> <?php echo tep_draw4_top();?> <?php if ($cart->count_contents() > 0) { ?> <?php $info_box_contents = array(); $info_box_contents[0][] = array('align' => 'center', 'params' => ' class="s_cart_head s_cart_head_padd remove"', 'text' => ''.TABLE_HEADING_REMOVE.''); $info_box_contents[0][] = array('align' => 'center', 'params' => ' class="s_cart_head s_cart_head_padd products"', 'text' => ''.TABLE_HEADING_PRODUCTS.''); $info_box_contents[0][] = array('align' => 'center', 'params' => ' class="s_cart_head s_cart_head_padd quantity"', 'text' => ''.TABLE_HEADING_QUANTITY.''); $info_box_contents[0][] = array('align' => 'center', 'params' => ' class="s_cart_head s_cart_head_padd total"', 'text' => ''.TABLE_HEADING_TOTAL.''); $any_out_of_stock = 0; $products = $cart->get_products(); for ($i=0, $n=sizeof($products); $i<$n; $i++) { // Push all attributes information in an array if (isset($products[$i]['attributes']) && is_array($products[$i]['attributes'])) { while (list($option, $value) = each($products[$i]['attributes'])) { echo tep_draw_hidden_field('id[' . $products[$i]['id'] . '][' . $option . ']', $value); $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . (int)$products[$i]['id'] . "' and pa.options_id = '" . (int)$option . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . (int)$value . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . (int)$languages_id . "' and poval.language_id = '" . (int)$languages_id . "'"); $attributes_values = tep_db_fetch_array($attributes); $products[$i][$option]['products_options_name'] = $attributes_values['products_options_name']; $products[$i][$option]['options_values_id'] = $value; $products[$i][$option]['products_options_values_name'] = $attributes_values['products_options_values_name']; $products[$i][$option]['options_values_price'] = $attributes_values['options_values_price']; $products[$i][$option]['price_prefix'] = $attributes_values['price_prefix']; } } } for ($i=0, $n=sizeof($products); $i<$n; $i++) { if (($i/2) == floor($i/2)) { $info_box_contents[] = array('params' => ''); } else { $info_box_contents[] = array('params' => ''); } $cur_row = sizeof($info_box_contents) - 1; $p_cart_pic = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']) . '">' . tep_image(DIR_WS_IMAGES . $products[$i]['image'], $products[$i]['name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>'; $info_box_contents[$cur_row][] = array('align' => 'center', 'params' => ' class="s_cart_td"', 'text' => tep_draw_checkbox_field('cart_delete[]', $products[$i]['id'])); //<!--BOF dangling carrot v2.0--> if ($products[$i]['carrot'] == "1"){ $products_name = '<table cellpadding="0" cellspacing="10" border="0">' . ' <tr>' . ' <td class="name name3_padd" align="center">' . tep_image(DIR_WS_IMAGES . $products[$i]['image'], $products[$i]['name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</td>' . ' <td class="pic3_padd" valign="top"><b>' . $products[$i]['name'] . '</b>'; }else{ $products_name = '<table border="0" cellspacing="2" cellpadding="2">' . ' <tr>' . ' <td class="productListing-data" align="center"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']) . '">' . tep_image(DIR_WS_IMAGES . $products[$i]['image'], $products[$i]['name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a></td>' . ' <td class="productListing-data" valign="top"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']) . '"><b>' . $products[$i]['name'] . '</b></a>'; } //<!--EOF dangling carrot v2.0--> if (STOCK_CHECK == 'true') { $stock_check = tep_check_stock($products[$i]['id'], $products[$i]['quantity']); if (tep_not_null($stock_check)) { $any_out_of_stock = 1; $products_name .= $stock_check; } } if (isset($products[$i]['attributes']) && is_array($products[$i]['attributes'])) { reset($products[$i]['attributes']); $products_name .= '<tr><td style="width:100%;" align="center">'; while (list($option, $value) = each($products[$i]['attributes'])) { $products_name .= '<i> - ' . $products[$i][$option]['products_options_name'] . ' ' . $products[$i][$option]['products_options_values_name'] . '</i><br><br>'; } $products_name .= '</td></tr>'; } $products_name .= '</table><br>'; $info_box_contents[$cur_row][] = array('params' => '', 'text' => $products_name); //<!--BOF dangling carrot v2.0--> if ($products[$i]['carrot'] == "1"){ $info_box_contents[$cur_row][] = array('align' => 'center', 'params' => 'class="s_cart_td " valign="top"', 'text' => $products[$i]['quantity']. tep_draw_hidden_field('cart_quantity[]', $products[$i]['quantity']) . tep_draw_hidden_field('products_id[]', $products[$i]['id'])); }else{ $info_box_contents[$cur_row][] = array('align' => 'center', 'params' => 'class="productListing-data" valign="top"', 'text' => tep_draw_input_field('cart_quantity[]', $products[$i]['quantity'], 'size="4"') . tep_draw_hidden_field('products_id[]', $products[$i]['id'])); } $info_box_contents[$cur_row][] = array('align' => 'center', 'params' => 'class="s_cart_td"', 'text' => '<span class="productSpecialPrice">' . $currencies->display_price($products[$i]['final_price'], tep_get_tax_rate($products[$i]['tax_class_id']), $products[$i]['quantity']) . '</span>'); } new productListingBox($info_box_contents); ?> <?php if ($any_out_of_stock == 1) { if (STOCK_ALLOW_CHECKOUT == 'true') { ?> <div class="cart_line_x padd2_gg"><?php echo tep_draw_separator('spacer.gif', '1', '1'); ?></div> <table cellpadding="0" cellspacing="0" border="0"> <tr><td class="stockWarning" align="center"><?php echo OUT_OF_STOCK_CAN_CHECKOUT; ?></td></tr> </table> <?php } else { ?> <div class="cart_line_x padd2_gg"><?php echo tep_draw_separator('spacer.gif', '1', '1'); ?></div> <table cellpadding="0" cellspacing="0" border="0"> <tr><td class="stockWarning" align="center"><?php echo OUT_OF_STOCK_CANT_CHECKOUT; ?></td></tr> </table> <?php } } ?> <?php /* echo tep_draw_infoBox2_top(); */ ?> <div class="cart_line_x padd2_gg"><?php echo tep_draw_separator('spacer.gif', '1', '1'); ?></div> <table cellspacing="0" cellpadding="0" border="0"> <tr> <td width="80%" align="right" class="cart_total_left"><?php echo SUB_TITLE_SUB_TOTAL; ?></td> <td width="20%" align="center" class="cart_total_right main"> <span class="productSpecialPrice"><?php echo $currencies->format($cart->show_total()); ?></span> </td> </tr> </table> <div class="cart_line_x padd2_gg"><?php echo tep_draw_separator('spacer.gif', '1', '1'); ?></div> <table cellspacing="0" cellpadding="0" border="0" > <tr> <td class="cart_button_padd button2_marg bg_input"><?php echo tep_image_submit('button_update_cart1.gif', IMAGE_BUTTON_UPDATE_CART); ?> <?php $back = sizeof($navigation->path)-2; if (isset($navigation->path[$back])) { echo '<a href="' . tep_href_link($navigation->path[$back]['page'], tep_array_to_string($navigation->path[$back]['get'], array('action')), $navigation->path[$back]['mode']) . '">' . tep_image_button('button_continue_shopping.gif', IMAGE_BUTTON_CONTINUE_SHOPPING) . '</a>'; } ?> <?php echo '<a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL') . '">' . tep_image_button('button_checkout1.gif', IMAGE_BUTTON_CHECKOUT) . '</a>'; ?> <?php echo '<a target="_blank" href="http://www.youtube.com/watch?v=SG9RksgCQvc">' ?> <?php echo tep_image(DIR_WS_IMAGES.'videotutorial.jpg')?></a> </td> </tr> </table> <!--BOF dangling v2.0--> <?php if ($cart->count_contents() > 0){ ?> <tr><td> <hr color="#00CC33" width="100%" size="1"> <?php if ($gift_message) { echo '<div align="center"><span class="smallText">'.$gift_message.'</span></div><p>'; } for ($i=0, $n=sizeof($freebie); $i<$n; $i++) { if ($gift_exists > 0) { $link = TEXT_REMOVE_GIFT; } else { $link = $freebie[$i]['link']; } echo '<table width="100%" align="center" cellspacing="1" bgcolor="#FFFFFF"> <tr> <td class="smallText" bgcolor="#FFFFFF"> <a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id='.$freebie[$i]['id'], 'NONSSL') . '">' . tep_image(DIR_WS_IMAGES . $freebie[$i]['image'], $freebie[$i]['name'], GIFTS_IMAGE_WIDTH, GIFTS_IMAGE_HEIGHT, 'align="left"' ) . '</a>' . $freebie[$i]['message'].' <br /><span class="gift5">'.$freebie[$i]['name'].'</span> <br> ' . TEXT_MAX_1_GIFT . ' <br>'.$link.' </td> </tr> </table>'; } if ($freebie[0]['name']) { echo '<hr color="#0033FF" width="100%" size="1">'; } ?> </td></tr> <?php } ?> <!--EOF danglingfdfd carrot v2.0--> <?php /* echo tep_draw_infoBox2_bottom(); */ ?> <?php $initialize_checkout_methods = $payment_modules->checkout_initialization_method(); if (!empty($initialize_checkout_methods)) { ?> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td align="right" class="main" style="padding-right:50px;"><?php echo TEXT_ALTERNATIVE_CHECKOUT_METHODS; ?></td> </tr> <?php reset($initialize_checkout_methods); while (list(, $value) = each($initialize_checkout_methods)) { ?> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td align="right" class="main"><?php echo $value; ?></td> </tr> </table> <?php } } }else { ?> <?php /* echo tep_draw_infoBox_top(); */?> <?php new infoBox_search_criteria(array(array('text' => ''.TEXT_CART_EMPTY))); ?> <?php /* echo tep_draw_infoBox_bottom(); */?> <?php echo tep_pixel_trans();?> <?php /* echo tep_draw_infoBox2_top(); */ ?> <table border="0" width="100%" cellspacing="0" cellpadding="2"><tr> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> <td align="right" class="main"><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?></td> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> </tr> </table> <?php /* echo tep_draw_infoBox2_bottom(); */ ?> <?php } ?> <?php echo tep_draw4_bottom();?> <?php echo tep_draw_bottom();?> </form></td> <!-- body_text_eof //--> <td class="<?php echo BOX_WIDTH_TD_RIGHT; ?>"><table border="0" class="<?php echo BOX_WIDTH_RIGHT; ?>" cellspacing="0" cellpadding="0"> <!-- 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 //--> </body> </html> <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> Quote Link to comment Share on other sites More sharing options...
masterpiece Posted October 3, 2014 Share Posted October 3, 2014 (edited) Hi All, I have install this module but i get an error on the product info page. See below. 1146 - Table 'xxxxx.TABLE_CARROT' doesn't existselect g.gift_id, g.threshold, g.products_id from TABLE_CARROT g where g.products_id = '1195'[TEP STOP] Hope anyone can help me Edited October 3, 2014 by masterpiece Quote Link to comment Share on other sites More sharing options...
Jack_mcs Posted October 3, 2014 Share Posted October 3, 2014 The capital letters in the error mean that a definition is missing. Double check the install instructions for changes to the database_tables.php file. Quote Support Links: For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc. All of My Addons Get the latest versions of my addons Recommended SEO Addons Link to comment Share on other sites More sharing options...
masterpiece Posted October 7, 2014 Share Posted October 7, 2014 Hi Jack, Pfff that was a stupid mistake from me. The error is gone now. Thanks for your ensure Have a great day and hopefully it works now. I'm testing now Quote 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.