Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by bsmither

  1. Double check to make sure that the Basix template element.breadcrumb.php has not been edited. My comment above about needing </div> where I said it should be is not correct. Make sure that the last five lines of that template is: {/foreach} </ol> </div> </div> {/if}
  2. So, there is this line of code: <div id="element-breadcrumbs" class="hidden-xs"> There needs to be a matching </div> right after it. (I think.) At least, that allows the rest of the page to be visible on screens at "xs" width. There may be more.
  3. Without allowing javascript to run (which I always do when first visiting an unknown site), I get the complete page -- laid out according to the CSS rules for "xs" width. I do notice that the images do not scale down as the width of the screen gets slimmer. For the image tag, adding style="max-width:100%;" will fix this. This could be done in the Homepage document, having the editor show advanced properties of the image. However, when enabling javascript, the page still seems to be complete -- and the LightSlider is taking care of the image scaling. The above was the homepage. Viewing a category or product, I see what you are describing.
  4. A code snippet has been written to search category names and descriptions for keywords. Results are sent to the View Category template (used to show search results). There are edits to the template to show these results. Note that searching categories and searching products are connected only by the collection of keywords used to perform the search. That is to say, searching on "subwoofer valley jupiter" might find categories with these words in the name or description, and separately also find products with these words in the name, code, or description -- regardless if the products and categories have any relation to each other. There are additional edits to core code that have adjusted how searching product names, codes, and descriptions is performed. The edits fixes what I consider bugs and unreasonable restrictions. These edits will be proposed to the programmers in an issue posted to the GitHub. If you are interested in experimenting with this project, please send a PM with your email address.
  5. So far, I have found four edits necessary: /classes/cart.class.php, near line 210, find: if (!is_numeric($quantity) || $quantity < 1 || $quantity > 999) { Change to: if (!is_numeric($quantity) || $quantity < 1) { skin template element.product.call_to_action, near line 33, find: <input type="number" name="quantity" aria-label="{$LANG.common.quantity}" value="{$PRODUCT.minimum_quantity|default:'1'}" min="{$PRODUCT.minimum_quantity}"{if $PRODUCT.maximum_quantity gte $PRODUCT.minimum_quantity}max="{$PRODUCT.maximum_quantity}"{/if} maxlength="3" class="quantity required text-center"> and delete this part: maxlength="3" skin template content.homepage.php, near line 62, find: <input type="number" name="quantity" aria-label="{$LANG.common.quantity}" maxlength="3" value="{$product.minimum_quantity|default:'1'}" min="{$product.minimum_quantity}" class="quantity required text-center"> and delete this part: maxlength="3" skin template content.category.php, near lines 116 and 176, find: <input type="number" name="quantity" aria-label="{$LANG.common.quantity}" value="{$product.minimum_quantity|default:'1'}" maxlength="3" class="quantity text-center"> and delete this part: maxlength="3" You can learn about this at: https://github.com/cubecart/v6/issues/2086 So, maybe make the changes so that the max would be 99999 (maxlength="5") -- or whatever suits your expectations.
  6. Please show us line 1135 in the file /classes/user.class.php. I cannot determine what version of CubeCart has user.class.php, line 1135, has a statement that makes a call to load(). The closest statement I can see is a call to $GLOBALS['hooks']->load('class.user.load'). So, generally speaking, CubeCart has a specific sequence of waking up that has very little leeway - where a call to instantiate class 'n+1' will require that class 'n' be instantiated first. That is to say, instantiating User might require that every class listed ahead of it be instantiated first -- in this case, at least the Hookloader class and Session class, which themselves might require earlier listed classes be instantiated, such as Language and Debug. Try including controller.index.inc.php -- which might require you to check the necessity for define('ADMIN_CP', true);.
  7. Sorry, the template "settings.logs.php" displays the prepared list.
  8. Please let us know the exact version of CubeCart you are using. The table posted above does not match what I see in the code. Essentially, the admin source script (categories.index.inc.php, for example) makes a call to ACP->successMessage($message). ACP->successMessage() passes to ACP->setACPNotify() In there, a call is made to $this->adminLog() In ACP->adminLog(), details of the action are sent to the database To show the log activity, the script settings.log.inc.php prepares each record and sends the list to the template. The template settings.index.php displays the prepared list. The prepared records uses the admin_id from the log entry to find the username and name of the admin. The admin_id is still available in the record. Also, the item_id and item_type is used to get the item's name and a link to the edit page for that item. The item_id and item_type is still available in the record. The most recent versions of CubeCart has added the columns in the database to capture the item affected.
  9. Good to know where it is probably coming from. Better to know what page requests are being made just prior to when the web addresses go sideways.
  10. I am curious to know-- What other indication was shown to you that the sending operation had failed. I believe the red-colored message posted above was from the Error Log, System Error Log tab. But what, if anything, prompted you to look there to learn if/why sending had a problem? I understand you received emails of non-delivery reports (NDR). But did CubeCart indicate something? Like, maybe the progress bar never reached 100%?
  11. Realize that reCaptcha is not even close to being 100% effective against proficient spammers. I have seen, on occasion, the small "tab" peeking out at the bottom right of the page on Firefox for the 'invisible' reCaptcha. I don't use Chrome, so I can't discern why there is a difference. If the skin being used is Foundation (or based on Foundation), look at the skin's 'config.xml' file. There should be the following: <!-- Use this to add custom variables into the skin which can be found in the smarty SKIN_CUSTOM array --> <custom> <recaptcha_badge_position>bottomright</recaptcha_badge_position><!-- Invisible Recaptcha Badge Position: bottomright, bottomleft or inline --> </custom> Of course, we can't force a visitor's browser to accept javascript files, nor force what browser to use. So, YMMV. CubeCart does make sure that, if a Captcha response is required but missing or wrong, the data on the submitted page will be ignored.
  12. I am going to ignore the lines that appear to come from an SSL Cert manager. I just wanted to make sure there is an appropriate RewriteBase directive. It will be interesting as to what would be found in the web access logs.
  13. Recent versions allow for the product's manufacturer to be one of the terms to search on. A code snippet could include the category table looking for keywords. As for the resulting display, is the actual category going to appear in the list looking like a product panel, or simply that category's products will be listed?
  14. There is this: https://www.cubecart.com/extensions/plugins/throttled-/-batch-sending-of-newsletters However, I would petition HavenSwift to add a filter to segregate a list of domains. The segregated list would be the only addresses to be throttled, all others would bypass the throttle and be sent immediately. (This would not detract from the main intent of this plugin, which is to work with hosting provider's limits.)
  15. Does your host keep logs of page requests (web access)? If so, scanning through them looking for these weird URI's might provide a clue, such as there might be only one IP address doing this. Please also check the contents of the ,htaccess file. There should be these directives: ### Rewrite rules for SEO functionality ### <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / The RewriteBase is the important directive.
  16. I do not know this for sure. If the destination has anything to do with Yahoo/AOL, then bulk sending might trigger a limit on that end. Without more info, I have no other advice. Especially, I have no idea what "[015]" means. Could this be the page number of RFC-5322? If so, that is in the middle of a Date/Time format discussion. (In a distant past life, I did send in bulk. I had to throttle AOL and a few other domains to a slow trickle. I am confident that PHPMailer (a well-respected mailer) sends very accurate RFC compliant emails. It could be that, because the recipient's service became "unavailable", that right there is what might be non-compliant.
  17. Could you better describe "RFC Compliance" issue?
  18. That error response "reason" could be from the recipient's email provider. Here is a link to an issue I found: https://github.com/roundcube/roundcubemail/issues/8737 Let us know if you are sending out emails using an external SMTP server (maybe GMail's?).
  19. "Where can I see the list of hits?" The page that shows a grid of product panels for search results is the 'hits'. "The product list appear should contain title Name and/or Product Code." The list will always contain the name. To inhibit looking in the 'description' column for search terms, make these edits: In /classes/elasticsearchhandler.class.php, near line 255, from: $should = array_merge($should, [['match' => ['description' => $q]]]); To: // $should = array_merge($should, [['match' => ['description' => $q]]]); In /classes/catalogue.class.php, near line 1990, from: $indexes = $GLOBALS['db']->getFulltextIndex('CubeCart_inventory', 'I'); To: $indexes = $GLOBALS['db']->getFulltextIndex('CubeCart_inventory', 'I'); unset($indexes['description']); Near line 2087, from: $like = " AND (I.name ".$like_keyword." '".$regexp."' OR I.description ".$like_keyword." '".$regexp_desc."' OR I.product_code ".$like_keyword." '".$regexp."')"; To: $like = " AND (I.name ".$like_keyword." '".$regexp."' OR I.product_code ".$like_keyword." '".$regexp."')";
  20. Ok, then how is it you want the results? If 'keyw' appears in the Name and/or Product Code, regardless if it appears in the Description, it will be in the list of hits. You said if nothing was found in the Name or Product Code, then look in the Description. So, what is the difference? Would there be a difference in how the hits are listed?
  21. That would involve customizing too much of the search code. But, sure. But have you verified that the search hits that are returned do have the search term in the description?
  22. Unfortunately, sometimes, the spooled debug data gets lost (at least for me). That means, sometimes, we cannot know, absolutely, what search phase was last used to get results. (I am tracing the execution to find out how and where the debug data gets lost.) The search phases are, in order: Elasticsearch, Fulltext, RLike, Like. However, an Elasticsearch query is coded to look in the 'name' ('title') and 'product_code', and if not using "Search as you type", the 'description' columns for the search term. Please verify that the search term might actually appear in the description. Also, Elasticsearch should have the capability, and might be configured to do so, to take a search term, then find its stem and lemma. (See Wikipedia.) As such, a 'hit' could contain words that have been expanded from the lemma. An example: search broken to get hits with break (this is the lemma), breaking, and broke. And then, if the search phase actually gets to Like, verify that the search term might actually be just a part of a bigger word.
  23. Do you use PayPal? PayPal has this "mode" that will update the customer's address in CubeCart, with what (I presume is) PayPal has on record for the customer's 'verified' delivery address. (Note: I am not familiar with PayPal at all - this is just something I see complained about in these forums on occasion.) (Which has me asking the question: would this 'feature' cause shipping charges to be wrong?) Using an external database utility, look at CubeCart_order_summary, the customer_id, state, and state_d columns for a suspect order. Note the numerical values. Then look at CubeCart_addressbook for all the records where the customer_id is as was noted earlier. Compare the state numerical values. You can determine the name of the state by looking at CubeCart_geo_zone and use the id value of the table as the state numerical value.
  24. So, when the order was created, the state name was correct, but then at some time later, when viewing that Order Summary in admin, the state name shown on the Overview tab is not correct? In admin, Admin Activity, scan the list for anything that looks suspicious.
  25. That's my question: where does the index name come from? Is it auto-generated the first time ElasticSearch builds the index? Does the hosting provider assign it? sack123, where did you get the value for 'es_i'? (Note: The forum will not let me use the '@' notifier -- it refuses to allow a post that was edited to use it get re-saved. I hope you see this.)
  • Create New...