Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 09/12/2025 in Posts

  1. Many websites these days are the feeding ground for AI bots. Especially this site! In this post we look at a tool for taming all the hungry crawlers and bots… https://processwire.com/blog/posts/throttling-ai-bot-traffic-in-processwire/
    12 points
  2. @ryan still none of my paid modules show up in the modules directory. Also do you have some feedback on my questions/suggestions from 4 weeks ago here and here? I'd like to know if you plan to add the suggested improvements or if I have to update all my modules manually. When I look at the RockPageBuilder module it (still) looks like this: Is that warning really necessary? Why is that warning shown to regular (non-logged-in) users? IMHO it doesn't add any helpful information for them. How would a guest user add or update the readme of my module? I understand that my module does not have a readme, but it has extensive docs here: https://www.baumrock.com/en/processwire/modules/rockpagebuilder/docs/ I put a lot of effort into these docs so it is frustrating that all that is visible in the modules directory is an ugly red warning. Even worse I think this warning can make the impression that the module is dead or not actively maintained, which is not the case and which would be harmful to my business. The "Project" button does nothing when I click on it. What is it intended to do? And why does it appear on my modules page? And all that said, why does that lead to my modules not being shown in the list of paid modules? Or is there another reason for that? Next, a minor thing: Why does it show "Since 2025/01/10" and does it have to be like this? On my releases page the oldest release is v3.6.0 from January 2023 and it would be nice to make it obvious that this module has a long history and has always been actively maintained, updated and improved. I understand that this is likely the date when I added the module to the directory, but it's imho nothing that adds value to my module's entry. Could that be made configurable so that I can show the real release date or instead only (not additionally) show the last updated date there, which would be more helpful information for anybody I guess? Thx
    1 point
  3. ProcessWire Commerce will be here later today. As mentioned in earlier discussions, my hope is that this will very much become a community project. ProcessWire Commerce is a mature project that powers hundreds of shops, big and small. There still some work needed to make it better. This is where you can chime in, to the extent you can. Please note: I don't have it all figured out yet. With your help, we can figure it out together, including the contribution process. Below are the things that currently need to be worked on. Documentation: Frontend documentation - for frontend developers: End-to-end how to work with ProcessWire Commerce in the frontend to build a shop. Backend documentation - for shop editors. How to use the GUI to configure, build, run and manage a shop. API documentation - for documenting how ProcessWire Commerce is built, developing for it and contributing. Still considering if/how to how to host documentation. Suggestions welcome. Fix Bugs Identify, report and suggest bug fixes. Please file bug reports in the repo here - https://github.com/kongondo/ProcessWireCommerce/issues. Fork the project, fix bugs and submit PRs. Tutorials Help write ProcessWire Commerce tutorials for different audiences. Help create demos. Ecosystem Help grow the project. Star it on GitHub. Create add-ons. Build migration tools. Create a logo for ProcessWire Commerce. Help write unit tests (???) Site Profiles Help develop an official, multi-lingual, modern site profile/theme to be used to showcase ProcessWire Commerce. Contribute site profiles or themes.
    1 point
  4. I've built this over and over in several of my modules (RockDevTools for Livereload, RockCalendar for creating events). Always a lot of work. Always a lot of boilerplate code. Always a lot of issues to fix. I think it's time to bring SSE (Server Sent Events) to everybody. Simple example (Empty Trash): Client-Side: // create stream const stream = ProcessWire.Sse.stream( 'ssedemo-empty-trash', (event) => { const textarea = document.querySelector('textarea[name="empty-trash-status"]'); try { let json = JSON.parse(event.data); stream.prepend(textarea, json.message, 100); } catch (error) { stream.prepend(textarea, event.data); } } ); // update progress bar const progressBar = document.querySelector('#empty-trash-progress'); stream.onProgress((progress) => { progressBar.value = progress.percent; }); // click on start button document.querySelector('#empty-trash').addEventListener( 'click', (e) => { e.preventDefault(); stream.start(); }); // click on stop button document.querySelector('#stop-empty-trash').addEventListener( 'click', (e) => { e.preventDefault(); stream.stop(); }); Server-Side: public function __construct() { parent::__construct(); /** @var Sse $sse */ $sse = wire()->modules->get('Sse'); $sse->addStream('ssedemo-empty-trash', $this, 'emptyTrash'); } public function emptyTrash(Sse $sse, Iterator $iterator) { $user = wire()->user; if (!$user->isSuperuser()) die('no access'); $selector = [ 'parent' => wire()->config->trashPageID, 'include' => 'all', ]; // first run if ($iterator->num === 1) { $iterator->max = wire()->pages->count($selector); } // trash one page at a time $p = wire()->pages->get($selector); if ($p->id) $p->delete(true); else { $sse->send('No more pages to delete'); return $sse->stop(); } // send message and progress info $sse->send( $iterator->num . '/' . $iterator->max . ': deleted ' . $p->name, $iterator ); // no sleep to instantly run next iteration $sse->sleep = 0; } Code + Readme: https://github.com/baumrock/SSE/tree/dev What do you think? Would be nice if you could test it in your environments and let me know if you find any issues!
    1 point
  5. There we are: https://ddev.readthedocs.io/en/latest/users/quickstart/#processwire-zip-file 💖
    1 point
×
×
  • Create New...