Jump to content

ecartz

♥Ambassador
  • Content count

    3,583
  • Joined

  • Last visited

  • Days Won

    61

Everything posted by ecartz

  1. This is probably the wrong forum (you are talking about Easy Populate, which is a 2.2 contribution), but what you want is only possible by editing the code of Easy Populate. There is no automated way to add columns.
  2. ecartz

    Cool Flash Carousel Menu

    You are missing a line from includes/database_tables.php -- something like define('TABLE_FLASH_CAROUSEL', 'flash_carousel'); I'm not sure about the flash_carousel. It would be whatever the name of the table that you added to the database is. I would advise reading through the contribution again and see if you might have missed a step. If that doesn't work, you'll have to try to find the name of the table in the SQL that it has you run.
  3. ecartz

    QPBPP_V1_3_5 Installation pb

    I haven't used this contribution recently, but in line 266, I see $pfs and on lines 265 and 269, I see $pf. Since the error is on 266, I would guess that $pf is correct and $pfs is a typo.
  4. ecartz

    Returning to OSC after paypal payment

    The PayPal IPN contribution solves this by communicating with PayPal directly and not relying on PayPal to send the user back to the shop. It is more complicated than the regular PayPal contribution but it is also more reliable.
  5. ecartz

    contribution downloads

    It should just work. Which contribution is it?
  6. ecartz

    Ourproducts

    That's the correct value if you want Onze prodcuten to appear where Our Products does now. Are you sure that you are using the right file? The result that you are getting (where you see TABLE_HEADING_OUR_PRODUCTS instead of Our Products or Onze prodcuten) is a bug. It's saying that it is not finding the define at all. This could happen if, for example, you put the code in includes/languages/english.php instead of includes/languages/dutch.php when the store was using Dutch. Another thing to verify is that there isn't a syntax error higher in the file that is keeping this line from being read properly (to rule this out, move the whole line to be the first define in the file). Make sure that TABLE_HEADING_OUR_PRODUCTS is spelled the same way everywhere that it is used.
  7. Look under About Us and you will find The osCommerce Team. All those people are experienced developers.
  8. Oh? Is there a FreeSQL, OpenSQL, or SQL.org coming out? Even if there isn't, if Oracle (assuming it passes the anti-trust hurdles, as is likely) tries to cripple MySQL, then there always could be. It is a GPLed application after all.
  9. I think that to get the weight and price to update, in the javascript, change <script language="JavaScript1.2"> function check(checkboxid) { document.getElementById(checkboxid).checked = "checked"; } function changeQuantity(i,qty) { var quantity = Number(document.cart_quantity['qty_'+i].value)-qty; if (quantity <= 0) { quantity = 0; check('checkbox['+i+']'); } document.cart_quantity['qty_'+i].value = quantity; } </script> to <script type="text/javascript"> function updateCart(id, quantity, old_quantity) { var product_price = document.getElementById('product_price_'+id).value; var product_total_price = quantity * product_price; var old_product_total_price = old_quantity * product_price; var product_weight = document.getElementById('product_weight_'+id).value; var product_total_weight = quantity * product_weight; var old_product_total_weight = old_quantity * product_weight; var old_total_weight = document.getElementById('total_weight').innerHTML; var new_total_weight = old_total_weight + product_total_weight - old_product_total_weight; var old_sub_total_price = document.getElementById('sub_total_price').value; var new_sub_total_price = old_sub_total_price + product_total_price - old_product_total_price; var currency_symbol_left = document.getElementById('currency_symbol_left').value; var currency_symbol_right = document.getElementById('currency_symbol_right').value; var currency_decimal_places = Number(document.getElementById('currency_decimal_places').value); var sub_total_display = currency_symbol_left+new_sub_total_price.toFixed(currency_decimal_places)+currency_symbol_right; var product_price_display = currency_symbol_left+product_total_price.toFixed(currency_decimal_places)+currency_symbol_right; document.getElementById('product_total_weight_'+id).innerHTML = product_total_weight; document.getElementById('product_total_price_'+id).innerHTML = product_price_display; document.getElementById('total_weight').innerHTML = new_total_weight; document.getElementById('sub_total_price').innerHTML = sub_total_display; } function changeQuantity(id,qty) { var old_quantity = Number(document.cart_quantity['qty_'+id].value); var quantity = old_quantity+qty; if (quantity < 1) { quantity = 1; } if (quantity != old_quantity) { updateCart(id, quantity, old_quantity); } document.cart_quantity['qty_'+id].value = quantity; } </script> Change $info_box_contents[$cur_row][] = array('align' => 'center', 'params' => 'class="productListing-data" valign="top"', 'text' => ($products_weight * $products[$i]['quantity']) . WEIGHT_SINGULAR_MEASURE); $info_box_contents[$cur_row][] = array('align' => 'right', 'params' => 'class="productListing-data" valign="top"', 'text' => '<b>' . $currencies->display_price($products[$i]['final_price'], tep_get_tax_rate($products[$i]['tax_class_id']), $products[$i]['quantity']) . '</b>'); } to $info_box_contents[$cur_row][] = array('align' => 'center', 'params' => 'class="productListing-data" valign="top"', 'text' => '<span id="product_total_weight_' . $products[$i]['id'] . '">' . ($products_weight * $products[$i]['quantity']) . '</span>' . WEIGHT_SINGULAR_MEASURE) . tep_draw_hidden_field('product_weight_' . $products[$i]['id'], $products_weight); $info_box_contents[$cur_row][] = array('align' => 'right', 'params' => 'class="productListing-data" valign="top"', 'text' => '<b id="product_total_price_' . $products[$i]['id'] . '">' . $currencies->display_price($products[$i]['final_price'], tep_get_tax_rate($products[$i]['tax_class_id']), $products[$i]['quantity']) . '</b>' . tep_draw_hidden_field('product_price_' . $products[$i]['id'], $currencies->calculate_price($products[$i]['final_price'], tep_get_tax_rate($products[$i]['tax_class_id']))); } Also find // END estimated shipping ?> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td align="right" class="main"><?php if (SHIPPING_BOX_WEIGHT >= $cart->show_weight()*SHIPPING_BOX_PADDING/100) { $estimated_shipping_weight = $cart->show_weight()+SHIPPING_BOX_WEIGHT; } else { $estimated_shipping_weight = $cart->show_weight() + ($cart->show_weight()*SHIPPING_BOX_PADDING/100); } echo PACKAGE_WEIGHT . $estimated_shipping_weight . ($estimated_shipping_weight == "1" ? WEIGHT_SINGULAR_MEASURE : WEIGHT_MULTIPLE_MEASURE); ?> </td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td align="right" class="main"><b><?php echo SUB_TITLE_SUB_TOTAL; ?> <?php echo $currencies->format($cart->show_total()); ?></b> </td> </tr> and change to // END estimated shipping ?> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td align="right" class="main"><?php if (SHIPPING_BOX_WEIGHT >= $cart->show_weight()*SHIPPING_BOX_PADDING/100) { $estimated_shipping_weight = $cart->show_weight()+SHIPPING_BOX_WEIGHT; } else { $estimated_shipping_weight = $cart->show_weight() + ($cart->show_weight()*SHIPPING_BOX_PADDING/100); } echo PACKAGE_WEIGHT . '<span id="total_weight">' . $estimated_shipping_weight . '</span>' . ($estimated_shipping_weight == "1" ? WEIGHT_SINGULAR_MEASURE : WEIGHT_MULTIPLE_MEASURE); ?> </td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td align="right" class="main"><b><?php echo SUB_TITLE_SUB_TOTAL; ?> <span id="sub_total_display"><?php echo $currencies->format($cart->show_total()); ?></span></b><?php echo tep_draw_hidden_field('currency_symbol_left', $currencies->currencies[$currency]['symbol_left']) . tep_draw_hidden_field('sub_total_price', $cart->show_total()) . tep_draw_hidden_field('currency_symbol_right', $currencies->currencies[$currency]['symbol_right']) . tep_draw_hidden_field('currency_decimal_places', $currencies->currencies[$currency]['decimal_places']); ?> </td> </tr> This is at least close to what the solution should be. By the way, I changed the minimum quantity from zero to one to match the original contribution's behavior. I wonder if the original contribution works with product attributes? They produce weird product IDs.
  10. I have the wrong sign in the update quantity function. It currently says var quantity = Number(document.cart_quantity['qty_'+i].value)-qty; It should say var quantity = Number(document.cart_quantity['qty_'+i].value)+qty; The plus button was subtracting and the minus button was adding. There's also an issue with the remove box. What should the behavior be when the remove box is checked but the customer hits the add quantity button? What if they decrease the quantity? A simple solution might be to remove the check('checkbox['+i+']'); line. That would at least fix the problem of the remove box getting set. Wouldn't fix the problem of the customer adjusting the quantity after clicking the remove box.
  11. It's this line: $minus_field = '<a href="java script:changeQuantity("'.$products[$i]['id'].'",-1)">'.tep_image(DIR_WS_IMAGES .'minusBtn.gif').'</a>'; javascript should be one word, not two (java script). Not sure how that got there. I don't remember doing anything but copy and past that line. It's definitely in what I posted (both original and modified versions) and not in the original contribution. I would like to claim that the forum must have done it on its own. I'm going to try it again. This time I'll make sure that it isn't there when I submit: $minus_field = '<a href="java script:changeQuantity("'.$products[$i]['id'].'",-1)">'.tep_image(DIR_WS_IMAGES .'minusBtn.gif').'</a>'; Nope, I can see just from the preview that the forum software added a space again. Not in the box where I'm typing now though. The same thing happened with the plus button, so you'll need to delete both spaces.
  12. Is there a link to your store floating around? When you say the next page, do you mean the reload of the shopping cart page or a different page? On which link or button are you clicking?
  13. To get most of what you want, you could change the fast update contribution, the section of code that currently says: <script type="text/javascript"> function UpdateCartQuantity() { document.cart_quantity.submit(); } function changeQuantity(i,qty) { document.cart_quantity['qty_'+i].value = Number(document.cart_quantity['qty_'+i].value)+Number(qty); UpdateCartQuantity(); } function confSubmit(form) { if (confirm("Are you sure you want to delete this item?")) { form.submit(); } else { alert("You decided to not delete the item."); } } function check(checkboxid) { document.getElementById(checkboxid).checked = "checked"; } </script> to say <script language="JavaScript1.2"> function check(checkboxid) { document.getElementById(checkboxid).checked = "checked"; } function changeQuantity(i,qty) { var quantity = Number(document.cart_quantity['qty_'+i].value)-qty; if (quantity <= 0) { quantity = 0; check('checkbox['+i+']'); } document.cart_quantity['qty_'+i].value = quantity; } </script> and 'text' => tep_draw_checkbox_field('cart_delete[]', $products[$i]['id'], '', 'onClick="confSubmit(this.form);" id="checkbox['.$products[$i]['id'].']"')); to say 'text' => tep_draw_checkbox_field('cart_delete[]', $products[$i]['id'], '', 'id="checkbox['.$products[$i]['id'].']"')); and if ($products[$i]['quantity']==1) { $minus_field = tep_image(DIR_WS_IMAGES . 'minusBtn.gif', IMAGE_BUTTON_REMOVE_PRODUCT, '', '', 'onclick="java script:check(\'checkbox['.$products[$i]['id'].']\'); java script:document.cart_quantity.submit();"'); } else { $minus_field = '<a href="java script:changeQuantity("'.$products[$i]['id'].'",-1)">'.tep_image(DIR_WS_IMAGES .'minusBtn.gif').'</a>'; } $info_box_contents[$cur_row][] = array('align' => 'center', 'params' => 'class="productListing-data" nowrap valign="top"', 'text' => $minus_field . tep_draw_input_field('cart_quantity[]', $products[$i]['quantity'], 'size="4" onChange="UpdateCartQuantity();" id="qty_'.$products[$i]['id'].'"').'<a href="java script:changeQuantity("'.$products[$i]['id'].'", 1)">'.tep_image(DIR_WS_IMAGES .'plusBtn.gif').'</a>'. tep_draw_hidden_field('products_id[]', $products[$i]['id'])); to instead say: $minus_field = '<a href="java script:changeQuantity("'.$products[$i]['id'].'",-1)">'.tep_image(DIR_WS_IMAGES .'minusBtn.gif').'</a>'; $info_box_contents[$cur_row][] = array('align' => 'center', 'params' => 'class="productListing-data" nowrap valign="top"', 'text' => $minus_field . tep_draw_input_field('cart_quantity[]', $products[$i]['quantity'], 'size="4" onChange="UpdateCartQuantity();" id="qty_'.$products[$i]['id'].'"').'<a href="java script:changeQuantity("'.$products[$i]['id'].'", 1)">'.tep_image(DIR_WS_IMAGES .'plusBtn.gif').'</a>'. tep_draw_hidden_field('products_id[]', $products[$i]['id'])); What this would give you would be a shopping cart page where you could update the quantity by clicking on the plus or minus buttons. The page would only refresh when you clicked update cart. There is a slight regression in the delete functionality, as it will only update the cart when you click update cart (previously updated when you clicked the checkbox). The next step, if you want to take it, would be to build a true AJAX request handler (what this and the plus/minus contribution does is just javascript DOM manipulation, not actual AJAX) to handle the remove from cart action. This would require making a new page called something like remove_product_from_cart.php that would generate an XML response on success or failure. You could then use some basic javascript DOM manipulation (like at http://w3schools.com/js/tryit.asp?filename...table_deleterow ) to remove the product from the page if successful. To learn more about AJAX, you could check out http://w3schools.com/ajax/default.asp
  14. Does the plus/minus buttons contribution actually update the cart without a page refresh? Or does it instead update the page and then you submit the quantity when you click the add to cart button (which refreshes the page)? And the fast update contribution submits the page every time you delete a product or change the quantity, right? So you want to be able to make all your quantity updates before updating the cart (like you would normally do)? There might be user confusion in that they will have changed the quantity on the page but never submitted the page so that it is not updated on the server. What happens on a delete? Should it update the quantities? Or just delete the item? I think that the way it works now, you would have to update the quantities, just as if you had clicked the update cart button. Or you would need to remove the instant delete so that it only deletes when you click on the update cart button (the original way that the cart worked). Or you would need to redo the instant delete functionality (unfortunately without help from the plus/minus contribution, which doesn't deal with multiple products). Does it sound like I'm understanding what you want to do? I haven't used these particular contributions previously, so I may be misunderstanding somewhere.
  15. This is the support thread for the 1.2 version of http://www.oscommerce.com/community/contributions,577
  16. Posting a support thread for the Import/Export Module System so that I can put the URL in the contribution description. Matt
  17. ecartz

    Easy Populate Version 3

    I continue to think that the way to go with Easy Populate is to make it modular, so that instead of integrating it with every contribution under the sun, the contributions can integrate with it. The Import/Export Module System was a first stab at this. The goal was to make import and export modules work like payment, shipping, and order total modules work. If you want one that works with QT pro or reads XML, then write it. Almost everything that I see here could be implemented as a module: 1. QT Pro data. 2. Download Controller data. 3. XML 4. A delete action (i.e. upload a list of products to delete) 5. Customized formats (each format would have to be custom coded, but...) Rather than put the weight of supporting five different formats into one monolithic file, why not separate it out into about five files for the framework, another eight or so files for the base import/export methods (of which most people will only use one or two), and a potentially unlimited number of alternate methods. Btw, it also included an admin system for the settings, so that people didn't have to comb through the code for them. My $.02, Matt
  18. It looks like you commented out the MessageStack line without introducing it elsewhere. The contribution needs to move // infobox require(DIR_WS_CLASSES . 'boxes.php'); // initialize the message stack for output messages require(DIR_WS_CLASSES . 'message_stack.php'); $messageStack = new messageStack; from after the shopping cart actions to before in the includes/application_top.php file. Hth, Matt
  19. ecartz

    SMTP Alias

    I would try $send_params['from'] = '"My Shop <shop@myshop.com>"'; Hth, Matt
  20. You are missing a line in admin/includes/database_tables.php : define('TABLE_PRODUCTS_OPTIONS_TYPES', 'products_options_types'); Hth, Matt
  21. ecartz

    BASIC PAYPAL QUESTION NOT ANSWERED

    http://forums.oscommerce.com/index.php?showtopic=60540&st=20 has simpler code to make the products show up in the PayPal email if that's all that you want to do. Cheers, Matt
  22. ecartz

    Uploading files to a folder on a sever

    That would be what the File Upload contribution does. Hth, Matt
  23. Andre, if I had to guess, I would say that something changed names. I.e. one of $cart, [$HTTP_GET_VARS['products_id'], or $HTTP_GET_VARS['products_id'] has changed in some way that it is not recognizing the value. I would look higher in the file and see if you can see other places where those names are used. You might also have to check includes/classes/shopping_cart.php for changes. Hth, Matt
  24. Hmm. The presumption is that all uploads are going to be related to the same item. If you want to add multiple items at the same time, I would suggest looking to see if anyone ever finished the Master Products with Attributes module. Hth, Matt
  25. ecartz

    CC Merchant question

    Yes, osCommerce can email you the credit card number. It is recommended that you split the number between an email and the database for security reasons. Hth, Matt
×