Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 08/18/2025 in all areas

  1. The browser does that because you have a manifest file which means it is a PWA that is installable and therefore the browser shows the install prompt (https://processwire.com/site/favicon/site.webmanifest), see here: https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/How_to/Trigger_install_prompt
    5 points
  2. ProcessWire can never be WordPress with its famous fast install, precisely because of ProcessWire's flexibility. The appeal has to be to developers, or designers who know a little code, but don't want to have to get stuck into learning a lot of code. I think with more site profiles, using popular CSS frameworks to enable easy customisation, ProcessWire could maybe grab some of those WordPress users, as the installation process is quick and easy, it's just the customisation that takes time, and if there's a profile that meets your needs, it's as quick to get a site up as WordPress. It's when you need anything else WordPress is horrible. Maybe there needs to be an option for paid site profiles? One of the issues with profiles is that they're applicable at install time only, but via something like RockMigrations it would be possible to have a profile like a blog profile, but then multiple migration files that can theme the same data differently. I wonder whether rather than calling things site profiles, calling them ProcessWire apps might better convey what they are - or not? I think the key message I'd be wanting conveyed to other developers and potential clients is 'build anything - fast'. Much as I dislike Wordpress, it's claim to fame, 'build a blog - fast' it actually can deliver on pretty well. It's when you try to build anything else with it that it starts getting horrible. Incidentally, I just took a look at wordpress.org, and if I didn't know any better, visually comparing that to ProcessWire, I'd choose WordPress. It starts off quickly summarising what it does, then with a bit of scrolling gives a bunch of screenshots of the diversity of things people have build with it. The only call to action on the ProccessWire site is 'download', and mostly impersonal, whereas wordpress.org is full of personal calls to action: 'Get', 'Meet', 'Discover', 'Explore' ... The site uses some similar large fonts and a lot of visuals, but the above the fold content gets to the point quickly. The big stuff comes after scrolling. Since I'm being critical, I'm happy to write something and send it through for evaluation, as I have benefited from the ProcessWire community. I'm not a designer, or probably even really a marketer, but I I do have a bit of interest in language, and I think the text could be significantly improved to be more compelling. Here are a couple of examples of how I'd rewrite things: Save time and work your way with ProcessWire, a free content management system (CMS) and framework (CMF). Enjoy all custom fields, a secure foundation, proven scalability and performance. Take control over the design You can define and edit all fields in ProcessWire easily in the admin. You can create as many of them as you want, and of any type. You can even bundle them in repeatable groups called Repeater fields. You control all of the markup, not ProcessWire. If I want to sell end users on ProcessWire I want to show them it can be as pretty as WordPress and more capable. Luckily here in NZ I can just refer them to the portfolio site of @Robin S as he's done a number of high profile sites that are well known nationwide, and I can say 'built using the same system', and also reassure them that I'm not the only ProcessWire developer out there. (It helps that I'm a regular visitor to several of the sites he's built too.)
    5 points
  3. I tried to figure out how PwCommerce could work and was happy I found those demo pages on GitHub. Only that not a single one works, even if I renamed all Padloper with PwCommerce. E.g. $cart = $pwcommerce->cart; bd($cart); $cart = '' and producing an error. Sorry, I know that this is free software but at least for me it is the same useless as was Mediamanager for which I paid without ever being able to use it thanks to the lack of documentation. And yes, I get the idea that for 100 EUR per hour you might help me set it up working.
    1 point
  4. Links to the Community, Docs, Download, Blog at the footer are incorrect (links on the home page are ok).
    1 point
  5. ProcessWire has always communicated well to developers and they typically aren't the ones that need to be convinced. We always connect with the developers. But the decision makers are more often the clients, designers, marketers, etc. They are the ones that we hope to increase visibility to. Several updates to the new site this week, various minor optimizations and improvements. The biggest additions were made in the API reference, which now covers a lot more methods and has some navigation improvements as well.
    1 point
  6. Hüttenzauber - The magic of the Swiss Alps. Eat, celebrate and sleep in the most beautiful places in the mountains. Today, I am presenting to you a very cool and challenging project we tackled and successfully finished last summer. Obviously, Fruitcake is 100% a ProcessWire agency at this point but still, this project especially proves again and again that ProcessWire’s flexibility and unopinionated structure just works for us every time. Gone are the days where we are breaking and bending other CMSs to work the way we need it to work. “Hüttenzauber” is a well-known brand in the Bernese Alps skiing and hiking destinations. Lately, they expanded into other regions of the Swiss Alps and accumulated a variety of locations they are both managing and running from their central offices at the birthplace of the enterprise, Lenk im Simmental. Coding one of our latest projects to date was a cool but also daring challenge. We set out to replace a few dozen single websites for each of the different locations with one big website. The general goal was to streamline all the information and present a concise yet still quite independent experience to the website’s visitors. In addition to the independent experiences, the website features a plethora of central features like a search map, an illustrative blog, cool events and a web shop whose contents however, are again compiled together from blog articles written for or events happening at the different locations. The website was conceptualized, designed and programmed 100% in-house by us. It features tons of content which is completely available in both German and English (with a small JavaScript language detection function). ProcessWire admin: have exactly one source of truth I think we can be proud of the challenge we set out to achieve: Have every information only ever written down once. This is most beneficial for the client since they can for example change the hotel’s address once and it is then displayed at many different locations automatically. The client factually only needs to work with our database we created in the ProcessWire admin area and the website presents that information in a variety of places automatically. One example of that in action is restaurants. There are two types of restaurants: locations which actually are restaurants but also restaurants inside other locations, e.g. hotels. The client can easily a new restaurant inside a hotel (in PW terms that is just add a “restaurant” as a child of a “hotel”) and just set up all of it’s information like descriptions, menus, booking links and images. This entry will automatically display on the search map as part of the hotel, be added to the “book a table” buttons everywhere across the website and also have it’s information and download links be displayed on the hotel’s detail page. And by the way, the client also can (and does!) add hotels inside hotels, e.g. a small resort with independent booking but which factually is part of a bigger hotel complex. They add, press save and “it just works!” 🤯 To achieve this goal, we made extensive use of the beloved “addHookProperty” method to for example output a list of all the “book-a-table” links for any specific page which makes programming the front end of the website a whole lot easier! 🥳 The culmination of all this is a simple and easy tree structure in the admin area like this (this is just part of it): All the information one might add about a restaurant or hotel is entered in each entry’s fields. Every coordinate, address and image is only ever entered once. All of this for example results in the search map and floating booking buttons completely automatically: Not only there, but also in the menus: Content «Page Builder» In addition to all the meta information, all of the pages should allow to have a completely independent experience for a visitor. That is why any restaurant and hotel gets it’s own landing page which acts as a mini landing page. There, the information is broken down: Booking links show only for the location itself (remember, there still might be multiple 😉), events are automatically filtered by location and sub-restaurants are displayed automatically. Yet still, all of the content feels dynamic because we make heavy use of @ryan’s Repeater Matrix module. For some of the blocks, the information is entered directly but for others, the information is grabbed from the events catalog or the blog entries and automatically filtered as appropriate for the page where the block is displayed on. For example, the events block on a hotel page only displays events for that specific location whereas if the events block is used on the homepage, everything is displayed. Here is a few of the blocks the client can use on any page: Webshop with Print@Home vouchers To finish up this showcase, now for the most interesting part for all developers here, the webshop and all it’s interfaces to external services. From the very beginning, we knew, we needed to use something which will offload the cart and checkout parts of the shop completely because we don’t have the capacity to create a full webshop application for this project and there was nothing around we could build upon (this is only partly true, there is @Gadgetto's SnipWire which was a big inspiration). Obviously, nowadays there are alternatives around the corner like @bernhard’s RockCommerce which might just be the on-page solution for cart and checkout ProcessWire needs. Although the shop might seem small and unimpressive when looking at it from the user’s perspective, a lot has to happen in the background. Part of it is that we had to combine two types of products and part of it is the actual technologies we ended up using. The first product type is your standard product which gets shipped to the buyers. These products are easy compared to the second type - a streamlined experience starting in the shop where the user picks a value and a greeting for a print-at-home voucher, pays for it and together with the order confirmation is sent the voucher as a PDF ready to be printed. This lead us on an adventure where we came across asynchronous payment confirmation, custom payment processors for SnipCart and a small translation layer mapping one API to the other. In the end, we built a system of three modules for ProcessWire like this: The heart of the system is our «Snipart Integration» module. Think of it as a baby-SnipWire. It adds webhook handling, a custom payment provider API and JSON product info endpoints for SnipCart to work on the website. Building on the custom payment provider API, we have the «Wallee interface» which acts as a translation layer from the asynchronous API Wallee speaks to the synchronous one SnipCart uses. Further, we have the «Boncard interface» which adds webhook handlers to reach out to the print-at-home provider to generate and fetch the PDFs and finally sending them to the client, using our fourth and last external provider: SendGrid. Since SnipCart already uses SendGrid, this one was easy to decide. Also, there is a very good integration available with WireMailSendGrid. All of the modules have been built with reusability and modularity in mind: all of them have a configuration screen to add API secrets amongst other settings. They can be used as a package or in parts. This is useful if for example, you don’t need Wallee as a payment provider or do not have Boncard’s print-at-home vouchers in your webshop. Also, more custom payment providers are easily added using the main module’s API and webhook handlers. Conclusion There is still much to tell especially about the shop and custom payment providers’ implementations and challenges we faced. If you guys are interested, I can start working on a case study. Let me know! I will leave you with a few links for you to look at and/or get more information: https://huettenzauber.ch/ our main subject https://www.fruitcake.ch/projekte/huettenzauber/ our portfolio entry about the project COMING SOON link to page on ProcessWire Showcase Also, I don't want you to miss out on what's running behind the scenes: ProFields: Combo ProFields: Repeater Matrix Seo Maestro ProcessRedirects Tracy Debugger WireMailSendGrid All of this rocks on ProcessWire v227.
    1 point
×
×
  • Create New...