Jump to content
Latest News: (loading..)

burt

Team
  • Content count

    13,079
  • Joined

  • Last visited

  • Days Won

    477

Everything posted by burt

  1. YESSSSS! This. SO much this. Thanks @14steve14 Everything that you see in the basic Responsive Build is done for a reason, always be aware of this before offering solutions that will cause problems.
  2. These variables can be in any order.
  3. http://template.me.uk/frozen2bs4/index.php I still have some work to do (especially on the modules for index & index_nested & index_products). Always moving forward, even if in "hiding".
  4. Now you clearly see the problem. Cards are "nice", but are a PITA to correctly code.
  5. @piernas this approach works but takes away all of the good stuff that Cards brings. The reason for Cards is to entirely remove the Columns and Rows...and make flexbox do its thing without them.
  6. If you take a look at the "CARDS" module now, you hopefully will see my main issue, which I cannot now un-see. http://template.me.uk/frozen2bs4/ I set the parameters as so; SM - 2 (per row) MD - 3 LG and up - 4 As I also set it to show just 6 items, what happens in LG and up, is Fugly in my opinion; item | item | item | item item | item I can't find a way to do this; item | item | item | item item | item Can anyone find the answer ? ps: not bothered about the display of the price, name etc - that'll be squished as 4 boxes is too many in a row (for MD). Only set to 4 in MD to show what I am struggling with...
  7. Some type of images system would have been high up the to-do list for a future release (probably Final). I think I've talked about it previously; shopowner uploads one large image it is resized to (say) 5 different resolutions and saved appropriately tep_image is updated to use srcset srcset automatically works out which image is best shown at which resolution Maybe in some future code?
  8. Yes...in the example (to make the galaxy image larger) I just removed the two parameters in the tep_image call; SMALL_IMAGE_WIDTH & SMALL_IMAGE_HEIGHT. Replacing those makes the images all the same size.
  9. @timray @Stephan Gebbers It's possible to do whatever is required. But as this is a test project ... it is not likely to happen that I spend my time making tweaks.
  10. Parameters for choosing how many cards per row...across viewports
  11. Changed the CARD layout to make a better use of headers and footers. Now it looks better, to my eye. Another plus point for Cards; much easier for shopowner to decide how many products per row across different viewports. 2 for SM, 3 for MD, 4 for LG etc. All done in the Module now.
  12. Front page of http://template.me.uk/frozen2bs4/ now has a second "New Products for <month>" using the CARD system. To better show (one of the) differences between using the CARD system and usual COL system, I have increased the size of the image of the Galaxy Tab. You can plainly see 1 major difference; CARD: all boxes expand to the height of the tallest box COL: boxes are set at their own individual height To my eye, I prefer that boxes are their own height. What do you guys think? The same "equal height" effect can be achieved in the COL system in a different way, easily enough. I do not see any advantage to using CARD over COL... Code (in each Template) Size: CARD: 54 lines COL: 39 lines The CARD system requires more code to achieve little of benefit. Are there benefits (other than equal height) that I am not aware of ?
  13. The whole of bsv4 is using flexbox. I found cards quite difficult to get a handle on. I wasn't able to easily make them responsive, eg; XS: 1 (in a row) SM: 2 MD: 3 LG and XL: 4 I did get that working (hard coded), but it seemed like a "hack" to have to do. I will try to get that "hacked" code into a Module for the index page -> new products and clean it up a bit.
  14. From this point forward any thread or post containing personal insults or general negativity towards osCommerce or any of its Team Members will be removed. 

    Please report such threads or posts using the usual reporting procedure.

    Thank You

    1. wHiTeHaT

      wHiTeHaT

      That is exactly what i said.
      Keep up the spirit!

       

    2. burt

      burt

      Then lets do that.  Including ourselves.  No more shite in public threads.

  15. It (product page) is fully modular so can do as wanted regards layout.
  16. I gave up on trying to implement the jQuery Slim build, due to it not working with colorbox. Would have meant either; recoding colorbox removing colorbox in favour of something else similar that does work slim Slim saves a grand total of 6kb which is "not a lot". And as this mini project is for my benefit only, no need to use up more of my time on it. Thanks to all for testing. This mini project has allowed me to better understand the new features in BSv4, ready for the next major project.
  17. I don't expect this will be a publicly available thing; its a showcase of what the Responsive could (and should) have been had we got as far as Final. It will be available to some shopowners if they want it, but that will only be the handful of shopowners who are the diehard supporters of my efforts. Put simply; this is made to flatten my bsv4 learning curve.
  18. New progress bars are now on the Test Site. Obviously if you wish to see them, you need to be checking out. If you are checking you need an account, please at least use a real email address so that my server doesn't bounce back undeliverable messages at me, thanks. I hate seeing people test stuff and using (eg) wenvjowe@venvoevn.com type of bullcrap. Hooks System For anyone who knows a bit about the Hooks system, this has had an overhaul so that it is now possible to pass parameters through hooks; EG: checkout_shipping.php <?php echo $OSCOM_Hooks->call('progress', 'progressBar', [Parameters]); ?> And on EG checkout payment all you need to do is pass through a different Parameter, and that increases the display of the progress bar. Henceforther shopowners/developers can have two or more pages using the same Listener...just passing thru a different Parameter. And, even better, no limit on the what Parameters you want to pass through to your Listeners. #forward #we #go
  19. https://getbootstrap.com/docs/3.3/components/#progress They exist in bsv3 as well. They are broadly similar between bsv3 and bsv4
  20. New Progress Bars for Checkout Hooks system is updated to accomodate this. Now all you have to do is change 1 hook file and your changes are reflected on each page that has the progress bar. OLD: NEW: + Points: Removes about 10 lines of .css Can now affect all pages displaying the progress bar by amending one file (eg if you wish to display something else) - Points: Not as pretty as the older layout? Always moving forward, even if steps are small.
  21. There are many ways to make the boxes line up. The beauty is that each shopowner can do it the way they like to.
  22. Product Notifications

    I didn't. But if one was to use my guest notifications module from 29d20 (February 20 2016)...it should not be difficult to recode a portion of the above to make it fit.
  23. Product Notifications

    Yesterday I helped a shopowner with something and then at the end of the email chain this question came up; I don't. But I just wrote some code that might do a job, but it is UNTESTED and would be better as a Hook or module. For testing purposes, hardcode it. Here we go; Step 1 - Language Change admin/includes/languages/english/categories.php ADD: // notifications define('NOTIFICATION_BACK_IN_STOCK_SUBJECT', '%1$s is back in stock at %2$s'); define('NOTIFICATION_BACK_IN_STOCK_TEXT', 'Hi! We wanted to let you know that %1$s is back in stock at %2$s online shop!' . "\n\n" . 'Have a look: %3$s' . "\n\n" . ' Sincerely, %2$s'); define('NOTIFICATION_BACK_IN_STOCK_SENT', 'Success: %s emails sent!'); At this point you need to determine how you make stock changes. Some shopowners use the red/green selector. Some shopowners use the product_quantity input when editing product. Step 2 - Admin Page Change If you use the red/green selector admin/categories.php FIND: if (isset($_GET['pID'])) { tep_set_product_status($_GET['pID'], $_GET['flag']); } ADD AFTER: if ($_GET['flag'] == '1') { $notifications_query = tep_db_query("select customers_firstname, customers_email_address from customers where customers_id in (select customers_id from products_notifications where products_id = " . (int)$_GET['pID'] . ")"); $product = tep_get_products_name((int)$_GET['pID']); $url = tep_catalog_href_link('product_info.php', 'products_id=' . (int)$_GET['pID']); $subject = sprintf(NOTIFICATION_BACK_IN_STOCK_SUBJECT, $product, STORE_NAME); $message = sprintf(NOTIFICATION_BACK_IN_STOCK_TEXT, $product, STORE_NAME, $url); $mimemessage = new email(); $text = strip_tags($message); if (EMAIL_USE_HTML == 'true') { $mimemessage->add_html($message, $text); } else { $mimemessage->add_text($text); } $mimemessage->build_message(); $emails = 0; while ($notifications = tep_db_fetch_array($notifications_query)) { $mimemessage->send($notifications['customers_firstname'], $notifications['customers_email_address'], STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, $subject); $emails++; } $messageStack->add_session(sprintf(NOTIFICATION_BACK_IN_STOCK_SENT, $emails), 'success'); } If you use the product_quantity input (editing product) admin/categories.php FIND: if (tep_db_num_rows($product_images_query)) { while ($product_images = tep_db_fetch_array($product_images_query)) { $duplicate_image_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_IMAGES . " where image = '" . tep_db_input($product_images['image']) . "'"); $duplicate_image = tep_db_fetch_array($duplicate_image_query); if ($duplicate_image['total'] < 2) { if (file_exists(DIR_FS_CATALOG_IMAGES . $product_images['image'])) { @unlink(DIR_FS_CATALOG_IMAGES . $product_images['image']); } } } tep_db_query("delete from " . TABLE_PRODUCTS_IMAGES . " where products_id = '" . (int)$products_id . "' and id not in (" . implode(',', $piArray) . ")"); } ADD AFTER: if (($action == 'update_product') && ($_POST['products_quantity'] > 0)) { $notifications_query = tep_db_query("select customers_firstname, customers_email_address from customers where customers_id in (select customers_id from products_notifications where products_id = " . (int)$products_id . ")"); $product = tep_get_products_name((int)$products_id); $url = tep_catalog_href_link('product_info.php', 'products_id=' . (int)$products_id); $subject = sprintf(NOTIFICATION_BACK_IN_STOCK_SUBJECT, $product, STORE_NAME); $message = sprintf(NOTIFICATION_BACK_IN_STOCK_TEXT, $product, STORE_NAME, $url); $mimemessage = new email(); $text = strip_tags($message); if (EMAIL_USE_HTML == 'true') { $mimemessage->add_html($message, $text); } else { $mimemessage->add_text($text); } $mimemessage->build_message(); $emails = 0; while ($notifications = tep_db_fetch_array($notifications_query)) { $mimemessage->send($notifications['customers_firstname'], $notifications['customers_email_address'], STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, $subject); $emails++; } $messageStack->add_session(sprintf(NOTIFICATION_BACK_IN_STOCK_SENT, $emails), 'success'); } Done. Important Notes Untested. Try it at your own risk Untested. Make a fake product, make a couple of fake customers and sign up for notifications. Try updating the product. Untested. Did I mention... UNTESTED Would be better as a Hook or something but I am sure someone will do that after it is tested, because this is UNTESTED.
×