Leaderboard
Popular Content
Showing content with the highest reputation on 12/18/2021 in all areas
-
This week ProcessWire has gone on a diet. I've been working on reducing the size of the core by moving all (except site-blank) installation profiles out of the core and into their own repositories. This cuts the size of the core in half, going from 15.5 MB down to 7.5 MB, which is quite a slim down! This means the site-regular, site-default, site-beginner, site-languages, and site-classic now live in their own dedicated repos on ProcessWire’s GitHub. The site-blank one remains, but I've updated it a bit to make the template files more useful for beginners while still keeping it a blank profile. I may do a little more with it and rename it to be site-basic or something, and then have an even more trimmed down site-blank in its own repo as well. I'm not yet sure about that, so will do a little more with it next week also. I also went through each of these site profiles and cleaned up a few things, corrected old and outdated links, and updated a lot of text in readme files and such. I think a lot of the more experienced users would also prefer not having extra profiles included in the core as well. This update came at the request of the community a few months back (I think it was Robin S. that requested it, but not positive). It's not like any of the current site profiles have a lot of bling or marketing value, as they really are more just technical examples and starting points. So I think it's kind of a win/win to trim down the core in this way. Though maybe one day we'll have a site profile that looks good and has good marketing value. But until then I think we gain more by keeping the core size nice and trim. The downside is that there's a little more for new users to figure out (downloading a profile), so in the next week or so I'm planning to update the installer to hopefully lessen that issue and maybe even build in the ability for the installer to download and install site profiles from the modules directory. That comes with its own security considerations, so I'm not yet sure we'll go that far just yet, but it's one of a few options I'm looking at. Thanks for reading and have a great weekend!11 points
-
Just wanted to mention that this is a one-liner using RockMigrations: <?php $rm = $modules->get('RockMigrations'); $rm->setPagenameReplacements("de"); // or the even newer setDefaults: $rm->setDefaults([ 'pagenameReplacements' => 'de', // de is default // 1 is default and means consistant click behaviour on inputfields // see https://github.com/processwire/processwire/pull/169 'toggleBehavior' => 1, ]); I'm really not a fan of site profiles, so removing them from the installer is a welcome change for me ? IMHO if we put energy in that direction it would be a lot better to think about better automation than about adding more site profiles... This is already possible using RockMigrations (sorry, self-promotion again): <?php // site/ready.php // Demo "Site-Profile" using RockMigrations $rm = $modules->get('RockMigrations'); $rm->installModule('FieldtypeRepeater'); $rm->installModule('HannaCodeDialog', 'https://github.com/Toutouwai/HannaCodeDialog/archive/master.zip'); $rm->installModule('ImportPagesCSV', 'https://github.com/ryancramerdesign/ImportPagesCSV/zipball/master'); $rm->installModule('InputfieldPageAutocomplete'); $rm->installModule('LazyCron'); // you can also set module config easily $rm->installModule('TracyDebugger','https://github.com/adrianbj/TracyDebugger/archive/refs/heads/master.zip', [ 'guestForceDevelopmentLocal' => 1, 'forceEditorLinksToTracy' => 1, 'editor' => 'vscode://file/%file:%line', ]); // multilang: translate default language to german $rm->setTranslationsToLanguage("https://github.com/jmartsch/pw-lang-de/archive/refs/heads/main.zip"); $rm->addLanguage("en", "Englisch"); // add english as second language I'd love to see RockMigrations (or something similar) in the core one day. It makes developing modules so much easier, more fun and also faster. And of course it helps you in all your CI/CD workflows making your setup more professional, more robust and reusable! It can be used to automate anything you want. Just like shown in the "site-profile" example above. You'll not only have much more freedom about your setup, you'll also get the latest version of all your modules... PS: Maybe something similar could also be done using composer, but as soon as you want to set module settings and/or create fields/templates etc. composer is out ? PPS: My old project PW Kickstart from 2018 could also be used for some inspiration...4 points
-
You know what, I think I might've figured out the cause. And I should've thought about it when I mentioned this ? I think it's SEO Maestro regenerating the sitemap. It's something that triggers when you load the CMS after 120 minutes. You can get around this by disabling automatic generation and setting up a scheduled task to trigger it, there's more info in the thread for that extension.3 points
-
Oooh, the page name settings could be a select in the installer if there are enough useful and distinct ones. That would be dope. Definitely a super common need in Germany. @ryan shameless plug, since you’re going to be working on the installer, I opened a small PR inspired by a recent thread for your consideration ?3 points
-
Can't really explain why* this is such a great addition and change (at least for me) but that's just perfect! * I could but noone would believe me that there are areas in Germany with super slow internet connections. I'm super curious what happened to the new site-blank profile as it's almost always my starting point. Maybe we can even offer localized versions for Germany, Austria, Switzerland (page name settings like ä=ae, ö=oe, ü=ue, language packs pre-installed, and such). Let me ask this straight away... do you have something in mind, like the Kubrick demo setup for WordPress back in 2005? But for ProcessWire? A blog, with categories, pages, simple forms, tags, whatever. Maybe we as community could work together to build something like that. As well as in terms of design and even in basic content and best practice examples. Super minimal without any modules. Everything with just PW-Core functionality. I'd be on board for this adventure. What about offering multiple ZIPs as download options right away. Therefore maybe less hassle during installation - due to slow internet connections for example. On-demand download during a installation might be (at least for me sometimes in my hometown here) quite difficult and another source for "errors" the forum has to explain and clarify. starter.zip blank.zip core.zip and so on... All of the above are just thoughts... driven by great additions from @ryan.3 points
-
Hi I created new module for adding links to quickly edit a field directly from page edit. https://processwire.com/modules/admin-helper-links/ You probably already know existing module HelperFieldLinks created by @Soma which was my inspiration. I was using that module for a long time so thank you @Soma! The reasons for this new module are that HelperFieldLinks seems inactive and contains few bugs. I decided to try to fix them, but after a short time I realized a better (i think) and simpler solution and also got some new ideas how to improve. I used javascript instead of PHP and modified a code which is already in PW source code to show field names when you hover the inputfield's expand arrow (in debug mode). I also moved the cog icon next to the expand icons which doen't break the layout so much. What is missing is the field info panel with it's props, never used it, but it can be done too. The template edit links needs to be added too. If you got some ideas how to improve, tell me.2 points
-
https://www.kaumberg.gv.at/ Hello everybody! Today I want to share a project that I've been working on for a year or so: The new website for municipal Kaumberg - a beautiful village near Vienna. To be honest, this project was way more work than I initially expected. The site has tons of content and the client came with lots of good ideas during the process of building this site. For example after we launched the site several organisations of the village realized that the system works great and is easy to use, so they wanted their own section with their own color scheme... Right now the system is maintained by several user accounts that populate content to the site. Some of them only in the news-section, others are allowed to publish to the sub-sites (eg for the fire department). Recently we won the 2nd price out of 190 cities in lower austria - where Kaumberg was by far the smallest one also having the smallest budget of the top rated cities! ### NOTE ### This system was built with scalability in mind. If you know any other municipals (preferable in a german speaking country) that could possibly need a new website using my setup write me a PM. If you are a marketing guru and know how we can sell this product to 100s of municipals, let me know. I know how to do that from the technical point of view ? ### HIGHLIGHTS ### CONTENT Custom multi-level menu for managing loads of content pages that also works well with keyboard navigation ? --- EVENT MANAGEMENT Events are managed via the PW backend and presented as calendar on the website plus can be downloaded as PDF calendar in A3 format for printing: --- CONTENT BLOCKS I've developed a new (private) module called RockMatrix for versatile, easy and fool-proof content creation for this project. This setup ensures that even non-tech-savvy users can create content that looks nice and works on all devices from desktop to mobile: --- SITE SEARCH Another new module that was developed for this project is RockSearch. I hate site searches that do work on the first sight but do not on the second. For example if they show older results on top of newer ones. Or if they do not index content that is not stored within a regular text field but for example as image description. On the other hand I did not want to use ElasticSearch because it seemed to be overhead to send data to another service that is already stored in the database of my PW installation... RockSearch shows results based on different weighing mechanisms, for exampe a search for the garbage collection schedule first shows results that are nearer to the current date than others (both future and past). That means that a date two days in the future will be shown above one that is 10 days in the past. Also results get different score based on where the term was found - matches in the site title get higher scores than matches in the body or in image descriptions or the like. Each content block is a RockMatrix block that has a render() method to define the output on the website and - for RockSearch - has a method called "searchIndex()" that defines the content that is written to the search index that is queried for every search request: This setup makes it super easy to add new content elements and to add them to the search index ? --- SUB-SITES The client can create sub-sites for different organisations of the village having custom color schemes and managing user access: News can be tagged to show up on different areas of the website: --- OTHER The site uses no cookies and can therefore be used without an annoying cookie banner. Page hit statistics are gathered by PageHitCounter and shown by RockHitCounter Some other little features are short-links for social media (eg https://www.kaumberg.gv.at/goto-1027 ) or the possibility for creating custom subdomains for sub-sites like http://araburg.kaumberg.at/ I'm quite sure I forgot lots of great stuff, but I hope you enjoyed reading this article nevertheless ? Looking forward to your feedback!2 points
-
Whether it's via RM or some other method, having proper support for handling migrations in the core would be huge ? One thing I miss from WordPress is the ability to define data structures programmatically. It's nice to be able to store such definitions in Git, share them among developers, modify or roll them back with ease, and then deploy to any number of environments automatically. The contexts are of course different: custom fields and custom post types have no real table structure(s) per se, so certain things are very easy, while others are very hard (or inefficient). Pros and cons ? From my point of view RM and Composer both have their use cases, and neither can replace the other. Where RM and Composer overlap is mostly just installing modules and perhaps managing core updates. While one can run all sorts of stuff with scripts or installer modules in Composer, it's not really intended as a tool for creating, implementing, or rolling back migrations.2 points
-
Select Once Per Table Adds a setting to "Select", "Page (Select)" and "Page (Autocomplete Single)" columns in a ProFields Table field so that each option can only be selected once per table. Requires the ProFields Table module. There could be a number of situations where this module might be useful, but perhaps the primary situation is when you want to store extra information for pages that are selected in a Page Reference field. So instead of using a Page Reference field like this... ...you could use a ProFields Table field together with Select Once Per Table to store extra information for each selected page like this... The module ensures that pages/options that are already selected in the Table field are disabled as you add new rows or edit existing rows. Configuration To enable the module for any "Select", "Page (Select)" or "Page (Autocomplete Single)" column in your Table field, edit the column settings and add selectOnce=1. https://github.com/Toutouwai/SelectOncePerTable https://processwire.com/modules/select-once-per-table/1 point
-
Hi there, you who are using this module might be interested in a new module I created AdminHelperLinks. It has the same purpose but uses different approach. I don't want to steal @Soma's reputation, but he seems inactive in developing the module and I realized while trying to fix the bugs I can do it differently (using JS instead of PHP) and more meeting my needs.1 point
-
Oh yeah, Hungary is pretty exotic... ;)1 point
-
Hi @bernhard Congratulations! Great project. I found some interesting solutions for myself. Thank you. I would like to share a color picker trick. When you give the user a choice of colors in a finished design, unpleasant color combinations are possible. In such cases, we offer a choice of predefined color pairs or whole color patterns. And further. A map is often published in the news. Maybe add a map module?1 point
-
Version 1.1.0 is here. - added template edit link - added link for editing field in template context - using modals - style update: changed link icons, field name, tooltips, ...1 point
-
This is what I'm doing with RockMatrix: I guess that's option 3 ? Not perfect, but the best option I have so far... While I see the benefits of option 1 I can't see any client in the world be able to use it. And even if you where a developer it would need very good understanding of the setup or css framework that you use to understand exactly what you need to do, where you need to click, which block you need to indent and where etc...1 point
-
Turn on debug mode in config.php. When you are able to log into the admin, go to the debug accordion at the bottom. Under 'Pages Loaded', how many pages does it say it loaded?1 point
-
1 point
-
Thx @teppo It's option a) custom SQL queries ? I can't share details here but it's quite complex ? I mean... it's easy to use but in the background the module creates a quite complex sql query based on indices that I define for the search.1 point
-
Hey Bernhard! First of all: congratulations, this looks and sounds like a brilliant project. And thanks for sharing all those details, always love to hear how things were actually solved ?? Your site search is something I'm curious about, so hoped you might shed some light particularly into the part about sorting. How did you go about that? Do you store the index content on PW fields, or do you have a custom data structure? Do you trigger multiple queries behind the scenes, or did you manage to handle sorting in a single query, in the database? Any SQL involved? Asking partly because this is a kind of a long standing issue / todo item for the SearchEngine module. Weighing is relatively simple to do with custom database tables / queries (or rather there are existing formulas for that), but with selectors... well, it's tricky. By which I mean that I haven't been able to figure it out yet without a) custom SQL queries or b) expensive in-memory operations. And yes, I'm kind of fishing for good ideas here... ?1 point
-
Hello! I wanted to share my latest website with you. https://www.reese-moden.de It's called "Reese Modehäuser" (beware! It is a german speaking website...) which loosely translates to "Reese Fashion Boutiques". A translator is not needed at all. The whole content is "picture-heavy" and there is not much text. I wanted to create a fashion boutique site that has a very crisp and clear look with huge magazine-like images that showcase the current fashion trends that are for sale. The page also features a simple blog/news system for posting new content. Because there are lots of large pictures I wanted to keep those loading times small. So the whole site makes full use of the processwire WEBP image support. In order to make responsive images in WEBP format available this site makes use of @nbcommunication fantastic PageimageSrcset module: https://github.com/nbcommunication/PageimageSrcset I can highly recommend this module! Nowadays everyone has an Instagram page. So I included an Instagram feed directly to the site, again with the help of @nbcommunication and his Instagram Basic Display Api Module: https://processwire.com/modules/instagram-basic-display-api/ This is another fantastic module which I am looking forward to use on other pages. Other modules I used on this site (als recommended): - AIOM+ (https://github.com/matjazpotocnik/ProcessWire-AIOM-All-In-One-Minify) for the compression of all JS and CSS files - Wiremail SMTP (https://processwire.com/talk/topic/5704-module-wiremailsmtp/) for sending mails. I am using a custom form builder system I created myself with some repeater fields. - Redirects (https://processwire.com/talk/topic/148-release-redirects/1 point