Jump to content


  • Content count

  • Joined

  • Last visited

1 Follower

About Tabula_Rasa

  • Birthday 11/03/1968

Profile Information

  1. http://forums.oscommerce.com/topic/374407-one-page-checkout-for-oscommerce-231/page__st__160 page 9 and 10.
  2. I started using versions of OPC, but when I got to the end of the OPC forum thread, I followed the instructions to deprecate OPC and install the new version ...? I have a back-up of every version I've gone through before any changes, so I can back up.
  3. Thanks. Sorry. I found this with the deprecation of OPC and figured it was a do-over. :D Anyway, the question stands: Authorize, UPS, USPS? :D
  4. I'm trying to merge OPC second version with UPSXML, USPS and Authorize.net. There isn't an emoticon ever created to express the frustration. lol! I've followed OPC since PupStar's original post. It doesn't seem like too unusual a configuration, so I was wondering if anybody has successfully gotten OPC to work with Authorize and UPS?
  5. Tabula_Rasa

    Purchase Without Account on osCv2.3.1

    I'm already working on it for a paying client, but unfortunately, it's a flat fee project and this is an unexpected chunk of unpaid work, so cash contributions would allow me to bring in extra programming help. The changes from either contribution include separation from the "Redmond" CSS, complete use of tableless XHTML, "Shipping different from billing address" would be surrounded by a DIV, etc. I can make the 'tables' optional, though, as switching to tableless would require modifying payment and shipping modules on per-module basis. If anyone is serious about financial help on this, I'll be happy to release the result as a contribution and support it. seanrice@rasadesign.com
  6. Tabula_Rasa

    Purchase Without Account on osCv2.3.1

    I've kinda given up on both this contribution and "One Page Checkout." The problem is that everyone is trying to do "hack" solutions to various MS2.2 solutions to make them "fit" 2.3.1... except finding solutions this way doesn't work. It's bad programming being thrown at bad programming. OsCommerce was hard enough to modify when everything WORKED with the default store. Now, there's a huge confusion with 2.2 v.s. 2.3.1 contributions, then the fact that we're downloading contributions that are essentially hack jobs and shortcuts. What's needed is an osCommerce One Page Checkout WITH optional registration (admin controlled) that works with 2.3.1 as a new contribution. I'm sketching out a solution and if I get help from this forum, I'll introduce it for free. Sorry. Just getting sick of hacking my OWN way through half-formed 'contributions' that don't actually work with any other contribution.
  7. Tabula_Rasa

    [Contribution] Additional Images Module

    pictures not uploading, deleting, etc. Register_Globals: off (with modification) Safe_Mode: On (with modification) PHP 5.x.x, MySQL 5.x.x (osC modified to work) Server: Linux GoDaddy for development. Although the front end is VERY heavily modified with several contributions and a complete code rewrite to produce tableless XHTML/CSS, the admin is largely untouched except for regular contributions. I do NOT want additional Images to manage widths or heights and believed that not filling in ANY width or height in the Configuration->Images would be ok, but I've tried both ways. In the Configuration->Additional Images, I set to "false" any automatic feature or size feature... and, again, I've fiddled with different configurations, turning things on or off to see if anything was affected. I also tried copying a configuration from this forum that was reported to be working. Nothing. In either the "box" or "new/edit" product, when I "browse" for the images, the filenames show. However, when I "Preview" only one, at most, file successfully uploads and it's random which one is uploading. The "delete" feature seems to work only when it wants to. I've checked and rechecked all files to upload and all files to modify line by line several times: ALL code seems to be up there and correct. If anyone can point me to what the issue might be, that would be wonderful. Thank you. If I can't fix this in a few hours, I'll have to go back to the back-up site and try "Extra Images" instead. :(
  8. HA! The reason I've been on the osCommerce forums for so long, but only posted 30-something posts is because there aren't many answers, here. :) Is there ANYONE that can help me untangle this box? I need to do the subcategories of only ONE parent category without showing the parent. The winner gets a rewrite of osCommerce for FREE that kills all tables as soon as I'm done with this project: Tableless, XHTML/CSS osCommerce. We have the only stable copy that does NOT use templates. I'll POST the rewrite of the contribution as a new contribution and credit you. Please. For some reason, I cant get my mind around this contribution. Sean Rice http://rasadesign.com seanrice@rasadesign.com
  9. I'm interested in modifying this contribution to list only the subcategories and subcategories of one single parent (without listing the parent). The reason is that the three root categories of the site are listed horizontally at the top. In the left hand column, the "ul_category" box would have the sub- and sub-sub categories for that one parent category. My thought was to establish $parent_cat_id = $cPath_array[0]... but, where to insert this in the code, I can't seem to figure out. For help in answering this, I've included the code, here: <?php /* $Id: ul_categories.php,v 1.00 2006/04/30 01:13:58 nate_02631 Exp $ Outputs the store category list as a proper unordered list, opening up possibilities to use CSS to style as drop-down/flyout, collapsable or other menu types. osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2006 Nate Welch http://www.natewelch.com Released under the GNU General Public License */ // BEGIN Configuration options // Set to false to display the unordered list only. Set to true to display in // a regular box. The former is useful for better integrating the menu with your layout. $show_ulcats_as_box = false; // Indicates whether or not to render your entire category list or just the root categories // and the currently selected submenu tree. Rendering the full list is useful for dynamic menu // generation where you want the user to have instant access to all categories. The other option // is the default oSC behaviour, when the subcats aren't available until the parent is clicked. $show_full_tree = true; // This is the CSS *ID* you want to assign to the UL (unordered list) containing // your category menu. Used in conjuction with the CSS list you create for the menu. // This value cannot be blank. $idname_for_menu = 'subcat'; // This is the *CLASSNAME* you want to tag a LI to indicate the selected category. // The currently selected category (and its parents, if any) will be tagged with // this class. Modify your stylesheet as appropriate. Leave blank or set to false to not assign a class. $classname_for_selected = 'subcat_selected'; // This is the *CLASSNAME* you want to tag a LI to indicate a category has subcategores. // Modify your stylesheet to draw an indicator to show the users that subcategories are // available. Leave blank or set to false to not assign a class. $classname_for_parent = 'subcat_parent'; $classname_for_child = 'subcat_child'; $classname_for_no_children = 'subcat_no_children'; // This is the HTML that you would like to appear before your categories menu if *not* // displaying in a standard "box". This is useful for reconciling tables or clearing // floats, depending on your layout needs. $before_nobox_html = '<span class="subcat_heading">Subcategories</span><br /><div class="subcat">'; // This is the HTML that you would like to appear after your categories menu if *not* // displaying in a standard "box". This is useful for reconciling tables or clearing // floats, depending on your layout needs. $after_nobox_html = ''; // END Configuration options // Global Variables $GLOBALS['this_level'] = 0; $GLOBALS['last_parent_id'] = 0; // If Top of store then do nothing: if (sizeof($cPath_array) == 0 ) { return ''; } // Initialize HTML and info_box class if displaying inside a box if ($show_ulcats_as_box) { echo '<tr><td>'; $info_box_contents = array(); $info_box_contents[] = array('text' => 'Sub Categories'); new infoBoxHeading($info_box_contents, true, false); } // Generate a bulleted list (uses configuration options above) $categories_string = tep_make_cat_ullist(); // Output list inside a box if specified, otherwise just output unordered list if ($show_ulcats_as_box) { $info_box_contents = array(); $info_box_contents[] = array('text' => $categories_string); new infoBox($info_box_contents); echo '</td></tr>'; } else { echo $before_nobox_html; echo $categories_string; echo $after_nobox_html; } // Create the root unordered list function tep_make_cat_ullist($rootcatid = 0, $maxlevel = 0){ global $idname_for_menu, $cPath_array, $show_full_tree, $languages_id; // Modify category query if not fetching all categories (limit to root cats and selected subcat tree) if (!$show_full_tree) { $parent_query = ''; // $parent_query = 'AND (c.parent_id = "0"'; if (isset($cPath_array)) { $cPath_array_temp = $cPath_array; foreach($cPath_array_temp AS $key => $value) { if ($parent_query == '') { $parent_query = 'AND (c.parent_id = "' . $value . '"'; } else { $parent_query .= ' OR c.parent_id = "'.$value.'"'; } } unset($cPath_array_temp); } $parent_query .= ')'; } else { $parent_query = ''; } $result = 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 .'" '.$parent_query.' order by sort_order, cd.categories_name'); while ($row = tep_db_fetch_array($result)) { $table[$row['parent_id']][$row['categories_id']] = $row['categories_name']; } // $output .= '<div id="'.$idname_for_menu.'">'; $rootcatid = $cPath_array[0]; // echo $rootcatid; $output .= tep_make_cat_ulbranch($rootcatid, $table, 0, $maxlevel); // Close off nested lists for ($nest = 0; $nest <= $GLOBALS['this_level']; $nest++) { $output .= '</div>'; } $output .= ''; return $output; } // Create the branches of the unordered list function tep_make_cat_ulbranch($parcat, $table, $level, $maxlevel) { global $cPath_array, $classname_for_selected, $classname_for_parent; $list = $table[$parcat]; $this_class = 'subcat_parent'; while(list($key,$val) = each($list)){ if ($GLOBALS['this_level'] != $level) { if ($GLOBALS['this_level'] < $level) { $output .= "\n".'<div id="subcat_nest_' . $GLOBALS['last_parent_id'] .'" class="subcat_nest_div">'; $this_class = 'subcat_child'; } else { for ($nest = 1; $nest <= ($GLOBALS['this_level'] - $level); $nest++) { $output .= '</div>'."\n"; $this_class = 'subcat_parent'; } } $GLOBALS['this_level'] = $level; } // if (isset($cPath_array) && in_array($key, $cPath_array) && $classname_for_selected) { // $this_class = $classname_for_selected; // } else { // $this_class = 'subcat_no_children'; // } if (!$level) { // unset($GLOBALS['cPath_set']); // $GLOBALS['cPath_set'][0] = $key; $cPath_new = 'cPath=' . $key; } else { $GLOBALS['cPath_set'][$level] = $key; $cPath_new = 'cPath=' . implode("_", array_slice($GLOBALS['cPath_set'], 0, ($level+1))); } if (tep_has_category_subcategories($key) && $classname_for_parent) { $this_class = $classname_for_parent; $GLOBALS['last_parent_id'] = $key; } $output .= '<span class="'.$this_class .'">'; $output .= '<a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new) . '"' . $this_parent_class ./*$this_cat_class . */'>'.$val; if (SHOW_COUNTS == 'true') { $products_in_category = tep_count_products_in_category($key); if ($products_in_category > 0) { $output .= ' (' . $products_in_category . ')'; } } $output .= '</a>'; $div_id = 'subcat_nest_' . $key; $img_id = 'subcat_nest_img_' . $key; if (tep_has_category_subcategories($key)) { $output .= '<img src="/images/icon_plus.gif" style="line-height: 18px; position: absolute; right: 0px; top: 3px;" id="' . $img_id .'" onclick="javascript: show_subnav_div(\'' . $div_id . '\', \'' . $img_id . '\');"></span>'; } if (!tep_has_category_subcategories($key)) { $output .= '</span><br />'."\n"; } if ((isset($table[$key])) AND (($maxlevel > $level + 1) OR ($maxlevel == '0'))) { $output .= tep_make_cat_ulbranch($key,$table,$level + 1,$maxlevel); } } // End while loop return $output; } ?>
  10. I'd post this in the PayPal WPP post, but I don't think the problem is caused by that. There were some changes made to the core before I got to this project in many of the same files. Most notably, a 'bug fix' across nearly all the checkout pages that affects every instance in which options and attributes are queried and dealt with. Most notably on shopping_cart.php. The result is that PayPal displays, for a test item with pID of 51: Item # 51{1}1 () rather than the name of the product and the option (size = small) that I am expecting. The Order Process e-mail that's sent back, however, correctly lists the item name and the Option of small for size. My thought: Who cares? You have the order e-mail with the correct items and correct options.attributes, but the client wants it to reflect on PayPal and I don't know where to look. In the PayPal WPP files, I don't see where anything is being built in this way so as to come up with "Item # 51{1}1 ()" and neither do I see where the code might be in order.php or order_process.php. Any ideas on where I should be looking? Thanks. Client is furious that this is being hung up on such a small issue.
  11. This was an extremely popular module that made osCommerce very functional. Do you have discretion to put the module back up with notes on what needs to be done to make it compliant? Or, maybe e-mail it to rasadesign@gmail.com with notes on what is needed and I'll be happy to write whatever changes are necessary and repost it.
  12. Answering my own post: To change 'weight' into a rate by weight multiplier, declare weight as a global and add the line near line 165: Find: function determineShipping($table_cost) { global $shipping_num_boxes; for ($i=0, $n=sizeof($table_cost); $i<$n; $i+=2) { if ($this->order_total >= $table_cost[$i]) { $shipping_factor = $table_cost[$i+1]; } } if (substr_count($shipping_factor, '%') > 0) { $shipping = ((($this->order_total*10)/10)*((str_replace('%', '', $shipping_factor))/100)); } else { $shipping = str_replace('$', '', $shipping_factor); } if ($this->geozone_mode == 'weight') { $shipping = $shipping * $shipping_num_boxes; } return $shipping; } and change to: function determineShipping($table_cost) { global $shipping_num_boxes, $shipping_weight; for ($i=0, $n=sizeof($table_cost); $i<$n; $i+=2) { if ($this->order_total >= $table_cost[$i]) { $shipping_factor = $table_cost[$i+1]; } } if (substr_count($shipping_factor, '%') > 0) { $shipping = ((($this->order_total*10)/10)*((str_replace('%', '', $shipping_factor))/100)); } else { $shipping = str_replace('$', '', $shipping_factor); } if ($this->geozone_mode == 'weight') { $shipping = $shipping * $shipping_num_boxes; } if ($this->geozone_mode == 'weight') { $shipping = $shipping * $shipping_weight; } return $shipping; }
  13. Modifying the code so that each zone has a simple weight::rate multiplier? Essentially, I like the multizone feature, but I want it to figure out a simple rate per weight for each zone. Is there a way to change the PHP to do this? e.g. The rate for Massachusetts is $1.10 per every pound and the weight for CT is $0.96 per every pound. Since we are dealing with large furniture, doing this as a table if incremented weights of up to 1000 pounds would not work with 16 zones... the cost varience would be too high, or the table would be too large and cumbersome. Where would I change the code so that shipping_cost = (weight) * (zone_rate) where zone_rate is the rate I would have for that zone? Thank you very much.
  14. Tabula_Rasa

    Free Shipping plus other Ship methods + UPS

    There's still no response on this issues and my attempt at a hack actually doesn't work, as it causes the alternative shipping to be equal to $0.00 even after selecting a different shipping method. Did you ever solve this?
  15. Tabula_Rasa

    [contribution] Simple Template System (sts)

    Philip, this fix just tripled a whole days sales in less than an hour. Thank you. Just a note, if anybody comes up against it, there are invisible characters (3 of them), which looks like a bullet, if we copy and paste this code using a mac. The parse error says that an enexpected '{' was encountered. If you show invisibles and replace the character with space character, it solves the problem.