Jump to content


  • Content count

  • Joined

  • Last visited

  • Days Won


Everything posted by GLWalker

  1. Looks and performs well on iPhone 5 The only thing I can see would make it a better mobile experience is to make the complete LI row clickable, could probably be done using a data-attributte or simple css rule displaying the a element as block. Not a big deal though.
  2. @@joli1811 Its not showing the full option value because the dropdown has a style attribute coded into it: <select name="id[5]" style="width: 200px;" class="form-control"><option value="10">Download: Windows - English</option><option value="13">Box: Windows - English</option></select> Just a matter of removing that, but then BootStrap will take over and make it full width of its containing element.
  3. @@burt A question - Ive seen lots of commits on Harald's 2.3.4 branch - are these getting rolled into this release as well?
  4. I have a few more issues to address, Im going to make another fork - as I tend to just rape, plunder and bring mine to a totally hard to follow place - 1) Pagination - there is a bug where you can click on the disabled previous or next link and it sets the URI differently yet reloads the page with the same content. 2) New Products Module - I know its came up a lot, and Ive just been waiting - but I need to apply the same grid only elements to it that the grid/list view uses. No option for list view, only grid. But it should share the same markup and css for consistency. @@burt 3? - not sure about this one, but checkout_shipping_address.php - If a different shipping address is already selected, the row of addresses to select from, still displays the default address as selected (only that row under the details) <--- should that not be swiched from $customers_default_address to $sendto? and the same goes for checkout_payment_address.php
  5. @@wHiTeHaT I agree that something different, more elegant, should happen, but without having to implement another 3rd party script. I can see the accordion working well, if it can be laid the right way. I too had extended the category_tree class about the same time as Matt, and found the same issues that came up here - I had to add in an extra link inside the dropdown to navigate to the category root, and saw its weakness handling deeper levels. I *thought bootstrap 2.XX handled unlimited nesting?
  6. GLWalker

    Add on for weight attribute

    Are you really using 2.2 version? 2.3.4 is the current most secure version, and easier to modify (imo). Sounds like you already added some weight fields to the attributes? You also have to make changes to the shopping_cart class file to push the weight to the product @ checkout. There is an existing contribution that works just fine for any very version, I think it is called more products weight? No sure though, but its out there.
  7. @@grandpaj Code from 449 is for checkout_shipping.php, but its getting refurnished again.
  8. Oh no, you didn't just go there did you? The age old debate continues -- I think that the list groups would actually work out very well. Its not that much to change a table to an unordered list. I will convert over what I have redone and posy again.
  9. I guess its possible a payment module could make use of it if its there. A special note, or call to Credit Card images.
  10. I can find it in checkout_confirmation.php on any release I search on my local, and it's on Harald's latest release on GitHub line 238, https://github.com/haraldpdl/oscommerce2/blob/master/catalog/checkout_confirmation.php But I cannot find any payment module that uses it, its just $confirmation['fields'][$i]['title']; Maybe its very dated?
  11. @@grandpaj I built one that works, (Ive used it for various clients for a few years now) you can see it in my demo if you look at my post just a few up. When this build is released I will add it as a contribution, but as a general precaution, something like that would not be advisable for a core release for at least couple of reasons - 1) It's more info to capture in one shot, which can cause conflicts under certain situations, and more maintenance. 2) A lot of shops don't even use the checkout shipping page, if they sell virtual products, then that page can be bypassed completely. I coded my page not to display shipping methods/address at all if products are virtual, but really so no need to serve up more overhead if its not needed. So if it fits a shops needs, its great, but only a small portion of shops would really benefit from it.
  12. here is code snippet for checkout payment selection area : <!-- payment methods --> <div id="payment-select" class="row"> <div class="col-md-12"> <div class="panel panel-default"> <div class="panel-heading"><?php echo TABLE_HEADING_PAYMENT_METHOD; ?></div> <?php $selection = $payment_modules->selection(); if (sizeof($selection) > 1) { ?> <div class="panel-body"> <p><?php echo TEXT_SELECT_PAYMENT_METHOD ; ?></p> </div> <?php } elseif ($free_shipping == false) { ?> <div class="panel-body"> <p><?php echo TEXT_ENTER_PAYMENT_INFORMATION; ?></p> </div> <?php } ?> <table class="table table-striped table-condensed"> <?php $radio_buttons = 0; for ($i=0, $n=sizeof($selection); $i<$n; $i++) { ?> <?php if ( ($selection[$i]['id'] == $payment) || ($n == 1) ) { echo ' <tr id="defaultSelected" class="moduleRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, ' . $radio_buttons . ')">' . "\n"; } else { echo ' <tr class="moduleRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, ' . $radio_buttons . ')">' . "\n"; } ?> <th class="col-md-11"><?php echo $selection[$i]['module']; ?></th> <td align="col-md-1"> <?php if (sizeof($selection) > 1) { echo tep_draw_radio_field('payment', $selection[$i]['id'], ($selection[$i]['id'] == $payment),'required'); } else { echo tep_draw_hidden_field('payment', $selection[$i]['id']); } ?> </td> </tr> <?php if (isset($selection[$i]['error'])) { ?> <tr> <td class="error" colspan="2"><?php echo $selection[$i]['error']; ?></td> </tr> <?php } elseif (isset($selection[$i]['fields']) && is_array($selection[$i]['fields'])) { ?> <tr> <td colspan="2"><table style="border:none;"> <?php for ($j=0, $n2=sizeof($selection[$i]['fields']); $j<$n2; $j++) { ?> <tr> <td style="border:none;"><?php echo $selection[$i]['fields'][$j]['title']; ?></td> <td style="border:none;"><?php echo $selection[$i]['fields'][$j]['field']; ?></td> </tr> <?php } ?> </table></td> </tr> <?php } ?> <?php $radio_buttons++; } ?> </table> </div> </div> </div> <!-- payment methods -->
  13. @@burt Any reason why this portion of code was left out of the checkout_payment area? <?php } elseif (isset($selection[$i]['fields']) && is_array($selection[$i]['fields'])) { ?> <tr> <td colspan="2"><table border="0" cellspacing="0" cellpadding="2"> <?php for ($j=0, $n2=sizeof($selection[$i]['fields']); $j<$n2; $j++) { ?> <tr> <td><?php echo $selection[$i]['fields'][$j]['title']; ?></td> <td><?php echo $selection[$i]['fields'][$j]['field']; ?></td> </tr> <?php } ?> Also, have noticed when using a credit cart with input on checkout_confirmation, the area is split into two columns, on the left is a blank alert alert-danger div and the right is the alert alert-info div with the CC fields
  14. Also, without the old school select radio onclick javascript function, I can foresee some customers having difficulties selecting a method. Theres always that one who cant seem to click a radio button, but I think for accessibility reasons the customer needs to be able to click anywhere in the row and have that method selected. I'm just going off of customer service experience Ive seen in the past after changing such things for shop owners. Ive bypassed the onclick script in favor of labels with the for attribute before, but that only works when your using a method that offers various choices, for something like table or per item, there is no optional choice to wrap a label around, and if they click on the price, the radio wont be selected. If anyone wants to see it live, http://wsfive.com/bs-master login with test@@Tester.com test1 You can see it on checkout_shipping page right now, Ive yet to do the payment details yet. You can also use just the link with checkout.php to see a whole different page :thumbsup: <-- again, payment select is not redone. (And the comments travel from page to page without loosing content)
  15. Wow- been away a few days and look how much longer the thread grew! Good deal. So, looking further into the checkout process, I fell the actual process of selecting shipping and payment type is a bit clunky, I'm afraid real customers will become confused - as Ive seen the real customers become confused over the smallest little things. I redid the layout of the shipping methods, it uses tables again, but that is simply to give the end user a well defined area to make their choice from. Its not a bad table, it will still fit nicely in the various view ports, and it has been marked up with bootstrap. If anyone who has a version up could take this markup and place it in their checkout_shipping.php page, and give feedback, that would be great. I'll have it up in my demo site soon. Then I'll do the same for payment. <!-- shipping methods --> <div id="shipping-quotes" class="row"> <div class="col-md-12"> <div class="panel panel-default"> <div class="panel-heading"><?php echo TABLE_HEADING_SHIPPING_METHOD; ?></div> <?php if ( (sizeof($quotes) > 1 && sizeof($quotes[0]) > 1) && ($free_shipping == false) ) { ?> <div class="panel-body"> <p><?php echo TEXT_CHOOSE_SHIPPING_METHOD ; ?></p> </div> <?php } elseif ($free_shipping == false) { ?> <div class="panel-body"> <p><?php echo TEXT_ENTER_SHIPPING_INFORMATION; ?></p> </div> <?php } ?> <table class="table table-striped table-condensed"> <?php if ($free_shipping == true) { ?> <tr class="success"> <th colspan="3"><?php echo FREE_SHIPPING_TITLE; ?> <?php echo $quotes[$i]['icon']; ?></th> </tr> <tr id="defaultSelected" class="moduleRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, 0)"> <td><?php echo sprintf(FREE_SHIPPING_DESCRIPTION, $currencies->format(MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER)) . tep_draw_hidden_field('shipping', 'free_free'); ?></td> </tr> <?php } else { $radio_buttons = 0; for ($i=0, $n=sizeof($quotes); $i<$n; $i++) { ?> <tr class="info"> <th colspan="3"><?php echo $quotes[$i]['module']; ?> <span class="pull-right" style="margin-right:15%;"><?php if (isset($quotes[$i]['icon']) && tep_not_null($quotes[$i]['icon'])) { echo $quotes[$i]['icon']; } ?></span></th> </tr> <?php if (isset($quotes[$i]['error'])) { ?> <tr class="error"> <td colspan="3"><?php echo $quotes[$i]['error']; ?></td> </tr> <?php } else { for ($j=0, $n2=sizeof($quotes[$i]['methods']); $j<$n2; $j++) { // set the radio button to be checked if it is the method chosen $checked = (($quotes[$i]['id'] . '_' . $quotes[$i]['methods'][$j]['id'] == $shipping['id']) ? true : false); if ( ($checked == true) || ($n == 1 && $n2 == 1) ) { echo ' <tr id="defaultSelected" class="moduleRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, ' . $radio_buttons . ')">' . "\n"; } else { echo ' <tr class="moduleRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, ' . $radio_buttons . ')">' . "\n"; } ?> <td class="col-md-9"><?php echo $quotes[$i]['methods'][$j]['title']; ?></td> <?php if ( ($n > 1) || ($n2 > 1) ) { ?> <td class="col-md-2"><?php echo $currencies->format(tep_add_tax($quotes[$i]['methods'][$j]['cost'], (isset($quotes[$i]['tax']) ? $quotes[$i]['tax'] : 0))); ?></td> <td class="col-md-1 text-right"><?php echo tep_draw_radio_field('shipping', $quotes[$i]['id'] . '_' . $quotes[$i]['methods'][$j]['id'], $checked); ?></td> <?php } else { ?> <td class="col-md-3 text-right" colspan="2"><?php echo $currencies->format(tep_add_tax($quotes[$i]['methods'][$j]['cost'], (isset($quotes[$i]['tax']) ? $quotes[$i]['tax'] : 0))) . tep_draw_hidden_field('shipping', $quotes[$i]['id'] . '_' . $quotes[$i]['methods'][$j]['id']); ?></td> <?php } ?> </tr> <?php $radio_buttons++; } } } } ?> </table> </div> </div> </div> <!-- shipping methods -->
  16. @@Ken44 Thanks Ken I still have to wrap the new products module itself in the same markup as the products_listing, then everything will blend and perform the same - ( but no list option on new products ) The existing addons are a bit too resource intensive. The new category_tree class cuts down on SQL queries and loads much faster than anything that has ever been part of the osC stock build. In building a menu I have to keep that in mind and make sure that it does not pull extra overhead that doesn't need to be there. Henry's last code looks like its going to be the best to go with in that route, without having to make changes to the category_tree. I'll use it to make a horizontal menu and then let Gary decide if he wants to push it or not. If it makes it, great, if not it will be an addon - so its a win- win either way.
  17. @@wHiTeHaT Yes, at a glance this looks good to me, I will build a top nav with it, and we will see where it goes from there :thumbsup:
  18. @@wHiTeHaT Thats looks like it could be modified to work quite well and should not be too resource intensive. I'm going to work with that and your previous post when I get a chance too. :beer:
  19. No, the general idea is just to get the class to output the full tree, and nest the list properly. Then it can be made to use just about any style available, from the bootstrap split buttons, to their nav-bars with dropdown menus. Could probably even create some pretty neat tabbed interfaces too.
  20. This is what I did to the existing category infoBox on my build to give it the styling it has. This is very close to what we need to obtain a horizontal menu, just have to make sure the whole damn tree is exploded on initial load. $OSCOM_CategoryTree = new category_tree(); $OSCOM_CategoryTree->setCategoryPath($cPath, '<strong>', '</strong>'); $OSCOM_CategoryTree->setSpacerString(' ', 1); $OSCOM_CategoryTree->setParentGroupString('<li class="list-group-item nested"><ul class="list-group selected">', '</ul></li>', false); $OSCOM_CategoryTree->setChildString('<li class="list-group-item">','</li>'); $data = '<div id="bm-cat" class="panel panel-default">' . ' <div class="panel-heading">' . MODULE_BOXES_CATEGORIES_BOX_TITLE . ' <button type="button" class="infoBox-toggle" data-toggle="collapse" data-target="#bm-cat-body">' . ' <span class="sr-only">Toggle Navigation</span>' . ' <span class="caret"></span>' . ' </button>' . ' </div>' . ' <div id="bm-cat-body" class="infoBox-collapse collapse">' . ' <ul class="list-group">' . $OSCOM_CategoryTree->getTree() . '</ul>' . ' </div>' . '</div>';
  21. If anyone has time to study over the new category_tree class - maybe they could find the key to making a horizontal menu - Ive tried various things, and been able to generate a full list of everything, which is what needs to happen. But the list is not nesting properly. It outputs as so: <ul> <li>Category Name 0</li> <ul> <li>Category Child of 0</li> </ul> </ul> When it should be: <ul> <li>Category Name 0 <ul> <li>Category Child of 0</li> </ul> </li> </ul> I've tried doing this by using the existing functions, and even extending the category_tree, but I believe on of the protected functions is preventing me redoing the nesting. Anything but touching the actual class file :) Unfortunately I have no code examples of what Ive done to post, as when things get so far, I like to just start over fresh. However Tomato Cart uses the same category tree, though it has been slightly modified, and they have also extended the class to get their horizontal menu working, it can be seen at their demo site here: http://demo.tomatocart.com/ Their class file can be seen here: http://code.google.com/p/tomatocart-shoppingcart/source/browse/branches/1.1.9/includes/classes/category_tree.php
  22. I particularly like how when going through the checkout process, the shipping address and method are displayed in one panel style, and the billing address and payment method in another. The separation is good for taking in the info at a glance, and the different classes will make css customization a breeze.
  23. I like it. I changed some classes on mine, so it now looks different in the footer than the side column. The account box in yours is something I think is needed. I was also thinking a simple text box, which the store owner control's by way of the modules language file. This makes it modular, yet also easily customizable without a lot of markup.
  24. Agreed - my next plan is to simply overwrite the panel class for anything in the footer so things look more like they do in your example.