Jump to content

Recently Updated Topics

Showing topics posted in for the last 7 days.

This stream auto-updates

  1. Today
  2. Can you create an issue on the repo? I'm currently busy with other projects, so i you require a quick fix, a PR is much appreciated. Otherwise I'll see when i get to it.
  3. @ryan it would be much appreciated if we could get your feedback on this. Thank you.
  4. How do you enable updating page name on save like in the module config now that the functionality is in PW core?
  5. Yesterday
  6. Dear Community Members, I am new to ProcessWire and web development. I have just finished basic web development (frontend) and PHP. And now I am exploring ProcessWire. I want to develop a portfolio project for my uncle's business. He wants an e-commerce website with the following features: All the common e-commerce functionalities. B2B and B2C features. CRM. Some custom workflow implementation. Some custom requirements like: An email verification feature for the clients. For registering a b2b client, they need to submit a registration form where they are supposed to upload a business document. The admin (shop owner) looks at the document and categorises the client as a b2b wholesaler or b2b retailer. Wholesalers and retailer sees different prices for products, and similarly do the B2C clients. Appointment scheduling for consultation with payment for booking an appointment. I am doing my best to explore all the resources in the ProcessWire website and documentation. It has been over a week I am looking for a perfect solution and I have come up to the following solutions: The basic e-commerce functionalities can be handled by Modules like ProcessWire Commerce or RockCommerce. Workflow implementation can be done using the hooks. I am not experienced with the above solutions; I just looked at the website, the docs and found them from those resources. If my choices are wrong, please correct me with proper guidance. You may have already crossed the problems and issues that a new developer faces while implementing these modules. For other functionalities, I am still actively looking for some solutions. If you are familiar with such cases, please guide me. I have a dream of starting my own digital agency, and I am selecting ProcessWire as my primary CMF for delivering the websites and web applications to my clients. Thanks in advance!! A big Thanks to the ProcessWire team for such a powerful and valuable open-source CMS framework!!!!
      • 1
      • Like
  7. Some site-wide JS? // Get the current URL const currentUrl = window.location.href; // Convert to lowercase const lowercaseUrl = currentUrl.toLowerCase(); // Only update if there are uppercase letters if(currentUrl !== lowercaseUrl) { // Use replaceState to update URL without reloading the page window.history.replaceState(null, '', lowercaseUrl); }
  8. Can your module gather the images from site/assets/files/pageID as the URL and write the ALT text in the image or images descriptions?
  9. Good day, PWmates! I just had a super productive and mega fast support session with @FireWire. Great thanks to you, man! I almost forgot how pleasant is it to be here, in the supportive and friendly PW community. I am 12 year around and this great spirit is not going nowhere) Happy New Year to all of us here, where we unite and make at least a little corner of the world a better place! P.S. And if you think this post is late to the party check this out))
  10. Have some swiss customersites by cyon.ch and everything works fine.
  11. Last week
  12. Great, thanks.
  13. This looks amazing! I`m actually helping a friend on a project for his tiny psychologist clinic. We implemented Google Calendar appointments since it’s almost no configuration and just works. But this project look really promising.
  14. Hi Ivan, I haven’t had time yet to verify what (if anything) needs to be done on my side, but I’m fairly sure ProcessTranslatePage already uses the DeepL API v2. It relies on the official PHP client library and was updated in mid‑2025, so we should be in good shape. If any updates are required to keep the module working, I’ll take care of them – thanks for the heads up!
  15. Hi @markus-th, That’s so smart — exactly what I needed! Thank you very much for your help. Have a wonderful day!
  16. Hello everyone, I’m happy to share a new module I’ve been working on: WireMagnet. We often face the requirement to offer "gated content" (like Whitepapers, PDFs, or Zip files) where users need to provide their email address to receive a download link. While there are external services for this, I wanted a native, privacy-friendly, and lightweight ProcessWire solution. What does WireMagnet do? WireMagnet handles the entire flow of capturing leads and delivering files securely. It intercepts form submissions, logs the lead, and sends an email with a unique, temporary download token. It prevents direct access to the files (assets are not just sitting in a public folder). Key Features: Secure Delivery: Generates unique download tokens (valid for 24 hours) and serves files via wireSendFile(). Double Opt-In (DOI): Optional support for DOI to verify email addresses before sending the file. Automated Emails: Automatically sends the download link (or attaches the file directly if preferred). AJAX Ready: Comes with built-in Alpine.js support for seamless, reload-free form submissions. Lead Management: Logs all subscribers (Email, IP, Timestamp) to a custom database table (leads_archive). Admin Interface: View leads and export them to CSV directly from the ProcessWire backend. Easy Integration: Render the form with a single line of code. How to use: Install the module. Create a page (e.g., using a lead-magnet template) and upload your file to a file field. Output the form in your template: // Render the subscription form (default field: 'lead_file') // The module automatically handles success/error messages and styling. echo $modules->get('WireMagnet')->renderForm($page); // OR: Render for a specific field (e.g., if you have multiple magnets or custom field names) echo $modules->get('WireMagnet')->renderForm($page, 'my_custom_file_field'); // OR: Override the button text manually echo $modules->get('WireMagnet')->renderForm($page, 'lead_file', 'Send me the PDF!'); Configuration: You can configure the sender address, email subject, DOI settings, and styling preferences (like button text) in the module settings. Download & Source: GitHub: https://github.com/markusthomas/WireMagnet Modules Directory: later I'm looking forward to your feedback and suggestions! Cheers, Markus
      • 16
      • Like
      • Thanks
  17. @szabesz Thanks, I was able to duplicate that also. I couldn't figure out how to fix it, but @diogo had a look and came up with a solution. It should be on the dev branch now. Please let me know if you still run into the issue.
  18. @BrendonKoz The problem with that option in the screenshot is that while it ungroups the taskbar items, it keeps the "text" part of it, which I don't want because it's not necessary for me and I like to have a lot of windows open so I want to conserve horizontal space. Windows 10 used to have that option, but they removed it in Windows 11. That's why you have to use this Windhawk mod I mentioned in the readme: https://windhawk.net/mods/taskbar-grouping A registry setting alone won't fix it unfortunately. Come on Microsoft!
  19. next effect: mapping of fieldnames to true columns names has also be handled by overloading getMatchQuerySort() of FieldType private function mapColumnNames($fieldName) { $subfieldMap = [ 'date_from'=>'data', 'date_to'=>'to']; $col = array_key_exists($fieldName, $subfieldMap) ? $subfieldMap[$fieldName] : $fieldName; return $col; } /** * adapts the getMatchQuery() of the parent by mapping the column names */ public function getMatchQuery($query, $table, $subfield, $operator, $value) { return parent::getMatchQuery($query, $table, $this->mapColumnNames($subfield), $operator, $value); } /** * adapts the getMatchQuerySort() of the parent by mapping the column names */ public function getMatchQuerySort(Field $field, $query, $table, $subfield, $desc) { $col = $this->mapColumnNames($subfield); // return PW internal sort query string return "_sort_{$field->name}_{$subfield}.{$col} " . ($desc ? 'DESC' : 'ASC'); } Welcome to the PW reverse engineering club - Happy hour wednesday 17-18 pm
  20. Until we get an "official" media manger module we need to make some workarounds. Let me tell you about my personal solution for this: I am using the FileMover module from @Robin S for copying images from a global "media library" field (that is placed inside a dedicated "media library" template ) to any of my image fields. Please have look at robins comment here where he extended the functionality of his module through a hook. In this case you can open the image library page through a modal with a click from any image field. There is also a small screencast that shows this – for me this is a really good workaround. Please have a look for yourself and give it a try (and some credits to robin!).
  21. Thanks for this @maximus - timezone DST changes are definitely an annoyance in development. I am curious though why you have a limited set of timezones available, rather than the complete set? I feel like it might be particularly problematic if you rely on a service like https://ipapi.co/ to determine the user's timezone from their IP address. Many of the timezones returned from that are not likely to match your list. I can see that the way you have organized them makes it much simpler for user selection, and maybe that is your primary goal but I still wonder about how it might impact its functionality.
  22. @thei Glad you got it working. It should be possible to use an array for this, but I might be forgetting something about it, as I think it's been a long time since I used one for this. In any case, it's definitely better to use a WireData object (or one derived from it) because ProcessWire can track changes to the properties in the object. Whereas there's no change tracking built into an array.
  23. I have a website where the client can set different colors via input fields on a page in the backend. I want to make use of those colors as CSS vars to use them in my stylesheets. I am doing it this way: <style> :root { --primary-color: <?=$globalSettings->bg_colorcode?>; --secondary-color: <?=$globalSettings->font_colorcode?>; --tertiary-color: <?=$globalSettings->titlefont_colorcode?>; } </style> Then I can simply "grab" those variables in my stylesheets: header { background: var(--primary-color); } I am using UIKit and LESS and this is working for me.
  24. Hi @kongondo Happy New Year. It's been a while since anything has happened here on the subject of ‘Next’. Since there are two major projects planned for this year where I would be needed for MM, I wanted to ask what the status is? 😊
  1. Load more activity
×
×
  • Create New...