-
Posts
119 -
Joined
-
Last visited
-
Days Won
12
Everything posted by markus-th
-
Hi @Inxentas, If disabling protectCSRF and sessionFingerprint results in a continuous redirect to the login page, it’s almost certainly a session persistence issue. ProcessWire likely cannot verify your session after the redirect, treating you as a guest again. Here are a few things to check: File Permissions: Ensure that /site/assets/sessions/ is writable by the web server. If PW can't write the session file, the login will fail silently. Clear Browser Cookies: This is crucial. If you previously had sessionCookieSecure enabled or switched between HTTP/HTTPS, your browser might be holding onto an invalid or mismatched session cookie. Delete all cookies for this domain and try again. Check site/config.php for Hostnames: Ensure your $config->httpHosts array correctly includes the domain (and subdomains like www) you are using to log in. PHP session.save_path: If you aren't using PW's native session handler (Database), check your php.ini to see if the system's temporary directory for sessions is full or unwritable. Native Session Modules: If you have SessionHandlerDB installed, try temporarily disabling it in the database (table modules) to see if switching back to file-based sessions resolves the conflict. Since you have debug mode on, check /site/assets/logs/errors.txt for any "Session save path not writable" or "CSRF" related entries that might have been logged right at the moment of the redirect. Hope this helps!
-
A 100% protection is impossible in a browser environment, what a browser can show has to be local. But you can make it less easy to "steal" the files with preventing direct access and hotlinking to font files <FilesMatch "\.(woff|woff2)$"> RewriteEngine On RewriteCond %{HTTP_REFERER} !^https?://(www\.)?yourdomain\.com [NC] RewriteRule .* - [F] </FilesMatch> The most effective way to protect a font is to make it "incomplete" for anyone who steals it. By using the fonttools library (specifically pyftsubset), you can strip away all characters that aren't needed for your specific site. There is a little benefit too, the filesize shrinks 😉
-
ProcessWire Commerce Features
markus-th replied to kongondo's topic in ProcessWire Commerce (Padloper) Support
@ai_slop Look here: The many pinned threads make the forum a bit confusing. Perhaps a moderator or @kongondo could “optimize” this a little. 😁 -
Hi everyone, As promised, the Beta version of WireBooking is now available on GitHub! You can find the repository here: https://github.com/markusthomas/WireBooking I would love to get your feedback on the installation process and general usability. If you find any bugs or have suggestions for improvements, please open an issue on GitHub. Happy testing!
-
Hi everyone, Quick update on the WireBooking module: I have finished my initial testing phase and will be releasing the Beta version on GitHub this weekend! I would really appreciate it if some of you could give it a spin and provide some feedback. Specifically, I’m looking to find out if the module is working smoothly in different environments and if you encounter any bugs during the setup or booking process. I’ll post the link to the repository here as soon as it's live. Looking forward to your thoughts!
-
Hi everyone, I’m currently working on a module called WireMedia Library and wanted to share the current state of development to get some feedback on the concept. The main goal is to provide a central interface for managing media across the entire ProcessWire instance while staying 100% compatible with the native storage system. The Concept: The module acts as a central hub. You can upload files to the library and then select them from any page. When a file is selected, it is copied into the local page’s file/image field. This ensures that the files remain "native" to the page they are used on, keeping your API calls and templates exactly as they are. Key Features of the current prototype: Central Media Overview: A unified view of all media assets in the system. Usage Tracking: The module indexes where files are used. Even if a file is used within a Repeater, it identifies the "leading" parent page so you know exactly where your assets live. Database Indexing: A custom database table keeps track of file locations for fast performance. Rebuild Index: A tool to rescan the system and ensure the database stays in sync with the file system. Native Workflow: Since files are copied to local fields, you can still use all native PW features (like cropping or focus points) directly on the target page. Planned: Permission System: Granular access control for different user roles/folders. I am still undecided about the final licensing or if/how I will release the module, but I wanted to show the UI and the logic behind it to see if this approach resonates with the community. I’d love to hear your thoughts on the "copy-to-field" approach and the general UI!
-
Limiting error messages sent to adminEmail
markus-th replied to millipedia's topic in General Support
I wrote a small standalone script for my installations that checks the error.log every 30 minutes via CronJob and sends me an email when there are new entries. Unfortunately, I can't post the script here in its current state because it's entirely in German. -
Then I must have done everything wrong over the last three years, because I added the field, expanded it in the template, updated the hash, and everything worked fine. In my opinion, a real tailwind theme makes no sense at all, because do we really want all forms to look the same? For that reason alone, option D is the best choice.
-
Even though I don't like the tone of your posts, I'll respond anyway. With Embed Option D your completly free to use whatever you want.
-
https://processwire.recipes/ I think this could be a good place.
- 1 reply
-
- 2
-
-
I tested the upload function with several site profiles (up to approx. 30MB). Maybe your profile is very large?
-
@olafgleba @maximus I just pushed an update to kickstart.php. It is now possible to install any arbitrary Site Profile! You can either provide a URL to a ZIP file or upload a local ZIP file directly within the tool. The script extracts the profile to the correct location, allowing the standard ProcessWire installer to pick it up seamlessly. Give it a try and let me know if it works for your custom skeletons.
-
Thanks for the feedback! What I can imagine for a future update is adding a step where you can upload or provide a URL for a custom ZIP file (containing a site profile). This way, you could use 'skeletons' from the modules directory or your own private boilerplate. I'll keep this in mind for the next iteration!
-
@wbmnfktr Thanks, that is a good point. Now i show a filelist and updated the text: Is now implemented, thanks for this. That's a great suggestion! I actually had the same idea, but I haven't found the time to implement it yet. It's definitely on my to-do list for a future update! I made it available on GitHub: https://github.com/markusthomas/ProcessWireKickstart
-
Hi everyone, First of all I had no idea, which category would fit best ... I'd like to share a little tool I've been working on to make the initial setup of ProcessWire even faster, especially when working on remote servers without SSH access. What is it? kickstart.php is a modern, single-file installer/loader for ProcessWire. Instead of uploading thousands of files via FTP, you just upload this one file and it handles the rest. Key Features: Version Selection: Choose between the master (stable) or dev branch directly from GitHub. Smart Multi-Language: Built-in support for English, German, Spanish, and French (with automatic browser language detection). Modern UI: Built with Tailwind CSS, AlpineJS, and smooth animations using Anime.js. Pre-flight Checks: Automatically checks for PHP version requirements and prevents overwriting existing installations. Automatic Cleanup: Removes the downloaded ZIP archive and temporary folders after extraction. How to use it: Upload kickstart.php to your webroot. Open it in your browser. Choose your version and click install. Once finished, click the button to start the official ProcessWire installer. I hope some of you find this useful for your workflow! Feedback and suggestions are always welcome. Cheers, Markus kickstart.php Improved Version now available on GitHub: https://github.com/markusthomas/ProcessWireKickstart
- 9 replies
-
- 16
-
-
I can't say much about it at the moment, as the module I'm currently developing is tailored specifically to a customer's needs. However, I plan to release a slightly different version later on, which will work in a similar way to the WordPress Media Manager.
-
Thanks for merging @elabx! That is awesome news. My main goal with these changes was to be able to list this module as a dependency ('requires') for my other current and upcoming modules. Now I can rely on a central Alpine.js source instead of bundling/implementing it separately in every single module. That makes maintenance much easier. Thanks again for the collaboration!
-
Oh sorry, i missunderstood this. Go to "Releases" > "Draft a new release".
-
-
Hi @elabx, First of all, thank you for the AlpineJS module! I have been working on a fork to modernize the module and make it more flexible for my projects. Instead of shipping a static (and potentially outdated) JS file, I implemented a downloader mechanism. Here is a summary of the new features I added: Local Hosting & Updater: The module can now download the latest Alpine.js core and plugins directly from unpkg.com to the server. This allows for 1-Click Updates via the module config without needing a module update. Plugin Support: Added checkboxes to easily enable official plugins (Mask, Intersect, Persist, Focus, Collapse, Morph, History). You can review the changes in my fork here: https://github.com/markusthomas/AlpineJS I think these changes would be a good addition to the your repository. Would you be interested in a Pull Request? Best regards, Markus
-
Hi @patricus, everyone is welcome here. 😉
-
Have some swiss customersites by cyon.ch and everything works fine.
-
Hi @Stefanowitsch I can integrate as option a base CSS with semantic class names, similar to how I handled it in my WireMagnet module. This way, the styling can be done independently of Tailwind. I plan to release the module on GitHub in the next 2–3 weeks, once I've successfully completed some final tests.
-
-
Hi everyone! I am currently developing a new module for a client project and wanted to quickly reach out to see if there is broader interest in the community for a solution like this. The Use Case My client needed an appointment booking system similar to "Calendly". However, they had specific requirements: Zero external dependencies: No third-party SaaS for GDPR/DSGVO compliance and to avoid monthly fees. Full Design Control: It had to fit seamlessly into their custom design. Lightweight: No heavy bloat. The Solution: WireBooking is a native ProcessWire module that handles appointment slots and bookings using standard ProcessWire pages. Current Features: Frontend Wizard: An interactive, step-by-step booking process built with AlpineJS and Tailwind CSS. Native Storage: Bookings are saved as standard ProcessWire pages (booking-entry), allowing you to use the full power of PW selectors and hooks. Backend Management: Simple interface using the native ProcessWire Admin Theme (UIkit) to view bookings. Notifications: Sends confirmation emails to the customer and admin, including generated .ics calendar files for Outlook/Apple/Google Calendar. Availability Management: Manually block specific time slots or entire date ranges via the module settings. AJAX Driven: Dynamically loads available slots via JSON to keep the initial page load light. The "Catch" (Requirements) To keep the module lightweight and modern, it is opinionated regarding the frontend stack. It assumes you are already using (or are willing to include): Tailwind CSS (Utility classes) for the styling. Usage Example: Using it in a template is extremely simple: <?php echo $modules->get('WireBooking')->renderWizard(); ?> I need your feedback! The module is currently functional for this specific use case (Consultants/Service Providers). Before I invest time into generalizing it for a public release on the modules directory, I have two questions for you: Is this something you would use? Is there a need for a native "Calendly" alternative? Is the dependency on Tailwind a dealbreaker? Since the markup relies on Tailwind utility classes, it might be hard to style if you use Bootstrap or custom CSS. Looking forward to your thoughts and suggestions! Cheers, Markus GitHub: https://github.com/markusthomas/WireBooking
- 6 replies
-
- 15
-
-