Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 02/20/2026 in all areas

  1. 2 points
  2. Last week I upgraded all our sites to ProcessWire 3.0.255. Thank you as always for your amazing work @ryan 😄 Also switched all sites to the new admin theme and love it so far. Thank you @diogo and @jploch 😘 One small request: Could you please make the page tree more compact on mobile phones (in this example iPhone 12)? There is some white space that could be removed.
    2 points
  3. As long as the output formatting is on you can assume your "$page->title" will return a formatted value and so in your case with the entities encoded thanks to the Textformatter. So no need to escape it again using $sanitizer. $sanitizer is mostly here to clean inputs from user-submitted forms or more broadly whenever you have to save external data you don't have control over.
    2 points
  4. hi, can't agree more, so many ways..s and it's exactly why processwire is so special, it offers you a lot of ways to do things, including when it exists a simple php piece of code i must admit i often go for pure php when possible and not to verbose and thank you so much pw for letting me do so... well and for so many other things like custom page classes, hooks, i have to stop here else the list will be far too long 🤣 have a nice day
    1 point
  5. So many ways to create great websites. I use Markup Regions too. In _main.php I have regions: // in <head> <region id="regHeadCSS"> </region> // just above the closing </body> tag <region id="regFooterScripts"> </region> then on a per template basis I can "pw-append" any CSS or JS specific to an individual template. If no extra CSS or JS needed, no problem.
    1 point
  6. It looks fantastic so far. Great work. 😯 I'm currently struggling with similar problems and requirements for a media manager. However, it needs to be scalable enough to easily handle 100,000 assets (for a news portal). My experiments with the principle that each asset is also its own page quickly reached the limits of performance. I am therefore pursuing the approach of storing the actual asset paths in the database, i.e. as a JSON object in a separate input field. A well-known problem: what happens if you rename the asset in the file system? I am still in the testing phase to see if this can be solved with a simple SQL replace and update. However, I would be very happy to test your module. Maybe I don't have to reinvent the wheel after all. 🙂 Here are a few more wishes that I have as requirements in my projects: Folders: Customers love folders and folder trees. Multiple use: An asset is used multiple times on different pages; it must also be possible to have different descriptions here. With the MM module, for example, the description is global and cannot be changed individually for each reference. Language versions: An asset is only available for certain language versions, so it can be deactivated for EN, for example, and will not be displayed in this language in the frontend. Automatic categorisation: An API that enables automatic categorisation after uploading/saving. Example: In the ‘News’ template, there is a select field called ‘Category’. If a new image is uploaded in the edit mode of the page, it should be automatically loaded into the folder of the selected category or alternatively tagged. In the best case, this creates an automatic structure if you can define several fields such as ‘News/2026/Category’. The date is read from a date field and the category from a select field, etc.
    1 point
  7. Hi all, I think I’m mixing up some concepts and would appreciate some clarification about when to use $sanitizer vs field text formatters. For example, I have a title field that already uses the text formatter “HTML Entity Encoder (htmlspecialchars)”. In that case, do I still need to escape it manually on output, like this? <title id="html-title" pw-replace><?= $sanitizer->entities($page->title) ?></title> Or should I assume that the formatter already makes it safe for HTML output, and avoid double-escaping? More generally: When is $sanitizer mainly intended to be used? On input, on output, or both?
    1 point
  8. Hi, as i stongly agree with @monollonom about this checkbox to use a different, say frame, than the usual _main and the fact that in general you don't need a specific config, there are ready, init and so on for this i'd like to add a few things change your _main frame would useful for rss feed, sitemap; well xml files 🙂 but also for modals for example (and sometimes for dynamic css or js files) as you often need a lighter when not totally different html head and quite often too far less js files to the bottom of the file but not at all for the home page if you have a closer look to what this _main file allows with marlup regions you'll see that it goes far above a main div with an id you can use in every template with totally (or not) diffeerent html content and around, above and below, div (or else) you will have (or not) on every template/page even before diving deep into the markup regions world, first thing first, as this _main.php file is a php one let's take a simple example, the homepage quite often you have a section name hero (i still don't know why...) with a big image, carrousel, or any gsap animated witchcraft 🙂 and on top of this other page a simpler and horter image with or not a title sometimes a breadcrumbs... well, before that main div/section you will (or not) use everuwhere, why not simply use php... if page id is 1 (or template == home) hop, your big whatever it is and else what you need in the other page of course, is there are some pages, say, in your case your futur shop, for which you need a different head part, well you see where i'm going... and you may have noticed i quite often said "or not", this is processwire way of life 🙂, nothing is compulsory it is all about your logic, its own logic is just here to help you do things faster than if you had to write every single thing by yourself but you can think exactly the same way as if you did and now if you dive a little deeper into markup regions, its optional attributes, you'll see how powerful it is have a nice day (and a great pw journey :))
    1 point
  9. It might be some years since this was released, but I've just found how useful this is combined with Repeater Matrix. I was looking at a complex site where the designer had asked for multiple different page layouts and I was trying to figure out how to avoid a chaotic mess of a huge numbers of fields and templates. Repeater Matrix solved half the problem, but working out how to apply the depth information was a different story. This module along with the example gave me the other half of the solution I needed. I'm working with Bootstrap, and it was easy to add a field in my repeater matrix types to specify the css classes for each element and have some types that are basically just containers with no direct content, but contain other blocks.
    1 point
  10. The idea is to have the _main.php be the base for most of your templates and then on a case-by-case basis disable it per template and specify another appended file, e.g. _rss.php. So I would say no need to change anything in config.php 🙂
    1 point
  11. As some of you might know from my monthly newsletter I have been struggling with how to proceed with my commercial modules. It's a long story, but last year I reached a point were something had to change. The main problem is that building and selling modules for ProcessWire has never been sustainable for me. Not even close. It has been a lot of work to build the shop. It has been a lot of work to provide proper docs. It has been a lot of work to create videos about the modules so that interested people can get an idea of my modules. That's fine. I knew it would probably not be easy. But I wanted to try 🙂 You never know if you don't try. And I've had hope that it is possible. Unfortunately I don't have this hope any more and that's why I have to draw a line under it. That's also fine. I've learned a lot and I'm really thankful for anybody that has sent some Euros to a stranger that they have never met in person and that excludes any refund 😄 So for me the decision was taken. It took me quite some time to get there, but here we are. There was just one problem left: My clients. They have put trust in me and I didn't want to disappoint them. Just drawing a line might be a good solution for myself but might be a terrible solution for them (and their clients as well). Just not providing updates and keeping selling them is also not my style. With open sourcing my modules I try to find the best solution for everybody involved and I want to especially thank @FireWire for helping me get there 🙂 What does that mean? I'm using my modules in many of my own projects, which means that I will likely keep them alive for some time. On the other hand I don't plan to develop a lot of websites any more and many modules are somewhat feature complete as @FireWire helped me to realise, so there are no bigger updates planned for any of my modules at this time. Also, none of my modules is tested with the new admin theme. If you want to help out on that front, I'll be happily merging PRs, but as I'm not using it myself I'm not going to fix any issues or adding support for it in my spare time. So if you want to keep using my modules: Go ahead and have fun! 🙂 If you find the modules helpful it's always nice to let me know. Hope this is a good solution for everyone! Thx for reading and all the best.
    1 point
×
×
  • Create New...