Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 05/20/2019 in Posts

  1. 2 points
    burt

    Editing Footer Links...

    In quite recent (Edge, BS4) I changed the links system to make it easier - so you can now amend one file to add in a new link; https://github.com/gburton/Responsive-osCommerce/blob/master/includes/languages/english/modules/content/footer/cm_footer_information_links.php#L22-L27 this auto-updates the list that shows in the footer area by simply adding another item to the CONST array In older versions (Frozen, Gold etc) you need to amend two files https://github.com/gburton/Responsive-osCommerce/blob/2341-Frozen/includes/languages/english/modules/content/footer/cm_footer_information_links.php#L22 add lng define in this file https://github.com/gburton/Responsive-osCommerce/blob/2341-Frozen/includes/modules/content/footer/templates/tpl_cm_footer_information_links.php#L8 add list item here
  2. 1 point
    change the css to reduce the padding or margin.
  3. 1 point
    Sounds great, thank you @peterbuzzin once again, great to have people like you around here on the forums. Most appreciated.
  4. 1 point
    JcMagpie

    Question for Ambassadors

    Nothing to do with paid work, It's about beeing involved and wanting to give back to the community for me. The last time I checked on of the main pay per hour sites had over 40,000 osC projects of which 28,000 had been completed. Like all paid work you get what you pay for. I have used developers on this site and have been very happy with the work they have done, and it's been very good value. You can lock your add-on's if I remember corectly they are locked by default. It's only a few beer's jump in and join.
  5. 1 point
    Good old SA! Great when it works properly but a monster sometimes when it starts scoring high on things and then trying to work out what is triggering those high scores. Glad you got it sorted. There are 3 mailchimp modules/addons already. One has 360 in its name made 10 years ago which relies on a deprecated mailchimp API so doesnt work anymore. There are two others one made 2 years ago and another which is v2 of the same addon updated about 15 days ago. I found those usable 2 modules/addons lacking and the issue I have with those is that they are essentially javascript plugins that only send the information to mailchimp and doesnt record it in you store or vice versa. So when someone registers on a store and ticks the newsletter box or a pre-registered user goes to their account and tick/unticks to subscribe those actions wont be registered with mailchimp. This leaves you then with compliance issues as the user will say for example that they unsubscribe via your store but you'll still be sending them emails because mailchimp doesnt know they have unsubscribed. The addon I'll be adding updates the store and mailchimp at the same time so that the newsletter status of customers in the store matches that in mailchimp and vice versa. I need to clean up my code and make it easier to install first but I'll add it once done.
  6. 1 point
    Perform a reverse blacklist list search (type that into Google and you'll get loads to test on) using the IP address your site is hosted on. We ripped out the newsletter functionality from our osC installs years ago. It wasn't a bad idea 10+ years ago but it's way to easy to get blacklisted now. Recipients are fickle and lazy and they'll mark any email they don't like as spam. Also they're non-compliant, at least the stock osC on the homepage isn't. It doesn't offer an unsubscribe link in the email. Use mailchimp, it's free for up-to 2500 recipients I think and rules out the possibility of being blacklisted. Full mailchimp integration is a module (already have it running on several stores) I'm planning on releasing if I do decide to become an ambassador.
  7. 1 point
    1. I want to remove the fax number In create_account.php find (approx line 465) <div class="form-group row"> <label for="inputFax" class="col-form-label col-sm-3 text-left text-sm-right"><?php echo ENTRY_FAX_NUMBER; ?></label> <div class="col-sm-9"> <?php echo tep_draw_input_field('fax', '', 'id="inputFax" placeholder="' . ENTRY_FAX_NUMBER_TEXT . '"', 'tel'); ?> </div> </div Replace with: <!-- <div class="form-group row"> <label for="inputFax" class="col-form-label col-sm-3 text-left text-sm-right"><?php echo ENTRY_FAX_NUMBER; ?></label> <div class="col-sm-9"> <?php echo tep_draw_input_field('fax', '', 'id="inputFax" placeholder="' . ENTRY_FAX_NUMBER_TEXT . '"', 'tel'); ?> </div> </div --> 2. remove the word Province from State/Province In includes/languages/english.php (approx line 111) Find: define('ENTRY_STATE', 'State/Province'); Replace with: define('ENTRY_STATE', 'State'); 3 & 4 Remove City and make Suburb a required entry / or rename City to Suburb and remove what was suburb I'd recommend disabling Suburb and renaming City to Suburb as there's less work involved but this may cause a problem later on if you decide you wish to use the actual suburb field at some point as you'll have existing addresses where the suburb is in the city field and empty suburb fields. But if it wont be an issue then see below. In Admin > Configuration > Customer Details. Edit the suburb entry and change it to false. Then back in includes/languages/english.php (approx line 107) find: define('ENTRY_CITY', 'City'); define('ENTRY_CITY_ERROR', 'Your City must contain a minimum of ' . ENTRY_CITY_MIN_LENGTH . ' characters.'); And replace with: // BOF start of change from city to suburb due to disabling suburb field define('ENTRY_CITY', 'Suburb'); //was previously City define('ENTRY_CITY_ERROR', 'Your Suburb must contain a minimum of ' . ENTRY_CITY_MIN_LENGTH . ' characters.'); // was previously Your City... // EOF start of change from city to suburb due to disabling suburb field 5. In the company name field is there away to have the word "Optional" in there <- some people seem to thing every field needs to be filled in (not really an issue) Still in includes/languages/english.php Find (approx line 81): define('ENTRY_COMPANY_TEXT', ''); And replace with: define('ENTRY_COMPANY_TEXT', '(Optional)'); Also while I am here Date format, Please let me know all the places that need to be changed so date is in dd/mm/yyyy etc Still in includes/languages/english.php Find (approx line 21): define('DATE_FORMAT_SHORT', '%m/%d/%Y'); // this is used for strftime() define('DATE_FORMAT_LONG', '%A %d %B, %Y'); // this is used for strftime() define('DATE_FORMAT', 'm/d/Y'); // this is used for date() define('DATE_TIME_FORMAT', DATE_FORMAT_SHORT . ' %H:%M:%S'); define('JQUERY_DATEPICKER_FORMAT', 'mm/dd/yy'); // see http://docs.jquery.com/UI/Datepicker/formatDate Replace with: define('DATE_FORMAT_SHORT', '%d/%m/%Y'); // this is used for strftime() define('DATE_FORMAT_LONG', '%A %d %B, %Y'); // this is used for strftime() define('DATE_FORMAT', 'd/m/Y'); // this is used for date() define('DATE_TIME_FORMAT', DATE_FORMAT_SHORT . ' %H:%M:%S'); define('JQUERY_DATEPICKER_FORMAT', 'dd/mm/yy'); // see http://docs.jquery.com/UI/Datepicker/formatDate You'll also need to mirror this in admin Find in admin/includes/languages/english.php (approx line 20): define('DATE_FORMAT_SHORT', '%m/%d/%Y'); // this is used for strftime() define('DATE_FORMAT_LONG', '%A %d %B, %Y'); // this is used for strftime() define('DATE_FORMAT', 'm/d/Y'); // this is used for date() define('PHP_DATE_TIME_FORMAT', 'm/d/Y H:i:s'); // this is used for date() define('DATE_TIME_FORMAT', DATE_FORMAT_SHORT . ' %H:%M:%S'); define('JQUERY_DATEPICKER_I18N_CODE', ''); // leave empty for en_US; see http://jqueryui.com/demos/datepicker/#localization define('JQUERY_DATEPICKER_FORMAT', 'mm/dd/yy'); // see http://docs.jquery.com/UI/Datepicker/formatDate Replace with: define('DATE_FORMAT_SHORT', '%d/%m/%Y'); // this is used for strftime() define('DATE_FORMAT_LONG', '%A %d %B, %Y'); // this is used for strftime() define('DATE_FORMAT', 'd/m/Y'); // this is used for date() define('PHP_DATE_TIME_FORMAT', 'd/m/Y H:i:s'); // this is used for date() define('DATE_TIME_FORMAT', DATE_FORMAT_SHORT . ' %H:%M:%S'); define('JQUERY_DATEPICKER_I18N_CODE', ''); // leave empty for en_US; see http://jqueryui.com/demos/datepicker/#localization define('JQUERY_DATEPICKER_FORMAT', 'dd/mm/yy'); // see http://docs.jquery.com/UI/Datepicker/formatDate
  8. 1 point
    Without logging visits to the old site (new code needed: maybe add something to the Query String during the redirect, and process it in new code at your new store), all you can do is guess how long people will continue to use bookmarks to the old site. Search engines should be gone within 2 or 3 months at most... maybe allow 6 months for people not to show up at the old site? Someone is bound to follow an old link or bookmark two years from now, but at some point you've got to cut your losses of maintaining a redundant site (cost of extra domain name registration, but you ought to be able to share hosting with the new store [see "add-on domain" on most servers]).
  9. 1 point
    Of course, that's on the old store's site, pointing to the new store site. If you've lost access to the old site, you're probably out of luck.
  10. 1 point
    So - to feed back. With help from Raiwa, I've achieved what I wanted. Static horizontal menu at top appears all the time. When you click on a category then a vertical sub-menu appears just showing the level in the category you're at. I created a new module for this, but you don't have to. You could just amend bm_categories.php and the template file (tpl_bm_categories.php). Changed the function execute() to: function execute() { global $oscTemplate, $cPath, $current_category_id; $OSCOM_CategoryTree = new category_tree(); $OSCOM_CategoryTree->setCategoryPath($cPath, '<strong>', '</strong>'); // sets cateogory tree to current level only $OSCOM_CategoryTree->setRootCategoryID((int)$current_category_id); $OSCOM_CategoryTree->setParentGroupString('<ul class="nav nav-pills nav-stacked">', '</ul>', true); // defined category title - to call in template bm_categories $category_title = $OSCOM_CategoryTree->getData($current_category_id, 'name'); $category_tree = $OSCOM_CategoryTree->getTree(); ob_start(); include('includes/modules/boxes/templates/tpl_' . basename(__FILE__)); $data = ob_get_clean(); $oscTemplate->addBlock($data, $this->group); } Then I amended the template file - to only show this when a category has been selected. <?php if (!empty($category_title)) {?><div class="panel panel-default bm-nav-categories"><div class="panel-heading"><?php echo MODULE_BOXES_CATEGORIES2_BOX_TITLE; ?> <?php echo $category_title; ?></div> <?php echo $category_tree;?></div><?php } else {return null;} ?> Of course styles etc may be different on others versions. But it seems to work, so might be helpful to others. Thanks for your help Raiwa!
  11. 1 point
    raiwa

    Discount Code BS

    This is not possible.
  12. 1 point
    MrPhil

    Change to EDGE from Frozen

    You can keep your products, moving from any version of osC to any other, but you'll have to compare the database structures (schemas). It's likely that you'll have to massage the old DB to be structured the same as the new, a manual operation. When moving from one version to the next one up, SQL is often provided to do this for you, but I don't think there's anything for Frozen -> Edge. I don't think there are massive changes in the DB, but there might be a few. You are aware that Edge is a moving target (unstable -- a feature added today may be gone tomorrow)? Have you thought out why you want to leave Frozen and move to Edge? Is it worth the effort? Beyond the performance improvement of BSv4 support, I'm not sure there is that much changed. If you are having problems with Frozen, be sure to apply the patches (another manual operation; see link in my signature below).
  13. 1 point
    YePix

    Change to EDGE from Frozen

    Look closely at the database to see if the tables are the same. categories, categories_description, products, products_to_categories If you use attributes also compare the corresponding tables
  14. 1 point
    burt

    Log Off Button

    There are three modules included in core that have a logoff button. There are at least two more available that are "addons" (in other words, they do not come as part of the core). Explore your admin area, particularly; admin > modules > content > {install} > (and look through this list) > install one or more.
  15. 1 point
    Hello @edo.script, PWA series 3.x is intended for 2.3.4.1 BS CE FROZEN. All instructions, files and references are for this version only. If your store version is a previous EDGE version, you need to know how hooks work and to be able to adapt the instructions/code references to your store. Otherwise please use the last series 2 version ( Purchase without account BS 2.5r2 ) The most important difference in FROZEN is that hooks registry is done automatically in application_top.php. But you do not need to adit this file in any PWA version. Tht's whi it is not included in the package and there is no need for it. If your store version is previous you need to add the hook registry manually like I posted befor to the page files where hooks are used. The modification in the instructions are the hook call which is the second part you need to get the hook working. Please understand that it is impossible to include accurate instructions for all BS CE versions which are out there. There are hundreds of them. The latest versions of my add ons are all for FROZEN which is the recommended actual and stable version for users which are not skilled in coding.
  16. 1 point
    If your products, SEO, directory structure, etc. are identical between the two sites, and the domain name is the only difference, it's very simple. In .htaccess, RewriteEngine On Rewrite ^(.*)$ https://<www.newdomain.com>/$1 [R=301,L] This assumes everything on the old site is to be sent over to the new site. If you want only part of traffic (to the old store) to be redirected, or the old store is in a directory of its own (a good idea), it would be done a bit differently.
  17. 1 point
    The new domain will be considered a new site. If you own both domains then you can implement a 301 redirect of the old domain to the new, that will preserve most of the value built up by the old domain and transfer it onto the new domain. fixed.
  18. 1 point
    peterbuzzin

    PayPal App timing out?

    Hey @Smoky Barnable, Think I can help you with this too. The Express button and the Login button are two different beasts. As always please backup before making any changes and test all changes after. Express Button The Express button specifics vary depending on how you have it configured, whether it's dynamic or static. If it's static then it is an image that's loaded from paypalobjects.com but is done in the old fashioned way of <img src="https://www.paypalobjects.com/...."> so not much can be done about that other than to save the image and then upload it to your server so it's served locally which will speed up display. You'll need to change the definition for this URL found in includes/apps/paypal/languages/english/modules/EC/EC.php on line 22 approx. All of these changes are based on 5.018 of the stock osC PayPal App (not Frozen etc) From: module_ec_button_url = https://www.paypalobjects.com/webstatic/en_US/i/buttons/checkout-logo-medium.png To (as an example): module_ec_button_url = https://www.mydomainname.com/images/buttons/checkout-logo-medium.png However any auto-updates applied in the future will revert it back to stock. IF it's being loaded dynamically then it could be because it's trying to render before the page has fully loaded all resources and this is the same problem I've found with the Login button also suffers from. For the next part to work, jQuery must be called on the page before the output of this script in paypal_express.php In includes/modules/payment/paypal_express.php approx line 220 find: $string .= <<<EOD <span id="ppECButton"></span> <script> paypal.Button.render({ env: '{$server}', style: { size: '${button_size}', color: '${button_color}', shape: '${button_shape}' }, payment: function(resolve, reject) { paypal.request.post('${ppecset_url}') .then(function(data) { if ((data.token !== undefined) && (data.token.length > 0)) { resolve(data.token); } else { window.location = '${ppecerror_url}'; } }) .catch(function(err) { reject(err); window.location = '${ppecerror_url}'; }); }, onAuthorize: function(data, actions) { return actions.redirect(); }, onCancel: function(data, actions) { return actions.redirect(); } }, '#ppECButton'); </script> EOD; And replace with: $string .= <<<EOD <span id="ppECButton"></span> <script> $( document ).ready(function() { paypal.Button.render({ env: '{$server}', style: { size: '${button_size}', color: '${button_color}', shape: '${button_shape}' }, payment: function(resolve, reject) { paypal.request.post('${ppecset_url}') .then(function(data) { if ((data.token !== undefined) && (data.token.length > 0)) { resolve(data.token); } else { window.location = '${ppecerror_url}'; } }) .catch(function(err) { reject(err); window.location = '${ppecerror_url}'; }); }, onAuthorize: function(data, actions) { return actions.redirect(); }, onCancel: function(data, actions) { return actions.redirect(); } }, '#ppECButton'); }); </script> EOD; PayPal Login THE CHANGES BELOW ARE ONLY FOR THOSE WHO HAVE SWAPPED OVER TO https://www.paypalobjects.com/js/external/connect/api.js LIKE SMOKY HAS (SEE OTHER POST REGARDING PAYPAL LOGIN UPDATE In includes/modules/content/login/templates/paypal_login.php find: <script type="text/javascript" src="https://www.paypalobjects.com/js/external/connect/api.js"></script> <script type="text/javascript"> paypal.use( ["login"], function(login) { login.render ({ <?php if ( OSCOM_APP_PAYPAL_LOGIN_STATUS == '0' ) { echo ' "authend": "sandbox",'; } if ( OSCOM_APP_PAYPAL_LOGIN_THEME == 'Neutral' ) { echo ' "theme": "neutral",'; } ?> "responseType" : "code id_Token", "locale": "<?php echo $cm_paypal_login->_app->getDef('module_login_language_locale'); ?>", "appid": "<?php echo (OSCOM_APP_PAYPAL_LOGIN_STATUS == '1') ? OSCOM_APP_PAYPAL_LOGIN_LIVE_CLIENT_ID : OSCOM_APP_PAYPAL_LOGIN_SANDBOX_CLIENT_ID; ?>", "scopes": "<?php echo implode(' ', $use_scopes); ?>", "buttonType" : "CWP", "buttonShape" : "rectangle", "buttonSize" : "md", "fullPage" : "false", "containerid": "PayPalLoginButton", "returnurl": "<?php echo str_replace('&amp;', '&', tep_href_link(FILENAME_LOGIN, 'action=paypal_login', 'SSL', false)); ?>" }); }); </script> And replace with: <script type="text/javascript" src="https://www.paypalobjects.com/js/external/connect/api.js"></script> <script type="text/javascript"> $( document ).ready(function() { paypal.use( ["login"], function(login) { login.render ({ <?php if ( OSCOM_APP_PAYPAL_LOGIN_STATUS == '0' ) { echo ' "authend": "sandbox",'; } if ( OSCOM_APP_PAYPAL_LOGIN_THEME == 'Neutral' ) { echo ' "theme": "neutral",'; } ?> "responseType" : "code id_Token", "locale": "<?php echo $cm_paypal_login->_app->getDef('module_login_language_locale'); ?>", "appid": "<?php echo (OSCOM_APP_PAYPAL_LOGIN_STATUS == '1') ? OSCOM_APP_PAYPAL_LOGIN_LIVE_CLIENT_ID : OSCOM_APP_PAYPAL_LOGIN_SANDBOX_CLIENT_ID; ?>", "scopes": "<?php echo implode(' ', $use_scopes); ?>", "buttonType" : "CWP", "buttonShape" : "rectangle", "buttonSize" : "md", "fullPage" : "false", "containerid": "PayPalLoginButton", "returnurl": "<?php echo str_replace('&amp;', '&', tep_href_link(FILENAME_LOGIN, 'action=paypal_login', 'SSL', false)); ?>" }); }); }); </script> Again, any changes made to the above files will be overwritten if the PayPal auto-update button is used at anypoint in the future.
  19. 1 point
    peterbuzzin

    PayPal Express ~ Duplicate Orders

    @pete2007 it sure is (but don't tell burt I told you this or he'll get all "Stack Overflow" on me!!). Again, anyone else reading this, this is method is specific for pete2007's installation which doesn't make use of Header Tags modules nor $oscTemplate->getBlocks('footer_scripts'); and everything is hardcoded in template_bottom.php In ext/jquery/main.js find: /* BOF Prevent multiple form submissions from multiple clicks on checkout_confirmation.php */ if($('form[name=checkout_confirmation]').length > 0){ $('form[name=checkout_confirmation]').submit(function(){ Replace with: /* BOF Prevent multiple form submissions from multiple clicks on checkout_confirmation.php and contact_us.php */ if($('form[name=checkout_confirmation], form[name=contact_us]').length > 0){ $('form[name=checkout_confirmation], form[name=contact_us]').submit(function(){ And then just for the sake of completeness find: /* EOF Prevent multiple form submissions from multiple clicks */ And replace with: /* EOF Prevent multiple form submissions from multiple clicks on checkout_confirmation.php and contact_us.php */ The only caveat is that it will only display one message i.e. "Loading please wait", might have been nicer to have "Sending please wait" for the contact form. But if you want you could change it to just "Please wait" which would apply equally to both forms nicely.
  20. 1 point
    In bm_category.php use: $category_titel = $OSCOM_CategoryTree->getData($current_category_id, 'name'); You just have to add a check if $current_category_id is not empty or zero and use MODULE_BOXES_CATEGORIES_BOX_TITLE for that case.
  21. 1 point
    This will be down to you beeing on a shared server, looks like your host as turned on SSL on the server, just check you config file in admin/includes and make sure all http statments are changes to https. You will need to check this for every link in your code as any that still call http will cause problems of mixed content.
  22. 1 point
    For the code I posted, use $keywords = preg_replace('/[^ \w-\'\"]/', '', $_GET['keywords']);
  23. 1 point
    Your host ought be able to tell you if you're on some spam blacklist. They may even tell you that they added you because you sent out too many emails in a short period. They don't want their servers listed as spammers, either. It's fine to email newsletters from your shop's domain, but it should probably be left to a proper bulk email application that knows how to obey host limits for per-minute, per-hour, per-day mailings. It should also try to distribute evenly and at a polite rate to major email systems like gmail, hotmail, yahoo, etc., so they don't feel overwhelmed and report you as a spammer. Do you really need to get all 5000 emails out within one hour? How about over 2 days or so? Needless to say, all mass mailings must be explicit "opt in", and should include a reminder that the recipient signed up to receive them, and a reminder on how to easily unsubscribe. The latter two items reduce the chances that a recipient will report you as a spammer, simply to stop receiving mass mailings from you.
  24. 0 points
    bonbec

    Discount Code BS

    I think that @BrockleyJohn is right. Resolve the logging out problem first.
  25. 0 points
    BrockleyJohn

    Discount Code BS

    Of course it's possible! It sounds like you have much bigger problems than discount codes.
×