Recently Updated Topics
Showing topics posted in for the last 7 days.
- Today
-
module Native Analytics — a native analytics module for ProcessWire
Roych replied to Roych's topic in Module/Plugin Development
NativeAnalytics 1.0.24 is out Major update focused on getting rid of bot noise that was inflating stats and skewing single-page rates. What's new: Bundled matomo/device-detector — thousands of bot signatures, smart TV / mobile / console detection. No Composer required, but a site-wide Composer install is auto-detected and preferred. JavaScript-first tracking mode (new default for fresh installs) — server-side recording disabled by default, JS tracker is the source of truth. Cuts bot traffic by 60–80% because bots don't execute JS. Existing installs keep the legacy "Both" mode on upgrade — switch in module settings when ready. Stronger 404 / scanner filtering — IP-rate-limited 404 scanners, unidentifiable user-agents on 404s, and paths that resolve via PagePathHistory redirects are now filtered out of all three entry points (server-side, JS pageview, JS event). HTTP libraries treated as bots — curl, wget, python-requests, GuzzleHttp, RSS readers etc. are now correctly filtered. Expanded regex fallback with 2025/2026 AI scrapers (GPTBot, ClaudeBot, PerplexityBot, ByteSpider, Meta-ExternalAgent and ~25 more). GitHub-based update check for the bundled device-detector — settings page shows when a newer release is available with manual update instructions (24h cached, no auto-downloads for safety). Module settings page reorganized into 7 collapsible fieldsets with two-column layouts. Upgrade is safe — your tracking mode stays at "Both" unless you change it. After upgrade I recommend switching to "JavaScript first" in module settings and watching the difference. A note on the bundled matomo/device-detector — the version shipped with this module (6.4.2) is intentionally a bit behind the latest release. Bundled libraries are meant as a fallback to keep the module self-contained; pinning a known-tested version avoids surprises when matomo introduces new detection rules or minor API changes between releases. The module checks GitHub for newer matomo releases in the background and shows an "Update available" notice in the settings when one is out. If you want the latest detection rules, the recommended path is to install matomo/device-detector site-wide via Composer (composer require matomo/device-detector) — the module will automatically prefer the Composer copy over the bundled one. Alternatively, you can replace the contents of /site/modules/NativeAnalytics/lib/matomo-device-detector/ with a newer release from the matomo GitHub page (instructions are in the module settings under the version notice). The release has been tested, but with this many changes some edge cases may still slip through. If you notice anything off, please let me know so we can fix it. 😉 Cheers R -
SimpleAsset - Asset management for ProcessWire.
WireCodex replied to WireCodex's topic in Modules/Plugins
Hi @Stefanowitsch, I'm waiting for the modules to be approved so I can post the link here. We've hit a bit of a loop: to request publication of a module, you have to publish a post and include that link—but I don't actually have the link to the module at the time I'm publishing the post. I'm planning to edit the posts later to insert the link once the module has been approved. -
Hi everyone, Building a package forwarding platform means dealing with phone numbers from dozens of countries. US customers, European recipients, warehouse staff - each expects a different format. Storing a raw string and hoping for the best doesn't work. This fieldtype does it properly. GitHub: https://github.com/mxmsmnv/FieldtypeTel What it does Powered by intl-tel-input v28 - bundled locally, no CDN dependency. Country flag picker with search Stores four formats per number: e164 - +12025550123 - for tel: links and shipping APIs intl - +1 202-555-0123 - for international display national - (202) 555-0123 - for local display country - us - for filtering and selectors echo $page->phone; // (202) 555-0123 echo $page->phone->e164; // +12025550123 echo $page->phone->country; // us // tel: link echo "<a href='tel:{$page->phone->e164}'>{$page->phone}</a>"; // Selector — find all Australian numbers $pages->find("phone.country=au"); Restrict countries, set preferred countries, per-field defaults Auto-format as user types AdminThemeUikit themed - light and dark mode via --pw-* CSS variables Requirements: ProcessWire 3.0.200+, PHP 8.2+ MIT License.
-
- 2
-
- Yesterday
-
Cool, thanks.
-
Thanks @adrian, working great now. Yes, love this feature here, and in the Tracy Console too. Thanks for adding it!
-
A background job queue for ProcessWire. Push tasks onto the queue from any template or hook, and let LazyCron process them automatically in the background — with priority levels, delayed execution, automatic retry with exponential back-off, and your choice of file or database storage. Alpha — v0.1.0. This module is in early testing. The API may change before a stable release. Feedback and bug reports are welcome.
-
A WireQL-powered query engine for ProcessWire that makes building API endpoints effortless. Execute explicit CRUD operations, apply collection modifiers, sanitize field output, and cross-reference query results — all in a single expressive request. Alpha — v0.1.0. This module is in early testing. The API may change before a stable release. Feedback and bug reports are welcome.
-
A fluent HTTP response builder for ProcessWire with full HTMX support, redirects, cookies, and content negotiation. Build JSON APIs, send HTML fragments, manage headers, and handle redirects with an elegant chainable interface. Alpha — v0.1.0. This module is in early testing. The API may change before a stable release. Feedback and bug reports are welcome.
-
A modern HTTP request handler for ProcessWire that provides an expressive, type-safe API for accessing request data. Handle form inputs, headers, files, cookies, JSON payloads, HTMX requests, and client information with an elegant, fluent interface - all while maintaining ProcessWire's philosophy of simplicity. Alpha — v0.1.0. This module is in early testing. The API may change before a stable release. Feedback and bug reports are welcome.
-
A modern, fluent HTTP client that makes consuming APIs effortless. Send HTTP requests, handle responses, upload files, manage authentication, execute concurrent requests, and download remote files - all with an elegant, chainable interface. Alpha — v0.1.0. This module is in early testing. The API may change before a stable release. Feedback and bug reports are welcome.
-
PW 3.0.263 – Core updates, AgentTools, WireTests
BrendonKoz replied to ryan's topic in News & Announcements
That's huge. Obviously not a full solution as manual testing is (even with AI, so far) still required, but a big burden can be mitigated right at the start. 👌 Same for the SEO, but even moreso for the template file security scan. ❤️ Always happy for good documentation that PW is known for. - Last week
-
I use frontend editor in some of my textarea fields. I do it for a long time, without problems. Now, after rebuilding one of my sites, frontend editor works on some pages; on other pages the field I'm trying to edit disappears (not for good, only when I'm trying to edit). On the back office editor, no problem. Did it happened to anyone else? Do you have a clue about possible causes? PW version: 3.0.255 PHP : 8.4 Edit: On a better thought, I begin to suspect that the pages where front-edit doesn't work are those where the textarea field starts with a hannacode (marked with [[...]] ). I use it some times to embed jumplinks. Edit2: I'm using TinyMCE . Edit3: Nop. I tried to render the page without jumplinks, but the problem remains.
-
@markus-th Good catch! That was a formatting bug — PHP was rendering very small values in scientific notation (9.0E-6 kg) instead of human-readable units. Fixed in v1.7.0: the dashboard and DOCX export now auto-scale to µg / mg / g / kg depending on magnitude, so your total will show as e.g. 9 mg instead. Thanks for spotting it! @Peter Knight Love this idea — just shipped it in v1.7.0! Each bar is now colored by the average CO₂/request for that hour: green = Grade A (<100 mg), yellow = B, orange = C, red = D. So when you optimise a heavy page or compress images, the next day's bars literally turn greener. Tooltip also shows avg mg/request and Grade on hover. A/B/C/D legend sits above the chart. Looking forward to hearing how it goes when you try it!
-
PW 3.0.261 – Core updates + AgentTools updates
adrian replied to ryan's topic in News & Announcements
@ryan - I just did some more testing and I get the same error even if I just instantiate another PW instance in a regular template file. No other code after that, just: $ca = new ProcessWire('/var/www/othesite.com/html', 'https://othersite.com'); -
Some time ago, I decided to install xdebug on my development server, but I never really needed it or used it. TracyDebugger is enough for what I'm doing. I didn't notice it then because my app was not highly developed at the time, but it really causes speed issues especially if you're working on a sophisticated site with a lot of business logic. For a long time, I thought it was just ProcessWire itself being slow, my app being slow due to some optimizations I hadn't done yet, my database being very large, combined with my low spec dev server, but it turns out disabling xdebug, which I had long forgotten about, made things much faster. Just a heads up if you're having speed issues!
-
- 5
-
-
Hi @maximus, Thank you for taking my request into consideration, I have updated Ichiban and I can confirm that in my case {combo.field} and combo.field is working as expected and og:image is showing as intended, the only detail is when I’m using combo fields as source for OG image URL, Ichiban doesn’t show the resolved path and social preview doesn’t show up, but it’s still rendering the correct URL in the source code. In pages that have a unique image field {image} shows the correct resolved path and the social preview image
-
A router layer over URL segments API that replaces complex if/elseif chains with clean, expressive route definitions. Supports named parameters, type aliases, regex constraints, optional segments, wildcards, and HTTP method matching — all wired directly into ProcessWire's template system via page hooks. https://processwire.com/modules/simple-router/ Alpha — v0.1.0. This module is in early testing. The API may change before a stable release. Feedback and bug reports are welcome.
-
- 4
-
-
-
A tiny ProcessWire admin utility. Hold a modifier key and click any Inputfield toggle to copy the field's machine name to the clipboard — without collapsing the field. Useful when building templates, writing selectors, or debugging: no more hovering to read the name in the title attribute. Github: https://github.com/dlzi/FieldNameCopier
-
- 4
-
-
-
This module provides a ProcessWire Admin UI (“bridge UI”) for the ProcessWire Console ecosystem. It does not re-implement Console features itself; instead it integrates with: trk/processwire-console (required for most features) trk/processwire-boost (optional; status/info only) Module repo
-
- 6
-
-
-
We might have a minor misunderstanding here. Building modules, tools, apps, anything with little to a lot of logic and functions is not the issue here. My problem is not that there are functions or config fields (Admin UI) missing or not working in a way or form I imagined them to work. The problem is that the Agents and LLMs are not ready yet to build module backends (Admin UI) - even when outlined in high detail. Sometimes they are almost there or at least it looks like it, sometimes they invent something totally new and won't even use existing field types, wrappers, and classes. Having an existing module, adding new functionality, new config settings, or even pages works incredibly well. That's because the Agent/LLMs can re-use existing structure of backend code. Besides that I totally support your step-by-step process and workflow. You can't just throw a vague idea towards whatever tool and expect a wonder. That's for sure. Little side note: I asked Kimi and Opus to build a module that's only purpose is to showcase module pages, all sorts of inputs and outputs. So I have a working base for interfaces I can point at later on. The prompt for those interested: The result: https://github.com/webmanufaktur/ProcessShowcase
-
Work in progress, but in this version, clicking the title takes you to the module config page. You can upgrade dev to the latest commit, which also works for modules. Uninstalled modules are only updated/downloaded, but not installed.
-
You are right. Ok. You are violating forum rules with this one too. "modules thread" Have you missed an apostrophe perhaps? I am asking this because "module's thread" would make more sense to me. Am I missing something perhaps? Anyway, I deleted my comment above. Cheers.
-
I’m late to the Konkat theme but having used it recently, I really like it. It seems without any major UI adjustments that it’s just a nicer experience and if I’m not imagining things, a little faster? Nice job @diogo and everyone. If you’re open to feedback, can I add the following. First, the main grey background is a touch too dark for my personal preference, and interestingly a client mentioned the same, describing it as too industrial. They’re marketing. They like their UI to be friendly and approachable. The issue is a practical one: a heavy base grey compresses the tonal range before we placed a single element on the page. To make cards or panels register visually at all, you have to resort to strong contrast because a nice, subtle layering just disappears. Alternatively, with a near-white base you have room to step up gradually, building visual hierarchy through gentle increments. A heavy base leaves nowhere to go without things feeling either too dark or muddy. This isn’t a design lecture… just trying to pinpoint the particular issue. And I agree it only really affects module builders but interestingly, a client recently remarked that they found it a little industrial and unwelcoming compared to the previous theme. Next up, buttons… I find that buttons with 100% border radius never appear as truly aligned as flat side buttons with a subtle border radius. We switched to rounded buttons years ago on an enterprise project, everyone loved the change ( yay, jelly beans!) and now we’re going back to traditional 4px border radius throughout because everything just looks better aligned. It seems the beauty of using the css vars is I can easily tweak these things myself but wondered if at least the grey background was under consideration? Otherwise and honestly, it’s a great theme and I’m looking forward to using it more.