All Activity
- Today
-
Thanks for your help! The protected folder and the htaccess file are beside the "site" folder. PWSITE: - /site/ - /wire/ - /index.php - /.htaccess (of PW installation) - /protected-subfolder/ - /protected-subfolder/.htaccess - /protected-subfolder/.htpasswd
-
Nice illustration too 🙂 Did you need this module developed for your forums?
-
Meteo is a weather integration module for ProcessWire. It fetches current weather and forecast data, normalizes responses from different providers into one predictable array format, and can optionally render ready-made weather widgets. Providers Meteo supports: Open-Meteo OpenWeatherMap WeatherAPI.com Open-Meteo works without an API key. OpenWeatherMap and WeatherAPI.com can be used as primary or fallback providers when API keys are configured. Features Current weather, hourly forecast, and daily forecast City geocoding Provider fallback chain File cache with configurable TTL Structured array output for custom templates or frontend frameworks Bundled widget templates: card, full, minimal Widget themes: auto, light, dark One-click Material M3 demo page installer Error tracking via getLastError() Basic usage $meteo = $modules->get('Meteo'); $weather = $meteo->getWeather(40.7128, -74.0060, [ 'location_name' => 'King of Prussia', 'timezone' => 'America/New_York', ]); echo $weather['current']['temperature']; echo $weather['current']['weather_label']; Render a bundled widget: echo $modules->Meteo->styleTag(); echo $modules->Meteo->renderWidgetForCity('King of Prussia', [ 'language' => 'en', 'widget_theme' => 'auto', ], 'card'); Links GitHub: https://github.com/mxmsmnv/Meteo Documentation: https://github.com/mxmsmnv/Meteo/blob/main/docs/USAGE.md
-
It's not possible to upload a profile picture in the forum
maximus replied to David Karich's topic in General Support
Confirm this problem. https://streamable.com/ukewz6 I have same green avatar 🙂 -
Hey everyone! Built a heatmap module for ProcessWire, thought I'd share. It tracks clicks, mouse movement, rage clicks and scroll depth — and shows everything as a heatmap right in the admin. No third-party services, all data stays on your server. You pick a page from the list, it loads in an iframe with the heatmap overlaid on top. Switch between click/movement/rage/scroll tabs, filter by date and device type, export as PNG if you need it. Install is just drop the folder into /site/modules/ and hit Install. The tracker injects itself automatically, nothing to configure. GitHub: https://github.com/mxmsmnv/Compass
- Yesterday
-
module Image Library — edit every image across your whole site in one table
Mikel replied to Mikel's topic in Modules/Plugins
Update: v1.0 – out of beta (and nested collections landed) Hi all, after a good run in production across a few sites, we’re finally tagging a stable release: v1.0.2. Quick recap for anyone just finding this: Image Library is a Process module that surfaces every image already sitting in your native FieldtypeImage fields, across every page, template and (Matrix)Repeater, in one cross-site, filterable, inline-editable table, with serious bulk editing, content-based de-duplication and where-used on top. It does nothing to your data and needs no migration. The full story is in the three posts above. Collections, all grown up. What was a flat “tick some images, save them as a tab” feature is now a proper little hierarchy: Folders / nesting. A collection can hold its own images and nest sub-collections, up to 3 levels, like folders that also hold files. There’s no separate “container” type: an empty collection is just one with no images yet. Open a parent and you see the union of its own images plus every descendant’s; remove an image from a parent and it cascades down. A manager dialog. One tabbed dialog (Collections | Bookmarks) to rename, reorder, nest / un-nest and delete, by drag or buttons. Deleting a collection cascades to its sub-collections; the images stay put in the library. A Collections column. A new table column shows the collections each image belongs to (linked), with inline re-assignment via a checkbox tree, for one row or a whole batch selection. Membership shows as a union, so a parent lights up whenever the image is in one of its sub-collections. Team-wide now. One thing changed under the hood: bookmarks and collections moved from per-user storage to a single team store, so the whole editorial team works from the same set. Gated by a manage-shared permission; bookmarks got folders too. And on the phone: the strip collapses to three tabs (Show all / Bookmarks / Collections) with cascading tap-to-open fly-outs, so curation works on touch, not just desktop hover. Search that actually narrows. The search box learned operators: multiple words match any (OR), +word requires, -word excludes, and "a phrase" matches exactly, e.g. red +rose -draft. Across title, description, tags, filename and custom subfields. Why “stable” now. Beyond the features, this release got the boring-but-important pass: uploads on Replace are validated by content and not just by extension, a rename now keeps an image’s “Used in” entry, output is escaped, lookups are hardened, and the codebase went through a sizable DRY refactor with no behaviour change. It has been running real editorial work, so 1.0 felt earned. Status. v1.0.2, first stable. Module + docs on GitHub and the Modules Directory. As always, feedback and edge cases very welcome: deep Repeater / RepeaterMatrix nesting, odd Fieldtype combos in custom-field templates, ProFields, and anything the collections manager or front-end picker trips over. Cheers, Mike -
Hi @ryan, first of all: thank you for creating this module. I have been doing some rigorous testing with Agent Tools, and while I have been quite productive in using this to move a wordpress site into PW, I do keep running into a couple of smaller issues. In no particular order: It seems I cannot run just a single migration from the CLI. The CLI always wants to run all that have not yet been applied. It seems I cannot simply re-run a migration from the CLI. The GUI does allow this. If I want to do this, I first have to rename the php file in assets/at/migrations. It would be very handy if there was a built-in and (agent-)documented way to add CLI --flags to the migrations. Codex has been inventing their own flags, for instance --dry-run=1, --limit=1 etc, but the implementation has been poor and inconsistent. Besides this, what I am wondering is if it will become possible to, instead of using the CLI or UI, to hook up AI directly via MCP. Or should I look at https://github.com/PeterKnightDigital/PromptWire-MCP for that?
-
One of my testers won't be available to test as soon as they thought. If anyone else would like to test MediaHub, please shout (DM). The PW community is pretty diverse. I've had testers from a technical, UI/UX and media background. That variety of interests has really helped improve MH from multiple angles.
-
Thanks @maximus the title format is working now! I was somehow expecting to see that the {site_name} (or whatever suffix you enter here) will be added and visible in the bulk editor window: Currently only the page title value is visible. However when viewing the page in the frontend the title format from the module settings is shown correctly. So I can confirm that this works now.
- Last week
-
Hi @Stefanowitsch, thanks for the screenshots — they helped a lot. You found a real inheritance bug. The JSON example itself was correct: { "meta_title": "field:title", "meta_description": "field:summary|truncate:160" } The problem was that empty page-level SEO fields could block the global defaults with an empty custom value. That is why {site_name} was added by the Title Format, but {meta_title} stayed empty, and the Audit / Bulk Editor still showed missing values. Now: flat defaults like meta_title and meta_description resolve correctly meta.title and nested JSON defaults are also supported empty page-level source fields inherit from template/global defaults empty Bulk Editor title/description fields are saved as inherited values instead of empty custom overrides After updating, rebuild the audit index again and the title/description values should appear. Hi @adrian, thanks for catching both of these. I added separate Rendering settings: - Render hreflang alternate links - Render JSON-LD schema Both remain enabled by default for backwards compatibility, but can now be disabled independently. So in your case, you can disable hreflang when ProcessWire languages are only used internally, and disable JSON-LD completely if your templates already generate the exact structured data you need.
-
Hi everyone, Needed a way to embed polls and quizzes directly into page content — shortcode in any text field, renders as a cache-safe interactive widget. Built it, it works well, sharing it. GitHub: https://github.com/mxmsmnv/Pulse Screenshot: What it does Polls and quizzes embedded via shortcode into any text field: [[pulse:poll name="my-poll"]] [[pulse:quiz name="my-quiz"]] Polls — voting with live results, multi-select, allow-other option, duplicate protection (cookie+IP, user session, or soft). Quizzes — three modes: graded — points, pass/fail threshold, answer review personality — options award points to outcomes, winning outcome shown at end exam — graded plus timer, attempt limit, question bank, certificate Visual questions — question-level images and image-option layouts. Admin workspace — Setup → Pulse with full CRUD, analytics, CSV/JSON export, import, clone, and demo installer. Security: All scoring server-side — is_correct / outcome_points never reach the client before submission CSRF mandatory on all submissions (token from /pulse/state) Honeypot + rate limiting by hashed IP Voter cookies and IPs stored as salted hashes only Exam HMAC-signed question sets, server-enforced timeouts, signed certificates Cache-safe: renders a static shell, hydrates via JS — works with ProCache. Requirements: ProcessWire 3.0+, PHP 8.2+ MIT License.
-
- 9
-
-
-
I messed up and upgraded the module without upgrading the old version of PHP that I have installed. (7.something) Is there a way for me to downgrade the module (install an older version)? Upgrading to PHP 8, while recommended and necessary, isn't an easy task at this point and in the meantime the mailing function of the website is broken. 😞
-
strandoo started following GeoIP — MaxMind GeoLite2 geolocation module
-
This looks great! Any way to install it without Composer?
-
Are you hosting the htpasswd protected folder within the site/ folder, or beside it? PWSITE: - /site/ - /wire/ - /index.php - /.htaccess (PW root htacess) I have placed folders at root (the same level as site and wire), and haven't had any issues with similar situations, so long as the file name(s) are correctly typed and matching the case sensitivity. Any PW-specific subfolders would also be subject to whatever htaccess rules those subfolders possess, so it's easier to just have separate-need folders at root level.
-
floko started following htaccess protected folder
-
Hi everyone, I just set up a very simple htaccess password protection for a folder on our website (which is run by PW of course). To be specific, I placed a .htaccess file within that folder, referencing a .htpasswd file in the same folder. However, somehow the PW mechanics redirect to the standard PW 404 page of our website whenever I try to open any file within that folder (instead of prompting the htaccess login and password fields). Thanks in advance for any hints!
-
Ok, I uploaded a 4.9.6 version manually in wire/modules but it wasn't recognised there. Then I uploaded in site/modules and it got recognised. So now it's working while it's still in site/modules. Also recognised in the upgrades module. After that the module information page said there's two versions and now they're both 4.9.6. A bit of a mystery to me but anyway, ProcessWire managed to get everything in order sort of by itself.
-
Thanks everyone! The idea of a ProcessWire-native community/forum system is very close to what I am exploring with Vox. I do not think the goal should be to clone classic forum software exactly. PW gives us a chance to mix discussions, Q&A, inline content participation, profiles, reputation and API access in a more flexible way. Migrating a large forum is obviously a serious project, not just “Claude, make no mistakes” 🙂 But Vox 1.6.2 is a step toward testing these patterns on real PW sites: forum overview, Answers mode, Textformatter embeds, inline forms and flexible profile sections. I would be happy to hear which real use cases people would like to see covered next.
- 7 replies
-
- 4
-
-
- discussions
- forum
-
(and 1 more)
Tagged with:
-
I already generate LD-JSON in my code. I haven't entered anything in the module's identity settings, but it's still generating the json on the frontend. Is there a way to disable this please? I want very specific output for each template type. Unless there is a way in Ichiban to achieve that?
-
Hi @maximus - thanks for all the great recent improvements. Is there a way to disable the <link rel="alternate" hreflang="english-au" etc from being rendered? I have a lot of installed languages which get used behind the scenes, but the website itself is only in English, so having all these listed just isn't correct.
-
module ProcessWire Dashboard
d'Hinnisdaël replied to d'Hinnisdaël's topic in Module/Plugin Development
@suntrop Datetime rendering should be fixed in v1.6.1. I've added the published field as a system timestamp and a fallback for date fields without output format. Let me know if that fixes it on your end. -
module ProcessWire Dashboard
d'Hinnisdaël replied to d'Hinnisdaël's topic in Module/Plugin Development
@suntrop Just realizing now that the published field is an actual system datetime field. The module only checks for created/modified, so that would explain it. I'll look into making the checks consider all three, and then enable datetime formats in all contexts. -
The Upgrades module doesn't explicitly include the PW core module of MarkupHTMLPurifier in its update check (as it's part of the core), so there must've been a community module, or a much older version that was manually installed into the site/modules folder. If you check the site/modules/MarkupHTMLPurifier folder for the *.module (and/or README) file, can you tell who owns the module? From the one in core, the MarkupHTMLPurifier.module `getModuleInfo()` method contains the following: public static function getModuleInfo() { return array( 'title' => 'HTML Purifier', 'summary' => 'Front-end to the HTML Purifier library.', 'version' => 497, 'singular' => false, 'autoload' => false, ); } ...and here is an example screenshot of the Modules panel in the admin for comparison:
-
Thanks @maximus I installed the new version but I can't seem to make it work. For "Rendering" I am using this values {meta_title} | {site_name} The "site_name" is added when viewing the page in the frontend but the "meta_title" (resolved from field:title in the global defaults JSON) is missing. I rebuild the index multipel times but cannot see the title (or description) here either: I have placed some default values for title and description in my config next to the new "title format" options and would assume that those values should be visible after making an audit:
-
I just realized that published is by default set as a datetime instead of a timestamp like created/modified. I don’t know why, but that may be the reason. It is, however, being retrieved (from within the API) as a timestamp, which is how it is defined in the docs: https://processwire.com/api/ref/page/
-
MediaHub 1.19.2 is on the way, and while I'm finalising some UI polish, I wanted to share the custom fields integration, which some of you have requested. And because both a MediaHub asset page and an input field are new to ProcessWire, we benefit from some new features I hadn't planned. You can add custom fields at two distinct levels... On an asset detail page (fig 1), useful for asset organisation and metadata On the MediaHub input field, giving editors access to those fields when placing assets (fig 2) Fields can exist independently at either level, but when the same field appears in both, they work together. So you might have custom fields on only the asset detail page or only on the input field. Explanations after screenshot... Fig 1 - Asset-level defaults Custom fields on the asset detail page act as the source of truth for that asset. Fig 2 - Editor field overrides You can choose whether to expose those fields to your editors on the MediaHub input field, or not. Your call. Fig 3 - Inherited value with reset option When the same field exists at both levels, the MediaHub field inherits the value set on the asset detail page. You can override it on a field-by-field basis, and if you change your mind, the rewind icon lets you reset it back to the asset value. It only appears once you've made a change. Fig 4 - Independent field ordering The order of fields on the MediaHub input field can be completely independent of the order on the asset detail page. I'll share a few more details when I wrap up and create a dedicated post.
- 37 replies
-
- 4
-
-
- media upload
- media
-
(and 3 more)
Tagged with: