Jump to content

Juergen

Members
  • Posts

    1,424
  • Joined

  • Last visited

  • Days Won

    18

Everything posted by Juergen

  1. Good morning @Jan S. Thanks for reporting these issues. I have fixed them and updated the module version to 2.2.55. Alternatively you can replace the following files, which contain the changes: https://github.com/juergenweb/FrontendForms/blob/main/Formelements/Form.php https://github.com/juergenweb/FrontendForms/blob/main/Formelements/Inputelements/Inputfields.php PHP 8.4. is more strict than the previous version and in addition I use declare(strict_types=1); on all PHP files in FrontendForms. As a result, any warning will be treated as an error. So please test if it works now and let me know if you discover some issues again. Thanks!!
  2. I have found the issue: This only happens if the ID and name attribute are exactly the same on a single upload field. If there is a difference, everything works as expected, so I have added an additional suffix to the ID attribute of a file upload field to prevent this behavior. display-change.MP4 Now everything should work fine! Module version is updated, so please test if everything works now as expected.
  3. OK, I guess what you mean: I will try to find out, what will be the cause and to fix this problem
  4. Hello @da² I have fixed the 2 bugs with the URL segments (fixes will be in the next update), but I have a question concerning the file upload issue in single upload fields. I have tested it with Firefox without any problems. Take a look at the video. Single file upload.MP4 In my case it works as expected. If I drag and drop more than 1 file only the last file will be taken and only 1 file will be submitted. What browser do you use? Maybe it could be a browser related issue. Best regards Jürgen
  5. Thanks @da² for reporting these issues. I'll look into it as soon as possible. I have to work on the weekend, so I am afraid that probably won't get around to it until next week.
  6. Version 2.2.44 includes a new feature besides some bug fixes (Thanks to @Stefanowitsch for reporting, testing and providing some fixes for the issues). New feature: File list below a file upload field Previous versions of FrontendForms have the "clear the file upload field" feature, which was a link below the input field to remove all files for upload from this file upload field. This was a nice feature to remove files from the file upload field, but @Stefanowitsch requested a better feature to remove not all, but only specific files from the field. The new feature is not just a link. Instead it provides a complete list of all added files below the file upload field and by clicking on the "X" you can remove a specific file from the field. The second advantage is that you can see all files that have been added to this field. Demo: demo-filelist.MP4 As always, please report any issues you discover here in the forum or on GitHub.
  7. Hello @Stefanowitsch Thanks for reporting these issues. I have fixed them (point 1 and 2). Instead of adding the class "uk-form-label" I have added the class "uk-margin-small-right" to the label tag because I find it looks like better. I have updated the version of FrontendForms, so please update and test it. I hope it works fine, because it is very late here in Austria, but on my local installation everything looks good. I find your idea of showing the files for the upload very good, so I guess I will try to find a nice JavaScript solution to realize this. The best option would be that I will find a ready-to-use JavaScript which offers this feature, so I can include it in the next update. Thanks for giving FrontendForms a try and to make it better by reporting issues and sharing ideas to improve it with us. Best regards Jürgen
  8. Ok, this is wrong in the docs - I will fix this. Thanks for pointing it out!!🙂
  9. That is because you are calling the wrong class names: The correct class names are "Select" and "SelectMultiple". Take a look here for a Select and here for a SelectMultiple. Best regards
  10. Module version is updated including the fixes. Changelog
  11. OK, random bugs are difficult to reproduce and to trace.
  12. OK, this CSRF method only works on POST request (take a look here). I will try to find a solution and provide a fix in the next update to get it working with GET requests too.
  13. This should run inside the isValid() method, not outside.
  14. Ok, can you post the code of your select field?
  15. Ok, I found the cause for the white page: The CSRF validation is responsible for it. Fast fix: Please replace the this line inside the Form.php inside the isValid() method with this line if((strtolower($this->getAttribute('method')) === 'get') || $validation->checkCSRFAttack($this->getCSRFProtection())){ This disables the CSRF validation if GET is chosen as the method. This is only a fast fix to get it working, but I must dive a little deeper to find out why the CSRF session always returns false in this case.
  16. I can confirm this behavior but I must take a closer look to find out what is happening. 🤔I am always using POST and not GET in my forms, so I have not discovered this issue until now.
  17. Strange in my case it shows exactly the value that I have chosen before the form submission. Is this a simple select element or a select multiple in your case? Before submission: After submission As you can see the value "custom" is before and after the submission present.
  18. Of course, there are several options. Which one you should use depends on your preferred output. 1) Wrap multiple inputfields inside a fieldset Take a look here for more information or here for a working example. Sometimes a fieldset is the best option to wrap some inputfields syntactically correct. 2) Wrap multiple inputfields within a div container by using the append() and prepend() methods Take a look here for more information and here is an example using this methods. If you want to wrap for example 4 inputfields inside an extra div container, the idea is to add the opening div tag via the prepend method to the fist field and the closing div tag via the append() method to the last input field. 3) Use the setMarkUp() method to add the opening and closing div I think this is the most practicable method for you if you do not want to use a fieldset. You will find more information here. Example for wrapping multiple fields between 2 div tags: $markup = new Markup(); $markup->setMarkup('<div>'); // opening div $form->add($markup); // here enter your inputfields .... .... $markup = new Markup(); $markup->setMarkup('</div>'); // closing div $form->add($markup); Best regards
  19. Then try the following: if (!is_null($_SERVER['REQUEST_URI']) && strpos($_SERVER['REQUEST_URI'], $this->wire('config')->urls->admin) === 0) { Have not tried it with bootstrapping but the code inside the if condition is not important for running forms. It is only there to add CSS and JS files to the backend, so you can prevent the running of the code inside the condition by checking the existence of $_SERVER['REQUEST_URI'] first.
  20. This issue has nothing to do with the module itself, but it seems that the $_SERVER array is not loaded at that moment. You can try the following: // Replace the following line inside the FrontendForms.module file on line 858 if (strpos($_SERVER['REQUEST_URI'], $this->wire('config')->urls->admin) === 0) { with this line if (!is_null($_SERVER) && strpos($_SERVER['REQUEST_URI'], $this->wire('config')->urls->admin) === 0) { Let me know if it works
  21. Module has been updated to 2.2.39 including the fix.
  22. Hello @da² You are absolutely right. The cause was a missing second parameter inside the filename sanitizer. I have fixed it now, so please download the corrected Form.php file from Github and replace it with the one on your local installation. If everything works as expected I will update the module version. So please test it and give me a feedback if everything is ok now. Best regards Jürgen
  23. @cwsoft you were absolutely right - this was the reason 😛
  24. Here is the solution for this scenario: Instead of using only the "from" property, use the "replyTo" property too. 1) Use a sender email address that contains your domain instead of the actual sender address (for example use norply@mydomain.com, where mydomain.com is your site domain. $mail->from('noreply@mydomain.com'); 2) Add the actual sender address (for example john@gmail.com) to the replyTo property $mail->replyTo('john@gmail.com'); This will use the mail address of the actual user if you click on reply instead of "noreply@mydomain.com". I will add this to the module in the next update, so it should work on every host.
×
×
  • Create New...