Jump to content
thirty bees forum

datakick

Administrators
  • Posts

    3,128
  • Joined

  • Last visited

  • Days Won

    490

Everything posted by datakick

  1. You have changed thirty bees core php file. This modification will be lost when you update your store to new version in the future. Core updater will warn you that there are some local changes, and that they will be overwritten during update: classes/pdf/HTMLTemplateInvoice.php modified In the future you will not remember what changes you made. The solution for this problem is to use overrides. It's technical process, but not that hard 1) create file (if it not exists yet) in /override/ directory with the same path as the file you want to override, in this case /override/classes/pdf/HTMLTemplateInvoice.php If the file already exists, go to step #3. Initial content of the file should look like this: <?php class HTMLTemplateInvoice extends HTMLTemplateInvoiceCore { } 2) delete file /cache/class_index.php -- this will force thirty bees to reindex overrides, and it will start using the newly created one 3) copy entire function from original class to override. Override should now look something like this: class HTMLTemplateInvoice extends HTMLTemplateInvoiceCore { protected function computeLayout($params) { $layout = [ 'reference' => ['width' => 15], 'product' => ['width' => 40], 'quantity' => ['width' => 8], 'tax_code' => ['width' => 12], 'unit_price_tax_excl' => ['width' => 0], 'total_tax_excl' => ['width' => 0], ]; if (isset($params['has_discount']) && $params['has_discount']) { $layout['before_discount'] = ['width' => 0]; $layout['product']['width'] -= 7; $layout['reference']['width'] -= 3; } $totalWidth = 0; $freeColumnsCount = 0; foreach ($layout as $data) { if ($data['width'] === 0) { ++$freeColumnsCount; } $totalWidth += $data['width']; } $delta = 100 - $totalWidth; foreach ($layout as $row => $data) { if ($data['width'] === 0) { $layout[$row]['width'] = $delta / $freeColumnsCount; } } $layout['_colCount'] = count($layout); return $layout; } } 4) now you can modify your override to match your needs. And that's it. It's a little bit more work, but makes your life easier in a long run.
  2. This is an issue in integration between jsonmodule a and productcomments In jsonmodule, you can choose to emit reviews information retrieved from productcomments module. To do that, jsonmodule uses productcomments internal classes. These classes are not available when productscomments is disabled (module autoloader is not initialized). https://github.com/thirtybees/jsonmodule/issues/8
  3. Also, remember not to modify core files, you would loose your modification during update. Instead, create override for this computeLayout method.
  4. As @the.rampage.rado suggested, you can disable moving javascript to the end. I would recommend to do this anyway, as moving javascript to the end can cause a lot weird issues. You can also add data-keepinline attribute to script tags to instruct core to not try to move it <script data-keepinline> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-***'); </script>
  5. Because you used 'email' as a custom submit, every time any form that contains 'email' field is submitted the captcha validation is performed. Chex sends request with 'email' field during checkout. And there will be many other forms that will do the same. This is definitely not the right submit name to use. Unfortunately there is no other field send when submitting 'forgot your password' form: You can modify your theme password.tpl template and add 'name' attribute to button, for example name="submit_recover_password" That way, this submit will be send to server: and you can use it to attach your captcha validation
  6. I don't think this is issue in core, or at application level (of course I could be wrong) Most likely you have some security apache/nginx module (mod_security maybe) that evaluated request as threat, and blocked it. You should check your server logs, to make sure that request made it to PHP level, and was not blocked by apache/nginx before
  7. Your store works for me as well. Adding products into cart works properly. I also tried to login as a customer, without any issues.
  8. https://github.com/thirtybees/niara/blob/af439f01033dd0cd41622a2470813c29dc09453c/breadcrumb.tpl#L12 This is comment text in smarty template breadcrumb.tpl. You have probably modified this file and "uncommented" this, making it part of output
  9. Thanks. This screenshot provides much more information that your first one. We now know the actual error message: Class 'Attribute' not found, and we know that it comes from override. The override is referencing Attribute class that does not exists anymore in thirty bees core, because it's reserved name in PHP8. You have probably installed some some module recently that added this override, or you have updated your store. Anyway, the fix is to edit the override file, and change Attribute::checkAttributeQty to ProductAttribute::checkAttributeQty There might be more usages of Attribute class, you have to replace them all.
  10. The very first image, with error on line 121, is from override, isn't it?
  11. datakick

    New Install

    Why not? The only "valid" reason I can see is PHP version. But that's not valid reason anyway, really. Just from security point of view, I would advise everyone to update to latest bleeding edge. https://github.com/thirtybees/thirtybees/blob/d9c85fa9ec25a186494daba2f3eec983ae75c553/classes/ConfigurationTest.php#L326-L348
  12. sudo find . -type d -exec chmod 755 {} \; sudo find . -type f -exec chmod 644 {} \; This changes permissions of all directories and files to be readable and writeable by owner, and read-only to others. It will work properly as long as all files are owned by your php server user, as it needs write permissions.
  13. Looks like a bug. Please create github issue with reprosteps
  14. Do you have some email transport module installed? EDIT - you can use one of these two mail modules Mail via swiftmailer Mail via PHPmailer
  15. Enabling debug mode will NOT help you decrypt your existing error txt files. When you enable it, and encounter some 500 error on your website, you will see error directly on the screen. There will be no prompt to download some error txt file and decrypt it. There can be many reasons why your back office don't want to decrypt your error txt files. One of the images in your previous posts shows that your server cant creating files in /tmp folder because of read only filesystem. The same probably happens when you try to upload the error file -- your php server can use /tmp dir to temporary store file during the upload.
  16. Debug mode fixes the problem with The decrypt function in Logs is not decrypting the message. since there is nothing to decrypt.
  17. regarding get_magic_quotes_gpc - you can do full search / replace in all modules, and replace get_magic_quotes_gpc() with false Of course, you can then remove the surrounding code as well, since if (get_magic_quotes_gpc()) { $params = Tools::stripslashes($params); } will turn into if (false) { $params = Tools::stripslashes($params); } But it's not strictly necessary. The end result will be the same if you keep the unreachable code or if you remove it.
  18. This is from order-confirmation.tpl template. In Niara / community-theme-default, the value of $id_order_formatted is rendered: <p>{l s='Your order ID is:'} <span class="bold">{$id_order_formatted}</span> . {l s='Your order ID has been sent via email.'}</p> This variable is set in OrderConfirmationController, and contains order internal ID left padded with zeros 'id_order_formatted' => sprintf('#%06d', $this->id_order),
  19. This key is generated during installation, or when you switch from Blowfish to PHP Encryption. At least that's how it works on bleeding edge. Anyway, creating this manually works as well. Thirty bees does not add anything related to admin directory to .htaccess file. This might be your own manual addition, or entry by some module.
  20. You can download this php script, upload it to your store root directory, and then open https://www.yourstore.com/genkeys.php genkeys.php Keys for rijndael should not be needed. Just ensure you are using Use the PHP Encryption library as you ciphering algorithm (in Advanced Parameters > Performance)
  21. I don't have any issues even on php8.2
  22. No, I won't implement this. Frankly, that's too much work, and I believe it can only cause trouble. For example, in my country invoice must contain customer's full address, so I need to collect it even for virtual products. That only leaves company information fields. And this one is important for business users. I guess I could implement such check. Is is something that is useful, though? I mean, if my customer has voucher for $100, and they want to use it on a product that costs $80, why should I block them to do that?
  23. All information required for invoicing is collected, including address If you cart contains only virtual products, shipping is not displayed No, such option does not exists. It behave in the same way as default checkout -- allow free orders. I don't understand
  24. Thanks for reporting this. Fixed in new version 0.9.3
×
×
  • Create New...