Leaderboard
Popular Content
Showing content with the highest reputation since 10/29/2025 in all areas
-
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.28 points
-
This week I’ve been working on some useful additions to our Markup Regions system, but I don’t have those additions quite ready to commit to the core just yet. Hopefully next week they will be ready. What it involves is the ability to populate regions within CSS, JS, SCSS, LESS files. So I might output a <style> tag in my markup (for example), but the styles go into a CSS file rather than in the HTML output. That CSS file combines and contains all such instances, and can then be loaded from a dedicated <link> tag in the document head. You could do the same with JS, but using <script> tags instead. I’m not sure I’ve explained it well just yet, so I’ll have a better description of it next week, along with some practical examples. It’s very simple and I think examples will make it obvious. Stay tuned, have a great weekend and thanks for reading!18 points
-
I don't want to be too blunt and I can't speak for anyone else, but I've never referred a client to a software or service website as part of the education process. It doesn't do anything for them. You are the expert. The person making the pitch should be able to fully explain the technology stack to the extent that the conversation requires it in language they can understand because we are the interpreters. Clients trust me because I am the expert and the top 3 things they care about are these, in this order: How much is this going to cost me? Why don't we use xxx? (or, our current site is xxx I'm not sure we want to switch) When is it going to be done? Sending a client to any site for tools or software is like saying "here, do your own research". The ProcessWire site, like any other development tools/software sites, isn't there to woo clients. Most clients don't care enough to take time and truly understand it because that's not their job. If a curious client is in a position to go to websites like ProcessWire, several steps have been skipped in the client discovery/planning process IMHO. I'd even go so far as to say that if a site has "Docs" or "Documentation" in the primary nav, it's not for clients and they shouldn't be there. I hope this isn't a too hot a take... I would say that improvements could be made iteratively with more use of color for contrast, emphasis, and indicating priority. I think it's a flexible design that can evolve in whatever capacity that may be needed. This has the ability to highlight some impressive facts and figures. No notes on the content, some elements could be integrated into the current design. Even then, facts and figures are for devs. I used the word "scalability" with a manager once and they stopped the conversation to ask "wait, what does that mean?" and still didn't care when I explained. A a CMS or framework site is never going to lead to clients translating what's on the page to time or money. In all likelihood, the conversation you are having with a client at 10:00 just followed a call with their product distributor at 8:00am, their accountant at 9:00, and at 11:00 they're meeting with other members in management. Personally, I would no sooner send someone to processwire.com than I would laravel.com. You are the time and money. I agree with this. I will go out on a limb and say the number of end customers who went to the Drupal site and left thinking they need a Drupal site isn't zero, but it's probably close. If someone is hiring a Drupal developer then they're in a role where it's part of their job to understand the tech stack even if they aren't a dev. Visiting wordpress.com, it doesn't target the end user but name recognition still draws business which overcomes the website entirely. This is fair. It doesn't take a monitor that computer professionals use to get this experience. All you need is a consumer iMac. I think iteration can address concerns. I don't want to belabor the point, but to be fair, did you ever send a client to the QuarkXpress website... Just a little joke ☺️ Cheers from a fellow old school developer who built their first website in 1997 and tinkered with QuarkXpress 🍻15 points
-
Here's another website that i recently made that I would like to share with the community: https://www.w2-ingenieure.de/ W² Ingenieure (which is german and translates to "W² Engineers") is a small office that offers that develops, modernizes, and optimizes living and working spaces in Germany like: Schleswig-Holstein, Hamburg, and Lower Saxony. Whether for private households, commercial enterprises, public institutions, or industrial plants – they plan and implement customized solutions for even the most complex requirements. This project is a redesign of an existing website. While the old website had plenty of good content, there were multiple flaws in the design (especially the mobile version of the website) so my main task was not to make a from-the-ground-new-concept but to give it a better, functional and more polished look based on the CI. As we are talking about an engineering company that offers planning for the construction industry the look of the site hat to be sleek, clean, somehow modern and overall "serious". We are not talking about a design-agency website here. Tech Talk: - UiKit as frontend framework - RockPageBuilder for content creation and editing - TextformatterRockDown to enable headline formatting - RockFrontend for Ajax Endpoints (used in form submissions) - RockDevTools for Asset Management and Minification - SEO Maestro for SEO meta data - PageImageSource for webp image creation - FileMover as a workaround for a global media management solution - WiremailSMTP to handle form submissions So here it is: The website consists of several page templates, including: - Homepage - Content Page - Project Page - Job Page - etc. The Homepage and Content Page templates can be populated with pre-defined content-blocks via @bernhards RockPageBuilder. This is straight-forward and easy-to use. The user can chose between multiple content elements and place those elements in any order they want: For Example we have: - Textfields - Teaser in multiple variants - Description Lists - Hero Title Image Sections - etc. Once added the content can be edited directly in the frontend or inside a convenient popup window (or from the backend page edit view of course). Other templates like the Project Page offer a more strict, predefined, layout to achieve a uniform look throughout any project page that is crated. These type of pages can be populated from the backend more easily: I have to keep my attachment file list small, so please have a look on this site for yourself and don't hesitate to ask any questions if you would like to know more about the tech in the background. Have a great week! Stefan14 points
-
Field Access A Process module that provides an overview of field access settings, including template overrides. Usage The table has a sticky header so that the columns can be understood when the table is scrolled. The empty space underneath the table is to allow scrolling to the bottom of the table. There are fields for filtering the table by field name or by template name. The field names link to the Access tab of the field settings, and the template names link to edit the access settings for the field in the context of that template. A collapsed field at the top of the page has information about the meaning of the table column headers, and tips for understanding the values in the table: Table column headers Control: Is access control enabled for this field? View: Roles that can view the field Edit: Roles that can edit the field Show: Show field in page editor if viewable but not editable (user can see but not change) API: Make field value accessible from API even if not viewable Overrides: Overrides of the field access settings in template context Tips If the guest role has view access then it means that all roles have view access. You can hover the guest role in the View column to see a tooltip with all the role names if you want a reminder of those. Overrides: when access control is enabled as a template override, the Control, View, Edit, Show and API columns only display settings that are different from the field access settings. If a column is empty it means the field access setting applies. https://github.com/Toutouwai/ProcessFieldAccess https://processwire.com/modules/process-field-access/14 points
-
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.14 points
-
Nested Checkboxes An inputfield for Page Reference fields that groups options by their parent page, and optionally by grandparent page too. This can help editors understand the grouping of the selectable pages, and also makes it quicker for an editor to select or unselect an entire group of pages. The checkboxes at the parent and grandparent level are not for storing those pages in the field value - only for quickly selecting or unselecting groups of pages at the lowest level of the hierarchy. For example, in the screen recording above the "Cities" Page Reference field allows only pages with the "city" template, and the pages at the country and continent level are not included in the field value. The inputfield is only for use with Page Reference fields because the structure comes from the page tree. Requires PW >= v3.0.248. Configuration For each field that uses the inputfield you have these options: Checkboxes structure: choose "Parents" or "Parents and grandparents". Collapse sections that contain no checked checkboxes: this option makes the inputfield more compact. There are also the standard column width and column quantity options familiar from the InputfieldCheckboxes inputfield. These apply to the selectable pages at the lowest level of the hierarchy, and the structure is arguably more readable when these are left at their defaults. https://github.com/Toutouwai/InputfieldNestedCheckboxes https://processwire.com/modules/inputfield-nested-checkboxes/12 points
-
This module is nothing special. It adds a small JavaScript and CSS file to your page to create a nice snowfall. To adapt the snowfall to your needs you have some configuration options like snowfall density, min and max size of the snowflakes, duration time of the snowflakes and more. You have the option to start and stop the snowfall manually or depending on the date. At the moment you will find a live example here: https://www.schulfreund.at/ This example is only active in the winter season - not the whole year 😉 You can find the full docs and description and the download possibility of the module here. Have fun and enjoy the winter!!11 points
-
This week I've added support for File Regions, part of the Markup Regions output system in ProcessWire. File Regions enable you to populate CSS and JS files with Markup Regions. I'm short on time today, so rather than writing much about it here, I've put up a documentation page for it in the API reference, which I'll link below. I'm using File Regions on a project right now and am finding it to very useful. Especially on a project where there are multiple developers, it simplifies a lot to be able to build features as self contained components, while still using the traditional route for site-wide stuff. It's something different, and I'm curious to know what you think. Here's the new documentation page for File Regions below. The page was a bit rushed, so I'll likely be amending it, but hopefully it gets across the main ideas. Thanks for reading and have a great weekend! https://processwire.com/api/ref/wire-markup-file-regions/11 points
-
Hey everyone, we just released a small companion module for StripePaymentLinks: 👉 GitHub: https://github.com/frameless-at/StripePlCustomerPortal PW Repo: https://processwire.com/modules/stripe-pl-customer-portal What it does The module auto-creates a ready-to-use page at /account/ where logged-in customers can: view all their purchases (table or grid view) access their purchased products / membership pages update profile data (name + password) open Stripe’s Customer Portal to download invoices or manage subscriptions No custom template coding required — the module installs a template + page, and you can still override the markup if you want. ⸻ Why we built it StripePaymentLinks already handles the checkout & user/purchase creation. This module completes the loop and gives customers a proper account area. 💡 Bonus benefit (Marketing): The grid view not only shows purchased products — it also shows available-but-not-yet-purchased products in greyscale. This turns the account page into a soft upsell area without being salesy. ⸻ Requirements ProcessWire 3.0.210+ StripePaymentLinks module installed & working Stripe Billing Portal must be enabled (Stripe → Settings → Billing → Customer Portal) ⸻ Status 🚧 BETA — already used on live sites, but we’d love developer feedback. If you try it out, please tell us what works and what’s still missing. Issues / PRs welcome. ⸻ Cheers & happy coding, frameless Media8 points
-
AIOM is alive 🙃 I am pleased to announce that the AIOM module will be further developed and supported by @matjazp. My original repository is now archived, and matjazp's fork is now the official one. The forked version is now also listed in the Processwire module directory. This should make it possible for everyone to update the old version to the new one, either manually or via the ProcessWire upgrade module.8 points
-
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.6 points
-
Hi all, first of all I'm sorry this is going to sound a bit negative. But ever since the new website launched I feel like it's increasingly difficult to convince clients that have never heard of ProcessWire to use it. Have any of you experienced the same? I'm not a designer, but I feel like the content and the design have been made to target developers. That's valid, but if our clients don't want to use the system, neither can we, at least professionally. In my opinion at least the homepage would need a design and content overhaul to streamline the first impression and explain to non-techies why ProcessWire is awesome.5 points
-
Which CMF does this? It is very challenging to have a default solution for this in the codebase IMHO. This matter becomes more complex depending on the age and size of the website. It may have several repercussions: SEO implications and content considerations, such as: - What if some pages only exist in English? Some sites may have pages with content available only in a secondary language. - What about hardcoded URLs in content (WYSIWYG fields)? - Some business logic checking the language on the templates - Etc.5 points
-
Free version of Microsoft FrontPage Express on Windows 98 made me think I didn't have to learn any more fancy HTML until I found out that was all a lie 🤣5 points
-
I disagree. As a designer and developer, I think the new design is much more professional, contemporary, and appropriate. Compare it to the Dupal or WordPress website. Do you think they are better positioned? What information do you think is missing for customers?5 points
-
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.5 points
-
5 points
-
@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, Chris5 points
-
Hooking after that method wasn't as bad as I was thinking, so this is my current quick solution: wire()->addHookAfter('ProcessLogin::buildLoginForm', function(HookEvent $event) { $form = $event->return; $form->get('login_name')->attr('autocomplete', 'off'); $form->get('login_pass')->attr('autocomplete', 'off'); $event->return = $form; });4 points
-
@ottogal, my suggestion is to delete the /site/modules/FormBuilder/ folder and everything inside it. It's not the ideal way to uninstall a module but PW will handle it okay. This should stop any fatal errors and then you'll be able to log in and do a Modules > Refresh. There will probably be some FormBuilder-related items on the "Missing" tab of the Modules section. For any item listed on this tab, click on it and then choose the "Remove this module from the database?" option.4 points
-
Yes. I've worked for agencies and with them. I've approached an agency who was full WordPress and in conversation explained the features and benefits of PW. The conversation went well but they declined to work with me. When I talked about stability and long term security, they simply said that the problems and bad parts of WordPress were part of their business model. They were quite satisfied selling a substandard product that they can count on breaking simply because they can charge their customers to fix it. There are a lot of reasons behind the decisions at agencies. I'm not discounting your thoughts on the website, many good points, and I know that you're not alone in those sentiments. I think that it's really good that devs who regularly use PW and care about it share those thoughts. It's something that makes this community unique 👍 I doubt there's not going to be a redesign. Maybe some Iterative feedback would be constructive if Ryan and the designers are open to it. It's easier to help incrementally improve support of the work that needs to be done. Not everyone will be satisfied 🤷♂️ An open and honest conversation in good faith is something to be encouraged. I personally always think content first. Maybe a conversation about what is said, how it's said, and how impactful it is as stated on the site can help. I can't find it for the life of me but I know that Ryan put a out a question of "what should be on the website?" in a post. There were a lot of great suggestions, and that's a lot of work. Maybe there can be some community contributions. Design follows content- so if there's something to say, it can help be the basis or blueprint for suggestions and improvements to the design. Want a section with stats? Perhaps share some research and stats you believe should be showcased and the text that supports it. Boxes with numbers in a wireframe don't justify the change, content does. All that said, my perspective is one that I think is worth considering: Operate on the assumption that a design change won't be a solution to client challenges. That's pretty much it. Whether it's true or not is irrelevant. I'll mention why in my last bit below. I would go so far as to say this applies to any equation, e.g. "I'm having client challenges with x because of y". Here are some specifics of my approach. Is it really because of the website? The website isn't that old. Is this a temporary dip in business? Has someone communicated, either directly or indirectly, that the website may have affected their decision? Unless you can confidently point to an example then it's just vibes and speculation. This is a question is less about an answer and more for considering all angles. Refresh the approach. Are there ways to reduce the impact of force "X" that may cause conflict? Is there something that can be discussed ahead of time, or after a conversation has already taken place? For the sake of example, let's use the website as the challenge. Here's how I would approach it in a follow up conversation where ProcessWire had already been discussed, there is some hesitancy, and my concern is that the website didn't help convince them in my favor. "So we had discussed using ProcessWire as the CMS for this project. I don't know if you've looked into it or visited the website, personally, I think it's a little more tailored for developers and programmers. There are a few other things I wanted to go over and cover any thoughts or questions you had since the last time we met" (or spoke, whatever) Strategy: I brought up the CMS, not always possible, but if I'm convinced that the CMS is holding things back then it's time to engage. Regardless of who brings it up, I take the forward position rather than defend. I stated outright a shortcoming that I think X has If I suspect X then I bring up X if/when possible. This does one of two things: confirms that it wasn't the culprit, or deflects an opinion they may/may not have based on something I perceived is a negative. Opened it up for them to share their thoughts after removing barriers I know this isn't applicable to everyone, or can be implemented exactly- but the concepts are not limited to this example. I also know that we are an international community where social norms, customs, and language may need an approach more appropriate for you. Reframing the conversation with an honest and confident approach is always a good way to connect. I like to own the perceived weaknesses in a conversation. Build an example website. Here's the one that I think may have the biggest effect. ProcessWire doesn't have an example site where you can log in and explore. We are web designers and developers! If you don't like a website, build another one 😎 If the ProcessWire website isn't having the impact you need, it's possible to help take control of that variable. Again, we're assuming that a design change to the ProcessWire website won't be a solution to client challenges. If you have a concept that you believe will speak to the features and strengths that matter to your clients the most, then there's no better way to speak to them than this. You know your clients and the potential clients you are working to gain better than anyone. Full stop. If I remember correctly, @bernhard had/has an example PW site that you could log into, make changes, save, delete, whatever, and every X amount of time or PW event all the changes are reverted. If that's true perhaps he can share that and some tips based on his extensive knowledge and experience; Challenge: Build as a community An example site with real world features, a great design, and a focus on usability is a great tool to showcase software. Many CMS sites have them. Regardless if you love the new PW site or not, there is no argument that an example site would be far more effective at illustrating the power and capabilities of PW as it relates to clients, either end users or agencies. This would be an opportunity for the community to build something that pushes things forward. I don't want to speak for Ryan, but perhaps this contribution would get a link on the site. If fit gets official support, perhaps a subdomain. I don't want to say "if you think it's that easy then try doing it yourself", but this would indeed bring in the challenges of group collaboration, planning, and delegation. That said, it's a blank slate without constraints. Take the collaborative effort that would be directed at improving the ProcessWire website, or the work that would be required to redesign it, and use it to make an experience that stands on its own. Ryan and the designers of the new site are working on the core and continuing to refine the new admin. I think expectations have to be realistic here. The priority is the functionality and quality of the ProcessWire experience. I wouldn't assume there's time to stop work on those and work on the PW site. There's nothing stopping the community from taking on this challenge and work together or working on our individual strategies. I think your original post @MrSnoozles is one that contains the topic of two threads. Website design feedback, and navigating client challenges possibly due to the website redesign. I focused on the latter because it's widely applicable and something that you, me, and everyone else can work on changing now. While that's happening, in the meantime contributing to a design conversation about the website if valuable but is at the very least a medium to long range timeline.4 points
-
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.4 points
-
Hi @Sergio, i fully agree, this is tough to achieve. Because of the exceptions. As far as i am told joomla for example supposed to handle this a bit more easy. However they do it, i do not want to use Joomla anyway. Finally i wrote a little script which helps me to swap content. And - important for me - it includes most of the available multilingual field types. For my current project (which triggered the posting) this means i got this default language swapping thing ready in less than 5 hours. Instead of several days. Maybe this is also helpful for others... https://gist.github.com/olafgleba/1e1c33d8ad3fc22961dfba33a6ee2f363 points
-
Interesting. I tend to handle Repeater Matrix items with /site/templates/fields/ files, so not sure if I've actually attempted this 🙂 If you're doing this in the context of another page, one option might be using Wireframe::page(). I seem to recall having used it for rendering Repeaters. Though not sure if that's exactly what you're looking for here?3 points
-
The new site makes a good impression. Simple yet memorable with some nice creative touches. My main suggestion would be to introduce a home page logo grid of brands using ProcessWire. This establishes immediate credibility, followed by a link to the showcase area (featured first, not new). To me that would help make the right impression with clients. Second point is I'd consider brightening the grey background colour a little so the colours feel more vibrant. The first impression is quite grey, and the grey is also in the screenshot.3 points
-
I have created an issue about the same bug a few hours ago: https://github.com/processwire/processwire-issues/issues/21603 points
-
Good day, whoever needs this years later) This trick for hook is obsolete after the newly introduces Page::renderPage hook (see here). That is great, but it does break the old way of getting page with the line quoted above. Change the code to something like this: wire()->addHookBefore('Page::renderPage', function (HookEvent $event) { $page = $event->object; ...3 points
-
Hello @ all The new version 2.3.0 comes with a brand new feature: the possibility to turn a form into a multi-step form. Many thanks to @Jan S. for the idea and the support in testing during the development of the new feature. In a nutshell: A multi-step form is a long form divided into multiple steps. At the end of each step, the user clicks on a "Next" button to go to the next section. In the final step a summary of the data entered will be displayed to the user. The user now has the option to change some of the data if necessary before finally submitting the form. Typical use cases are very long forms, surveys or quizzes. I have written an extra chapter in the docs with a lot more information, which you can find here. There are only 2 restrictions for multi-step forms to work properly: The send button must be after the last step (by the way, it wouldn't make sense to put it anywhere in between ;-)) File upload fields must be placed in the last step (otherwise they won't work) To turn a form into a multi-step form, you only need one new method: addStep() You need to add this method to the form object in the places where you want to make the cut: $form = new \FrontendForms\Form('simpleform'); $firstname = new \FrontendForms\InputText('firstname'); $firstname->setLabel('Firstname'); $firstname->setRule('required'); $form->add($firstname); $lastname = new \FrontendForms\InputText('lastname'); $lastname->setLabel('Lastname'); $lastname->setRule('required'); $form->add($lastname); $form->addStep(); // first step $email = new \FrontendForms\InputEmail('email'); $email->setLabel('Input Email'); $email->setRule('required'); $form->add($email); $form->addStep(); // second step $birthday = new \FrontendForms\InputDate('date'); $birthday ->setLabel('Birthday'); $form->add($birthday ); $form->addStep(); // third step $message = new \FrontendForms\Textarea('message'); $message->setLabel('My message'); $form->add($message); $form->addStep(); // fourth step $button = new \FrontendForms\Button('submit'); $button->setAttribute('value', 'Send'); $form->add($button); if($form->isValid()){ print_r($form->getValues()); // do what you want } // render the form echo $form->render(); That is all! You can find more examples here. To be informed of all the changes in this release, please read the changelog. As always, please keep an eye on whether everything is working as expected and report any issues you discover here or directly on GitHub. Jürgen3 points
-
@ryan - I don't really know the best place to post this, but the modules section search is really not a great experience at the moment. If you search for something, the results are displayed, but the search box is no longer available so you can't search again without clearing the ?t=Modules&q=searchterm from the URL.3 points
-
3 points
-
@taotoo, I've released v0.3.8 which appends the field name in square brackets after the field label.3 points
-
@Jonathan Lahijani, I've released a new module that provides an overview of field access settings:3 points
-
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.3 points
-
View website: ID Studio Web Agency We have been working on the ID Studio website for quiet some time using ProcessWire extensively for ourseleves and 90% of all our clients. This post will highlight some features we have implmented and also show off some of the hidden functionality. A quick overview is as follows: Custom web design of course 🙂 Front-end uses Canvas and Three.JS The core objective for us is to get users engaged, reviewing the showcase and services, then getting in touch The showcase and blog have alot of content We hide the ID Lab and About section in the footer but there if folks want to dive in and have the time Development features include: We use the form builder system with some custom modifications 3D tools and management Linking 3D elements to HTML elements Repeater matrix for content panels and lots more, best way is to see it on the video overview below ID-Overview.mp43 points
-
[Update] New Feature: Magic Links (v 1.0.14) We've added a new feature to StripePaymentLinks that allows you to manually send access links to customers for products they've already purchased. Use Case Perfect for situations where customers need fresh access links – whether they lost the original email, changed devices, or you're migrating from another system. How it works Got to the modules config page and open the fields "Send Magic Links" Select one or more products with access control Enter recipient email addresses Set token validity (1-10080 minutes) Test mode first, then send Each recipient automatically receives links only to products they actually own. A detailed report shows what was sent and which users don't have access to the selected products. Feedback welcome!2 points
-
I wouldn't call it extensive knowledge 😅 It was just a regular PW installation that was copied via cronjob to another vhost on the server (both files and DB).2 points
-
Some of us (including me) are lucky enough to have clients who do not care about the look of processwire.com and trust us that ProcessWire is the best. Not all of us are that lucky. So for those who are not so lucky, it matters a lot what a potential future client perceives when visiting processwire.com.2 points
-
💯! I couidn't have said it any better - and said similar things in the past. At least 95% of my clients don't care about what is used to achieve their goals. They need tools that work, are easy to use, have a low barrier to onboard new editors to maintain content or data. Quite a lot of times, yes. I migrated a bunch of Wordpress, Typo3, Joomla projects over to ProcessWire and everyone was happy with the result. The moment you have to deal with lots or tons of data ProcessWire beats everything. This already starts with simple things like events (parties, concerts, those kind of events) and you take care of archiving old events. 🤯 Try this with WordPress. Try to automate things. It's super easy in ProcessWire. Remove daily maintenance tasks from your clients schedule - use this as a selling point - and they will understand. Depending on how big the project/budget was I either [a] showed them the most critical details about ProcessWire, like Security, API, Backend, Templates, Multilanguage, Access Rights/Roles. Everything is in the core, no additional modules/plugins needed. [b] built a MVP of the project, showcased automation, user management, access rights/roles, and let them (or those that would have to do so in the future) add/edit/delete content and data. BUT... When my only part in a project is implementing the design, build out templates, components, blocks - everything frontend - I don't care what they use later on as CMS. [Side note] Don't get me wrong about the overall topic. I think the new design/website could profit from some tweaks and iterations. I'd love to see more content and examples towards developers. Not only the basic API things, but how easy it is to work with it. Even when you are totally new to it.2 points
-
I really liked your post in general, but can't agree with this. It is true for end clients that just want something that works and don't care about how it's done. But have you ever worked with other agencies? Can you imagine working for the first time with another agency and you're telling them you want to do the project with ProcessWire? They know a thing or two about technologies as well and also know a variety of CMS from other projects. They usually have never heard of ProcessWire so they're inevitably going to inform themselves about what they're getting into and what they're offering to their client (since we're just the contractor implementing the design). I feel like we've had a harder time convincing those to trust us and use ProcessWire since the new website launched.2 points
-
I built "my" first website in `96 with Adobe PageMill, fighting with tables to craft the basic layout it had. It was for a bank, a handful of static pages. I had no prior experience with HTML... :P2 points
-
hi again 🙂 @monollonom is right the solution is to use pages, you can do this with the page reference fielfd and get this kind of thing quite easily sorry most things are in french its just in a demo website i use to help french guys with pw 🙂 you can see i hav a spécial field named resume and a list of radio button coming from a page reference field allowing hidden pages, the parent page is like this as you can read in the blog page, you can use any kind of type for those page reference fields, actually it works a lot like the way i use them for blog categories and/ot tags have a nice day2 points
-
I just tried on a test setup to install the FieldtypeOptions module and add it as an image’s custom field but it is not displayed when editing an image, nor is it available to toggle on in the FieldtypeFile’s module settings: And it's actually normal behavior as this Fieldtype is basically blacklisted as a FieldtypeFile’s custom field. @tires your best bet is to use a Page field instead and have your options stored as pages somewhere:2 points
-
2 points
-
I don't disagree with that. Design is very subjective. While I don't understand why the headline is so massive (on a 4K screen), why texts are not aligned (see screenshot), and I don't like the boxes with the shadows and the box that has the "ProcessWire weekly" signup, I still understand that it's professionally made. The main point is that the content is IMO written more towards developers and less towards companies that have to choose a CMS for their next project. I made a quick AI mockup of how I think it could be improved, highlighting the value for the business and developers, that with PW everything takes less time. And time is money.2 points
-
Hi when it comes to a "select" just install the select options module which is in pw by default and then when adding a new field you'll be able to choose when it comes to images, having a close look at the full article from which the image you show comes https://processwire.com/blog/posts/pw-3.0.142/ you'll see that it relies on a template you create witjh a given naming convention --- quote--- Rather than trying to come up with some new way of defining custom fields, you define the custom fields for your file/image field with a Template. Simply create a template having the name "field-[name]" (replacing "[name]" with the name of your file/image field), add fields to it, save, and that's it. It's okay to add fields that might duplicate those already on your regular page template, as the fields for files/images are properties of each file/image rather than properties of any page. ------- not only will you be able to use radio button but nearly any kind of fields you would like to associate to the image hope it helps a little 🙂 have a nice day2 points
-
Text Readability A module that uses the PHP Text Statistics class to evaluate the readability of English text in textarea fields according to various tests. The available readability tests are: Flesch Kincaid Reading Ease Flesch Kincaid Grade Level Gunning Fog Index SMOG Index Automated Reability Index Spache Readability Score Dale Chall Readability Score Coleman Liau Index The results of the enabled tests are displayed at the bottom of textarea fields – either when the "book" header icon is clicked, or at all times, depending on the option selected in the module configuration. An interpretive tooltip appears when you hover any of the result values. Requires ProcessWire >= 3.0.246 and PHP >= 7.2.0 Why is readability important? Readable.com says: And: The Wikipedia article on readability has useful information too. Module configuration Select which readability tests you want to enable. For each test there is an "about" link to information about the test. Select whether the results of the enabled readability tests should be shown only when the header action icon is clicked (default), or if the results should always be shown. For multi-language sites, select which ProcessWire language represents English (as the tests are only intended for English text). Advanced If you want to disable the readability test results for a particular textarea field you can hook TextReadability::allowReadabilityResults. Example: $wire->addHookAfter('TextReadability::allowReadabilityResults', function(HookEvent $event) { $field = $event->arguments(0); $page = $event->arguments(1); // Disable readability results for the "body" field on the "home" page if($field->name === 'body' && $page->template == 'home') $event->return = false; }); https://github.com/Toutouwai/TextReadability https://processwire.com/modules/text-readability/2 points
-
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):2 points
-
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.2 points
-
With anything new that gets designed (a website, operating system, interface), there's always that initial cringe feeling because it's no longer familiar and comfortable, but after a couple weeks, that goes away. I'm developing a new site and using the new Konkat admin theme, which at first felt totally wrong, but now it feels just right (with 1-2 CSS tweaks, like to make repeaters jump out more). My brain is very picky about adjusting to new fonts... Inter in this case. I like the font a lot, but I just need to adjust to it, get used to the curves. Same thing with new versions of Windows when they change the default font. It's kind of like when Facebook went through a few major design changes at during the 5-10 mark and everyone would complain, then everyone got used to it. Anyway, great work. It's grown on me.2 points