Jump to content

Search the Community

Showing results for 'hello'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Welcome to ProcessWire
    • News & Announcements
    • Showcase
    • Wishlist & Roadmap
  • Community Support
    • Getting Started
    • Tutorials
    • FAQs
    • General Support
    • API & Templates
    • Modules/Plugins
    • Themes and Profiles
    • Multi-Language Support
    • Security
    • Jobs
  • Off Topic
    • Pub
    • Dev Talk

Product Groups

  • Form Builder
  • ProFields
  • ProCache
  • ProMailer
  • Login Register Pro
  • ProDrafts
  • ListerPro
  • ProDevTools
  • Likes
  • Custom Development

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

  1. Hello @da² Thank you for your detailed explanation! Now I know what your goal is. The first problem by doing additional validations inside the "isValid()" method after all form values are valid is that the form has "status valid" and therefore the form values will be emptied to prevent double form submission. That is the reason why the form is empty. This can be prevented by adding the useDoubleFormSubmissionCheck() method with value false to the form object. The second problem is that the validation of max attempts (if enabled) will be reseted if the form is valid, but it would take further attempts if you are doing additional validations inside the isValid() method. So the max attempts validation in this case does not work. But this can be disabled by using the setMaxAttempts() method and setting the value to 0. So adding additional validations inside the isValid() method is a very dirty solution and the module is not developed to support such a scenario. So the goal you want to achive is very difficult to achive. I am afraid that the module will not be able to solve your problem, but I will wrap my head around it and maybe I have an idea.🤔
  2. Hello, A small utility I built for my own workflow — export any page directly from the editor as a clean Markdown file. Useful for documentation, content migration, and feeding page content to AI tools. GitHub: https://github.com/mxmsmnv/PageMarkdown What it does: Adds an Export to Markdown button to the page edit form Smart HTML conversion — CKEditor content (tables, lists, headings, links, bold/italic) → standard Markdown Supports ProFields: Table, Combo, Repeater Matrix (with type labels and nested structure) Images and files render as Markdown image/link syntax Page references render as links or titles MapMarker, Email, URL, Color fields all handled Configurable: toggle field labels as headings, ignore lists per field/type, datetime format, empty HTML cleanup Requirements: ProcessWire 3.0+, PHP 8.0+ MIT License.
  3. Hello @da² I have added a new validation rule that could be interesting for your usecase: uniquestringvalueofpwfield It checks for the uniqueness of a value inside of a specific ProcessWire field. Lets assume you have stored your gaming usernames inside the PW field with the name "gamer_name" which you have added to the user template. Then you could validate the gaming username with the new validator like this: $gamername = new \FrontendForms\InputText('gamername'); $gamername->setLabel('Gamer name'); $gamername->setRule('required')->setCustomFieldName('This gamer name'); $gamername->setRule('uniqueStringValueOfPWField', 'gamer_name', ['user']); $form->add($gamername); As you can see, you have to add the name of the PW-field (= gamer_name) as the first parameter. The second parameter (= the name of the template") is not mandatory, but it makes sense in this case to restrict the search only for entries in the user template. Add this as an array, because it also possible to search in multiple templates). Otherwise the search will be globally on all templates where this ProcessWire field is added. To use the new validator please update to 2.2.13 Best regards Jürgen
  4. Hello @da² looks like it is not so difficult 🙂. First of all I would take a look at the following Inputfield: https://processwire.com/modules/fieldtype-text-unique/ This looks interesting and if it fits to your needs, than add it to the user template in the backend as the field containing the gamer name. Second, take a look at the uniqueEmail or uniqueUsername validators, which are already included in FrontendForms. These validators could be used as a starting point for your own validation rule. Take them as an example to create your own custom rule for gaming names.
  5. Ivan Gretsky

    I'm back

    Now when they're all pinged, we need to have something for them... Something to do or to write about... Maybe just say hello and share where they're at now...
  6. Hello @da² I have added a new method to trigger an error message to a field manually: setErrorMessageToField() Here is a small example on how to use it: $form = new \FrontendForms\Form('testform'); $form->setMaxAttempts(0); $form->setMaxTime(0); $form->setMinTime(0); $firstname = new \FrontendForms\InputText('firstname'); $firstname->setLabel('Firstname'); $firstname->setRule('required')->setCustomFieldName('The first name'); $form->add($firstname); $button = new \FrontendForms\Button('submit'); $button->setAttribute('value', 'Send'); $form->add($button); if ($form->isValid()) { $form->setErrorMessageToField($firstname, 'This is my custom message'); } echo $form->render(); If the "default validation" was successful, then the error message will be displayed under the "firstname" field in this case. You can use it to make another validations inside the isValid() function to check the submitted form values against other conditions. If the conditions fail then you can output this manually triggered error message like written above. To use the new method, you have to replace the file site\modules\FrontendForms\Formelements\Form.php with the one from Github or you simply add the new function to your Form.php. Please let me know if this helps.
  7. Hello, After form validation, is it possible to force the form to display an error on a given field? This is possible with the processwire core InputfieldForm and I often use it. Generally I use this to do additional and more complex checks after the basic form validation. For example the form contains a file upload field, it's a zip and I have to validate zip content, if it's not valid the form should display values entered by user with an error message on this field. I know I can create a custom validation rule, but within this validation I have to access variables that are outside the form. For example the form is to edit an ItemData instance, and within the validation I need to access this object. Can I pass variables to the validator custom rule? I looked at the documentation, what is the $params parameter, can I use it to pass variables to validator? Valitron\Validator::addRule('alwaysFail', function($field, $value, array $params, array $fields) With the core InputfieldForm I created a wrapper class and I use it this way: $onValidate = function (AccountEditionForm $form): void { // $onValidate is called only if form basic validation succeeded. if (someCondition) { // Triggering an error, $onSuccess won't be called, // form field will be red with error message, // form still filled with user values so user has only to fix the field with error. $form->setError('fieldName', 'errorMessage'); } } $onSuccess = function (AccountEditionForm $form)): void { // Form is valid (basic validation + $onValidate), use its data. }; $form->execute($onSuccess, $onValidate); Is there a way to do this kind of process, or can you recommend me another way? Thank you.
  8. Hello, Recently I did an extensive research and found https://maileroo.com/pricing to be the best value compared to similar services I found. I registered with them, but the project I will use it for has not yet reached the point where it is actually needed. The ProcessWire instance in question can also handle the initial email sending volumes using the VPN’s own SMTP service.
  9. Hello, Interesting "topic". However, what's the site's URL?
  10. Hello ProcessWire forums, I am sharing a new page I developed for cybersecurity and DevOps expert Julie Tsai. Built with ProcessWire, it includes use of ProModules FormBuilder for the contact form and ProFields for the soon to be launched Blog section, where a Repeater Matrix controls the flow of content. Always enjoy working with this CMF and learning all that it's capable of … each time something new emerges. https://julietsai.net/
  11. Hello @Peter Knight, we’re really impressed with your work! We’re currently using Media Manager, but unfortunately it’s no longer being developed, so we’re urgently looking for a modern alternative. Media Hub could be the solution. As an agency, we’d also like to use it commercially – do you have any thoughts on this?
  12. Hello @Mikel, thanks for your words. Of course I can only report on my experience, but people don't go shopping for fonts. The don't buy different fonts of many font-families. They just stick with one family or some styles of that family. 🙂 I know, at last, it's the same and doesn't change anything since a Stripe Payment Link was just made for one product and not 10. I thought about that limitation a bit and had some research about Stripe, and it’s API possibilities. I thought about to possibly rewrite the module to accept payments via a Checkout‑Session with dynamic line_items and metadata and a bundled download page for the buyer. Goal is that the buyer could just select more than one font style of a font family and then click to buy them. With the click it will be sent to Stripe with a checkout-session with line_items and metadata. A cart system could be added, to. After payment, the data that comes back from stripe is analysed and the buyer get its downloads. Well, I have to think about that. 🙂 I know it’s quite unusual, but we don't need a full e-commerce shop with a cart and anything. So, the bottle would be perfectly adequate for hitting the nail. 😉 Cheers, Thomas
  13. Hello @grewr11 Thanks for pointing out this issue. I have removed the sanitizer for names on the "Name" field, because usernames are allowed to have numbers in it. This was a thinking mistake. Now it should work as expected. Please replace the following file to get it working: https://github.com/juergenweb/FrontendComments/blob/main/FrontendCommentForm.php I have discovered another issue, with WireMail and localhost, so please replace the following file too: https://github.com/juergenweb/FrontendComments/blob/main/Notifications.php You will find all information about the changes in the changelog.md. I haven't worked on this module in a long time, so there could be more problems. Please report any problems, I will try to solve them as soon as possible. Jürgen
  14. Hello, we've been working on a module to convert Microsoft Protected Links (Safe Links) so they display as their original URL. Protected links leak the email address of the person who copied the link into the page (eg. https://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.antarctica.gov.au&data=05|02|EMAILADDRESS%40example.com...) This is not ideal, and we find more and more protected links turning up now that most of the Microsoft product offerings use protected links (Teams, Office, Copilot etc.) TextFormatter modules typically only reformat the text on output, leaving the page content containing the protected link. Is it acceptable for a Text Formatter module to save the formatted string back to the page? Maybe as an optional configuration in the module settings? Or, is it better to achieve this using a standard module?
  15. Hello @adrian that's great, I had an older version (from 2022) on my machine, so I installed it on my local ProcessWire which I use for my French translations (so it's not necessarily representative of all situations, as it's always up to date with the latest version, ProcessWire 3.0.256 © 2026). then I commented out the module folder and replaced it with the namespaced version folder. After a short normal update time, the only thing visible was a small alert ModulesInfo: Upgrading module (TracyDebugger: 4.23.40 => 4.28.0) the site is still up and running, no errors, and Tracy seems to be working fine. tried on a php 7.4.9 and 8.1.31 hope this may be somehow useful have a nice day
  16. Hello @_Roy_, you have to add or change the styles in the module settings, so that you can see it in the editor: https://processwire.com/blog/posts/using-tinymce-6-in-processwire/#customizing-the-styles-dropdown https://processwire.com/blog/posts/using-tinymce-6-in-processwire/#adding-extra-css-styles-without-adding-to-em-styles-em-dropdown You are right, ProcessWire doesn't know what framework you are using. That is why you have to tell the editor which classes of your framework you want to use. Regards, Andreas
  17. Hello Robert, Does your plugin support filling in fields?
  18. Hello @ttbb I have tried to reproduce the issue you had described, but in my case everything works as expected. I have used Bootstrap 5 and 2 contact forms side by side using the "row" and "col" classes. This works as expected as long as the errors are form errors (wrong or missing input data). But I have discovered an issue by showing the alert box if the form has been submitted too fast. In this case it did not jump to the top of the form properly to show the alert box that informs the user that the form has been submitted too fast. Therefore I have made some changes to make this work properly. Take a look here at the changelog file. So please update to the latest version 2.3.11 and let me know if there are some problems left. Best regards Jürgen
  19. Hello, how can I remove my project from the showcase directory?
  20. Hello Mikel, First of all, this looks like a great module. We have been looking for a way to sell fonts as easily as possible for a long time, but haven't found a simple solution. I have a question regarding product delivery for multiple digital products. We want to sell digital files, specifically fonts. There are special requirements for fonts, and I would like to know if this is possible with the module. We usually have several product pages for different font families. Here, either the entire family or individual styles can be purchased. We don’t have product pages for single fonts that belong to a font family. Example: The product page “Font Family A” contains 4 purchase options: 1) Font style Regular 2) Bold font style 3) Italic font style 4) Family (includes Regular, Bold, Italic) Of course, there are also cases with font families where we have 15 or more font styles. My question is, if someone buys and pays for Regular and Bold, what does the customer get as the product delivery page? Our idea is, they receive a delivery page showing all fonts purchased to date, including the fonts they have just purchased, which can be downloaded by clicking on one of the font styles. As I understand it, the customer receives one delivery page per product? That would make it quite cumbersome for the customer to download all font styles. Would love to hear about your thoughts. Thomas
  21. Hello @ttbb This should work by default 😐, so there is no need to add it to the JS manually. To be more specific: If a form submission is successful or has errors, than the page jumps to the start of the form (not to the top as you have written), so the user can see the success or the error message (independent of the length of the form). This should work with or without AJAX. If it does not work in your case, please post your form code here or send it to me via PM and I will test it. Best regards Jürgen
  22. Hello all, Another day, another thread! 😅 So I'm building out a portfolio site bit by bit, and trying to learn how ProcessWire works for clients in the meantime. Below is a screenshot of what a project page might look like. The project header is made with a project repeater and some txt fields. Below this is another repeater (sections) - that's where my project images live. What I'd like to make: a curated gallery page (like a photographer's portfolio page) where I can manually choose images from across my project pages to be displayed in a masonry style layout (e.g. like Masonry.js https://masonry.desandro.com/) I'd like to avoid duplication or double uploads - I'd like to reuse existing project images and keep my setup as fast/light as possible Clicking an image on the gallery should link to the related project Ideally without resorting to third party solutions - could image tags be used like an image reference? I've read a discussion on community requests for something like an image reference field (which would be great) but it looks like this isn't natively supported in PW yet: https://github.com/processwire/processwire-requests/issues/207 I'm wondering if I could use PW's built in image tags or something and then display all of those on a gallery page layout. But I'm not sure if I could grab the related project page links through tags alone? Fyi, I'm also using the PageimageSource module to keep things efficient. https://github.com/nbcommunication/PageimageSource Beginner here, so maybe I'm thinking about this the wrong way. Would be nice to hear your thoughts. Thanks!
  23. Hello @LostKobrakai, did you ever get a masonry layout working with ProcessWire srcset images in the end? Building a portfolio site and scoping out some ideas. It looks like the new CSS spec for masonry layouts - or "css grid-lanes" will be a thing but it's not ready yet. EDIT: Just realised the OP posted in 2014 lol. In any case, readers might find this of interest: https://metafizzy.co/blog/imagesloaded-v5-released/ I may see if I can get it to work
  24. Hi fellow devs, this is a somewhat different post, a little essay. Take it with a grain of salt and some humor. Maybe some of you share similar experience. I don't really mean to poop on a certain group with certain preferences, but then, that's what I'm doing here. I needed to write it to load off some frustration. No offense intended. Good Sunday read :-) React Is NPC Technology Have you ever really looked at React code? Not the tutorial. Not the "Hello World." An actual production component from an actual codebase someone is actually proud of? Because the first time I did, I thought there'd been a mistake. A failed merge. HTML bleeding into JavaScript, strings that weren't strings, logic and markup performing some kind of violation you'd normally catch in code review before it got anywhere near main. "Fix this," I thought. "Someone broke this." It looks broken because it is broken. That's the first thing you need to understand. JSX is a category error. Mixing markup and logic at the syntax level - not as an abstraction, not behind an interface, but visually, literally, right there in the file - is the kind of decision that should have ended careers. Instead it ended up on 40% of job postings. And here's the part that actually matters, the part that explains everything: Nobody can tell you why. "Everyone uses it." Go ahead, ask. That's the answer. That's the complete sentence, delivered with the confidence of someone who has never once questioned whether a thing should exist before learning how it works. The argument for React is React's market share. The case for Next.js is that your tech lead saw it on a conference talk in 2021 and it was already too late. You're supposed to hear this and nod - because if everyone's doing something, there must be a reason, right? The herd doesn't just run toward cliffs. Except. That's literally what herds do. The web development community, bless its heart, has a category of decision I can only call NPC behavior. Not an insult - a technical description. An NPC doesn't evaluate options. An NPC reads the room, finds the dominant pattern, and propagates it. React is on every job posting = React is what employers want = React is what I need to know = React is what I reach for. The loop closes. Nobody along the chain asked if it was right. They asked if it was safe. Safe to put on a resume. Safe to recommend. Safe to defend at the standup. React is the framework you choose when you've stopped choosing and started inheriting. The 10% who actually think about their tools - they're out there running Alpine.js. Which is 8kb. Does the same job. No build step required. Add an attribute, the thing works. Revolutionary concept. They're running htmx, which understood something profound: the web already has a protocol for moving data, and it was fine. You didn't need to rebuild HTTP in JavaScript. You just needed to reach for the right thing instead of the fashionable one. Let's talk performance, because "everyone uses it" is already bad enough before you look at what it actually does. React ships 40-100kb of runtime JavaScript before your application does a single thing. Your users wait while React bootstraps itself. Then it hydrates - a word that sounds refreshing and means "React redoes on the client what the server already did, because React can't help it." Then they invented Server Components to fix the problem of shipping too much JavaScript. The solution: ship different JavaScript, handled differently, with new mental models, new abstractions, new ways to get it wrong. They called it an innovation. I once worked with WordPress and React together. I want you to sit with that. Two philosophies, neither of which is actually correct, stacked on each other like a complexity casserole nobody ordered. WordPress solving 2003's problems with 2003's patterns. React solving 2003's problems with 2013's patterns that created 2023's problems. Together they achieved something genuinely special: all the drawbacks of both, and none of the advantages of either. The PHP you want but in a different way and the hydration you couldn't prevent, serving pages that load like it's apologizing for something. Twenty years building for the web and I've watched frameworks rise and fall like geological events. ColdFusion, anyone? Remember when Java applets were going to be everywhere? Flash was going to be the web. Then jQuery saved us. Then Angular saved us from jQuery. Then React saved us from Angular. Rescue upon rescue, each one leaving more complexity than it cleared, each one defended by exactly the same people who defended the last one, now wearing a different conference lanyard. ProcessWire. That's what I build with. Most developers have never heard of it - which is not a criticism, that's the evidence. You find ProcessWire because you went looking for something specific, evaluated it, and it fit. It doesn't have conference talks. It doesn't have a VC-funded developer relations team. It has a forum full of people who chose it. That's a different category of thing entirely. The same 10% who finds ProcessWire finds Alpine. Finds htmx. Makes decisions that don't optimize for defensibility in interviews. Builds websites that load fast because they don't carry React around everywhere they go. There's a physics concept called a local minimum. A place where a system settles because the immediate neighborhood looks stable - the energy gradient points upward in every direction, so the system stops. Stays. Convinces itself it's home. Even if a global minimum exists somewhere else, at lower energy, lighter, simpler - you'd have to climb first, and the herd doesn't climb. React is a local minimum. The web settled here when it got tired of looking. Stable enough. Defended by enough career investment. Surrounded by enough tooling and tutorials and framework-specific bootcamps that switching costs feel existential. The ground state - simpler, faster, closer to what the web actually is - sits somewhere else, past a hill that looks too steep from inside the valley. The ground state is always simpler. That's not a philosophical position. That's thermodynamics. They don't want you to know that.
      • 16
      • Like
      • Thanks
  25. Hello everyone. I'm having a little trouble with a ProcessWire website that's hosted by some company that doesn't communicate well with me. Ergo, I'm flying blind on certain things. Imagine someone else's shared hosting provider, but not having access to it's Plesk or cPanel. When I try to log into the ProcessWire admin, I get that message the login attempt may be forged. Okay, that's usually a fingerprinting issue. So I turned that off. No dice. I turned debugging back on. I see in my stack it's protectCSRF causing an issue. So I turn that off too... and now any login attempts redirect to /admin/?login=1. The page simply refreshes, admins are not getting into the backend. I tinkered with setting and unsetting sessionCookieSecure, but to no avail. Anyone has any idea why turning off protectCSRF redirects me back to the login page? Thanks in advance! $config->sessionFingerprint = 0; $config->protectCSRF = false; $config->sessionCookieSecure = false;
×
×
  • Create New...