All Activity
- Past hour
-
I quite agree with your two points above. "Section for practical code examples." They could be added to the method descriptions, and not just sample code strictly related to a given method, but code showcasing typical scenarios with related methods and often used techniques, “coding patterns.” "Currently a lot of core features are very fragmented and hard to find if you don't know they exist in the first place." So true! I have some notes of some important settings, which I often set up differently from the defaults, but having to look through them just to find something is time consuming. Some sort of clever way of gathering information and providing it in a categorized and digested way would help, I think.
-
Thanks @BrendonKoz! Will check this out.
-
The FieldtypeMeasurement module might be another option (I haven't used it myself yet, but it appears to offer time conversion). It may need some massaging to allow the interface to behave the way you want, but I'd think it would assist you quite a bit. I saw in the module's README that it has second, minute, hour, day; I just don't know if it offers (out-of-the-box) microseconds. The combination input values might not default to the formatting you'd want to provide end-users. Honestly, I'd probably just use a text field and handle the calculations myself, unless they have strict database requirements or comparisons that you'd need to do in the future. Just in case this is useful for your project (referencing a now-fixed rounding issue with Float values in PW):
- Today
-
Hi Robin! I haven't yet identified how/where this is occurring, other than that it is. In a repeater field utilizing a TinyMCE-enabled textarea field, the (I assume) JavaScript injected icon and tooltip seem to be rendered twice. I'm seeing this in both ProcessWire v3.0.246 and v3.0.256 on PHP v8.2 with module version 0.1.3. Not a big deal, just thought I'd report it.
- 10 replies
-
The following is written in somewhat hurry, but I'm sure most of you get what I mean. What Processwire really needs is: Section for practical code examples. Searching through the forum gets tiresome and sometimes it can take hours to find what you're looking for. The API is good, but sometimes very opaque if you don't already posses good deal of knowledge about it. Admin needs some kind of "settings" page that puts things like "password strength" in one easy to reach place. Basically everything the core modules do, should be here. Then if you want to edit something, it will point you to the right module. Currently a lot of core features are very fragmented and hard to find if you don't know they exist in the first place. I think them being in the modules is great, but one page that gathers all that information is easy to digest form would make it better.
-
Hi all, no ideas so far? I copy the JS from the above mentioned codepen here: window.addEventListener("load", initGallery); function initGallery() { const triggers = document.querySelectorAll(".trigger"); let popImg = document.querySelector("#mypopover img"); triggers.forEach((trigger) => { trigger.addEventListener("click", () => { let popImgUrl = trigger.dataset.full; popImg.src = popImgUrl; popImg.alt = popImgUrl; }); }); } Any help much appreciated! ottogal
- Yesterday
-
froot started following Page Protector
-
Is there a way to enable/disable page protection programmatically? With a hook?
-
netcarver started following Adding Fractional Seconds in Time Values?
-
Although I never thought of this use-case, it should be possible as the module uses (IIRC) the MySQL Time type which does have fractional second support.
-
AgeWire is a powerful, fully customizable age verification module for ProcessWire, built with modern web standards and powered by Tailwind CSS. Perfect for sites requiring age gates (alcohol, tobacco, adult content, etc.). Key Features Two Verification Modes: Simple Yes/No buttons Date Picker with separate MM/DD/YYYY inputs (bot-resistant) 13 Stunning Themes: Modern, Dark, Classic, Minimal, Gradient, Neon, Elegant, Corporate, Vibrant, Nature, Sunset, Ocean, Purple 4 Smooth Animations: Fade In, Slide Up, Zoom In, Bounce In International Date Formats: MM/DD/YYYY (US) DD/MM/YYYY (EU) YYYY/MM/DD (ISO) Advanced Security: Secure, HttpOnly, SameSite cookies Configurable lifetime (1 day to 6 months) Bot protection via manual date entry Smart Exclusions: Skip verification on specific templates or pages Admin pages auto-excluded Privacy & Compliance: Optional Terms & Privacy Policy checkbox Custom links to your legal pages Fully Responsive – Mobile-first design Custom CSS support Tailwind CDN integration (no build required) Installation Download from GitHub Place AgeWire folder in /site/modules/ Go to Modules > Refresh Install AgeWire GitHub: https://github.com/mxmsmnv/AgeWire Download: https://github.com/mxmsmnv/AgeWire/archive/refs/tags/v1.0.9.zip Perfect for: Wineries & breweries Vape & tobacco shops Adult content sites Age-restricted events Feedback, bug reports, and pull requests are welcome! If you like AgeWire, please ⭐ star it on GitHub! Made with ❤️ for the ProcessWire community.
-
- 11
-
-
-
Thank you very much for your detailed answers @jploch, I really appreciate it. In fact, it concerns more PW topics, such as how these are seen and used for page grid. I thought that site profiles and page grid interact with each other, but I wasn't sure, hence my question, including the one about pro cache. When you come from other CMS systems, it's always a matter of ruling out multiple interferences. Thank you for your explanation on the homepage about how I can configure this.
-
I found @netcarver's module PW-FieldtypeTime. I'll see if it's possible to extend the functionality of the module.
- Last week
-
Sebi changed their profile photo
-
Hello again! The new AppApi release v1.4.0 is live now! Changes in 1.4.0 (2025-11-01) Add compatibility for ProcessWire instances installed in a subdirectory (Thank you @saerus for mentioning this issue) Add helper functions that can manipulate subdirectory links. -> Can be very handy for using ProcessWire as a headless CMS for your JavaScript applications (See FAQ for more information) Add config param to disable automatic adding access control headers (Thank you @gerritvanaaken for the ticket) Fix an issue where adding trailing slashes automatically lead to problems with route parameters (Thank you @gingebaker for the ticket) Thank you all for using AppApi, leaving feedback and for posting Github Issues and PRs. Thanks to you, the module keeps getting better and better.
-
I was asked if I could help my daughter's track and field club organize a database with all the results throughout the club's history. My response was of course: I'll fix it with PW. After digging into the subject a bit, I realize that I will need "Fractional Seconds in Time Values" for the race results. Is this something that could be added to the date/time field type or is it better to create a separate field type for this purpose? https://w3c.github.io/opentrack-cg/spec/model/#time https://dev.mysql.com/doc/refman/8.4/en/fractional-seconds.html
-
Ivan Gretsky started following PW 3.0.253 – Core updates
-
Always wanted those on Page. Even before custom classes existed. Great addition! I think that custom classes truly need more introduction and use cases. So eagerly waiting for Ryan's upcoming blog post.
-
szabesz started following PW 3.0.253 – Core updates
-
That will definitely be welcome, for sure! Thanks in advance.
-
ryan started following PW 3.0.253 – Core updates
-
This week on the core dev branch there are several new hookable methods added to the Page class. While many of them may be redundant with hooks already available on the Pages class, those on the Page class are more convenient to use in some cases, especially when it comes to using custom Page classes. It's helpful because you can hook CustomPageClass::method rather than Page::method to more easily target specific types of pages. Or you can override the methods in a custom page class, without having to hook them at all. I'll get into this with more details and examples in a future blog post that goes in-depth on using custom page classes. Here's a summary of the methods that were added with links to their API reference documentation pages: Page::addReady() Page::added() Page::addStatusReady() Page::addedStatus() Page::removeStatusReady() Page::removedStatus() Page::cloneReady() Page::cloned() Page::deleteReady() Page::deleted() Page::editReady() Page::moveReady() Page::moved() Page::renameReady() Page::renamed() Page::saveReady() Page::saved() Page::renderPage() The above is just for this week, but there's quite a bit more in 3.0.253 relative to 3.0.252, so be sure to check the last issues from ProcessWire Weekly for more details.
- 4 replies
-
- 26
-
-
-
jploch started following [SOLVED] Pagegrid and siteprofiles/procache
-
Hi ausblick, I'm happy to answer your questions. Basically, these are topics that for the most part don't specifically concern PAGEGRID, but rather ProcessWire in general. In ProcessWire, site profiles are essentially preconfigured starting points for a new site. They define the structure, templates, fields, and sometimes demo content that get installed when you first set up ProcessWire. Unlike themes in WordPress, which can be changed later, site profiles are installed together with ProcessWire when you first setup the site and can't be changed later. PAGEGRID supports the creation of site profiles, and there are currently two smaller PAGEGRID profiles that can be installed (click the thumbnail to see the frontend). However, these are currently only available in PAGEGRID Cloud. If you want to try them quickly, you can create a free cloud account. Cloud sites can then also be exported as a site profile (with a self-hosting license). But I can also upload them here as ZIP archives if you prefere. For my projects I usually don't use site profiles. Since PAGEGRID allows you to install pre-built blocks (which create all the templates and fields for you), it's already a good starting point for a new website. All you have to do is add the blocks you want to your page and design them using the style panel (visually) or with CSS code. Since my websites usually look very different from each other, I prefer blocks that are largely unstyled by default. Yes. Procache works with PAGEGRID. But it is not really needed since PAGEGRID is already using markup cache for all it's output. If you build a site that is mostly rendered through PAGEGRID it will be very fast out of the box, without any additional customisation. E.g. page-grid.com which is build with PAGEGRID has a performance score of 100 (best score) in Google lighthouse speed test and is not using any additional caching. First you have to add a PAGEGRID field to your home template inside the admin. Then open the file home.php inside your site/templates folder and add the following lines: <div id="content"> <?= $pagegrid->styles($page); ?> <?= $pagegrid->renderGrid($page); ?> <?= $pagegrid->scripts($page); ?> </div> Note in this example I am using the blank site profile and markup regions are enabled. The #content div in this file will replace the #content div in _main.php See the Markup Regions documentation for more information.
-
@ryan, You'd mentioned at some point that existing installs could retain the old theme and perhaps users prompted to update to the new one. At the moment if I upgrade an existing site to the dev branch, the new theme is enabled by default. This breaks any custom TinyMCE styling as the new theme overrides it. Are you planning to implement this prior to the next master version? Ideally for us, given we have several hundred sites which we update to the latest master when it is available, nothing would change for the users. We could then turn on recommending a theme upgrade on a per site basis, or if we choose to, force the upgrade on the users. Cheers, Chris
-
Hi, being french, you can imagine that most my websites are multinlingual 🙂 and i alwys use this kind of language switcher foreach($languages as $language) { if( ! $page->viewable($language) ) continue; $url = $page->localUrl($language); $iso = $language->name == 'default' ? 'fr' : $language->name; // use your own default language instead of fr... if($language->id != $user->language->id) { echo '<a hreflang="' . $iso . '" href="' . $url . '" title="' . $language->title . '">' . $iso . '</a>' . "\n"; // echo '<a hreflang="' . $iso . '" href="' . $url . '" title="' . $language->title . '"><img src="/site/assets/img/' . $iso . '.svg" alt="' . $language->title . '" /></a>' . "\n"; // echo '<a hreflang="' . $iso . '" href="' . $url . '" title="' . $language->title . '">' . $language->title . '</a>' . "\n"; } else { echo '<span>' . $iso . '</span>' . "\n"; // echo '<span><img src="/site/assets/img/' . $iso . '.svg" alt="' . $language->title . '" /></span>' . "\n"; // echo '<span>' . $language->title . '</span>' . "\n"; } } and never ran into the issue you describe whether the urls are ...com/toto and ...com/en/toto or ...com/fr/toto and ...com/en/toto (in this case you have to give a name -the name you gave you default language- to the homepage, not the preferred way tu use pw but it works if necessary) the two important things are the use of $url = $page->localUrl($language); like @monollonom says and the line where $language->name is defined for the default language in case it may help 🙂 have a nice day
-
Awe-inspiring website! I loved that you demod the backend as well. Kudos to the team!
-
Office TRC joined the community
-
Hi As a beginner in PW I just want to ask a. how Pagegrid interferes/interacts with siteprofiles? b. Does Pagegrid supports ProCache? c. How to cahgne to main Home pw page to pagegrid? Merci.
-
You can have a Look a the findRaw function: https://processwire.com/api/ref/pages/find-raw/
- 1 reply
-
- 1
-
-
Hello, I have a site which have comparisons of products. There's an ajax select form from this tutorial. I have ~8000 pages The problem is high cpu load when multiple users are searching (server two 5GHz cores, 1 GB ram). I get db connection errors or very slow response time Is there a way to optimize searching? I want to minimize db queries and make ajax responses as fast as possible