Jump to content
Latest News: (loading..)

Leaderboard


Popular Content

Showing most liked content since 06/30/2017 in all areas

  1. 12 points
    Harald Ponce de Leon

    Progress Update

    Hi All.. A quick progress update regarding what we've been working on recently. A new Community Team is being formed to help moderate community submitted content and to help with community relations and issues. This not only helps the developers in the team to focus more on code development and less on moderation, but also broadens the voice in the team when community related issues arise and are addressed. This new approach to the team is being ironed out and we'll be glad to invite more active users in the community to help out once everything is running smoothly again. For the curious, those we have initially invited can be seen on the forum staff page. An internal build of v2.3.5 has been in testing and this weekend will be spent fixing the known issues. A majority of reported issues and pull requests at Github have been addressed and will also make their way into v2.3.6 (the Community Bootstrap edition). These releases are planned to be the last in the v2.3.x release series to place all resources on v2.4/v3.0. Accommodations will be made if the community wish to continue working on v2.3.6 for future v2.3.x releases. More information about this will be announced with the releases. The next test builds will be made available to Ambassadors for a wider testing audience. Both releases will be officially pushed out this month. The forum software has been updated to the latest release series and introduces a new Clubs section to the forum. We've moved our partner announcements forum channels to the Clubs section where our partners can customize their own club sections further with logos and additional discussion channels. We're planning on adding multilingual Clubs in the near future, and also community requested clubs (eg, for community release editions). The upgrade of the forum software version was originally postponed due to changes made with user accounts and the integration we have with our main website. This also plays a role with the marketplace integration in v2.4 where user accounts are required. An online update for 2.4 will be pushed out soon to test the marketplace integration and user account logins/creations with. Release dates for v2.4 will be provided when the marketplace integration online update has been pushed out. Two new websites were planned to be launched in Q4 but are being pushed back to Q1 2018 to push our next releases out first. The new websites are for a proper commercial support inquiry / job marketplace website (to replace the not-so-user-friendly forum channel here in the forums), and a new user profile website (for Ambassadors) to highlight ones profile across all of our websites (submissions from our forums, live sites, and apps marketplace websites), with the focus on the person behind the screen name. Hope everyone has a great festive season!
  2. 10 points
    burt

    28d, 2018

    Third installment of the 28d Project. I missed last year for reasons, but this year it's back. I'm running it slightly differently to previous versions, as this time there will be no option to buy each days package - that was frustratingly difficult to manage - sorry. Instead there will be a very simple "buy now" price for everything, and that will go up in price as February goes by, therefore those who can buy earlier...pay less...and those who buy later...pay more. Hit the [Follow] button in the right hand corner of this page as I shall be updating this post as the days go by. Should anyone wish to pre-buy...thank you for your consideration and support. PM me and we can arrange it. Don't know what the 28d Project is? I make code available during February (each year, usually). This is code that I have created or updated and make available for an all-in price. Had a couple of questions by PM; Edge Compatible: Yes Gold Compatible: Yes(ish), you might need to update some files to the Edge version, I will point these out in the individual "readme" for each. Certainly nothing to be worried about! PHP7 Compatible: Yes Official osCommerce Compatible: No, sorry Core Code Changes: Will be kept to an absolute minimum, you guys know I hate to change Core and I know you guys hate Core Code Changes...but sometimes, it is, unfortunately, unavoidable. Progress: I have 21 things coded and ready for finalised checking. 1 thing is being live tested by a shop. 6 or 7 things more to write; ideas would be welcomed for small to medium things Thanks for all the PMs and Feedback so far!
  3. 9 points
    wHiTeHaT

    Admin to Bootstrap NO HTML changes

    Convert via jQuery your osCommerce admin to bootstrap the easy way, tutorial below the video. Video updated to V8 https://youtu.be/7v7LvPLyRYQ admin/includes/stylesheet.css (back-up & Replace): /* $Id$ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2014 osCommerce Released under the GNU General Public License */ /* body { font-family: Verdana, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 0.7em; } */ body { display: none; } /* links */ a { color: #000000; font-weight: normal; text-decoration: none; } a:hover { text-decoration: underline; } a.headerLink { color: #ffffff; font-weight: bold; text-decoration: none; } a.headerLink:hover { text-decoration: underline; } a.menuBoxHeadingLink { color: #616060; font-weight: bold; text-decoration: none; } a.menuBoxHeadingLink:hover { } a.menuBoxContentLink { color: #616060; font-weight: normal; text-decoration: none; } a.menuBoxContentLink:hover { text-decoration: underline; } a.splitPageLink { color: #0000FF; font-weight: normal; text-decoration: none; } a.splitPageLink:hover { text-decoration: underline; background-color: #FFFF33; } /* menu box */ .menuBoxHeading { color: #616060; background-color: #ffffff; } .menuBoxContent { color: #616060; } /* page */ /*body { background-color: #ffffff; color: #000000; margin: 0px; }*/ /*.headerBar { background-color: #B3BAC5; }*/ /*.headerBarContent { color: #ffffff; font-weight: bold; padding: 2px; }*/ /*.columnLeft { background-color: #F0F1F1; border-color: #999999; border-width: 1px; border-style: solid; padding: 2px; }*/ /*.pageHeading { font-size: 1.5em; color: #727272; font-weight: bold; }*/ /* data table .dataTableHeadingRow { background-color: #C9C9C9; } .dataTableHeadingContent { color: #ffffff; font-weight: bold; } .dataTableRow { background-color: #F0F1F1; } .dataTableRowSelected { background-color: #DEE4E8; } .dataTableRowOver { background-color: #FFFFFF; cursor: pointer; cursor: hand; } .dataTableContent { color: #000000; } */ /* info box .infoBoxHeading { color: #ffffff; background-color: #B3BAC5; } .infoBoxContent { color: #000000; background-color: #DEE4E8; } */ /* message box */ .messageBox { } .messageStackError, .messageStackWarning { background-color: #ffb3b5; } .messageStackSuccess { background-color: #99ff00; } /* forms CHECKBOX, INPUT, RADIO, SELECT, TEXTAREA, FILE { font-family: Verdana, "Helvetica Neue", Helvetica, Arial, sans-serif; } FORM { display: inline; } */ /* account .formArea { background-color: #f1f9fe; border-color: #7b9ebd; border-style: solid; border-width: 1px; } .formAreaTitle { font-family: Tahoma, Helveticy, Verdana, Arial, sans-serif; font-weight: bold; } */ /* attributes */ /*.attributes-odd { background-color: #f4f7fd; }*/ /*.attributes-even { background-color: #ffffff; }*/ /* miscellaneous */ .specialPrice { color: #ff0000; } .oldPrice { text-decoration: line-through; } .fieldRequired { color: #ff0000; } .errorText { color: #ff0000; } /* new messageStack styles .secInfo, .secSuccess, .secWarning, .secError { border: 1px solid; margin: 10px 0px; padding: 5px 10px 5px 50px; background-repeat: no-repeat; background-position: 10px center; border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; } .secInfo { border-color: #00529B; background-image: url('../images/ms_info.png'); background: url('../images/ms_info.png') no-repeat 10px center, url('../images/ms_info_bg.png') repeat-x; background-color: #BDE5F8; } .secSuccess { border-color: #4F8A10; background-image: url('../images/ms_success.png'); background: url('../images/ms_success.png') no-repeat 10px center, url('../images/ms_success_bg.png') repeat-x; background-color: #DFF2BF; } .secWarning { border-color: #9F6000; background-color: #FEEFB3; background-image: url('../images/ms_warning.png'); background: url('../images/ms_warning.png') no-repeat 10px center, url('../images/ms_warning_bg.png') repeat-x; background-color: #FEEFB3; } .secError { border-color: #D8000C; background-image: url('../images/ms_error.png'); background: url('../images/ms_error.png') no-repeat 10px center, url('../images/ms_error_bg.png') repeat-x; background-color: #FFBABA; } .secInfo p, .secSuccess p, .secWarning p, .secError p { padding: 2px; } #adminAppMenu { float: left; width: 190px; padding: 5px; } #adminAppMenu h3 { } #adminAppMenu ul { list-style: none; margin: -5px 0 -5px -10px; padding: 0; } #contentText { margin-left: 200px; }*/ /* Custom jQuery UI */ .ui-widget { } .ui-dialog { min-width: 500px; } /* buttons .tdbLink a { } .tdbLink button { } */ .selectwidthauto{ width:auto !important; } in admin/includes/template_top.php : [Viewport] DIRECTLY AFTER: <head> ADD: <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> [bootstrap css] BEFORE: <link rel="stylesheet" type="text/css" href="includes/stylesheet.css"> ADD: <link href="../ext/bootstrap/css/bootstrap.min.css" rel="stylesheet"> [Font-awesome css] BEFORE: <script type="text/javascript" src="<?php echo tep_catalog_href_link('ext/flot/jquery.flot.min.js', '', 'SSL'); ?>"></script> ADD: <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"> [Flot chart resize fix] AFTER: <script type="text/javascript" src="<?php echo tep_catalog_href_link('ext/flot/jquery.flot.time.min.js', '', 'SSL'); ?>"></script> ADD: <script type="text/javascript" src="<?php echo tep_catalog_href_link('ext/flot/jquery.flot.resize.min.js', '', 'SSL'); ?>"></script> OPTIONAL SUMMERNOTE WYSIWYG DIRECTLY ABOVE </head> ADD: <!-- include summernote css/js--> <link href="//cdnjs.cloudflare.com/ajax/libs/summernote/0.8.9/summernote.css" rel="stylesheet"> <script src="//cdnjs.cloudflare.com/ajax/libs/summernote/0.8.9/summernote.js"></script> admin/includes/template_bottom.php BEFORE: </body> ADD: <script> $(function() { //Prepare the DOM $(document).on("click", ".menu", function(){ osCMenu(this); }); $('body').prepend( "<div id='container-wrapper' class='container-fluid'><div class='row'></div></div>" ); columnLeft = $("<div class='col-md-2 menu-col'/>"); columnCenter = $("<div class='col-md-10 body-content-col'/>"); $('body .row').append(columnLeft, columnCenter); //Administrator Header Bar $('body').css('padding-top', '70px'); $('#adminAppMenu').appendTo('.menu-col'); //prepare table conversion $('table tbody tr.headerBar').parent().parent().addClass('table-2-nav'); //Convert logo to brand $('.table-2-nav a:first').addClass('navbar-brand'); $('.table-2-nav img:first').addClass('img-responsive').css('margin-top','-15px'); //wrap the logo and build the default nav $('.table-2-nav a:first').wrap( "<nav class='navbar navbar-default navbar-fixed-top'><div class='container-fluid'><div class='navbar-header'></div></nav>" ); //extend nav with toggle bar-button $('.navbar-header').prepend( "<button type='button' class='navbar-toggle collapsed' data-toggle='collapse' data-target='#bs-example-navbar-collapse-1' aria-expanded='false'><span class='sr-only'>Toggle navigation</span><span class='icon-bar'></span><span class='icon-bar'></span><span class='icon-bar'></span></button> "); //create the visible navigation menu $('nav div:first').append("<div class='collapse navbar-collapse' id='bs-example-navbar-collapse-1'><ul class='nav navbar-nav navbar-nav-left'></ul><ul class='nav navbar-nav navbar-nav-right pull-right'></ul></div>"); //collect links var navLeftLinks = $('#bs-example-navbar-collapse-1 ul.navbar-nav-left'); var navRightLinks = $('#bs-example-navbar-collapse-1 ul.navbar-nav-right'); $('.table-2-nav .headerBarContent:first a').each(function () { var $this = $(this); var list = $("<li/>"); list.append( $this ); navLeftLinks.append(list); }); navLeftLinks.prepend('<li><a href="#" class="menu"><i class="fa fa-caret-square-o-left" aria-hidden="true" data-toggle="tooltip" data-placement="bottom" title="Show/Hide menu"></i></a></li>'); var str = "<?php echo HEADER_TITLE_ADMINISTRATION; ?>"; var newhtml = $('ul.navbar-nav-left').html().replace(str, '<i class="fa fa-home" aria-hidden="true" data-toggle="tooltip" data-placement="bottom" title="'+str+'"></i>'); $('ul.navbar-nav-left').html(newhtml); var str = "<?php echo HEADER_TITLE_ONLINE_CATALOG; ?>"; var newhtml = $('ul.navbar-nav-left').html().replace(str, '<i class="fa fa-cart-arrow-down" aria-hidden="true" data-toggle="tooltip" data-placement="bottom" title="'+str+'"></i>'); $('ul.navbar-nav-left').html(newhtml); var str = "<?php echo HEADER_TITLE_SUPPORT_SITE; ?>"; var newhtml = $('ul.navbar-nav-left').html().replace(str, '<i class="fa fa-life-ring" aria-hidden="true" data-toggle="tooltip" data-placement="bottom" title="'+str+'"></i>'); $('ul.navbar-nav-left').html(newhtml); $('[data-toggle="tooltip"]').tooltip(); navLeftLinks.css('font-size','20px') //Collect log-in/-off link with Administrator name NavText = $('.table-2-nav .headerBarContent:nth-child(2)').html(); NavTextPlaceHolder = $("<p class='navbar-text navbar-right'>"); NavTextPlaceHolder.append( NavText ); navRightLinks.prepend(NavTextPlaceHolder); $('.navbar-text a:first').addClass('navbar-link'); //Show the Bootstrapped navigation bar $( "nav" ).insertBefore( $( ".table-2-nav" ) ); //Admin Language in navbar $("form[name=adminlanguage]").addClass('navbar-form navbar-right').prepend( "<div class='input-group language'></div>" ); $('select[name=language]').appendTo('.input-group.language'); $( "form[name=adminlanguage]" ).insertBefore( "nav ul.navbar-nav-right" ); //Convert osCommerce's page-headers to bootstrap $('table .pageHeading:first').contents().unwrap().wrap( "<div class='page-header'><h1></h1></div>"); $('.page-header').prependTo('.body-content-col').css('padding-bottom','0').css('margin','0'); //Search field in navbar $("form[name=search]").addClass('navbar-form navbar-search-form navbar-left').prepend( "<div class='input-group search'></div>" ); $('input[name=search]').before(function () { return $('<span class="input-group-addon search"/>', { for: this.name }).addClass('selectwidthauto').append(this.previousSibling); }).addClass('form-control selectwidthauto'); $("span.search").prependTo('.input-group.search'); $('input[name=search]').appendTo('.input-group.search'); $( "form[name=search]" ).insertAfter( "nav ul.navbar-nav-left" ); //Categories GoTo select in navbar $("form[name=goto]").addClass('navbar-form navbar-left').prepend( "<div class='input-group goto'></div>" ); $('select[name=cPath]').before(function () { return $('<span class="input-group-addon goto"/>', { for: this.name }).addClass('selectwidthauto').append(this.previousSibling); }).addClass('form-control selectwidthauto'); $("span.goto").prependTo('.input-group.goto'); $('select[name=cPath]').appendTo('.input-group.goto'); $( "form[name=goto]" ).insertAfter( "nav .navbar-search-form" ); //Orders Search field in navbar $("form[name=orders]").addClass('navbar-form navbar-search-form navbar-left').prepend( "<div class='input-group orders'></div>" ); $('input[name=oID]').before(function () { return $('<span class="input-group-addon orders"/>', { for: this.name }).addClass('selectwidthauto').append(this.previousSibling); }).addClass('form-control selectwidthauto'); $("span.orders").prependTo('.input-group.orders'); $('input[name=oID]').appendTo('.input-group.orders'); $( "form[name=orders]" ).append('<input type="hidden" name="action" value="edit">').insertAfter( "nav ul.navbar-nav-left" ); //Categories GoTo select in navbar $("form[name=status]").addClass('navbar-form navbar-left').prepend( "<div class='input-group status'></div>" ); $('select[name=status]').before(function () { return $('<span class="input-group-addon status"/>', { for: this.name }).addClass('selectwidthauto').append(this.previousSibling); }).addClass('form-control selectwidthauto'); $("span.status").prependTo('.input-group.status'); $('select[name=status]').appendTo('.input-group.status'); $( "form[name=status]" ).insertAfter( "nav .navbar-search-form" ); //Remove osCommerce's table-based navigation $('.table-2-nav').remove(); //Bootstrap the osCommerce's primary content table (center table) $('table tbody tr.dataTableHeadingRow').parent().parent().addClass('bootstrapped-table table table-responsive table-condensed table-hover table-striped table-bordered'); $('table tbody tr.dataTableRowSelected').addClass('warning') //Bootstrap the osCommerce's right table (edit data) $('table tbody tr.infoBoxHeading').parent().parent().addClass('infoBox-table info-table table table-responsive table-condensed table-bordered'); $('.info-table').next("table").addClass('infoBoxContent-table table table-responsive table-condensed table-bordered'); $('.info-table').next("form").addClass('form-table'); $('.form-table').children("table").addClass('info-table table table-responsive table-condensed table-bordered '); //Bootstrap the osCommerce's formArea tables (Customers edit) $( ".formArea table" ).addClass('table table-responsive table-condensed table-hover table-striped table-bordered') //Bootstrap jQuery-ui buttons $( "a.ui-button" ).removeAttr('class').addClass('btn btn-default').css({'margin-right': '4px'}); $( "button.ui-button" ).removeAttr('class').addClass('btn btn-primary').css({'margin-right': '4px'}); $( "#filters .btn" ).addClass('btn-sm') //jQuiry-UI button icons $( "span.ui-icon" ).addClass('pull-left'); //bootstrap pageNavigation links $( "form[name=pages]" ).addClass( "form-inline" ); $( ".splitPageLink" ).addClass('btn btn-default'); $( "select" ).addClass('form-control selectwidthauto'); //$( "input[type=radio]" ).wrap( "<div class='radio'><label></label></div>" ); //$( "input[type=checkbox]" ).wrap( "<div class='checkbox-inline'></div>" ); //build table headings $('.bootstrapped-table').each(function(){ $(this).prepend('<thead></thead>') $(this).find('thead').append($(this).find("tr:eq(0)")); }); $(".dataTableHeadingRow td").each(function() { $(this).replaceWith('<th>' + $(this).html() + '</th>'); }); $('.infoBox-table').each(function(){ $(this).prepend('<thead></thead>') $(this).find('thead').append($(this).find("tr:eq(0)")); }); //convert message tables to bootstrap //old message styles $('table tbody tr.messageStackSuccess').parent().parent().addClass('message-table table').insertAfter('.page-header'); $('table tbody tr.messageStackError').parent().parent().addClass('message-table table').insertAfter('.page-header'); $('table tbody tr.messageStackWarning').parent().parent().addClass('message-table table').insertAfter('.page-header'); //new message styles $('.secInfo').toggleClass('secInfo alert alert-info'); $('.secSuccess').toggleClass('secSuccess alert alert-success'); $('.secWarning').toggleClass('secWarning alert alert-warning'); $('.secError').toggleClass('secError alert alert-danger'); //add colspan to fist th on the orders section_products_content tab $('#section_products_content table tr th:first').attr('colspan', '2'); $('#section_products_content table').removeClass('table-bordered table-striped table-hover'); //Convert New Product to Bootstrap $("form[name=new_product] table table").addClass('table table-responsive table-condensed table-bordered'); //$("form[name=new_product] table table tr").removeAttr('bgcolor'); //Convert BannerManager to Bootstrap $("input[name=banners_title]").closest('table').addClass('table table-responsive table-condensed table-bordered'); //Convert osCommerce's footer to bootstrap $('table:last td').wrapInner( "<footer class='footer'><div class='container'><p class='text-muted text-center'></p></div></footer>" ); $('footer').insertAfter('body #container-wrapper'); //Put osCommerce's content to bootstrap column $('#contentText').appendTo('.body-content-col'); //clean-up tables $('.table') .removeAttr('border') .removeAttr('width') .removeAttr('height') .removeAttr('cellspacing') .removeAttr('cellpadding'); $("img[src='images/pixel_trans.gif']").remove(); $('td.pageHeading').remove(); $('fieldset').removeAttr('style'); $('legend').removeAttr('style'); $('tr').removeAttr('onmouseover').removeAttr('onmouseout'); $('table:last').remove(); //Convert inputs and textarea's $("input[type=text]").addClass('form-control selectwidthauto'); $("textarea").addClass('form-control'); //load summernote wysiwyg $("textarea[name^=categories_description]").addClass('summernote'); $("textarea[name^=products_description]").addClass('summernote'); $("textarea[name=comments]").addClass('summernote'); $("textarea[name=banners_html_text]").addClass('summernote'); //replace oscommerce's images with font-icons $("img[src='images/icon_up.gif']").replaceWith("<i class='fa fa-long-arrow-up' aria-hidden='true'></i>"); $("img[src='images/icon_down.gif']").replaceWith("<i class='fa fa-long-arrow-down' aria-hidden='true'></i>"); if (localStorage.getItem("adminToggleAppMenu") === null) { localStorage.setItem('adminToggleAppMenu', 1) } if (localStorage.getItem("adminToggleAppMenu") == 0) { $(".menu i").removeClass('fa-caret-square-o-left').addClass('fa-caret-square-o-right'); $(".menu-col").hide(); $("body .body-content-col").removeClass('col-md-10').addClass('col-md-12'); } if (localStorage.getItem("adminToggleAppMenu") == 1) { $(".menu i").removeClass('fa-caret-square-o-right').addClass('fa-caret-square-o-left');; $(".menu-col").show(); $("body .body-content-col").removeClass('col-md-12').addClass('col-md-10'); } if($('form[name=login]').length > 0){ $('.page-header').addClass('text-center'); $('table') .removeAttr('border') .removeAttr('width') .removeAttr('height') .removeAttr('cellspacing') .removeAttr('cellpadding'); $('table .infoBox-table').remove(); $('table .info-table').css({'width': '50%', 'margin': '0 auto', 'margin-top': '50px', 'margin-bottom': '50px'}); $('form[name=login]').insertAfter('#contentText'); $("input[type=password]").addClass('form-control selectwidthauto'); $(".body-content-col").toggleClass("col-md-10 col-md-12") columnLeft.remove(); } //convert jquery-ui accordion to bootstrap collapse $( "#adminAppMenu" ).accordion('destroy').addClass('panel-group').attr('role', 'tablist').attr('aria-multiselectable', 'true'); $('#adminAppMenu h3').each(function(i) { $(this).attr('id', 'page'+(i+1)).addClass('panel-title').find('a') .attr('role', 'button').attr('data-toggle', 'collapse') .attr('data-parent', '#adminAppMenu') .attr('href', '#collapse_'+(i+1)) .attr('aria-expanded', 'false') .attr('aria-controls', 'collapse_'+(i+1)) .parent().next() .attr('id', 'collapse_'+(i+1)).attr('class', 'panel-collapse collapse').attr('role','tabpanel').attr('aria-labelledby','heading_'+(i+1)); $(this).wrap('<div class="panel panel-default"><div class="panel-heading" role="tab" id="heading_'+(i+1)+'"></div></div>'); $('#collapse_'+(i+1)+' ul').addClass('list-group').find('li').addClass('list-group-item'); $('#collapse_'+(i+1)).insertAfter('#heading_'+(i+1)); }); //Keep state of collapse menu via localStorage var adminCollapseAppMenu = localStorage.getItem('adminCollapseAppMenu'); if (!adminCollapseAppMenu) { adminCollapseAppMenu = []; localStorage.setItem('adminCollapseAppMenu', JSON.stringify(adminCollapseAppMenu)); } else { adminCollapseAppMenuArray = JSON.parse(adminCollapseAppMenu); var arrayLength = adminCollapseAppMenuArray.length; for (var i = 0; i < arrayLength; i++) { var panel = '#'+adminCollapseAppMenuArray[i]; $(panel).addClass('in'); } } $('#adminAppMenu').on('shown.bs.collapse', '.panel-collapse', function() { adminCollapseAppMenu = JSON.parse(localStorage.getItem('adminCollapseAppMenu')); if ($.inArray($(this).attr('id'), adminCollapseAppMenu) == -1) { adminCollapseAppMenu.push($(this).attr('id')); }; localStorage.setItem('adminCollapseAppMenu', JSON.stringify(adminCollapseAppMenu)); }); $('#adminAppMenu').on('hidden.bs.collapse', '.panel-collapse', function() { adminCollapseAppMenu = JSON.parse(localStorage.getItem('adminCollapseAppMenu')); adminCollapseAppMenu.splice( $.inArray($(this).attr('id'), adminCollapseAppMenu), 1 ); localStorage.setItem('adminCollapseAppMenu', JSON.stringify(adminCollapseAppMenu)); }); }); //Prevent jQuery-UI's CSS showing up on pageLoad $(window).load(function() { // When the page has loaded $("body").fadeIn(100); }); </script> <?php if (tep_session_is_registered('admin')) { ?> <script> function osCMenu() { event.preventDefault(); if (localStorage.getItem("adminToggleAppMenu") == 1 ? localStorage.setItem('adminToggleAppMenu', 0) : localStorage.setItem('adminToggleAppMenu', 1)); if (localStorage.getItem("adminToggleAppMenu") == 1 ? $(".menu i").removeClass('fa-caret-square-o-right').addClass('fa-caret-square-o-left') : $(".menu i").removeClass('fa-caret-square-o-left').addClass('fa-caret-square-o-right')); if (localStorage.getItem("adminToggleAppMenu") == 1 ? $(".menu-col").show() : $(".menu-col").hide()); $(".body-content-col").toggleClass("col-md-10 col-md-12") } </script> <?php } ?> <script src="../ext/bootstrap/js/bootstrap.min.js"></script> OPTIONAL SUMMERNOTE WYSIWYG if you choose to want the wysiwyg: BEFORE <script src="../ext/bootstrap/js/bootstrap.min.js"></script> </body> </html> ADD: <script> $(function(){ //SUMMERNOTE WYSIWYG OPTIONAL: $('.summernote').summernote(); }); </script>
  4. 8 points
    Wish everyone Happy Holidays and Merry Xmas... Best wishes for the coming year, hopefully 2018 will be the year for osCommerce to come alive again. Special thanks to all those who have supported the Community Version and very special thanks to all my clients, all of whom I consider friends. Cya on the flipside!
  5. 7 points
    This is a admin sidebar that replaces the stock menu. It can be expanded or condensed on a column of icons. It also adds bootstrap framework to admin. Hope you enjoy it. Please comment here if you have any improvements or find any problem. Download: https://apps.oscommerce.com/ebjVY&admin-responsive-sidebar-with-bootstrap
  6. 7 points
    frankl

    2.4 Series

    Harald I can appreciate all the work you are doing behind the scenes to unify the osCommerce ecosystem, and I see that you have a vision. It's great that you are getting stuck back into it, lots of people were getting frustrated at a lack of progress so it will be great to shut down the negativity with these new releases (even tough they are more than long overdue!) Keep up the great work, it will be terrific to see things pick up again. I have to say that you owe @burt a big debt of gratitude, I hope you are going to do something special for him.
  7. 6 points
    burt

    28d, 2018

    Day 01 - Better Stock Message This is a Content Module that sits on shopping_cart.php which displays a better stock message. Core Code Changes YES - 1 line of code on shopping_cart.php Existing New Module Admin
  8. 6 points
    GLWalker

    Ive got a suprise coming

    And here's some general usage: https://youtu.be/dLgiD1FoTj4
  9. 6 points
    surfalot

    Surfalot CMS App Support

    Surfalot CMS is an osCommerce App designed to help the developer and shop owner alike build, maintain, and organize content easily in one place. TinyMCE is integrated to provide WYSIWYG content editing. Create new content and insert it into your navigation quickly and easily directly in the admin. Edit content on existing pages by placing a small template code snippet on your target page. The responsive features of osCommerce v2.3.4 Community Edition are maintained throughout the App. Full osCommerce built-in cache support is available. If your shop runs with osCommerce cache, Surfalot CMS will cache all the page queries so your shop maintains peak performance. Dynamic content from the additional shortcode module is still injected at display time. This is designed specifically for osCommerce v2.3.4 Community Edition. This project was started to see how far I could stretch the "no core changes" principles driving this fabulous osCommerce version with content creation. osCommerce v2.3.4 Official is also supported. Main Features Create and WYSIWYG Edit Site Pages Create and WYSIWYG Edit Content and Blocks Manage page titles, page content, breadcrumb, and meta tags in the admin Create Navigation with a Navbar Module and Sidebar Box Module osCommerce Cache Support Easy install App requires changes to only a few files Place content using existing osC Template groups and create your own Integrated TinyMCE WYSIWYG editor Navigation Features Full featured Navigation manager Manage your Navbar menu with text, links, and existing modules Manage a sidebar information box with new or existing pages and links Specify Font Awesome icons for all Navbar items Compatible with existing Navigation modules Include Surfalot CMS page items anywhere in the Navbar Download: https://apps.oscommerce.com/iJnr7
  10. 6 points
    I suggest not reading any of those SEO "experts" and just focus on giving your customers a great experience. Repeat business is what you want, not a continual frenetic hunt for new clients through Google.
  11. 6 points
    raiwa

    Slim Checkout for BS

    Slim-Checkout Common opinion is that the checkout process should be as "slim" as possible. This means to hide all page elements which are not strict necessary to show to the customer a simple clean layout, so nothing disturbs his attention from the purchase process. This add-on allows to do it by simple settings in a Header Tag module. Git Hub Repository: https://github.com/raiwa/Slim-Checkout/tree/master What it does: - allows to hide elements on checkout pages - optional hide on checkout pages (checkout_shipping.php, checkout_payment.phpheckout_confirmation.php and checkout_success) - optional hide also on shopping_cart.php - select each group to hide (navbar, header area, boxes, footer and footer suffix Installation: - copy all new files - install and adjust Slim Checkout Header Tag testing , Bug reports and suggestions very welcome. rgds Rainer
  12. 6 points
    Addon is now available. Congratulations!
  13. 6 points
    Edge is now mirrored to the recent v2.3.4.1
  14. 6 points
    burt

    2.4 Series

    Thank You Frank. If it was not for you and a handful of other shopowners...I dread to think where osCommerce would be right now.
  15. 5 points
    burt

    28d, 2018

    Day 22 - More Product Tabs I have some more Tabbed goodness for you, these are used with the 28d02 set of modules. Core Code Changes NONE Tabbed X-Sell Set up X-selling on a per product basis. Show the X-Sells in a Tab! Note: Requires a previous X-Sell system of mine, included. Tabbed Social Sharing Much better looking Social Share Icons shown in a Tab! Note: Requires a previous social modules of mine, included. Tabbed Gallery This one I particularly like as I found a way to add in more Images ... by changing 1 admin setting they can then be shown in a Tab In standard osC, you get a gallery looking like this: By turning on the Tabbed Gallery and changing 1 osC setting...it transforms into this: Summary Three useful additions to the Tabbed System! Note While coding up these modules, I did find a tiny bug in the main p_i module, this would not have shown itself with the original included modules. Bug Hotfix will also be sent tonight.
  16. 5 points
    Tsimi

    ULTIMATE Seo Urls 5 - by FWR Media

    I just quote from google All what google says is they recommend or say it is good practice to make the URLs read-friendly so that customers/users can read or use the URL as link or navigation guide. It doesn't say one word that it will improve your SEO because of that. Google just says you should keep it organized. Another quote Again, no mention of SEO benefit. Visitor friendly does not equal better SEO or SEO results. Lastly, everyone can do what they want with their shop site it is their website and they should know what their customers might want. Look at Amazon, eBay or some other big shop they all have different URLs, some long, some short, some easier to read, some are super long and complicated. Important is that the "real" SEO stuff in your shop is working as it should then you'll end up getting good search results. So what @burt said isn't wrong at all. User friendly URLs have nothing to do with SEO.
  17. 5 points
    burt

    Grid List - Cookie

    Grid List is remembered via Cookie. This means loading in this file; https://github.com/gburton/Responsive-osCommerce/blob/master/ext/jquery/cookie.js It's not a big file, but it can be got rid of as so; Change these two lines: https://github.com/gburton/Responsive-osCommerce/blob/master/includes/modules/header_tags/ht_grid_list_view.php#L46-L47 To: $grid_list_js = <<<EOD <script>$(function() { var cc = localStorage['list_grid']; if (cc == 'list') { $('#products .item').removeClass('grid-group-item').addClass('list-group-item'); } else { $('#products .item').removeClass('list-group-item').addClass('grid-group-item'); } $(document).ready(function() { $('#list').click(function(event){ event.preventDefault(); $('#products .item').addClass('list-group-item').removeClass('grid-group-item'); localStorage['list_grid'] = 'list'; }); $('#grid').click(function(event){ event.preventDefault(); $('#products .item').removeClass('list-group-item').addClass('grid-group-item'); localStorage['list_grid'] = 'grid'; });});});</script> EOD; $oscTemplate->addBlock($grid_list_js . PHP_EOL, $this->group); Save file and upload. You should see no change at all in functionality. HOwever your site is now loading faster as it does not have to load the cookie.js file. Thoughts and Feedback appreciated. And code changes. Etc and so on. Pitch in.
  18. 5 points
    GLWalker

    Ive got a suprise coming

    How about this for install instructions https://youtu.be/cwaid91cp1A
  19. 5 points
    Looking to do a new 28days project so if anyone has an idea for a SMALL or MEDIUM sized piece of code, let me know...
  20. 5 points
    Tsimi

    Slim Checkout for BS

    @raiwa Well done! We appreciate all the hard work you put into your addons and projects but please do me a favor and don't work too much/hard. In the past I/we have lost 2 very good friends from this forum and the last thing I remember was, they were working hard on some addons/projects and it could have been just mere coincidence or just fact that they overworked themselfs till their body gave up. You maintain multiple addons, you work with me on the Point and Rewards module, Sloppy words cleaner and, and, and.... Long story short, watch your health and take enough rest so that we will be able to enjoy you and your work for many years to come. That goes for all of you out there. osC is nice and all but it won't bring you anything if you work yourself to death. Now back to work....
  21. 5 points
    Hi All.. Both v2.3.5 and v2.3.6 were planend to be released today (end of August) however a few more days is needed. This topic will be updated on the weekend with the date next week when the releases will be pushed out. Kind regards,
  22. 4 points
    burt

    28d, 2018

    Day 20 - Security Questions I'm sure you've all experienced those questions that sites ask; What was the name of your first cat? What was your mothers maiden name? etc etc They do that to increase security, as only you know the answers you gave...and no-one else should. I have made such a thing for osCommerce. It takes 1 random question from your list of questions, it then sees if the answer given by the customer matches what they originally answered. If yes, happy days. If no, error out and refuse action. Core Code Changes YES. 3 lines of code on each form you want to protect. Everything else...no core changes at all. Admin Side (New Infobox Link) Admin Side (page for shopowner to add in questions) Shop Side (link in account.php to answer security questions) - "secure your account" Shop Side (new page for answering security questions) Shop Side (example of outputted question) - this example is account_edit.php Shop Side (example of failed question) Summary An easy way to give an extra layer of security to your customers. Consisting of Admin Page + Language File Admin Box Link + Language File Shop Side Page + Hook + Language File Account Module + Language File
  23. 4 points
    This addon minifies the shops css file. If multiple files are selected, it will combine them all into one file. This can reduce the time it takes for the shop to load. Depending upon the size of the css file and how many there are, the page load speed can be reduced by several seconds. It works in any oscommerce shop. For the 2.3.4 shops (both official and Responsive versions), the installation just involves uploading files. For older shops, one change may be needed.
  24. 4 points
    jerone

    PHP 7.2 each() function deprecated

    When you are upgrading OsCommerce to be compatible in +PHP7.2 versions, here is a pattern on how to update while = each() loops to foreach, which is said to be like 10 times faster, too! Case 1: Missing $value reset($array); while (list($key, ) = each($array)) { Update to: foreach(array_keys($array) as $key) { Case 2: Missing $key reset($array); while (list(, $value) = each($array)) { Update to: foreach($array as $value) { Case 3: Not missing anything reset($array); while (list($key, $value) = each($array)) { Update to: foreach($array as $key => $value) {
  25. 4 points
    burt

    Font Awesome v5

    FA have made a lot of change from v4 to v5. This includes a lot of icon name changes. The changes that we use in Core are [ from -> to ]; fa fa-cc -> far fa-credit-card fa fa-check-square-o -> far fa-check-square fa fa-clock-o -> far fa-clock fa fa-commenting -> fas fa-comment-alt fa fa-pencil-square-o -> far fa-edit fa fa-pencil -> fas fa-pencil-alt fa fa-refresh -> fas fa-sync fa fa-remove -> fas fa-times fa fa-send -> fas fa-paper-plane fa fa-sign-in -> fas fa-sign-in-alt fa fa-sign-out -> fas fa-sign-out-alt fa fa-star -> fas fa-star fa fa-star-o -> far fa-star fa fa-trash fa fa-cc-amex fa fa-cc-discover fa fa-cc-mastercard fa fa-cc-paypal fa fa-cc-stripe fa fa-cc-visa -> -> -> -> -> -> -> fas fa-trash-alt fab fa-cc-amex fab fa-cc-discover fab fa-cc-mastercard fab fa-cc-paypal fab fa-cc-stripe fab fa-cc-visa The easiest way to do this is to perform a global search/replace for each one of the above. This can be done using a tool such as beyond compare or wingrep, winmerge etc - whatever your tool of choice is. If your site is online, you could do this using grep (assuming your hosts let you). After the icon names are changed, you must perform a change in /includes/template_top.php and a change in /includes/languages/english.php There is also a Shim file that can be utilised, if you want to take a shortcut. In this case, read this page and be aware that I offer no help with Shim, so experiment yourself...and report back your findings. I suggest doing a proper upgrade in preference to using the Shim method.
  26. 4 points
    burt

    28d, 2018

    Day 11 - Password Reinforcement This HT module allows you to insert a message on pages that have a password input, which reminds the Customer that their password should be unbreakable. Core Code Changes NONE! Admin Side On the Admin Side, you have two changable entries; - password length - require special ($&^ etc) Shop Side As the Customer is typing their password, the red bullet points change to green, signifying they have that "thing" in their password. Cool! Note This system is a reinforcement message only. It still allows Customers to insert their own password if they wish.
  27. 4 points
    burt

    28d, 2018

    Day 08 - Country & State Selector This is a HT module that changes the function of the country dropdown and the state dropdown/input box. The Country is always a dropdown, and the State can sometimes be a Dropdown, or sometimes be an Input Box - bear this in mind when reading the rest of this post! Core Code Changes: NONE! Admin Side, Module We start with this image so that I can explain some of the options. Require Input Can be True of False. If "True", the State INPUT BOX must be filled in. If "False", the Placeholder changes to "Not Required" and the input does not need to be filled in. Default Country Set this to the Country Numeric ID you wish the country dropdown to default to. If a default country is inserted *and* that default country has zones attached (eg Austria, USA etc)...the State dropdown will also be perfect on page load. Allowed Countries Insert a CSV of Country Numeric IDs. Any country not in this list will not show in the country dropdown. Readonly Dropdown If you sell to only one country, set this to True. This would also require "Default Country" to be set. Shop Side: This image shows how the system looks in action, on page load. The State/Province is greyed out asking the customer to first select their country. The customer now selects their country. The only countries that show are those set up in "Allowed Countries". The customer choose (eg) USA. The State dropdown now activates and allows the Customer to select their State. WAIT. The Customer is in the UK and misclicked! They hit themselves in the balls and click the "United Kingdom" in the Country dropdown. As the UK has no Zones attached *AND* "Require Input" is False...the State system re-activates and changes to a normal Input Box! Conclusion This system allows you to remove countries from your lists without having to literally remove them in admin. This system makes things a lot easier for the customer if the country they select has zones that need to be selected.
  28. 4 points
    burt

    28d, 2018

    Day 07 - Per Product "Contact Us" This is a product_info Content Module that adds in a button which leads to a per-product contact us form. This could be used for quoting a customer, or for general enquiries about a particular product. On the contact form, the user is asked for name, email and comments. These are emailed to the Store Owner. If there is enough demand, this can be made into something more - each shopowner might have different ideas...hopefully. Core Code Changes NONE! Shop Side New Button in product_info.php Shop Side New Contact Page Returns back to the product after sending Admin Side
  29. 4 points
    burt

    28d, 2018

    Day 06 - Product Terms This consists of a product_info.php Content Module. And a new Admin Page. The basis of the idea is to allow you to attach "terms" to products. These terms are more than just a few words (aka folksonomy), but could be a whole paragraph or more. On the Admin Side, you get a whole new page for adding in your Term (Name and Description): A Core Code change :( is required in admin/categories.php to allow you to attach Terms to Products: On the product_info.php page, each "term" attached shows a Button When a button is clicked, a Modal Window (aka popup) is invoked, showing the Term Description Summary: Admin, just upload, no worries: - New Page for making Terms - New Link in Localization Side box Admin, core code change: - categories.php Shop Side, just upload, no worries: - New Content Module - New Ajax script for showing the correct data in the popup window
  30. 4 points
    GLWalker

    [Contribution] Customer Support Portal

    This is the support thread for the Customer Service Portal https://apps.oscommerce.com/xihXD&customer-service-portal The primary goal of the Customer Support Portal is to allow osCommerce shop owners to allow their employees to work on order fulfillment and customer support inquiries without having to allow direct admin access. Additionally it serves as a full fledged order placement system that will work with a shops existing payment methods, as well as a couple of new payment modules that could be useful in case alternate means of payment processing are desired, or in person cash sales are needed. The Customer Support Portal also allows a true guest checkout option. No customer is created if this option is used. All customer information is stored only in the actual order information. There is a quick link in the Customer Portal Header menu that allows guest orders to be viewed separately from the rest of the store orders. Please note that in the ht_customer_service module settings there is an email field to fill out, by default it uses the store owners set email address. This email is used for certain functions within the Customer Service Portal, such as a placeholder email in guest account creation. It will always be populated on the guest customers information field, just to skip the additional step of gathering an email address from a guest. Whenever done with guest accounts, or even logging into an existing customers account always go back to the dashboard. This resets the session for that particular customer. If you are in a customers account, then you have to take on a session allowing you to access their info, the dashboard kills any sessions that are not related directly to you the customer service agent. If you are using the cash payment option, you will need to adjust the sort order of you order total module sp that the order totals and cash back amounts are computed correctly. Helpful Videos: https://www.youtube.com/watch?v=cwaid91cp1A&feature=youtu.be https://www.youtube.com/watch?v=dLgiD1FoTj4&feature=youtu.be Known issues: This plugin has been used in working shops for a number of years and proven to be stable. There are howver 2 issues I am aware of. 1) If a product in the cart has attributes, the update quantity field wont work properly. If a different quantity is desired, just delete it and add the correct quantity from the product listing itself. 2) I have not noticed this until testing on PHP 7.0, when using the cash payment option, the update button needs to be clicked twice. Feel free to post with comments or suggestions.
  31. 4 points
    I think I've found a bug in the in checkout_shipping.php that will allow customers to get free shipping, even when they haven't met the required amount. I saw it happen more frequently in my shop where people get free shipping for no reason and think I have found the bug. When it happens: If you have set up your store to charge, for instant, 5,00 for shipping but give free shipping from a certain amount, lets say 20,00, and the customer places a order of 16,00. Then the customer goes to the order process, it will be charged a 5,00 shipping fee on the checkout_shipping.php page and clicks next. But if the customer will go back to change something after clicking next on checkout_shipping.php, the next time the customer gets tot the checkout_shipping page, the shop will no longer charge a shipping fee but gives free shipping, even though the order total is just 16,00 and does not met the 20,00 minimum. If you repeat the process by clicking next, after that go back to the shop and go trough the checkout process again, it will undo the free shipping.But redoing it again, will give you free shipping again. It is endless. What I have found, is that after clicking next on the checkout_shipping.php, it will store the order total at that moment. In this case product (16,00) + shipping (5,00) = order total (21,00). If you go back at the store tot change something and go back to the checkout process, it remembers the order total from before, which is 21,00 in this case, and thus the shop decides to not charge a shipping fee since the amount is more than 20,00. But at checkout_confirmation.php, it recalculates the order total without the shipping fee stored before. Thus the total is back to 16,00 again, but without the shipping fee checkout_shipping.php is responsible for. It does not work if the product cost and shipping fee does not meet the minimum amount for free shipping. Product cost of 14,00 and shipping fee of 5,00 with a minimum of 20,-- for free shipping never gives the faulty order total. The solution I have found is to change a small line of code in checkout_shipping.php. Original at line 94 if ( ($pass == true) && ($order->info['total'] >= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) ) { $free_shipping = true; Changed line if ( ($pass == true) && ($order->info['subtotal'] >= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) ) { $free_shipping = true; This way it will always look at the order subtotal that never has the shipping fee included instead of the total. For as far as I was able to test this, it worked every time.
  32. 4 points
    https://apps.oscommerce.com/m2hDP&rma-returns-system-for-osc2-3-4bs Full product returns system for osCommerce. Features · No core file changes needed, just upload to your store. · One click install. · Works with PHP 7.1 and Edge · Create returns from admin, or allow customers to create their own, or both. · You choose which order statuses orders must be at for customers to return items. · You choose how many days after ordering customers can return items from an order. · Includes issuing of discount coupons direct from the returns admin page*. · Includes Paypal refunds direct from the returns admin page**. Partial refunds OK. · If you require serial numbers to be entered this can be turned on in admin. You can also make serial numbers optional or compulsory. · Return items to inventory if you desire, just tick a box on the returns admin page. · Set a default restocking fee, and inform the customer when they fill in the return request. · Terms and conditions can be shown to customers before they fill in a return request, if so they must agree to continue. They can also have the terms and conditions emailed to their email address. · One click comments when updating orders. · Unlimited number of return reasons. · Unlimited number of refund methods. · Only logged in customers can create a return request. · Search for RMAs in admin by RMA Number, customer name, or order id · Will not create duplicate RMA request numbers.
  33. 4 points
    ArtcoInc

    appearance of cart in 2.3.4.1

    @helenium7 If you've been on this forum for any length of time, you'd know that there is a long running issue (years, in fact) regarding the 'current' release of osCommerce. Yes, the web site says that 2.3.4.1 is the latest 'official' release. However, 2.3.4.1 is just a hot-fix to version 2.3.4, which is several years old. The community (lead by @burt) got together and made the Responsive version of osCommerce. As the name implies, it is responsive, meaning it will adjust how the store is displayed on a phone, a tablet, or a desktop. osC 2.3.4.1 does not! With the world moving more and more to mobile devises, this is very important. In addition, the Responsive version (sometimes called the Bootstrap version, or the community version) is PHP 7 ready. Any store built on 2.3.4 WILL CRASH when your host upgrades their version of PHP. Also, the Responsive version is much more modular, meaning you can turn features on or off, and even add new features, all without changing any code. So, the advice that @raiwa and @MrPhil gave you IS helpful. Yes, the latest 'official' version is 2.3.4.1. Yes, this is an issue that has been going on for several years. And yes, you do not need to follow their advice. It's your store, do with it as you wish.
  34. 4 points
    @mgutt 2.3 core base was outdated in ~2012. Latest 2.3.x version upgrades tried to adapt technical requirements and security fixes but we didnt be able to step forward... Next v2.3.6 release wont be the Holi Gral even though many community works was built in. We use BS for ages which is not a secret. It was important adaptaion of responsibility! Some of us developed the brilliant v3 alfa 5 anno but the community didnt want it so opencart was born. You can see the shared ecommerce results... We should separate template files in v2.4 and it will be better than v3 alfa 5 ever thanks to v3 backports. If someone wants v2.3BS than use it. If another wants something better than use v2.4. The mistake wont be again if we have modern core in the battle.
  35. 4 points
    raiwa

    Slim Checkout for BS

    I consider the actual Git Hub version final. Resume of the last updates: optional hide on checkout pages (login.php, checkout_shipping.php, checkout_payment.phpheckout_confirmation.php and checkout_success) select on which pages to hide each area by checkbox list select each group to hide (navbar, header area, boxes, footer and footer suffix define content width if side columns are hidden, allows to control if main content gets stretched or keeps withe space for side columns optional customized list of header modules to keep showing if header area is hidden. Update from previous versions: uninstall ht module, replace ht module, reinstall ht module. I'll keep it for around one week without touching. Please try and let me know any issues. Then it will be published. If I find time Ill try to go for the version to control each individual module.
  36. 4 points
    burt

    Top Reasons for Shopping Cart Abandonment

    Here's another thought. On the shopping_cart page a new customer has no way to know how long the checkout process is going to be/take. Why not extend out the stepwizard into the cart page, and/or put some text on there telling the customer how far they are from the end. Cart: You are 6 minutes from completing the checkout. Shipping Page: You are 4 minutes from completing etc In addition, there are other things that can be done to help speed up the checkout; Googles Address Finder Remove passwords entirely Turn off all the no needed input fields Save their card details (eg on Braintree/Stipe) Use Paypal Express etc
  37. 4 points
    burt

    Adding a set of images to the header

    This. Absolutely this. Even us "coders" do this. We find the nearest module that does something a bit similar, copy it, and then fanny about with it until it does what we want it to do.
  38. 4 points
    Harald Ponce de Leon

    2.4 Series

    Hi All.. v2.3.4.1 has just been pushed out with the MySQLi setup detection fix and PHP 7/MySQL 5.7 compatibility updates. This is a silent release as v2.3.5 and v2.3.6 will be pushed out soon that has these fixes already incorporated. These minor fixes were a major showstopper for new installations - far greater than I had thought of. I'm still working hard on "the big picture" and achieving my goals for this year, and sometimes need a f* tonn of pings to address these "minor" code changes. I apologize for that and urge you to keep pinging me in the future when similar showstoppers arise. v2.3.4.1 does not address bootstrap/edge, that is what v2.3.6 is for.
  39. 4 points
    burt

    One-Page / Guest Checkout

    My ethos is; Make it very simple for the customer to do things. As far as a checkout goes, what can be more simple than; login > choose shipping > choose payment > review order > complete It has been proven many times that a bite-size of cake, followed by a bite-size of cake...is far better than ramming a whole cake down ones throat. What I would like to see [in CORE]...which is sort of related... On shopping_cart.php a summary (estimated) shipping price, (estimated) taxes and so on. So they see their grand total prior to starting a checkout.
  40. 3 points
    bruyndoncx

    28d, 2018

    If you ask about my cat or my mother, I want you to be PCI compliant :D
  41. 3 points
    burt

    28d, 2018

    Day 15 - Batch Actions You get up in the morning and check on your admin to find you have a few new orders, or maybe more than a few! Now you have to cycle through each order, updating order status, updating the customer by appending comment, printing an invoice, printing a label... that's potentially 10 clicks per order. If you got 20 orders that's maybe 30 minutes wasted! Core Code Changes NONE New Sidebox Link New Page in Admin This standalone page recreates the "order" page but adds in Batch Actions. You invoke the batch action by ticking the tickboxes (notice them next to each order ID). At this point, you can do a number of things; Print Invoices Click the "print invoices" button. This opens up a new page which has all the (ticked) invoices on it ready for printing. Each invoice starts printing on a new sheet of A4 paper. Print Labels Click the "print labels" button. This opens up a new page which has all the (ticked) packing slips on it ready for printing. Each label starts printing on a new sheet of A4 paper. Update Order AND Send Email Dropdown a new Order Status, and (optionally) insert your Comment into the other box. Click the "update order and send email" button.... The order gets updated to the new order *and* email is sent! Update Order Dropdown a new Order Status, and (optionally) insert your Comment into the other box. Click the "update order" button.... The order gets updated to the new order (and no email is sent to the Customer)! Summary With this new system, it is possible to update 50 or more orders, as well as readying them for printing and readying them for label printing...IN LESS THAN ONE MINUTE
  42. 3 points
    burt

    28d, 2018

    Day 12 - Updating Prices Set of Admin Pages, along with a new Admin infobox to allow you to quickly change prices for 1 or more products. Saves you having to go into the individual product page to do this. This is an update of an older thing I made, this one now allows to update Special Prices as well as Normal Prices. Core Code Changes NONE New Side Box Has 3 new ways for you to update Prices; CSV Update Individual Updates Multiple Updates
  43. 3 points
    burt

    Reviews displaying all jumbled up

    That display is as expected. Forget about it. In real life use...people type with "spaces". Theydonttypelikethisdothey?
  44. 3 points
    Some people wear shorts year round up here too... I think our dogs are a bit smarter though...
  45. 3 points
    Jack_mcs

    Information Pages SEO

    This addon allows the easy creation and handling of pages from within admin as well as a way to manage text on any page in the shop. It is based on the Information Pages Unlimited addon that has been around for years. While much of the code is different in this version, I wanted to keep the compatibility with the original version, thus the similar name. NOTE: There are three sets of files in this package, for different versions of oscommerce. The BS version is the only one that has all of the new features. The other two versions are improvements over the original code but nowhere near that which is in the BS version. So any instructions or descriptions may apply to the other versions but are mainly meant for the BS version. This version fixes many coding mistakes in the other version and adds many new features making it easier to use and more powerful. Some of the features are: - Has a Box ID setting that allows you to control where the link to the page shows up. So, for example, if there are four footer modules installed, each could have links specific to them. - A link can have sub-links (currently only available in the included module). So there could be a main link for widgets and sub-links for various kinds of widgets. There are two advantages to this: first, it takes up less room when there are many links and, second, the search engines will still be able to get to the pages.- There is a quick view button to allow displaying the page in a browser to check the changes. - There are quick fill options that allows categories and products to be added to a page with just a short statement. For example, if your site sells automobile parts and you are creating a new page about tires, you just need to type in PNAME(tires)PNAME and links for all of the products in your shop with tires in the name will be added to the page. See the Notes section on the editor page for additional methods. - Allows setting the browser title and meta tags while editing the page in admin (only if Header Tags SEO is installed).
  46. 3 points
    piernas

    2.4 Series

    It's not a good sign at all for us shopowners to see this kind of questions unanswered. I understand some debates are not for the public, but we see days, weeks, months and years pass and official oscommerce is still at the same point with only promises and a community that wants to move forward but is weaker day by day. Please Harald, give us a clear answer and don't let these questions lie here forever. If you do, people will understand the silence as a disregard to us.
  47. 3 points
    Gyakutsuki

    Tuto Display a new page with APP

    @Frankl and the communty has created a great example about APP. But this example does'nt have elements to create a page in front office. This tuto resolve this point. You will the base to develop you own page We want to create a new enhanced contact us page for example This example don't give you all the code about the admin, classes .... Just the necessary to create a catalog page Below you will find all the code to start correctly ? After you must complete the elements by your own code Note : In App you can : Create page In admin Create page in Shop Add content in Shop (header / content / footer) Add Hook inside a page (like action, save, delete, insert, update) Add module like order total, payment, shipping ... You can not : Create a boxe (I tried with no success) : use the default osc approach Create a header_tag : use the default osc approach Go back to our code ! Step one oscommerce.json add Shop Element Info&Contact will be your link to access via the catalog Sites\\Shop\\Pages\\Manager is the location about the files and process "routes": { "Admin": "Sites\\Admin\\Pages\\Home", "Shop": { "Info&Contact": "Sites\\Shop\\Pages\\Manager" } } Step 2 Create your directories Apps -Communication --Manager ---languages ----- english ------- Sites ---------Shop ----------Manager ---Sites -----Shop ------Pages -------Manager --------Actions ----------Contact --------templates Step 3 Now in directories languages/english/...../Manager create contact.txt add heading_title = Contact US Step 4 Now in directories Sites/Shop/Pages/Manager create a file Manager.php Add namespace OSC\Apps\Communication\Manager\Sites\Shop\Pages\Manager; use OSC\OM\Registry; use OSC\Apps\Communication\Manager\Manager as ManagerAPP; class Manager extends \OSC\OM\PagesAbstract { public $app; protected function init() { $OSCOM_Manager = new ManagerAPP(); Registry::set('ManagerAPP', $OSCOM_Manager); $this->app = Registry::get('Manager'); $this->app->loadDefinitions('Sites/Shop/main'); // not necessary } } Step 5 Now in directories Sites/Shop/Pages/Manager/Actions create a file Contact.php Add namespace OSC\Apps\Communication\Manager\Sites\Shop\Pages\Manager\Actions; use OSC\OM\OSCOM; use OSC\OM\Registry; use OSC\OM\HTML; class Contact extends \OSC\OM\PagesActionsAbstract { public function execute() { global $breadcrumb, $OSCOM_Manager; $OSCOM_Manager = Registry::get('Manager'); // display or not the page (admin action) if (!defined('OSC_APP_MANAGER_STATUS') || !in_array(OSC_APP_MANAGER_STATUS, [ '1', '0' ])) { return false; } $this->page->setFile('contact.php'); $this->page->data['action'] = 'Contact'; //language $OSCOM_Manager->loadDefinitions('Sites/Shop/Manager/contact'); $breadcrumb->add(OSCOM_Manager->getDef('navbar_title'), OSCOM_Manager->link('index.php', 'Info&Contact')); } } Step 6 Now in directories Sites/Shop/Pages/Manager/Actions/Contact create a file Process.php Add namespace OSC\Apps\Communication\Manager\Sites\Shop\Pages\Manager\Actions\Contact; use OSC\OM\Registry; class Process extends \OSC\OM\PagesActionsAbstract { public function execute() { $OSCOM_Manager = Registry::get('Manager'); ------- your code to manage the process about the form ----- // Redirect on other page $OSCOM_Manager->redirect('index.php', 'Info&Contact&Success'); } } Step 7 Now in directories Sites/Shop/Pages/Manager/templates create a file contact.php Add <?php use OSC\OM\OSCOM; use OSC\OM\Registry; use OSC\OM\HTML; ?> <div class="page-header"> <h1><?php echo $OSCOM_PageManager->getDef('heading_title'); ?></h1> </div> <?php echo HTML::form('contact', OSCOM::link('index.php', 'Info&Contact&Process'), 'post', 'enctype="multipart/form-data"', ['tokenize' => true]); ?> ---- you can continue with your code ---- Step 8 Now to access at your page : http://www.mysite/catalog/index.php?Info&Contact
  48. 3 points
    What about currency symbol left: <span style="white-space: no-wrap;"> and symbol right: <small style="padding-left: 5px;">AUD</small></span>
  49. 3 points
    sapguy

    Amazon Juggernaut

    @ArtcoInc @greasemonkey @Dan Cole Alright. Let me take a look at what I got and think of a way to share this in a meaningful way. It's built with a couple of php classes and sitting on top of a heavily customized version of OsC. This will not be a drop in solution, so some motivation and technical work on the receivers end will be required, I think. I can't promise anything this week, but I'll start looking into sharing code and guidelines to make this work for you. Expect two functionalities: 1) Synching your OsC inventory with Amazon, QTPro supported and 2) Downloading Amazon orders to OsC with inventory update. In the mean time, get your credentials in order: https://developer.amazonservices.com
  50. 3 points
    Hi All.. User profiles are now available at the Apps Marketplace! Ambassadors get the bonus of highlighting 3 Apps on their profile page. This is currently their last 3 updated Apps - the next update to the Profiles page will allow the highlighted Apps to be defined. Caching has also been improved by moving to memcached - there should be a noticeable speed difference browsing through the pages. I'm keeping an eye on this to make sure the correct cache objects are flushed when updates are performed - if you spot something out of sync, please inform me about it. Thanks!
×