Leaderboard
Popular Content
Showing content with the highest reputation on 07/16/2025 in all areas
-
I like NativePHP. I like Laravel. I love ProcessWire. I'd rather use ProcessWire to build desktop apps. Now it looks like I might be able to! Very early days.... https://bosonphp.com/ Hopefully it catches!2 points
-
I had set an InputfieldDatetime field's setting of "yearRange" to "0:+2" and apparently 0, for the number of years before the current year simply is defined as no limit. (This should work for similar datetime field settings that offer a range.) The formatting expectation for the jQuery-UI datetime picker component is a string value that always has a negative value, a colon separator, and a positive value, indicated by "-x:+y". The solution here is simple, but in case anyone else runs into this problem, it just takes the following form instead: yearRange="-0:+2" Simply include the negative sign in front of the zero! 🤦♂️2 points
-
This week we have some useful upgrades to ProcessWire’s Markup Regions system. These upgrades make Markup Regions even more flexible and intuitive by reducing the dependence on HTML id attributes. Here is a new blog post that covers it in detail— https://processwire.com/blog/posts/pw-3.0.250/1 point
-
Required something similar some time ago. Maybe this topic is helpfull for you. Be aware that basic auth can be switched off by group policy rules in Windows by system admins. In this case the user will only see a forbidden page and no login form at all. Thats why I finally added a frontend login via PW API myself, which worked just fine.1 point
-
Hi @kongondo, I am replying here (but will also do in github for coherence), but thanks to the deepwiki I might have found a simple fix while trying to add repeaters do enhance products on frontend and ended up seeing this same issue. There would be something simple to add into InputfieldPWCommerceRuntimeMarkup.module: // in protected function buildForm($pages, $isNew = false, $cnt = 0) // around line 486 // replace the original $wrap->addClass('InputfieldPWCommerceRuntimeMarkupItem.... // $wrap->addClass('InputfieldPWCommerceRuntimeMarkupItem InputfieldNoFocus InputfieldRepeaterItem'); $classes = 'InputfieldPWCommerceRuntimeMarkupItem InputfieldNoFocus'; // Only add InputfieldRepeaterItem if no actual repeater fields exist on template if (!$this->templateHasRepeaterFields()) { $classes .= ' InputfieldRepeaterItem'; } $wrap->addClass($classes); Helper: // around line 1190 private function templateHasRepeaterFields() { $template = $this->page->template; foreach($template->fieldgroup as $field) { if($field->type instanceof FieldtypeRepeater) { return true; } } return false; } Hope it helps!1 point
-
@tires I can't help you with the htaccess But you could just use ProtectedMode https://processwire.com/modules/protected-mode/1 point
-
Hey @FireWire just wanted to let you know that the "Click To Translate All" feature bit me in my ** today 🙂 It would be great to have an "Click To Translate All Empty" option, because I had the UI open like this: So I clicked "translate all" and boom both fields have been translated. I thought. But actually it also translated some of my other 57 fields on that page and I didn't realise! This can be a quite destructive operation, so it would be great if you could prioritise this issue if possible 🙂 Thx a lot! PS: I wanted to provide a PR as the task seemed quite simple but Fluency has some quite complex JS setup that I don't understand and that involves a lot of tools I'm not using (babel/gulp) 🤯😅1 point
-
Padloper is dead! Long live Padloper! It is official! Padloper is now ProcessWire Commerce. ProcessWire Commerce is a free, open-source fully featured e-commerce module (plugin) for building and managing fully function online shops (stores) in ProcessWire. It is flexible, extensible, highly customisable, scalable, robust, multilingual by design and battle tested. Pro Support ProcessWire Commerce is designed to be easy to develop with and to use. For some, you might need extra reassurance that professional help will be available if you need it. Or, you might have a question about how to perform a certain thing or wish to support the project to ensure that any issues are dealt with quickly. Or you might want to sponsor a particular feature. If this is you, Pro Support and custom development can be purchased from my website. Community Support These forums. Donations If you value my work or my work helps support your work or you just want to say thanks, please consider donating. Thanks! Requests Modalities are still being worked out. Please note: I'll add features at my own pace; if and when I can (reasons for this discussed elsewhere in the forums). I'll focus on security, PRs and maintaining the project and major bug fixes. I hope community will contribute. Sponsored (pay for a feature) features: This can be by individuals or community driven. Please contact me for availability. Known Bugs ProcessWire Commerce Admin GUI is broken in the new admin theme, i.e., ProcessWire 3.0.248 (or newer). Save + Exit and similar broken on some pages at some recent ProcessWire version. Manually order creation broken (backend). Please file bug reports in the repo here - https://github.com/kongondo/ProcessWireCommerce/issues. Contributing This is a community project. All contributions are welcome! We are still working out how the 'how'. Documentation Please see this thread. Other Important Stuff Migrating from Padloper. Community help request. Tech Stack ProcessWire (PHP). Vanilla JS htmx Alpine JS Tailwind CSS MySQL Download Here you go!1 point
-
Hi, if you want to hide/protect your entire ProcessWire page from unwanted visitors (and bots), you could add the following lines to the end of your .htaccess file in your PW web root to force basic auth protection. In addition I commented out some lines in the default .htaccess file to force HTTPS and non-www like https://domain.com. # 9A. To redirect HTTP requests to HTTPS, uncomment the lines below (also see note above): # ----------------------------------------------------------------------------------------------- # Comment out the two lines below to force HTTPS requests. RewriteCond %{HTTPS} !=on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # 13C. Redirect www.domain.com to domain.com (do not combine with 13A or 13B): # ----------------------------------------------------------------------------------------------- # Comment out the two line below to rewrite URL to non-www. RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^ %{ENV:PROTO}://%1%{REQUEST_URI} [R=301,L] ################################################################################################# # END PROCESSWIRE HTACCESS DIRECTIVES ################################################################################################# ################################################################################################# # Basic auth protection to hide site from unwanted guests, search engines and bots. # To not ask credentials twice, we allow non HTTPS and WWW first. After ProcessWire redirected # request to non-www HTTPS, we prompt for credential for the basic auth once. ################################################################################################# # Detect LOCALHOST env or WWW subdomain. SetEnvIf HOST ^localhost LOCALHOST SetEnvIf HOST ^www\. WWW # Basic authentification AuthType Basic AuthName "Restricted area" AuthUserFile /kunden/path_to_your_webroot/.htusers # Deny access to all, except for LOCALHOST, WWW, HTTP or valid-user. Order Deny,Allow Deny from all Satisfy any Allow from env=LOCALHOST Allow from env=WWW Allow from env=!HTTPS require valid-user You can create the password hash for the .htusers file (username:hashed_password) with the PHP commands below. Don't forget to adapt the path in AuthUserFile to match your .htusers file in your .htaccess file too. <?php // Create a password hash for Basic Auth. $user = "your-username"; $plain = 'your-password'; $hash = password_hash($plain, PASSWORD_BCRYPT); // Output required .htusers data on screen. echo '<h2>Data for .htusers file in PW webroot</h2>'; echo '<p><strong>PATH</strong>: ' . __DIR__ . DIRECTORY_SEPARATOR . '.htusers</p>'; echo '<p><strong>username:hash</strong>: ' . "$user:$hash"; Have fun. cwsoft1 point