Jump to content

blafrog

Members
  • Content count

    45
  • Joined

  • Last visited

Everything posted by blafrog

  1. blafrog

    [Contribution] CSS Buttons Everywhere

    This is how I changed wishlist page, hope it works for you. GL! <input type="submit" name="delete_prod_x" value="Delete from Wishlist" class="TheButtonStyle"> <input type="submit" class="TheButtonStyle" name="add_prod_x" value="Add to Cart" />
  2. blafrog

    zoom into images mootools?

    probablyuse jQZoom at http://www.mind-projects.it/blog/jqzoom_v10
  3. blafrog

    Multi_Vendor_Shipping new thread

    after installed mvs shipping estimator(I only used product shipping estimator), package tare weight doesn't add to USPS shipping, FedEx works tho. Do you have usps.php for vendor shipping? Can you send me the code? Thanks. If I disable vendor shipping, both working.
  4. It was set TRUE, didn't work. Have you tried this on your site? When you type http://yoursite.com/index.php?cPath=10 Will it automatically redirect to? http://yoursite.com/yourcat-c-10.html Btw, I have tried 2.1d and 2.2e.
  5. If someone tries to access this --> http://www.mysite.com/index.php?cPath=10 redirect them to --> http://www.mysite.com/category-c-10.html Any solutions?
  6. blafrog

    [Contribution] Ship In Cart

    yes, you need to change modules/shipping_estimator.php require(DIR_WS_CLASSES . 'shipping.php'); to require_once(DIR_WS_CLASSES . 'shipping.php'); require(DIR_WS_CLASSES . 'order.php'); to require_once(DIR_WS_CLASSES . 'order.php'); My problem is when customer not logged in, after submitting zip code, switch or choose difference shipping service not work, page just refresh nothing show up, have to resubmit zip code.. the update button works tho.
  7. blafrog

    Links Manager II

    How to remove or not display ?parentid=0 in the url? eg. http://mysite.com/xxxxx-links-1.html?parentid=0 thanks for any help.
  8. blafrog

    Problems with AMEX cards... US store

    that was transactions "amount charge" hold even the transactions were declined. Hold by Paypal. Usually funds will return to the card within 2 business days. like this, customer submitted - approved - declined immediately -> funds hold (mostly AVS not match etc.) customer submitted - declined -> usually not hold (mostly incorrect card numbers, exp date etc.)
  9. Does anyone know how to add buy it now and price in also_purchased_products.php? I've searched but wasn't able to find the information I needed. Thanks for any help!
  10. blafrog

    Also Purchased Products

    thanks nick. $products_price doesn't work. Hopefully someone can help, really like to have buy now button and price display. thanks.
  11. blafrog

    Also Purchased Products

    Okay, I want to put buy it now button and display price in "Customers who bought this product also purchased". thank you
  12. blafrog

    I am really frustrated and disappointed

    I have a question did not get an answer. B) The thread http://forums.oscommerce.com/index.php?showtopic=269584 I've seen so many threads without single reply / answer.
  13. blafrog

    Duplicate Transaction in Verisign

    I think you problem could be decimal causing it. Check here -> Decimal Fix
  14. blafrog

    Google Checkout Level 2

    Can you tell me how can I add ZONE for USA? I only see ZONE NY in shipping module. It was set up for Tax. I have another problem. I don't know why my customers still can choose FedEx Priority (by 10:30AM, later for rural), cause I've disabled (comment out both fedex1.php) and google didn't add shipping charge. --> FREE Overnight :'( I got read timed out error. Do you know what is this "false"? <order-adjustment> <merchant-calculation-successful>false</merchant-calculation-successful> <merchant-codes /> <total-tax currency="USD">0.0</total-tax> <shipping> <merchant-calculated-shipping-adjustment> <shipping-name>FedEx: Priority (by 10:30AM, later for rural)</shipping-name> <shipping-cost currency="USD">0.0</shipping-cost> </merchant-calculated-shipping-adjustment> </shipping> <adjustment-total currency="USD">0.0</adjustment-total> </order-adjustment>
  15. blafrog

    Google Checkout Level 2

    How to I add ZONE set to USA? I can't find this option to set ZONE in admin site modules -> payment -> GoogleCheckout, did I miss something? My shipping_estimator.php <?php /* $Id: shipping_estimator.php,v 2.20 2004/07/01 15:16:07 eml Exp $ v2.00 by Acheron + installed Fix for v2.0 and all other versions Acheron 7 Jul 2004 (see Install.txt for partial version history) Copyright (c) 2004 Released under the GNU General Public License + installed Fix for v2.0 and all other versions Acheron 7 Jul 2004 */ ?> <!-- shipping_estimator //--> <script language="JavaScript" type="text/javascript"> function shipincart_submit(sid){ if(sid){ document.estimator.sid.value=sid; } document.estimator.submit(); return false; } </script> <?php // ** GOOGLE CHECKOUT ** // Checks if the Google Checkout payment module has been enabled and if so // includes gcheckout.php to add the Checkout button to the page if (defined('MODULE_PAYMENT_GOOGLECHECKOUT_STATUS') && MODULE_PAYMENT_GOOGLECHECKOUT_STATUS == 'True') { include_once('googlecheckout/gcheckout.php'); } // ** END GOOGLE CHECKOUT ** ?> <br /> <table width="100%" align="center"><tr valign="top"><td> <?php require(DIR_WS_LANGUAGES . $language . '/modules/' . FILENAME_SHIPPING_ESTIMATOR); if (($cart->count_contents() > 0)) { // shipping cost require('includes/classes/http_client.php'); // shipping in basket //if($cart->get_content_type() !== 'virtual') { if (tep_session_is_registered('customer_id')) { // user is logged in if (isset($HTTP_POST_VARS['address_id'])){ // user changed address $sendto = $HTTP_POST_VARS['address_id']; }elseif (tep_session_is_registered('cart_address_id')){ // user once changed address $sendto = $cart_address_id; }else{ // first timer $sendto = $customer_default_address_id; } // set session now $cart_address_id = $sendto; tep_session_register('cart_address_id'); // set shipping to null ! multipickup changes address to store address... $shipping=''; // include the order class (uses the sendto !) require(DIR_WS_CLASSES . 'order.php'); $order = new order; }else{ // user not logged in ! if (isset($HTTP_POST_VARS['country_id'])){ // country is selected $country_info = tep_get_countries($HTTP_POST_VARS['country_id'],true); $order->delivery = array('postcode' => $HTTP_POST_VARS['zip_code'], 'country' => array('id' => $HTTP_POST_VARS['country_id'], 'title' => $country_info['countries_name'], 'iso_code_2' => $country_info['countries_iso_code_2'], 'iso_code_3' => $country_info['countries_iso_code_3']), 'country_id' => $HTTP_POST_VARS['country_id'], //add state zone_id 'zone_id' => $HTTP_POST_VARS['state'], 'format_id' => tep_get_address_format_id($HTTP_POST_VARS['country_id'])); $cart_country_id = $HTTP_POST_VARS['country_id']; tep_session_register('cart_country_id'); //add state zone_id $cart_zone = $HTTP_POST_VARS['zone_id']; tep_session_register('cart_zone'); $cart_zip_code = $HTTP_POST_VARS['zip_code']; tep_session_register('cart_zip_code'); }elseif (tep_session_is_registered('cart_country_id')){ // session is available $country_info = tep_get_countries($cart_country_id,true); $order->delivery = array('postcode' => $cart_zip_code, 'country' => array('id' => $cart_country_id, 'title' => $country_info['countries_name'], 'iso_code_2' => $country_info['countries_iso_code_2'], 'iso_code_3' => $country_info['countries_iso_code_3']), 'country_id' => $cart_country_id, 'format_id' => tep_get_address_format_id($cart_country_id)); } else { // first timer $cart_country_id = STORE_COUNTRY; tep_session_register('cart_country_id'); $country_info = tep_get_countries(STORE_COUNTRY,true); tep_session_register('cart_zip_code'); $order->delivery = array(//'postcode' => '', 'country' => array('id' => STORE_COUNTRY, 'title' => $country_info['countries_name'], 'iso_code_2' => $country_info['countries_iso_code_2'], 'iso_code_3' => $country_info['countries_iso_code_3']), 'country_id' => STORE_COUNTRY, 'format_id' => tep_get_address_format_id($HTTP_POST_VARS['country_id'])); } // set the cost to be able to calculate free shipping $order->info = array('total' => $cart->show_total(), // TAX ???? 'currency' => $currency, 'currency_value'=> $currencies->currencies[$currency]['value']); } // weight and count needed for shipping $total_weight = $cart->show_weight(); $total_count = $cart->count_contents(); include_once(DIR_WS_CLASSES . 'shipping.php'); $shipping_modules = new shipping; $quotes = $shipping_modules->quote(); $order->info['subtotal'] = $cart->total; // set selections for displaying $selected_country = $order->delivery['country']['id']; $selected_address = $sendto; //} // eo shipping cost // check free shipping based on order total if ( defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING') && (MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING == 'true')) { switch (MODULE_ORDER_TOTAL_SHIPPING_DESTINATION) { case 'national': if ($order->delivery['country_id'] == STORE_COUNTRY) $pass = true; break; case 'international': if ($order->delivery['country_id'] != STORE_COUNTRY) $pass = true; break; case 'both': $pass = true; break; default: $pass = false; break; } $free_shipping = false; if ( ($pass == true) && ($order->info['total'] >= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER)) { $free_shipping = true; include(DIR_WS_LANGUAGES . $language . '/modules/order_total/ot_shipping.php'); } } else { $free_shipping = false; } // begin shipping cost if(!$free_shipping && $cart->get_content_type() !== 'virtual'){ if (tep_not_null($HTTP_POST_VARS['sid'])){ list($module, $method) = explode('_', $HTTP_POST_VARS['sid']); $cart_sid = $HTTP_POST_VARS['sid']; tep_session_register('cart_sid'); }elseif (tep_session_is_registered('cart_sid')){ list($module, $method) = explode('_', $cart_sid); }else{ $module=""; $method=""; } if (tep_not_null($module)){ $selected_quote = $shipping_modules->quote($method, $module); if($selected_quote[0]['error'] || !tep_not_null($selected_quote[0]['methods'][0]['cost'])){ $selected_shipping = $shipping_modules->cheapest(); $order->info['shipping_method'] = $selected_shipping['title']; $order->info['shipping_cost'] = $selected_shipping['cost']; $order->info['total']+= $selected_shipping['cost']; }else{ $order->info['shipping_method'] = $selected_quote[0]['module'].' ('.$selected_quote[0]['methods'][0]['title'].')'; $order->info['shipping_cost'] = $selected_quote[0]['methods'][0]['cost']; $order->info['total']+= $selected_quote[0]['methods'][0]['cost']; $selected_shipping['title'] = $order->info['shipping_method']; $selected_shipping['cost'] = $order->info['shipping_cost']; $selected_shipping['id'] = $selected_quote[0]['id'].'_'.$selected_quote[0]['methods'][0]['id']; } }else{ $selected_shipping = $shipping_modules->cheapest(); $order->info['shipping_method'] = $selected_shipping['title']; $order->info['shipping_cost'] = $selected_shipping['cost']; $order->info['total']+= $selected_shipping['cost']; } } // virtual products use free shipping if($cart->get_content_type() == 'virtual') { $order->info['shipping_method'] = CART_SHIPPING_METHOD_FREE_TEXT . ' ' . CART_SHIPPING_METHOD_ALL_DOWNLOADS; $order->info['shipping_cost'] = 0; } if($free_shipping) { $order->info['shipping_method'] = MODULE_ORDER_TOTAL_SHIPPING_TITLE; $order->info['shipping_cost'] = 0; } $shipping=$selected_shipping; // end of shipping cost // end free shipping based on order total $info_box_contents = array(); $info_box_contents[] = array('text' => '<div style="padding-bottom:6px;">' . CART_SHIPPING_OPTIONS . '</div>'); // azer for 2.20 cosmetic change new infoBoxHeading($info_box_contents, false, false); $ShipTxt= tep_draw_form('estimator', tep_href_link(FILENAME_SHOPPING_CART, '', 'NONSSL'), 'post'); //'onsubmit="return check_form();"' $ShipTxt.=tep_draw_hidden_field('sid', $selected_shipping['id']); $ShipTxt.=' <table width="100%" border="0"><tr><td>'; if(sizeof($quotes)) { if (tep_session_is_registered('customer_id')) { // logged in if (CARTSHIP_SHOWWT == 'true') { $showweight = ' (' . $total_weight . ' ' . CARTSHIP_WTUNIT . ')'; } else { $showweight = ''; } if(CARTSHIP_SHOWIC == 'true'){ //ishazer remover hard code for version 2.20 : $ShipTxt.='<tr><td class="main">' . ($total_count == 1 ? ' <b>Item:</b></td><td colspan="2" class="main">' : ' <b>' . CART_ITEM . '</b></td><td colspan="2" class="main">') . $total_count . $showweight . '</td></tr>'; $ShipTxt.='<tr><td class="main">' . ($total_count == 1 ? ' <b>' . CART_ITEM . '</b></td><td colspan="2" class="main">' : ' <b>' . CART_ITEM . '</b></td><td colspan="2" class="main">') . $total_count . $showweight . '</td></tr>'; } $addresses_query = tep_db_query("select address_book_id, entry_city as city, entry_postcode as postcode, entry_state as state, entry_zone_id as zone_id, entry_country_id as country_id from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . $customer_id . "'"); // only display addresses if more than 1 if (tep_db_num_rows($addresses_query) > 1){ while ($addresses = tep_db_fetch_array($addresses_query)) { $addresses_array[] = array('id' => $addresses['address_book_id'], 'text' => tep_address_format(tep_get_address_format_id($addresses['country_id']), $addresses, 0, ' ', ' ')); } $ShipTxt.='<tr><td colspan="3" class="main">' . CART_SHIPPING_METHOD_ADDRESS .' '. tep_draw_pull_down_menu('address_id', $addresses_array, $selected_address, 'onchange="return shipincart_submit(\'\');"').'</td></tr>'; } $ShipTxt.='<tr valign="top"><td class="main"><b>' . CART_SHIPPING_METHOD_TO .'</b> </td><td colspan="2" class="main">'. tep_address_format($order->delivery['format_id'], $order->delivery, 1, ' ', '<br />') . '</td></tr>'; } else { // not logged in $ShipTxt.=CART_SHIPPING_OPTIONS_LOGIN; if(CARTSHIP_SHOWIC == 'true'){ //azer for 2.20: $ShipTxt.='<tr><td class="main">' . ($total_count == 1 ? ' <b>Item:</b></td><td colspan="2" class="main">' : ' <b>Items:</b></td><td colspan="2" class="main">') . $total_count . $showweight . '</td></tr>'; $ShipTxt.='</td></tr><tr><td class="main">' . ($total_count == 1 ? ' <b>' . CART_ITEM . '</b></td><td colspan="2" class="main">' : ' <b>' . CART_ITEM . '</b></td><td colspan="2" class="main">') . $total_count . $showweight . '</td></tr>'; } if($cart->get_content_type() != 'virtual'){ if(CARTSHIP_SHOWCDD == 'true'){ $ShipTxt.='<tr><td colspan="3" class="main">' . ENTRY_COUNTRY .' '. tep_get_country_list('country_id', $selected_country,'style="width=200"').'<br />'; } //add state zone_id $state_array[] = array('id' => '', 'text' => 'Please Select'); $state_query = tep_db_query("select zone_name, zone_id from " . TABLE_ZONES . " where zone_country_id = '$selected_country' order by zone_country_id DESC, zone_name"); while ($state_values = tep_db_fetch_array($state_query)) { $state_array[] = array('id' => $state_values['zone_id'], 'text' => $state_values['zone_name']); } if(CARTSHIP_SHOWSDD == 'true'){ $ShipTxt.=ENTRY_STATE .' '. tep_draw_pull_down_menu('state',$state_array).'<br />'; } if(CARTSHIP_SHOWZDD == 'true'){ $ShipTxt.=ENTRY_POST_CODE .' '. tep_draw_input_field('zip_code', $selected_zip, 'size="5"'); } // $ShipTxt.=' <a href="_" onclick="return shipincart_submit(\'\');">'.CART_SHIPPING_METHOD_RECALCULATE.'</a></td></tr>'; if(CARTSHIP_SHOWUB == 'true'){ $ShipTxt.='</td><td> <a href="_" onclick="return shipincart_submit(\'\');">'. tep_image_button('button_update.gif', IMAGE_BUTTON_UPDATE_CART) . ' </a></td></tr>'; } } } if($cart->get_content_type() == 'virtual'){ // virtual product-download //$ShipTxt.='<tr><td colspan="3" class="main">'.tep_draw_separator().'</td></tr>'; $ShipTxt.='<tr><td class="main" colspan="3"> </td></tr><tr><td class="main" colspan="3"><i>' . CART_SHIPPING_METHOD_FREE_TEXT . ' ' . CART_SHIPPING_METHOD_ALL_DOWNLOADS . '</i></td></tr>'; }elseif ($free_shipping==1) { // order $total is free //$ShipTxt.='<tr><td colspan="3" class="main">'.tep_draw_separator().'</td></tr>'; $ShipTxt.='<tr><td class="main" colspan="3"> </td></tr><tr><td class="main" colspan="3"><i>' . sprintf(FREE_SHIPPING_DESCRIPTION, $currencies->format(MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER)) . '</i></td><td> </td></tr>'; }else{ // shipping display if ( empty($quotes[0]['error']) || (!empty($quotes[1])&∅($quotes[1]['error'])) ) { $ShipTxt.='<tr><td colspan="3" class="main"> </td></tr><tr><td class="main"><b>' . CART_SHIPPING_CARRIER_TEXT . '</b></td><td class="main" align="left"><b>' . CART_SHIPPING_METHOD_TEXT . '</b></td><td class="main" align="right"><b>' . CART_SHIPPING_METHOD_RATES . '</b></td></tr>'; $ShipTxt.='<tr><td colspan="3" class="main">'.tep_draw_separator().'</td></tr>'; // added to Display Message when No Shipping Options are Available $at_least_one_quote_printed = false; } else { $ShipTxt.='<tr><td colspan="3" class="main"> </td></tr>'; } for ($i=0, $n=sizeof($quotes); $i<$n; $i++) { if(sizeof($quotes[$i]['methods'])==1){ // simple shipping method $thisquoteid = $quotes[$i]['id'].'_'.$quotes[$i]['methods'][0]['id']; $ShipTxt.= '<tr class="'.$extra.'">'; $ShipTxt.='<td class="main">'.$quotes[$i]['icon'].' </td>'; if($quotes[$i]['error']){ $ShipTxt.='<td colspan="2" class="main">'.$quotes[$i]['module'].' '; $ShipTxt.= '('.$quotes[$i]['error'].')</td></tr>'; }else{ if($selected_shipping['id'] == $thisquoteid){ // commented for v2.10 : $ShipTxt.='<td class="main"><a title="Select this method" href="_" onclick="return shipincart_submit(\''.$thisquoteid.'\');"><b>'.$quotes[$i]['module'].' '; $ShipTxt.='<td class="main"><a title="' . CART_SELECT_THIS_METHOD .'" href="_" onclick="return shipincart_submit(\''.$thisquoteid.'\');"><b>'.$quotes[$i]['module'].' '; $ShipTxt.= '('.$quotes[$i]['methods'][0]['title'].')</b></a> </td><td align="right" class="main"><b>'.$currencies->format(tep_add_tax($quotes[$i]['methods'][0]['cost'], $quotes[$i]['tax'])).'</b></td></tr>'; }else{ // commented for v2.10 : $ShipTxt.='<td class="main"><a title="Select this method" href="_" onclick="return shipincart_submit(\''.$thisquoteid.'\');">'.$quotes[$i]['module'].' '; $ShipTxt.='<td class="main"><a title="' . CART_SELECT_THIS_METHOD .'" href="_" onclick="return shipincart_submit(\''.$thisquoteid.'\');">'.$quotes[$i]['module'].' '; $ShipTxt.= '('.$quotes[$i]['methods'][0]['title'].')</a> </td><td align="right" class="main">'.$currencies->format(tep_add_tax($quotes[$i]['methods'][0]['cost'], $quotes[$i]['tax'])).'</td></tr>'; } } // added to Display Message when No Shipping Options are Available $at_least_one_quote_printed = true; } elseif(sizeof($quotes[$i]['methods'])>1) { // shipping method with sub methods (multipickup) for ($j=0, $n2=sizeof($quotes[$i]['methods']); $j<$n2; $j++) { $thisquoteid = $quotes[$i]['id'].'_'.$quotes[$i]['methods'][$j]['id']; $ShipTxt.= '<tr class="'.$extra.'">'; $ShipTxt.='<td class="main">'.$quotes[$i]['icon'].' </td>'; if($quotes[$i]['error']){ $ShipTxt.='<td colspan="2" class="main">'.$quotes[$i]['module'].' '; $ShipTxt.= '('.$quotes[$i]['error'].')</td></tr>'; }else{ if($selected_shipping['id'] == $thisquoteid){ // commented for v2.10 : $ShipTxt.='<td class="main"><a title="Select this method" href="_" onclick="return shipincart_submit(\''.$thisquoteid.'\');"><b>'.$quotes[$i]['module'].' '; $ShipTxt.='<td class="main"><a title="' . CART_SELECT_THIS_METHOD .'" href="_" onclick="return shipincart_submit(\''.$thisquoteid.'\');"><b>'.$quotes[$i]['module'].' '; $ShipTxt.= '('.$quotes[$i]['methods'][$j]['title'].')</b></a> </td><td align="right" class="main"><b>'.$currencies->format(tep_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax'])).'</b></td><td class="main">'.tep_image(DIR_WS_ICONS . 'selected.gif', 'Selected').'</td></tr>'; }else{ // commented for v2.10 : $ShipTxt.='<td class="main"><a title="Select this method" href="_" onclick="return shipincart_submit(\''.$thisquoteid.'\');">'.$quotes[$i]['module'].' '; $ShipTxt.='<td class="main"><a title="' . CART_SELECT_THIS_METHOD .'" href="_" onclick="return shipincart_submit(\''.$thisquoteid.'\');">'.$quotes[$i]['module'].' '; $ShipTxt.= '('.$quotes[$i]['methods'][$j]['title'].')</a> </td><td align="right" class="main">'.$currencies->format(tep_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax'])).'</td><td class="main"> </td></tr>'; } } } // added to Display Message when No Shipping Options are Available $at_least_one_quote_printed = true; } } // added to Display Message when No Shipping Options are Available if (!$at_least_one_quote_printed) { $ShipTxt.= '<tr><td colspan="4" class="main" align="center">'.SHIPPING_ESTIMATOR_NO_OPTIONS_MESSAGE.'</td></tr>'; } } } $ShipTxt.= '</table></form>'; $info_box_contents = array(); $info_box_contents[] = array('text' => $ShipTxt); new infoBox($info_box_contents); if (CARTSHIP_SHOWOT == 'true'){ // BOF get taxes if not logged in if (!tep_session_is_registered('customer_id')){ $products = $cart->get_products(); for ($i=0, $n=sizeof($products); $i<$n; $i++) { $products_tax = tep_get_tax_rate($products[$i]['tax_class_id'], $order->delivery['country_id'],$order->delivery['zone_id']); $products_tax_description = tep_get_tax_description($products[$i]['tax_class_id'], $order->delivery['country_id'], $order->delivery['zone_id']); if (DISPLAY_PRICE_WITH_TAX == 'true') { //Modified by Strider 42 to correct the tax calculation when a customer is not logged in // $tax_val = ($products[$i]['final_price']-(($products[$i]['final_price']*100)/(100+$products_tax)))*$products[$i]['quantity']; $tax_val = (($products[$i]['final_price']/100)*$products_tax)*$products[$i]['quantity']; } else { $tax_val = (($products[$i]['final_price']*$products_tax)/100)*$products[$i]['quantity']; } $order->info['tax'] += $tax_val; $order->info['tax_groups']["$products_tax_description"] += $tax_val; // Modified by Strider 42 to correct the order total figure when shop displays prices with tax if (DISPLAY_PRICE_WITH_TAX == 'true') { $order->info['total']; } else { $order->info['total']+=$tax_val; } } } // EOF get taxes if not logged in (seems like less code than in order class) require_once(DIR_WS_CLASSES . 'order_total.php'); $order_total_modules = new order_total; //echo '</td><td align="right">'; // order total code $order_total_modules->process(); $info_box_contents = array(); $info_box_contents[] = array('text' => '<div style="padding-bottom:6px;">' . CART_OT . '</div>'); //azer version 2.20 new infoBoxHeading($info_box_contents, false, false); $otTxt='<table align="right">'; $otTxt.=$order_total_modules->output().'</table>'; $info_box_contents = array(); $info_box_contents[] = array('text' => $otTxt); new infoBox($info_box_contents); } } // Use only when cart_contents > 0 ?> </td></tr></table>
  16. blafrog

    Google Checkout Level 2

    I checked the acceptance logo issues at google thread at http://groups.google.com/group/google-chec...377dd4c7ad9115f, it hasn't resolved. My ship in cart works for both logged and not logged in user. I use Ship In Cart v2.2.1. Since we only ship to US, but we received many Google Checkout orders from other countries. Do you know how to block this and if the store (our site) didn't set up international shipping, Google won't add shipping charge. Am I right?
  17. blafrog

    Google Checkout Level 2

    Yes, when you click on the acceptance mark in firefox, pop up doesn't seem to work right. I check other sites, they don't have problem weird pop up. Can you check --> http://www.k-netsystems.net. I just put the same code, don't know what causing it. Not sure if I can post my site here, if not please remove it. Thank you.
  18. blafrog

    Google Checkout Level 2

    Nick, do you have or use firefox, cause I've problem with the Google Checkout Acceptance Mark when clicking it? But IE7 works.
  19. blafrog

    Google Checkout Level 2

    Quotes worked when users not logged in. Everything seems to work now. Where's the code for the GC checkout button? Want to change the size. =)
  20. blafrog

    Google Checkout Level 2

    Finally got it to work, I took your fix for class order_total, changed it to include_once. It reminded me redeclare errors. So I changed modules/shipping_estimator.php. include(DIR_WS_CLASSES . 'shipping.php'); to include_once(DIR_WS_CLASSES . 'shipping.php'); require(DIR_WS_CLASSES . 'order_total.php'); to require_once(DIR_WS_CLASSES . 'order_total.php'); I also changed classes/shipping.php for ($i=0, $n=sizeof($include_modules); $i<$n; $i++) { include(DIR_WS_LANGUAGES . $language . '/modules/shipping/' . $include_modules[$i]['file']); include(DIR_WS_MODULES . 'shipping/' . $include_modules[$i]['file']); $GLOBALS[$include_modules[$i]['class']] = new $include_modules[$i]['class']; } to for ($i=0, $n=sizeof($include_modules); $i<$n; $i++) { include_once(DIR_WS_LANGUAGES . $language . '/modules/shipping/' . $include_modules[$i]['file']); include_once(DIR_WS_MODULES . 'shipping/' . $include_modules[$i]['file']); $GLOBALS[$include_modules[$i]['class']] = new $include_modules[$i]['class']; } Thank you so much for your help. Hope this would help someone too. PS, I didn't remove the code "Alias function for Store configuration values in the Administration Tool"
  21. blafrog

    Google Checkout Level 2

    Im sorry, can't seem to get it. Where do I find the codes to remove? If login, comes up this error. cannot redeclare class order_total Can you send me shopping_cart.php & modules/shipping_estimator.php please? I see your codes was inserted difference place. <?php if (CARTSHIP_ONOFF == 'Enabled') { require(DIR_WS_MODULES . 'shipping_estimator.php'); } else {}; ?> I have to put the GC codes into shipping_estimator.php in order to show button. Maybe two closing </form> causing problem.
  22. blafrog

    Google Checkout Level 2

    admin/includes/functions/general.php <?php /* $Id: general.php,v 1.160 2003/07/12 08:32:47 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2003 osCommerce Released under the GNU General Public License */ //// MVS start // Sets the Vendor Send Order Emails function tep_set_vendor_email($vendors_id, $vendors_send_email) { if ($vendors_send_email == '1') { return tep_db_query("update " . TABLE_VENDORS . " set vendors_send_email = '1' where vendors_id = '" . (int)$vendors_id . "'"); } elseif ($vendors_send_email == '0') { return tep_db_query("update " . TABLE_VENDORS . " set vendors_send_email = '0' where vendors_id = '" . (int)$vendors_id . "'"); } else { return -1; } } //MVS mod start // All new code function tep_get_vendors_info($product_id, $vendors_id, $language_id = 0) { global $languages_id; if ($language_id == 0) $language_id = $languages_id; $product_query = tep_db_query("select * from " . TABLE_VENDORS . " where " . TABLE_VENDORS . " .vendors_id = " . TABLE_PRODUCTS . " .vendors_id and products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'"); $product = tep_db_fetch_array($product_query); return $product['vendors_name']; } function tep_get_vendors_prod_comments($product_id) { $product_query = tep_db_query("select vendors_prod_comments from " . TABLE_PRODUCTS . " where products_id = '" . (int)$product_id . "'"); $product = tep_db_fetch_array($product_query); return $product['vendors_prod_comments']; } function tep_get_vendor_url($vendor_id, $language_id) { $vendor_query = tep_db_query("select vendors_url from " . TABLE_VENDORS_INFO . " where vendors_id = '" . (int)$vendor_id . "' and languages_id = '" . (int)$language_id . "'"); $vendor = tep_db_fetch_array($vendor_query); return $vendor['vendors_url']; } //works to send copy of EVERY EMAIL SENT FROM STORE uncomment to use /* if (SEND_EXTRA_ORDER_EMAILS_TO != '') { $message->send('', SEND_EXTRA_ORDER_EMAILS_TO, $from_email_name, $from_email_address, $email_subject); } */ // Alias function for array of configuration values in the Administration Tool function tep_cfg_select_multioption($select_array, $key_value, $key = '') { for ($i=0; $i<sizeof($select_array); $i++) { $name = (($key) ? 'configuration[' . $key . '][]' : 'configuration_value'); $string .= '<br><input type="checkbox" name="' . $name . '" value="' . $select_array[$i] . '"'; $key_values = explode( ", ", $key_value); if ( in_array($select_array[$i], $key_values) ) $string .= 'CHECKED'; $string .= '> ' . $select_array[$i]; } return $string; } //MVS End //Admin begin //Mett-added $login_id //// //Check login and file access function tep_admin_check_login() { global $PHP_SELF, $login_groups_id, $login_id; if (!tep_session_is_registered('login_id')) { tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL')); } else { $filename = basename( $PHP_SELF ); if ($filename != FILENAME_DEFAULT && $filename != FILENAME_FORBIDEN && $filename != FILENAME_LOGOFF && $filename != FILENAME_ADMIN_ACCOUNT && $filename != FILENAME_POPUP_IMAGE && $filename != 'packingslip.php' && $filename != 'invoice.php') { $db_file_query = tep_db_query("select admin_files_name from " . TABLE_ADMIN_FILES . " where FIND_IN_SET( '" . $login_groups_id . "', admin_groups_id) or FIND_IN_SET( '" . $login_id . "', admin_id) and admin_files_name = '" . $filename . "'"); if (!tep_db_num_rows($db_file_query)) { tep_redirect(tep_href_link(FILENAME_FORBIDEN)); } } } } //// //Return 'true' or 'false' value to display boxes and files in index.php and column_left.php function tep_admin_check_boxes($filename, $boxes='') { global $login_groups_id, $login_id; $is_boxes = 1; if ($boxes == 'sub_boxes') { $is_boxes = 0; } $dbquery = tep_db_query("select admin_files_id from " . TABLE_ADMIN_FILES . " where FIND_IN_SET( '" . $login_groups_id . "', admin_groups_id) or FIND_IN_SET( '" . $login_id . "', admin_id) and admin_files_is_boxes = '" . $is_boxes . "' and admin_files_name = '" . $filename . "'"); $return_value = false; if (tep_db_num_rows($dbquery)) { $return_value = true; } return $return_value; } //// //Return files stored in box that can be accessed by user function tep_admin_files_boxes($filename, $sub_box_name) { global $login_groups_id, $login_id; $sub_boxes = ''; $dbquery = tep_db_query("select admin_files_name from " . TABLE_ADMIN_FILES . " where FIND_IN_SET( '" . $login_groups_id . "', admin_groups_id) or FIND_IN_SET( '" . $login_id . "', admin_id) and admin_files_is_boxes = '0' and admin_files_name = '" . $filename . "'"); if (tep_db_num_rows($dbquery)) { $sub_boxes = '<a href="' . tep_href_link($filename) . '" class="menuBoxContentLink">' . $sub_box_name . '</a><br>'; } return $sub_boxes; } //// //Get selected file for index.php function tep_selected_file($filename) { global $login_groups_id, $login_id; $randomize = FILENAME_ADMIN_ACCOUNT; $dbquery = tep_db_query("select admin_files_id as boxes_id from " . TABLE_ADMIN_FILES . " where FIND_IN_SET( '" . $login_groups_id . "', admin_groups_id) or FIND_IN_SET( '" . $login_id . "', admin_id) and admin_files_is_boxes = '1' and admin_files_name = '" . $filename . "'"); if (tep_db_num_rows($dbquery)) { $boxes_id = tep_db_fetch_array($dbquery); $randomize_query = tep_db_query("select admin_files_name from " . TABLE_ADMIN_FILES . " where FIND_IN_SET( '" . $login_groups_id . "', admin_groups_id) or FIND_IN_SET( '" . $login_id . "', admin_id) and admin_files_is_boxes = '0' and admin_files_to_boxes = '" . $boxes_id['boxes_id'] . "'"); if (tep_db_num_rows($randomize_query)) { $file_selected = tep_db_fetch_array($randomize_query); $randomize = $file_selected['admin_files_name']; } } return $randomize; } //Admin end //// // Redirect to another page or site function tep_redirect($url) { global $logger; if ( (strstr($url, "\n") != false) || (strstr($url, "\r") != false) ) { tep_redirect(tep_href_link(FILENAME_DEFAULT, '', 'NONSSL', false)); } header('Location: ' . $url); if (STORE_PAGE_PARSE_TIME == 'true') { if (!is_object($logger)) $logger = new logger; $logger->timer_stop(); } exit; } //// // Parse the data used in the html tags to ensure the tags will not break function tep_parse_input_field_data($data, $parse) { return strtr(trim($data), $parse); } function tep_output_string($string, $translate = false, $protected = false) { if ($protected == true) { return htmlspecialchars($string); } else { if ($translate == false) { return tep_parse_input_field_data($string, array('"' => '"')); } else { return tep_parse_input_field_data($string, $translate); } } } function tep_output_string_protected($string) { return tep_output_string($string, false, true); } function tep_sanitize_string($string) { $string = ereg_replace(' +', ' ', $string); return preg_replace("/[<>]/", '_', $string); } function tep_customers_name($customers_id) { $customers = tep_db_query("select customers_firstname, customers_lastname from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$customers_id . "'"); $customers_values = tep_db_fetch_array($customers); return $customers_values['customers_firstname'] . ' ' . $customers_values['customers_lastname']; } function tep_get_path($current_category_id = '') { global $cPath_array; if ($current_category_id == '') { $cPath_new = implode('_', $cPath_array); } else { if (sizeof($cPath_array) == 0) { $cPath_new = $current_category_id; } else { $cPath_new = ''; $last_category_query = tep_db_query("select parent_id from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$cPath_array[(sizeof($cPath_array)-1)] . "'"); $last_category = tep_db_fetch_array($last_category_query); $current_category_query = tep_db_query("select parent_id from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'"); $current_category = tep_db_fetch_array($current_category_query); if ($last_category['parent_id'] == $current_category['parent_id']) { for ($i = 0, $n = sizeof($cPath_array) - 1; $i < $n; $i++) { $cPath_new .= '_' . $cPath_array[$i]; } } else { for ($i = 0, $n = sizeof($cPath_array); $i < $n; $i++) { $cPath_new .= '_' . $cPath_array[$i]; } } $cPath_new .= '_' . $current_category_id; if (substr($cPath_new, 0, 1) == '_') { $cPath_new = substr($cPath_new, 1); } } } return 'cPath=' . $cPath_new; } function tep_get_all_get_params($exclude_array = '') { global $HTTP_GET_VARS; if ($exclude_array == '') $exclude_array = array(); $get_url = ''; reset($HTTP_GET_VARS); while (list($key, $value) = each($HTTP_GET_VARS)) { if (($key != tep_session_name()) && ($key != 'error') && (!in_array($key, $exclude_array))) $get_url .= $key . '=' . $value . '&'; } return $get_url; } function tep_date_long($raw_date) { if ( ($raw_date == '0000-00-00 00:00:00') || ($raw_date == '') ) return false; $year = (int)substr($raw_date, 0, 4); $month = (int)substr($raw_date, 5, 2); $day = (int)substr($raw_date, 8, 2); $hour = (int)substr($raw_date, 11, 2); $minute = (int)substr($raw_date, 14, 2); $second = (int)substr($raw_date, 17, 2); return strftime(DATE_FORMAT_LONG, mktime($hour, $minute, $second, $month, $day, $year)); } //// // Output a raw date string in the selected locale date format // $raw_date needs to be in this format: YYYY-MM-DD HH:MM:SS // NOTE: Includes a workaround for dates before 01/01/1970 that fail on windows servers function tep_date_short($raw_date) { if ( ($raw_date == '0000-00-00 00:00:00') || ($raw_date == '') ) return false; $year = substr($raw_date, 0, 4); $month = (int)substr($raw_date, 5, 2); $day = (int)substr($raw_date, 8, 2); $hour = (int)substr($raw_date, 11, 2); $minute = (int)substr($raw_date, 14, 2); $second = (int)substr($raw_date, 17, 2); if (@date('Y', mktime($hour, $minute, $second, $month, $day, $year)) == $year) { return date(DATE_FORMAT, mktime($hour, $minute, $second, $month, $day, $year)); } else { return ereg_replace('2037' . '$', $year, date(DATE_FORMAT, mktime($hour, $minute, $second, $month, $day, 2037))); } } function tep_datetime_short($raw_datetime) { if ( ($raw_datetime == '0000-00-00 00:00:00') || ($raw_datetime == '') ) return false; $year = (int)substr($raw_datetime, 0, 4); $month = (int)substr($raw_datetime, 5, 2); $day = (int)substr($raw_datetime, 8, 2); $hour = (int)substr($raw_datetime, 11, 2); $minute = (int)substr($raw_datetime, 14, 2); $second = (int)substr($raw_datetime, 17, 2); return strftime(DATE_TIME_FORMAT, mktime($hour, $minute, $second, $month, $day, $year)); } function tep_get_category_tree($parent_id = '0', $spacing = '', $exclude = '', $category_tree_array = '', $include_itself = false) { global $languages_id; if (!is_array($category_tree_array)) $category_tree_array = array(); if ( (sizeof($category_tree_array) < 1) && ($exclude != '0') ) $category_tree_array[] = array('id' => '0', 'text' => TEXT_TOP); if ($include_itself) { $category_query = tep_db_query("select cd.categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " cd where cd.language_id = '" . (int)$languages_id . "' and cd.categories_id = '" . (int)$parent_id . "'"); $category = tep_db_fetch_array($category_query); $category_tree_array[] = array('id' => $parent_id, 'text' => $category['categories_name']); } $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' and c.parent_id = '" . (int)$parent_id . "' order by c.sort_order, cd.categories_name"); while ($categories = tep_db_fetch_array($categories_query)) { if ($exclude != $categories['categories_id']) $category_tree_array[] = array('id' => $categories['categories_id'], 'text' => $spacing . $categories['categories_name']); $category_tree_array = tep_get_category_tree($categories['categories_id'], $spacing . ' ', $exclude, $category_tree_array); } return $category_tree_array; } function tep_draw_products_pull_down($name, $parameters = '', $exclude = '') { global $currencies, $languages_id; if ($exclude == '') { $exclude = array(); } $select_string = '<select name="' . $name . '"'; if ($parameters) { $select_string .= ' ' . $parameters; } $select_string .= '>'; $products_query = tep_db_query("select p.products_id, pd.products_name, p.products_price from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' order by products_name"); while ($products = tep_db_fetch_array($products_query)) { if (!in_array($products['products_id'], $exclude)) { $select_string .= '<option value="' . $products['products_id'] . '">' . $products['products_name'] . ' (' . $currencies->format($products['products_price']) . ')</option>'; } } $select_string .= '</select>'; return $select_string; } function tep_options_name($options_id) { global $languages_id; $options = tep_db_query("select products_options_name from " . TABLE_PRODUCTS_OPTIONS . " where products_options_id = '" . (int)$options_id . "' and language_id = '" . (int)$languages_id . "'"); $options_values = tep_db_fetch_array($options); return $options_values['products_options_name']; } function tep_values_name($values_id) { global $languages_id; $values = tep_db_query("select products_options_values_name from " . TABLE_PRODUCTS_OPTIONS_VALUES . " where products_options_values_id = '" . (int)$values_id . "' and language_id = '" . (int)$languages_id . "'"); $values_values = tep_db_fetch_array($values); return $values_values['products_options_values_name']; } function tep_info_image($image, $alt, $width = '', $height = '') { if (tep_not_null($image) && (file_exists(DIR_FS_CATALOG_IMAGES . $image)) ) { $image = tep_image(DIR_WS_CATALOG_IMAGES . $image, $alt, $width, $height); } else { $image = TEXT_IMAGE_NONEXISTENT; } return $image; } function tep_break_string($string, $len, $break_char = '-') { $l = 0; $output = ''; for ($i=0, $n=strlen($string); $i<$n; $i++) { $char = substr($string, $i, 1); if ($char != ' ') { $l++; } else { $l = 0; } if ($l > $len) { $l = 1; $output .= $break_char; } $output .= $char; } return $output; } function tep_get_country_name($country_id) { $country_query = tep_db_query("select countries_name from " . TABLE_COUNTRIES . " where countries_id = '" . (int)$country_id . "'"); if (!tep_db_num_rows($country_query)) { return $country_id; } else { $country = tep_db_fetch_array($country_query); return $country['countries_name']; } } function tep_get_zone_name($country_id, $zone_id, $default_zone) { $zone_query = tep_db_query("select zone_name from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country_id . "' and zone_id = '" . (int)$zone_id . "'"); if (tep_db_num_rows($zone_query)) { $zone = tep_db_fetch_array($zone_query); return $zone['zone_name']; } else { return $default_zone; } } function tep_not_null($value) { if (is_array($value)) { if (sizeof($value) > 0) { return true; } else { return false; } } else { if ( (is_string($value) || is_int($value)) && ($value != '') && ($value != 'NULL') && (strlen(trim($value)) > 0)) { return true; } else { return false; } } } function tep_browser_detect($component) { global $HTTP_USER_AGENT; return stristr($HTTP_USER_AGENT, $component); } function tep_tax_classes_pull_down($parameters, $selected = '') { $select_string = '<select ' . $parameters . '>'; $classes_query = tep_db_query("select tax_class_id, tax_class_title from " . TABLE_TAX_CLASS . " order by tax_class_title"); while ($classes = tep_db_fetch_array($classes_query)) { $select_string .= '<option value="' . $classes['tax_class_id'] . '"'; if ($selected == $classes['tax_class_id']) $select_string .= ' SELECTED'; $select_string .= '>' . $classes['tax_class_title'] . '</option>'; } $select_string .= '</select>'; return $select_string; } function tep_geo_zones_pull_down($parameters, $selected = '') { $select_string = '<select ' . $parameters . '>'; $zones_query = tep_db_query("select geo_zone_id, geo_zone_name from " . TABLE_GEO_ZONES . " order by geo_zone_name"); while ($zones = tep_db_fetch_array($zones_query)) { $select_string .= '<option value="' . $zones['geo_zone_id'] . '"'; if ($selected == $zones['geo_zone_id']) $select_string .= ' SELECTED'; $select_string .= '>' . $zones['geo_zone_name'] . '</option>'; } $select_string .= '</select>'; return $select_string; } function tep_get_geo_zone_name($geo_zone_id) { $zones_query = tep_db_query("select geo_zone_name from " . TABLE_GEO_ZONES . " where geo_zone_id = '" . (int)$geo_zone_id . "'"); if (!tep_db_num_rows($zones_query)) { $geo_zone_name = $geo_zone_id; } else { $zones = tep_db_fetch_array($zones_query); $geo_zone_name = $zones['geo_zone_name']; } return $geo_zone_name; } function tep_address_format($address_format_id, $address, $html, $boln, $eoln) { $address_format_query = tep_db_query("select address_format as format from " . TABLE_ADDRESS_FORMAT . " where address_format_id = '" . (int)$address_format_id . "'"); $address_format = tep_db_fetch_array($address_format_query); $company = tep_output_string_protected($address['company']); if (isset($address['firstname']) && tep_not_null($address['firstname'])) { $firstname = tep_output_string_protected($address['firstname']); $lastname = tep_output_string_protected($address['lastname']); } elseif (isset($address['name']) && tep_not_null($address['name'])) { $firstname = tep_output_string_protected($address['name']); $lastname = ''; } else { $firstname = ''; $lastname = ''; } $street = tep_output_string_protected($address['street_address']); $suburb = tep_output_string_protected($address['suburb']); $city = tep_output_string_protected($address['city']); $state = tep_output_string_protected($address['state']); if (isset($address['country_id']) && tep_not_null($address['country_id'])) { $country = tep_get_country_name($address['country_id']); if (isset($address['zone_id']) && tep_not_null($address['zone_id'])) { $state = tep_get_zone_code($address['country_id'], $address['zone_id'], $state); } } elseif (isset($address['country']) && tep_not_null($address['country'])) { $country = tep_output_string_protected($address['country']); } else { $country = ''; } $postcode = tep_output_string_protected($address['postcode']); $zip = $postcode; if ($html) { // HTML Mode $HR = '<hr>'; $hr = '<hr>'; if ( ($boln == '') && ($eoln == "\n") ) { // Values not specified, use rational defaults $CR = '<br>'; $cr = '<br>'; $eoln = $cr; } else { // Use values supplied $CR = $eoln . $boln; $cr = $CR; } } else { // Text Mode $CR = $eoln; $cr = $CR; $HR = '----------------------------------------'; $hr = '----------------------------------------'; } $statecomma = ''; $streets = $street; if ($suburb != '') $streets = $street . $cr . $suburb; if ($country == '') $country = tep_output_string_protected($address['country']); if ($state != '') $statecomma = $state . ', '; $fmt = $address_format['format']; eval("\$address = \"$fmt\";"); if ( (ACCOUNT_COMPANY == 'true') && (tep_not_null($company)) ) { $address = $company . $cr . $address; } return $address; } //////////////////////////////////////////////////////////////////////////////////////////////// // // Function : tep_get_zone_code // // Arguments : country country code string // zone state/province zone_id // def_state default string if zone==0 // // Return : state_prov_code state/province code // // Description : Function to retrieve the state/province code (as in FL for Florida etc) // //////////////////////////////////////////////////////////////////////////////////////////////// function tep_get_zone_code($country, $zone, $def_state) { $state_prov_query = tep_db_query("select zone_code from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "' and zone_id = '" . (int)$zone . "'"); if (!tep_db_num_rows($state_prov_query)) { $state_prov_code = $def_state; } else { $state_prov_values = tep_db_fetch_array($state_prov_query); $state_prov_code = $state_prov_values['zone_code']; } return $state_prov_code; } function tep_get_uprid($prid, $params) { $uprid = $prid; if ( (is_array($params)) && (!strstr($prid, '{')) ) { while (list($option, $value) = each($params)) { $uprid = $uprid . '{' . $option . '}' . $value; } } return $uprid; } function tep_get_prid($uprid) { $pieces = explode('{', $uprid); return $pieces[0]; } function tep_get_languages() { $languages_query = tep_db_query("select languages_id, name, code, image, directory from " . TABLE_LANGUAGES . " order by sort_order"); while ($languages = tep_db_fetch_array($languages_query)) { $languages_array[] = array('id' => $languages['languages_id'], 'name' => $languages['name'], 'code' => $languages['code'], 'image' => $languages['image'], 'directory' => $languages['directory']); } return $languages_array; } function tep_get_category_name($category_id, $language_id) { $category_query = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$category_id . "' and language_id = '" . (int)$language_id . "'"); $category = tep_db_fetch_array($category_query); return $category['categories_name']; } function tep_get_orders_status_name($orders_status_id, $language_id = '') { global $languages_id; if (!$language_id) $language_id = $languages_id; $orders_status_query = tep_db_query("select orders_status_name from " . TABLE_ORDERS_STATUS . " where orders_status_id = '" . (int)$orders_status_id . "' and language_id = '" . (int)$language_id . "'"); $orders_status = tep_db_fetch_array($orders_status_query); return $orders_status['orders_status_name']; } function tep_get_orders_status() { global $languages_id; $orders_status_array = array(); $orders_status_query = tep_db_query("select orders_status_id, orders_status_name from " . TABLE_ORDERS_STATUS . " where language_id = '" . (int)$languages_id . "' order by orders_status_id"); while ($orders_status = tep_db_fetch_array($orders_status_query)) { $orders_status_array[] = array('id' => $orders_status['orders_status_id'], 'text' => $orders_status['orders_status_name']); } return $orders_status_array; } function tep_get_products_name($product_id, $language_id = 0) { global $languages_id; if ($language_id == 0) $language_id = $languages_id; $product_query = tep_db_query("select products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'"); $product = tep_db_fetch_array($product_query); return $product['products_name']; } function tep_get_products_description($product_id, $language_id) { $product_query = tep_db_query("select products_description from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'"); $product = tep_db_fetch_array($product_query); return $product['products_description']; } // Product Tabs 2.0 Start function tep_get_products_spec($product_id, $language_id) { $product_query = tep_db_query("select products_spec from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'"); $product = tep_db_fetch_array($product_query); return $product['products_spec']; } function tep_get_products_musthave($product_id, $language_id) { $product_query = tep_db_query("select products_musthave from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'"); $product = tep_db_fetch_array($product_query); return $product['products_musthave']; } function tep_get_products_extraimage($product_id, $language_id) { $product_query = tep_db_query("select products_extraimage from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'"); $product = tep_db_fetch_array($product_query); return $product['products_extraimage']; } function tep_get_products_manual($product_id, $language_id) { $product_query = tep_db_query("select products_manual from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'"); $product = tep_db_fetch_array($product_query); return $product['products_manual']; } function tep_get_products_extra1($product_id, $language_id) { $product_query = tep_db_query("select products_extra1 from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'"); $product = tep_db_fetch_array($product_query); return $product['products_extra1']; } function tep_get_products_moreinfo($product_id, $language_id) { $product_query = tep_db_query("select products_moreinfo from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'"); $product = tep_db_fetch_array($product_query); return $product['products_moreinfo']; } // Product Tabs 2.0 End function tep_get_products_url($product_id, $language_id) { $product_query = tep_db_query("select products_url from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'"); $product = tep_db_fetch_array($product_query); return $product['products_url']; } //// // Return the manufacturers URL in the needed language // TABLES: manufacturers_info function tep_get_manufacturer_url($manufacturer_id, $language_id) { $manufacturer_query = tep_db_query("select manufacturers_url from " . TABLE_MANUFACTURERS_INFO . " where manufacturers_id = '" . (int)$manufacturer_id . "' and languages_id = '" . (int)$language_id . "'"); $manufacturer = tep_db_fetch_array($manufacturer_query); return $manufacturer['manufacturers_url']; } //// // Wrapper for class_exists() function // This function is not available in all PHP versions so we test it before using it. function tep_class_exists($class_name) { if (function_exists('class_exists')) { return class_exists($class_name); } else { return true; } } //// // Count how many products exist in a category // TABLES: products, products_to_categories, categories function tep_products_in_category_count($categories_id, $include_deactivated = false) { $products_count = 0; if ($include_deactivated) { $products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$categories_id . "'"); } else { $products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = p2c.products_id and p.products_status = '1' and p2c.categories_id = '" . (int)$categories_id . "'"); } $products = tep_db_fetch_array($products_query); $products_count += $products['total']; $childs_query = tep_db_query("select categories_id from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$categories_id . "'"); if (tep_db_num_rows($childs_query)) { while ($childs = tep_db_fetch_array($childs_query)) { $products_count += tep_products_in_category_count($childs['categories_id'], $include_deactivated); } } return $products_count; } //// // Count how many subcategories exist in a category // TABLES: categories function tep_childs_in_category_count($categories_id) { $categories_count = 0; $categories_query = tep_db_query("select categories_id from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$categories_id . "'"); while ($categories = tep_db_fetch_array($categories_query)) { $categories_count++; $categories_count += tep_childs_in_category_count($categories['categories_id']); } return $categories_count; } //// // Returns an array with countries // TABLES: countries function tep_get_countries($default = '') { $countries_array = array(); if ($default) { $countries_array[] = array('id' => '', 'text' => $default); } $countries_query = tep_db_query("select countries_id, countries_name from " . TABLE_COUNTRIES . " order by countries_name"); while ($countries = tep_db_fetch_array($countries_query)) { $countries_array[] = array('id' => $countries['countries_id'], 'text' => $countries['countries_name']); } return $countries_array; } //// // return an array with country zones function tep_get_country_zones($country_id) { $zones_array = array(); $zones_query = tep_db_query("select zone_id, zone_name from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country_id . "' order by zone_name"); while ($zones = tep_db_fetch_array($zones_query)) { $zones_array[] = array('id' => $zones['zone_id'], 'text' => $zones['zone_name']); } return $zones_array; } function tep_prepare_country_zones_pull_down($country_id = '') { // preset the width of the drop-down for Netscape $pre = ''; if ( (!tep_browser_detect('MSIE')) && (tep_browser_detect('Mozilla/4')) ) { for ($i=0; $i<45; $i++) $pre .= ' '; } $zones = tep_get_country_zones($country_id); if (sizeof($zones) > 0) { $zones_select = array(array('id' => '', 'text' => PLEASE_SELECT)); $zones = array_merge($zones_select, $zones); } else { $zones = array(array('id' => '', 'text' => TYPE_BELOW)); // create dummy options for Netscape to preset the height of the drop-down if ( (!tep_browser_detect('MSIE')) && (tep_browser_detect('Mozilla/4')) ) { for ($i=0; $i<9; $i++) { $zones[] = array('id' => '', 'text' => $pre); } } } return $zones; } //// // Get list of address_format_id's function tep_get_address_formats() { $address_format_query = tep_db_query("select address_format_id from " . TABLE_ADDRESS_FORMAT . " order by address_format_id"); $address_format_array = array(); while ($address_format_values = tep_db_fetch_array($address_format_query)) { $address_format_array[] = array('id' => $address_format_values['address_format_id'], 'text' => $address_format_values['address_format_id']); } return $address_format_array; } //// // Alias function for Store configuration values in the Administration Tool function tep_cfg_pull_down_country_list($country_id) { return tep_draw_pull_down_menu('configuration_value', tep_get_countries(), $country_id); } function tep_cfg_pull_down_zone_list($zone_id) { return tep_draw_pull_down_menu('configuration_value', tep_get_country_zones(STORE_COUNTRY), $zone_id); } function tep_cfg_pull_down_tax_classes($tax_class_id, $key = '') { $name = (($key) ? 'configuration[' . $key . ']' : 'configuration_value'); $tax_class_array = array(array('id' => '0', 'text' => TEXT_NONE)); $tax_class_query = tep_db_query("select tax_class_id, tax_class_title from " . TABLE_TAX_CLASS . " order by tax_class_title"); while ($tax_class = tep_db_fetch_array($tax_class_query)) { $tax_class_array[] = array('id' => $tax_class['tax_class_id'], 'text' => $tax_class['tax_class_title']); } return tep_draw_pull_down_menu($name, $tax_class_array, $tax_class_id); } // ** GOOGLE CHECKOUT** // Function to store configuration values(shipping options) using // checkboxes in the Administration Tool function gc_cfg_select_multioption($select_array, $key_value, $key = '') { for ($i=0; $i<sizeof($select_array); $i++) { $name = (($key) ? 'configuration[' . $key . '][]' : 'configuration_value'); $string .= '<br><input type="checkbox" name="' . $name . '" value="' . $select_array[$i] . '"'; $key_values = explode( ", ", $key_value); if ( in_array($select_array[$i], $key_values) ) $string .= ' CHECKED'; $string .= '>' . $select_array[$i]; } $string .= '<input type="hidden" name="' . $name . '" value="--none--">'; return $string; } // Custom Function to store configuration values (shipping default values) function gc_compare($key, $data) { foreach($data as $value) { list($key2, $valor) = explode("_VD:", $value); if($key == $key2) return $valor; } return '0'; } // perhaps this function must be moved to googlecheckout class, is not too general function gc_cfg_select_shipping($select_array, $key_value, $key = '') { //add ropu // i get all the shipping methods available! global $PHP_SELF,$language,$module_type; $module_directory = DIR_FS_CATALOG_MODULES . 'shipping/'; $file_extension = substr($PHP_SELF, strrpos($PHP_SELF, '.')); $directory_array = array(); if ($dir = @dir($module_directory)) { while ($file = $dir->read()) { if (!is_dir($module_directory . $file)) { if (substr($file, strrpos($file, '.')) == $file_extension) { $directory_array[] = $file; } } } sort($directory_array); $dir->close(); } $installed_modules = array(); $select_array = array(); for ($i=0, $n=sizeof($directory_array); $i<$n; $i++) { $file = $directory_array[$i]; include_once(DIR_FS_CATALOG_LANGUAGES . $language . '/modules/shipping/' . $file); include_once($module_directory . $file); $class = substr($file, 0, strrpos($file, '.')); if (tep_class_exists($class)) { $module = new $class; //echo $class; if ($module->check() > 0) { $select_array[$module->code] = array('code' => $module->code, 'title' => $module->title, 'description' => $module->description, 'status' => $module->check()); } } } require_once (DIR_FS_CATALOG . 'includes/modules/payment/googlecheckout.php'); $googlepayment = new googlecheckout(); $ship_calcualtion_mode = (count(array_keys($select_array)) > count(array_intersect($googlepayment->shipping_support, array_keys($select_array)))) ? true : false; if(!$ship_calcualtion_mode) { return '<br/><i>'. GOOGLECHECKOUT_TABLE_NO_MERCHANT_CALCULATION . '</i>'; } $javascript = "<script language='javascript'> function VD_blur(valor, code, hid_id){ var hid = document.getElementById(hid_id); valor.value = isNaN(parseFloat(valor.value))?'':parseFloat(valor.value); if(valor.value != ''){ hid.value = code + '_VD:' + valor.value; // valor.value = valor.value; // hid.disabled = false; }else { hid.value = code + '_VD:0'; valor.value = '0'; } } function VD_focus(valor, code, hid_id){ var hid = document.getElementById(hid_id); // valor.value = valor.value.substr((code + '_VD:').length, valor.value.length); hid.value = valor.value.substr((code + '_VD:').length, valor.value.length); } </script>"; $string .= $javascript; $key_values = explode( ", ", $key_value); foreach($select_array as $i => $value){ if ( $select_array[$i]['status'] && !in_array($select_array[$i]['code'], $googlepayment->shipping_support) ) { $name = (($key) ? 'configuration[' . $key . '][]' : 'configuration_value'); $string .= "<br><b>" . $select_array[$i]['title'] . "</b>"."\n"; if (is_array($googlepayment->mc_shipping_methods[$select_array[$i]['code']])) { foreach($googlepayment->mc_shipping_methods[$select_array[$i]['code']] as $type => $methods) { if (is_array($methods) && !empty($methods)) { $string .= '<br> <b>'. $type .'</b>'; foreach($methods as $method => $method_name) { $string .= '<br>'; // default value $value = gc_compare($select_array[$i]['code'] . $method. $type , $key_values); $string .= '<input size="5" onBlur="VD_blur(this, \'' . $select_array[$i]['code']. $method . $type . '\', \'hid_' . $select_array[$i]['code'] . $method . $type . '\' );" onFocus="VD_focus(this, \'' . $select_array[$i]['code'] . $method . $type . '\' , \'hid_' . $select_array[$i]['code'] . $method . $type .'\');" type="text" name="no_use' . $method . '" value="' . $value . '"'; $string .= '>'; $string .= '<input size="10" id="hid_' . $select_array[$i]['code'] . $method . $type . '" type="hidden" name="' . $name . '" value="' . $select_array[$i]['code'] . $method . $type . '_VD:' . $value . '"'; $string .= '>'."\n"; $string .= $method_name; } } } } else { $string .= $select_array[$i]['code'] .GOOGLECHECKOUT_MERCHANT_CALCULATION_NOT_CONFIGURED; } } } return $string; } // ** END GOOGLE CHECKOUT ** //// // Function to read in text area in admin function tep_cfg_textarea($text) { return tep_draw_textarea_field('configuration_value', false, 35, 5, $text); } function tep_cfg_get_zone_name($zone_id) { $zone_query = tep_db_query("select zone_name from " . TABLE_ZONES . " where zone_id = '" . (int)$zone_id . "'"); if (!tep_db_num_rows($zone_query)) { return $zone_id; } else { $zone = tep_db_fetch_array($zone_query); return $zone['zone_name']; } } //// // Sets the status of a banner function tep_set_banner_status($banners_id, $status) { if ($status == '1') { return tep_db_query("update " . TABLE_BANNERS . " set status = '1', expires_impressions = NULL, expires_date = NULL, date_status_change = NULL where banners_id = '" . $banners_id . "'"); } elseif ($status == '0') { return tep_db_query("update " . TABLE_BANNERS . " set status = '0', date_status_change = now() where banners_id = '" . $banners_id . "'"); } else { return -1; } } //// // Sets the status of a product function tep_set_product_status($products_id, $status) { if ($status == '1') { return tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '1', products_last_modified = now() where products_id = '" . (int)$products_id . "'"); } elseif ($status == '0') { return tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0', products_last_modified = now() where products_id = '" . (int)$products_id . "'"); } else { return -1; } } //// // Sets the status of a product on special function tep_set_specials_status($specials_id, $status) { if ($status == '1') { return tep_db_query("update " . TABLE_SPECIALS . " set status = '1', expires_date = NULL, date_status_change = NULL where specials_id = '" . (int)$specials_id . "'"); } elseif ($status == '0') { return tep_db_query("update " . TABLE_SPECIALS . " set status = '0', date_status_change = now() where specials_id = '" . (int)$specials_id . "'"); } else { return -1; } } //// // Sets timeout for the current script. // Cant be used in safe mode. function tep_set_time_limit($limit) { if (!get_cfg_var('safe_mode')) { set_time_limit($limit); } } //// // Alias function for Store configuration values in the Administration Tool function tep_cfg_select_option($select_array, $key_value, $key = '') { $string = ''; for ($i=0, $n=sizeof($select_array); $i<$n; $i++) { $name = ((tep_not_null($key)) ? 'configuration[' . $key . ']' : 'configuration_value'); $string .= '<br><input type="radio" name="' . $name . '" value="' . $select_array[$i] . '"'; if ($key_value == $select_array[$i]) $string .= ' CHECKED'; $string .= '> ' . $select_array[$i]; } return $string; } //// // Alias function for module configuration keys function tep_mod_select_option($select_array, $key_name, $key_value) { reset($select_array); while (list($key, $value) = each($select_array)) { if (is_int($key)) $key = $value; $string .= '<br><input type="radio" name="configuration[' . $key_name . ']" value="' . $key . '"'; if ($key_value == $key) $string .= ' CHECKED'; $string .= '> ' . $value; } return $string; } //// // Retreive server information function tep_get_system_information() { global $HTTP_SERVER_VARS; $db_query = tep_db_query("select now() as datetime"); $db = tep_db_fetch_array($db_query); list($system, $host, $kernel) = preg_split('/[\s,]+/', @exec('uname -a'), 5); return array('date' => tep_datetime_short(date('Y-m-d H:i:s')), 'system' => $system, 'kernel' => $kernel, 'host' => $host, 'ip' => gethostbyname($host), 'uptime' => @exec('uptime'), 'http_server' => $HTTP_SERVER_VARS['SERVER_SOFTWARE'], 'php' => PHP_VERSION, 'zend' => (function_exists('zend_version') ? zend_version() : ''), 'db_server' => DB_SERVER, 'db_ip' => gethostbyname(DB_SERVER), 'db_version' => 'MySQL ' . (function_exists('mysql_get_server_info') ? mysql_get_server_info() : ''), 'db_date' => tep_datetime_short($db['datetime'])); } function tep_generate_category_path($id, $from = 'category', $categories_array = '', $index = 0) { global $languages_id; if (!is_array($categories_array)) $categories_array = array(); if ($from == 'product') { $categories_query = tep_db_query("select categories_id from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$id . "'"); while ($categories = tep_db_fetch_array($categories_query)) { if ($categories['categories_id'] == '0') { $categories_array[$index][] = array('id' => '0', 'text' => TEXT_TOP); } else { $category_query = tep_db_query("select cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$categories['categories_id'] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "'"); $category = tep_db_fetch_array($category_query); $categories_array[$index][] = array('id' => $categories['categories_id'], 'text' => $category['categories_name']); if ( (tep_not_null($category['parent_id'])) && ($category['parent_id'] != '0') ) $categories_array = tep_generate_category_path($category['parent_id'], 'category', $categories_array, $index); $categories_array[$index] = array_reverse($categories_array[$index]); } $index++; } } elseif ($from == 'category') { $category_query = tep_db_query("select cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$id . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "'"); $category = tep_db_fetch_array($category_query); $categories_array[$index][] = array('id' => $id, 'text' => $category['categories_name']); if ( (tep_not_null($category['parent_id'])) && ($category['parent_id'] != '0') ) $categories_array = tep_generate_category_path($category['parent_id'], 'category', $categories_array, $index); } return $categories_array; } function tep_output_generated_category_path($id, $from = 'category') { $calculated_category_path_string = ''; $calculated_category_path = tep_generate_category_path($id, $from); for ($i=0, $n=sizeof($calculated_category_path); $i<$n; $i++) { for ($j=0, $k=sizeof($calculated_category_path[$i]); $j<$k; $j++) { $calculated_category_path_string .= $calculated_category_path[$i][$j]['text'] . ' > '; } $calculated_category_path_string = substr($calculated_category_path_string, 0, -16) . '<br>'; } $calculated_category_path_string = substr($calculated_category_path_string, 0, -4); if (strlen($calculated_category_path_string) < 1) $calculated_category_path_string = TEXT_TOP; return $calculated_category_path_string; } function tep_get_generated_category_path_ids($id, $from = 'category') { $calculated_category_path_string = ''; $calculated_category_path = tep_generate_category_path($id, $from); for ($i=0, $n=sizeof($calculated_category_path); $i<$n; $i++) { for ($j=0, $k=sizeof($calculated_category_path[$i]); $j<$k; $j++) { $calculated_category_path_string .= $calculated_category_path[$i][$j]['id'] . '_'; } $calculated_category_path_string = substr($calculated_category_path_string, 0, -1) . '<br>'; } $calculated_category_path_string = substr($calculated_category_path_string, 0, -4); if (strlen($calculated_category_path_string) < 1) $calculated_category_path_string = TEXT_TOP; return $calculated_category_path_string; } function tep_remove_category($category_id) { $category_image_query = tep_db_query("select categories_image from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$category_id . "'"); $category_image = tep_db_fetch_array($category_image_query); $duplicate_image_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " where categories_image = '" . tep_db_input($category_image['categories_image']) . "'"); $duplicate_image = tep_db_fetch_array($duplicate_image_query); if ($duplicate_image['total'] < 2) { if (file_exists(DIR_FS_CATALOG_IMAGES . $category_image['categories_image'])) { @unlink(DIR_FS_CATALOG_IMAGES . $category_image['categories_image']); } } tep_db_query("delete from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$category_id . "'"); tep_db_query("delete from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$category_id . "'"); tep_db_query("delete from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . (int)$category_id . "'"); if (USE_CACHE == 'true') { tep_reset_cache_block('categories'); tep_reset_cache_block('also_purchased'); } } function tep_remove_product($product_id) { $product_image_query = tep_db_query("select products_image from " . TABLE_PRODUCTS . " where products_id = '" . (int)$product_id . "'"); $product_image = tep_db_fetch_array($product_image_query); $duplicate_image_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " where products_image = '" . tep_db_input($product_image['products_image']) . "'"); $duplicate_image = tep_db_fetch_array($duplicate_image_query); if ($duplicate_image['total'] < 2) { if (file_exists(DIR_FS_CATALOG_IMAGES . $product_image['products_image'])) { @unlink(DIR_FS_CATALOG_IMAGES . $product_image['products_image']); } $thumbnail = substr($product_image['products_image'], 0, strrpos($product_image['products_image'], '.')) . '-'.PRODUCT_IMAGE_WIDTH.'x'.PRODUCT_IMAGE_HEIGHT.'.jpg'; if (file_exists(DIR_FS_CATALOG_IMAGES . $thumbnail)) { @unlink(DIR_FS_CATALOG_IMAGES . $thumbnail); } } // tep_db_query("delete from " . TABLE_ADDITIONAL_IMAGES . " where products_id = '" . (int)$product_id . "'"); tep_db_query("delete from " . TABLE_SPECIALS . " where products_id = '" . (int)$product_id . "'"); tep_db_query("delete from " . TABLE_PRODUCTS . " where products_id = '" . (int)$product_id . "'"); tep_db_query("delete from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$product_id . "'"); tep_db_query("delete from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "'"); tep_db_query("delete from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id = '" . (int)$product_id . "'"); tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET . " where products_id = '" . (int)$product_id . "'"); tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " where products_id = '" . (int)$product_id . "'"); //Wishlist addition to delete products from the wishlist when deleted tep_db_query("delete from " . TABLE_WISHLIST . " where products_id = '" . (int)$product_id . "'"); tep_db_query("delete from " . TABLE_WISHLIST_ATTRIBUTES . " where products_id = '" . (int)$product_id . "'"); // START: Extra Fields Contribution tep_db_query("delete from " . TABLE_PRODUCTS_TO_PRODUCTS_EXTRA_FIELDS . " where products_id = " . (int)$product_id); // END: Extra Fields Contribution $product_reviews_query = tep_db_query("select reviews_id from " . TABLE_REVIEWS . " where products_id = '" . (int)$product_id . "'"); while ($product_reviews = tep_db_fetch_array($product_reviews_query)) { tep_db_query("delete from " . TABLE_REVIEWS_DESCRIPTION . " where reviews_id = '" . (int)$product_reviews['reviews_id'] . "'"); } tep_db_query("delete from " . TABLE_REVIEWS . " where products_id = '" . (int)$product_id . "'"); if (USE_CACHE == 'true') { tep_reset_cache_block('categories'); tep_reset_cache_block('also_purchased'); } } function tep_remove_order($order_id, $restock = false) { if ($restock == 'on') { $order_query = tep_db_query("select products_id, products_quantity from " . TABLE_ORDERS_PRODUCTS . " where orders_id = '" . (int)$order_id . "'"); while ($order = tep_db_fetch_array($order_query)) { tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = products_quantity + " . $order['products_quantity'] . ", products_ordered = products_ordered - " . $order['products_quantity'] . " where products_id = '" . (int)$order['products_id'] . "'"); } } tep_db_query("delete from " . TABLE_ORDERS . " where orders_id = '" . (int)$order_id . "'"); tep_db_query("delete from " . TABLE_ORDERS_PRODUCTS . " where orders_id = '" . (int)$order_id . "'"); tep_db_query("delete from " . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . " where orders_id = '" . (int)$order_id . "'"); tep_db_query("delete from " . TABLE_ORDERS_STATUS_HISTORY . " where orders_id = '" . (int)$order_id . "'"); tep_db_query("delete from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . (int)$order_id . "'"); } function tep_reset_cache_block($cache_block) { global $cache_blocks; for ($i=0, $n=sizeof($cache_blocks); $i<$n; $i++) { if ($cache_blocks[$i]['code'] == $cache_block) { if ($cache_blocks[$i]['multiple']) { if ($dir = @opendir(DIR_FS_CACHE)) { while ($cache_file = readdir($dir)) { $cached_file = $cache_blocks[$i]['file']; $languages = tep_get_languages(); for ($j=0, $k=sizeof($languages); $j<$k; $j++) { $cached_file_unlink = ereg_replace('-language', '-' . $languages[$j]['directory'], $cached_file); if (ereg('^' . $cached_file_unlink, $cache_file)) { @unlink(DIR_FS_CACHE . $cache_file); } } } closedir($dir); } } else { $cached_file = $cache_blocks[$i]['file']; $languages = tep_get_languages(); for ($i=0, $n=sizeof($languages); $i<$n; $i++) { $cached_file = ereg_replace('-language', '-' . $languages[$i]['directory'], $cached_file); @unlink(DIR_FS_CACHE . $cached_file); } } break; } } } function tep_get_file_permissions($mode) { // determine type if ( ($mode & 0xC000) == 0xC000) { // unix domain socket $type = 's'; } elseif ( ($mode & 0x4000) == 0x4000) { // directory $type = 'd'; } elseif ( ($mode & 0xA000) == 0xA000) { // symbolic link $type = 'l'; } elseif ( ($mode & 0x8000) == 0x8000) { // regular file $type = '-'; } elseif ( ($mode & 0x6000) == 0x6000) { //bBlock special file $type = 'b'; } elseif ( ($mode & 0x2000) == 0x2000) { // character special file $type = 'c'; } elseif ( ($mode & 0x1000) == 0x1000) { // named pipe $type = 'p'; } else { // unknown $type = '?'; } // determine permissions $owner['read'] = ($mode & 00400) ? 'r' : '-'; $owner['write'] = ($mode & 00200) ? 'w' : '-'; $owner['execute'] = ($mode & 00100) ? 'x' : '-'; $group['read'] = ($mode & 00040) ? 'r' : '-'; $group['write'] = ($mode & 00020) ? 'w' : '-'; $group['execute'] = ($mode & 00010) ? 'x' : '-'; $world['read'] = ($mode & 00004) ? 'r' : '-'; $world['write'] = ($mode & 00002) ? 'w' : '-'; $world['execute'] = ($mode & 00001) ? 'x' : '-'; // adjust for SUID, SGID and sticky bit if ($mode & 0x800 ) $owner['execute'] = ($owner['execute'] == 'x') ? 's' : 'S'; if ($mode & 0x400 ) $group['execute'] = ($group['execute'] == 'x') ? 's' : 'S'; if ($mode & 0x200 ) $world['execute'] = ($world['execute'] == 'x') ? 't' : 'T'; return $type . $owner['read'] . $owner['write'] . $owner['execute'] . $group['read'] . $group['write'] . $group['execute'] . $world['read'] . $world['write'] . $world['execute']; } function tep_remove($source) { global $messageStack, $tep_remove_error; if (isset($tep_remove_error)) $tep_remove_error = false; if (is_dir($source)) { $dir = dir($source); while ($file = $dir->read()) { if ( ($file != '.') && ($file != '..') ) { if (is_writeable($source . '/' . $file)) { tep_remove($source . '/' . $file); } else { $messageStack->add(sprintf(ERROR_FILE_NOT_REMOVEABLE, $source . '/' . $file), 'error'); $tep_remove_error = true; } } } $dir->close(); if (is_writeable($source)) { rmdir($source); } else { $messageStack->add(sprintf(ERROR_DIRECTORY_NOT_REMOVEABLE, $source), 'error'); $tep_remove_error = true; } } else { if (is_writeable($source)) { unlink($source); } else { $messageStack->add(sprintf(ERROR_FILE_NOT_REMOVEABLE, $source), 'error'); $tep_remove_error = true; } } } //// // Output the tax percentage with optional padded decimals function tep_display_tax_value($value, $padding = TAX_DECIMAL_PLACES) { if (strpos($value, '.')) { $loop = true; while ($loop) { if (substr($value, -1) == '0') { $value = substr($value, 0, -1); } else { $loop = false; if (substr($value, -1) == '.') { $value = substr($value, 0, -1); } } } } if ($padding > 0) { if ($decimal_pos = strpos($value, '.')) { $decimals = strlen(substr($value, ($decimal_pos+1))); for ($i=$decimals; $i<$padding; $i++) { $value .= '0'; } } else { $value .= '.'; for ($i=0; $i<$padding; $i++) { $value .= '0'; } } } return $value; } function tep_mail($to_name, $to_email_address, $email_subject, $email_text, $from_email_name, $from_email_address) { if (SEND_EMAILS != 'true') return false; // Instantiate a new mail object $message = new email(array('X-Mailer: osCommerce')); // Build the text version $text = strip_tags($email_text); if (EMAIL_USE_HTML == 'true') { $message->add_html($email_text, $text); } else { $message->add_text($text); } // Send message $message->build_message(); $message->send($to_name, $to_email_address, $from_email_name, $from_email_address, $email_subject); } function tep_get_tax_class_title($tax_class_id) { if ($tax_class_id == '0') { return TEXT_NONE; } else { $classes_query = tep_db_query("select tax_class_title from " . TABLE_TAX_CLASS . " where tax_class_id = '" . (int)$tax_class_id . "'"); $classes = tep_db_fetch_array($classes_query); return $classes['tax_class_title']; } } function tep_banner_image_extension() { if (function_exists('imagetypes')) { if (imagetypes() & IMG_PNG) { return 'png'; } elseif (imagetypes() & IMG_JPG) { return 'jpg'; } elseif (imagetypes() & IMG_GIF) { return 'gif'; } } elseif (function_exists('imagecreatefrompng') && function_exists('imagepng')) { return 'png'; } elseif (function_exists('imagecreatefromjpeg') && function_exists('imagejpeg')) { return 'jpg'; } elseif (function_exists('imagecreatefromgif') && function_exists('imagegif')) { return 'gif'; } return false; } //// // Wrapper function for round() for php3 compatibility function tep_round($value, $precision) { if (PHP_VERSION < 4) { $exp = pow(10, $precision); return round($value * $exp) / $exp; } else { return round($value, $precision); } } //// // Add tax to a products price function tep_add_tax($price, $tax) { global $currencies; if (DISPLAY_PRICE_WITH_TAX == 'true') { return tep_round($price, $currencies->currencies[DEFAULT_CURRENCY]['decimal_places']) + tep_calculate_tax($price, $tax); } else { return tep_round($price, $currencies->currencies[DEFAULT_CURRENCY]['decimal_places']); } } // Calculates Tax rounding the result function tep_calculate_tax($price, $tax) { global $currencies; return tep_round($price * $tax / 100, $currencies->currencies[DEFAULT_CURRENCY]['decimal_places']); } //// // Returns the tax rate for a zone / class // TABLES: tax_rates, zones_to_geo_zones function tep_get_tax_rate($class_id, $country_id = -1, $zone_id = -1) { global $customer_zone_id, $customer_country_id; if ( ($country_id == -1) && ($zone_id == -1) ) { if (!tep_session_is_registered('customer_id')) { $country_id = STORE_COUNTRY; $zone_id = STORE_ZONE; } else { $country_id = $customer_country_id; $zone_id = $customer_zone_id; } } $tax_query = tep_db_query("select SUM(tax_rate) as tax_rate from " . TABLE_TAX_RATES . " tr left join " . TABLE_ZONES_TO_GEO_ZONES . " za ON tr.tax_zone_id = za.geo_zone_id left join " . TABLE_GEO_ZONES . " tz ON tz.geo_zone_id = tr.tax_zone_id WHERE (za.zone_country_id IS NULL OR za.zone_country_id = '0' OR za.zone_country_id = '" . (int)$country_id . "') AND (za.zone_id IS NULL OR za.zone_id = '0' OR za.zone_id = '" . (int)$zone_id . "') AND tr.tax_class_id = '" . (int)$class_id . "' GROUP BY tr.tax_priority"); if (tep_db_num_rows($tax_query)) { $tax_multiplier = 0; while ($tax = tep_db_fetch_array($tax_query)) { $tax_multiplier += $tax['tax_rate']; } return $tax_multiplier; } else { return 0; } } //// // Returns the tax rate for a tax class // TABLES: tax_rates function tep_get_tax_rate_value($class_id) { $tax_query = tep_db_query("select SUM(tax_rate) as tax_rate from " . TABLE_TAX_RATES . " where tax_class_id = '" . (int)$class_id . "' group by tax_priority"); if (tep_db_num_rows($tax_query)) { $tax_multiplier = 0; while ($tax = tep_db_fetch_array($tax_query)) { $tax_multiplier += $tax['tax_rate']; } return $tax_multiplier; } else { return 0; } } function tep_call_function($function, $parameter, $object = '') { if ($object == '') { return call_user_func($function, $parameter); } elseif (PHP_VERSION < 4) { return call_user_method($function, $object, $parameter); } else { return call_user_func(array($object, $function), $parameter); } } function tep_get_zone_class_title($zone_class_id) { if ($zone_class_id == '0') { return TEXT_NONE; } else { $classes_query = tep_db_query("select geo_zone_name from " . TABLE_GEO_ZONES . " where geo_zone_id = '" . (int)$zone_class_id . "'"); $classes = tep_db_fetch_array($classes_query); return $classes['geo_zone_name']; } } function tep_cfg_pull_down_zone_classes($zone_class_id, $key = '') { $name = (($key) ? 'configuration[' . $key . ']' : 'configuration_value'); $zone_class_array = array(array('id' => '0', 'text' => TEXT_NONE)); $zone_class_query = tep_db_query("select geo_zone_id, geo_zone_name from " . TABLE_GEO_ZONES . " order by geo_zone_name"); while ($zone_class = tep_db_fetch_array($zone_class_query)) { $zone_class_array[] = array('id' => $zone_class['geo_zone_id'], 'text' => $zone_class['geo_zone_name']); } return tep_draw_pull_down_menu($name, $zone_class_array, $zone_class_id); } function tep_cfg_pull_down_order_statuses($order_status_id, $key = '') { global $languages_id; $name = (($key) ? 'configuration[' . $key . ']' : 'configuration_value'); $statuses_array = array(array('id' => '0', 'text' => TEXT_DEFAULT)); $statuses_query = tep_db_query("select orders_status_id, orders_status_name from " . TABLE_ORDERS_STATUS . " where language_id = '" . (int)$languages_id . "' order by orders_status_name"); while ($statuses = tep_db_fetch_array($statuses_query)) { $statuses_array[] = array('id' => $statuses['orders_status_id'], 'text' => $statuses['orders_status_name']); } return tep_draw_pull_down_menu($name, $statuses_array, $order_status_id); } function tep_get_order_status_name($order_status_id, $language_id = '') { global $languages_id; if ($order_status_id < 1) return TEXT_DEFAULT; if (!is_numeric($language_id)) $language_id = $languages_id; $status_query = tep_db_query("select orders_status_name from " . TABLE_ORDERS_STATUS . " where orders_status_id = '" . (int)$order_status_id . "' and language_id = '" . (int)$language_id . "'"); $status = tep_db_fetch_array($status_query); return $status['orders_status_name']; } //// // Return a random value function tep_rand($min = null, $max = null) { static $seeded; if (!$seeded) { mt_srand((double)microtime()*1000000); $seeded = true; } if (isset($min) && isset($max)) { if ($min >= $max) { return $min; } else { return mt_rand($min, $max); } } else { return mt_rand(); } } // nl2br() prior PHP 4.2.0 did not convert linefeeds on all OSs (it only converted \n) function tep_convert_linefeeds($from, $to, $string) { if ((PHP_VERSION < "4.0.5") && is_array($from)) { return ereg_replace('(' . implode('|', $from) . ')', $to, $string); } else { return str_replace($from, $to, $string); } } function tep_string_to_int($string) { return (int)$string; } //// // Parse and secure the cPath parameter values function tep_parse_category_path($cPath) { // make sure the category IDs are integers $cPath_array = array_map('tep_string_to_int', explode('_', $cPath)); // make sure no duplicate category IDs exist which could lock the server in a loop $tmp_array = array(); $n = sizeof($cPath_array); for ($i=0; $i<$n; $i++) { if (!in_array($cPath_array[$i], $tmp_array)) { $tmp_array[] = $cPath_array[$i]; } } return $tmp_array; } // Return the shipping ETA in the needed language // TABLES: products_availability function tep_get_products_availability_name($products_availability_id, $language_id) { $products_availability_query = tep_db_query("select products_availability_name from " . TABLE_PRODUCTS_AVAILABILITY . " where products_availability_id = '" . (int)$products_availability_id . "' and language_id = '" . (int)$language_id . "'"); $products_availability = tep_db_fetch_array($products_availability_query); return $products_availability['products_availability_name']; } // Function to reset SEO URLs database cache entries // Ultimate SEO URLs v2.1 function tep_reset_cache_data_seo_urls($action){ switch ($action){ case 'reset': tep_db_query("DELETE FROM cache WHERE cache_name LIKE '%seo_urls%'"); tep_db_query("UPDATE configuration SET configuration_value='false' WHERE configuration_key='SEO_URLS_CACHE_RESET'"); break; default: break; } # The return value is used to set the value upon viewing # It's NOT returining a false to indicate failure!! return 'false'; } function tep_get_category_seo_url($category_id, $language_id) { $category_query = tep_db_query("select categories_seo_url from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$category_id . "' and language_id = '" . (int)$language_id . "'"); $category = tep_db_fetch_array($category_query); return $category['categories_seo_url']; } function tep_get_products_seo_url($product_id, $language_id = 0) { global $languages_id; if ($language_id == 0) $language_id = $languages_id; $product_query = tep_db_query("select products_seo_url from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'"); $product = tep_db_fetch_array($product_query); return $product['products_seo_url']; } //Cache function rdel($path, $deldir = true) { // $path est le chemin relatif au fichier php // $deldir (param?re optionel, par d?aut ?vrai) permet de dire si vous souhaitez supprimer le r?ertoire (vrai) ou le vider uniquement (faux) // on v?ifie d'abord que le nom du repertoire contient "/" ?la fin, sinon on le lui rajoute if ($path[strlen($path)-1] != "/") $path .= "/"; if (is_dir($path)) { $d = opendir($path); while ($f = readdir($d)) { if ($f != "." && $f != "..") { $rf = $path . $f; // chemin relatif au fichier php if (is_dir($rf)) // si c'est un r?ertoire on appel r?ursivement la fonction rdel($rf); else // sinon on efface le fichier unlink($rf); } } closedir($d); if ($deldir) // si $deldir est vrai on efface le r?ertoire rmdir($path); } else { unlink($path); } } //Fin cache ?> Starting at line 15 to line 50 /includes/modules/shipping/fedex1.php class fedex1 { var $code, $title, $description, $sort_order, $icon, $tax_class, $enabled, $meter, $intl; var $cart_total, $cart_total_per_one, $cart_weight, $cart_weight_per_one, $cart_shipping_num_boxes, $cart_qty; // class constructor function fedex1() { global $order; //zone change $this->code = 'fedex1'; $this->title = MODULE_SHIPPING_FEDEX1_TEXT_TITLE; $this->description = MODULE_SHIPPING_FEDEX1_TEXT_DESCRIPTION; $this->sort_order = MODULE_SHIPPING_FEDEX1_SORT_ORDER; $this->icon = DIR_WS_ICONS . 'shipping_fedex.gif'; $this->tax_class = MODULE_SHIPPING_FEDEX1_TAX_CLASS; $this->enabled = ((MODULE_SHIPPING_FEDEX1_STATUS == 'True') ? true : false); $this->meter = MODULE_SHIPPING_FEDEX1_METER; //zone change(s) if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_FEDEX1_ZONE > 0) ) { $check_flag = false; $check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_FEDEX1_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id"); while ($check = tep_db_fetch_array($check_query)) { if ($check['zone_id'] < 1) { $check_flag = true; break; } elseif ($check['zone_id'] == $order->delivery['zone_id']) { $check_flag = true; break; } } if ($check_flag == false) { $this->enabled = false; } } //end thank you so much, nick. Can you post your shopping_cart.php after adding the GC module codes?
  23. blafrog

    Google Checkout Level 2

    Nick, I skipped the step 3b in orders.php without problem. But I have problem with this 2 contributions "shipping in cart" and "fedex real time quote". You know how do get it to work? I get error cannot redeclare class fedex1 in /www/-->/includes/modules/shipping/fedex1.php on line 15
  24. blafrog

    Google Checkout Level 2

    The codes need to add and replace to orders.php has been heavily modified, not about how many contributions. If only add the code I know it easy. This 3 contributions almost modified all same codes in orders.php, I have below 2 installed. I appreciate if you can take a look and help.. Package Tracking with Email Mod. Multi Vendor Shipping Google Checkout Module for Oscommerce
  25. blafrog

    Google Checkout Level 2

    that's not easy, I have extremely modified admin/orders.php and I don't have any php code experience. I'll stick to this until OSC php5 is ready. thanks!
×