maximus
Members-
Posts
182 -
Joined
-
Days Won
46
Everything posted by maximus
-
Hi everyone, I’m preparing a new ProcessWire module for release: Panorama. Panorama is a media audit and maintenance toolkit for ProcessWire images and files. It is built for sites where media is spread across many templates, repeaters, galleries and file fields, and where you need one place to understand what is stored, where it is used, what can be cleaned up and what needs attention. What it does Media dashboard with totals, disk usage, average size, recent uploads and largest files. Breakdown by file type, field, page and template. Visual Explorer for browsing media by gallery, page or template. Detail drawer with owner page, template, field, dimensions, file size and image variations. Duplicate finder with background scan, visual cards and reclaimable space estimates. Alt text audit for images missing descriptions. Cleanup tools for broken references, orphaned originals and orphaned variations. Background image variation warmup. Bulk actions for selected media. CSV export. Support for Repeaters, Repeater Matrix and FieldsetPage ownership where possible. The heavier thumbnail-based sections load in the background, so the main admin page should stay responsive even on media-heavy sites. Requirements ProcessWire 3.0.227+ PHP 8.3+ Repository GitHub: https://github.com/mxmsmnv/Panorama
-
Sound and sensitivity of button presses. I also tried MX Keys for Mac, it's terrible. I returned it after a few days.
-
Thanks Peter! Not specifically for the forums. I needed a reusable weather module for ProcessWire projects: normalized provider data, cache, fallbacks, geocoding, and optional widgets. The illustration is basically a quick visual overview of the module features. For some modules there isn’t always a meaningful screenshot to show, especially when the main value is in the API or backend logic, so I decided to make a small illustration for each module. It makes the project easier to scan and gives the release page a more polished, professional feel 🙂
-
Thanks @adrian, great catch on the superuser fallback. You were right — that made the setting misleading if someone intentionally cleared the excluded roles list. I’ve fixed that in 1.1.0, so leaving the field blank now tracks all roles. Also, thanks for the heads-up about Native Analytics being hookable now. I hadn’t been following its recent development closely, so I didn’t know about that change. I liked your suggestion and added optional Native Analytics integration in 1.1.0 as well. Compass remains fully standalone via Setup → Compass, but if Native Analytics with hookable dashboard tabs is installed, Compass now adds its own tab there too. And yes, I still think there’s room for smaller focused tools alongside bigger all-in-one analytics modules. Sometimes people just need a specific behavior/heatmap tool without adopting a broader analytics setup. Fun side note: Compass was originally started in April 2026 in Philadelphia, while I was at a Mel Robbins event.
-
Thanks, that makes sense. I updated the Bulk Editor so it now shows the rendered title below the editable Meta Title field when Title Format adds a suffix or other text. The input still contains only the raw editable title, so the suffix is not accidentally saved into each page override, but the rendered title is visible and the length count continues to include the configured Title Format.Thanks, that makes sense. I updated the Bulk Editor so it now shows the rendered title below the editable Meta Title field when Title Format adds a suffix or other text. The input still contains only the raw editable title, so the suffix is not accidentally saved into each page override, but the rendered title is visible and the length count continues to include the configured Title Format.
-
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
-
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.
-
- 10
-
-
-
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:
-
Vox 1.6.2: Answers mode, profiles, forum layout, Textformatter and refreshed frontend I have released Vox 1.6.2. This release combines the recent work into one larger update after the first public release. The main goal was to make Vox easier to embed into real ProcessWire sites, not only as a single comments widget, but as a flexible community layer. The biggest additions are: Answers mode Vox can now be used for StackOverflow-style Q&A pages, with question lists, filters, question detail pages, answer forms, best answers, voting, Q&A stats and contributor sidebar. Useful tokens: [[vox:answers]] [[vox:answers-index]] [[vox:answers-ask]] [[vox:answers-sidebar]] Flexible profile sections User profile output is now split into separate sections, so you can build account/profile pages more freely: [[vox:profile]] [[vox:profile-header]] [[vox:profile-rank]] [[vox:profile-badges]] [[vox:profile-activity]] [[vox:profile-points]] [[vox:profile-leaderboard]] This makes it possible to show reputation, ranks, badges, recent activity, points and leaderboard blocks wherever they fit in your own template. TextformatterVox The new TextformatterVox module allows editors to place Vox widgets directly inside textarea or rich-text content, without editing template files. Examples: [[vox:forum]] [[vox:reviews]] [[vox:questions]] [[vox:discussions]] [[vox:all]] Inline editorial forms are also supported, so a compact participation form can be inserted between paragraphs: [[vox:form]] [[vox:discussion-form]] [[vox:question-form]] [[vox:review-form]] Custom copy can be passed directly in the token: [[vox:form type="question" title="Ask the editors" intro="We will answer useful questions here." button="Send question"]] Forum-style overview There is now a forum landing view with category cards, recommended threads, newest threads, search and a start-discussion form. [[vox:forum]] Demo installer The optional demo has been expanded into a complete showcase for: reviews questions and answers discussions Answers mode forum overview inline editorial forms flexible profile sections reputation, ranks, badges and leaderboard This should make it easier to test Vox quickly on a clean installation and see how the different pieces can be combined. Frontend refresh The public frontend has also been cleaned up: larger base typography 4px border radius no shadows no decorative gradients Remix Icon instead of FontAwesome on the public side improved spacing for profile sections, sidebars and mobile stat cards more realistic demo user names The current version is 1.6.2. Repository: https://github.com/mxmsmnv/Vox Release: https://github.com/mxmsmnv/Vox/releases/tag/v1.6.2
- 7 replies
-
- 3
-
-
-
- discussions
- forum
-
(and 1 more)
Tagged with:
-
Hi @Stefanowitsch, Yes, this is now possible. I added a global Title Format setting in Ichiban settings under: Settings → Rendering → Title Format You can use it like this: {meta_title} | {site_name} or, if you prefer a fixed suffix: {meta_title} | my-company.com Supported placeholders are: {meta_title} {site_name} {entity_name} {host} So your examples would render as: Home | my-company.com Our Services | my-company.com The title format is applied to the rendered <title> tag, and Ichiban’s Audit / Bulk Editor title length checks now include the formatted title length as well. After changing the format, rebuild the audit index so the stored title length checks are refreshed.
-
Thanks Adrian, this is now possible via a new hook: Ichiban::resolvedSeoValue. It runs after Ichiban has resolved the page/template/global defaults and built-in fallbacks, so the rendered tags, previews, Audit, Dashboard stats, and Bulk Editor all see the adjusted value. That means you can use it for automatic descriptions on staff/blog pages and OG image fallbacks without those pages showing as incomplete in the dashboard. Example is in the README, but the shape is: wire()->addHookAfter('Ichiban::resolvedSeoValue', function(HookEvent $e) { $page = $e->arguments(0); $group = $e->arguments(1); $key = $e->arguments(2); $value = $e->return; if (in_array($page->template->name, ['person', 'blog-post'], true) && $group === 'meta' && $key === 'description') { $source = $value !== '' ? $value : wire('sanitizer')->textarea($page->get('summary|body')); $e->return = wire('sanitizer')->truncate($source, 155); } if ($group === 'og' && $key === 'image' && $value === '' && $page->template->name === 'blog-post' && $page->images->count()) { $e->return = $page->images->first()->httpUrl; } });
-
The old forum format has long since outlived its usefulness, as generations have changed and a new format is needed, even one different from Reddit. Therefore, to maintain engagement, we need to come up with new ways to keep our audience on the page. By the way, the archive contains mockups of the future service from March 2026. Vox-FB.zip
- 7 replies
-
- 2
-
-
- discussions
- forum
-
(and 1 more)
Tagged with:
-
I bought an HP 975 on Black Friday – it's the best keyboard experience ever.
-
Hi everyone, Most ProcessWire sites need some form of community interaction — reviews on product pages, Q&A on documentation, discussions on articles. Vox adds all of that without leaving your PW install. GitHub: https://github.com/mxmsmnv/Vox Demo: https://vox.smnv.org/vox-demo/ What it does Reviews — star or dot ratings, custom fields per template, photo attachments Q&A — questions with best-answer selection Discussions — open threads with nested replies Block comments — inline comment panels for specific sections on a page Guest posting — with optional email requirement Moderation — approval queues, reports, stop-word filtering Gamification — points, ranks, badges, leaderboards REST API — via VoxApi submodule Admin section — browse, filter, approve/reject/remove content; configure per template; manage ranks and badges Screenshots One or multiple widgets per page, combinable into tabs. Ships with an optional demo with restaurant, hotel, and product sample data. Requirements: ProcessWire 3.0+, PHP 8.0+ MIT License.
- 7 replies
-
- 11
-
-
-
- discussions
- forum
-
(and 1 more)
Tagged with:
-
Hi everyone, Accessibility overlays have a bad reputation — mostly because they're sold as SaaS, phone home to third-party servers, and charge monthly fees for something that should be built-in. Ally is different: self-hosted, MIT, no external requests at runtime. GitHub: https://github.com/mxmsmnv/Ally What it does Adds an accessibility panel to your site's frontend, powered by Sienna (MIT). The JS bundle and OpenDyslexic font ship with the module and are served from your own server — nothing loads from external CDNs at runtime. Font size adjustment Dark, light, and high contrast modes High/low saturation, monochrome Dyslexia-friendly font (OpenDyslexic, bundled locally) Highlight links and headings Letter spacing, line height, bold text Reading guide, stop animations, big cursor 53 languages with auto-detection from html[lang] or browser settings Full ProcessWire multi-language support — maps $user->language to the correct locale automatically Configurable position, offset, button size, and accent color Skips admin pages and Chrome Lighthouse by default No build step — prebuilt JS bundle included. One caveat: the widget is injected via Page::render hook. If you serve pages through ProCache static HTML, the hook doesn't run on cached pages — exclude those pages from ProCache if you need the widget there. Overlay widgets supplement, but do not replace, accessible markup. Use Ally alongside good semantic HTML, not instead of it. Requirements: ProcessWire 3.0.200+, PHP 8.1+ MIT License.
-
- 8
-
-
-
I'll take a look in the near future, I think it's possible to automate this somehow.
-
There are still a few modules left to do...
-
Hi Krlos, Thanks for confirming, and good catch on the admin preview. The frontend output was already resolving the Combo image correctly, but the page editor preview JavaScript was still only recognizing simple tokens like {image} and field:image. It did not recognize dotted expressions such as {combo.image} or combo.image when deciding whether to use the resolved URL for the preview. I’ve fixed this in v0.1.2-alpha. After updating, the resolved image path and the social preview should now appear in the editor for Combo image sources as well.
-
Yes, I see a lot of issues there, of course I'll fix them! Thanks a lot for testing!
-
Hi everyone, Most project management tools are generic. Verk is built specifically around ProcessWire's data model — tasks link directly to PW pages, the calendar reads real page date fields, and content audits run PW selectors. Everything stays inside your install. GitHub: https://github.com/mxmsmnv/Verk Why Verk? Verk means "work" or "task" in Icelandic and Swedish. Short, abstract, and fitting for a tool built around getting things done inside ProcessWire. It follows the same naming approach as other modules in this series — Arbor, Ichiban, Collections — names that mean something without being literal. Screenshots: What it does Dashboard — open tasks, upcoming publications, audit alerts, and active sprint planning Tasks — create/assign tasks linked to specific PW pages; one click opens the page editor directly Calendar — month, week, and quarter views for page publications and task due dates Content Audit — run PW selectors with dot-notation field checks to find missing content Knowledge Base — rich editorial notes organized by category, searchable and exportable Sprints — sprint planning, quarter grouping, task assignment, DOCX export, and progress tracking Key details: Tasks store page_id — page data lives in PW, never duplicated Page Editor Widget injected via hookAfter('ProcessPageEdit::buildForm') — no template files modified Audit to tasks — bulk-create tasks from audit results with page context prefilled Rich text via TinyMCE when InputfieldTinyMCE is installed DOCX exports for task lists, notes, sprints, and knowledge base Return-aware forms — create/edit flows preserve filtered list URLs Requirements: ProcessWire 3.0.200+, PHP 8.0+ MIT License.
- 4 replies
-
- 10
-
-