Joomla! 3.7: what user and developer improvements are coming?

Joomla! 3.5 saw release at the end of March 2016, bringing with it a host of new features, many of which might not have been visible to the naked eye but were still dramatic in their impact; for example, PHP 7 support brought some pretty hefty site speed improvements (you can get the lowdown on just how powerful this change is in our detailed speed comparison article, Testing Joomla! 3.5 and PHP 7 ), but despite its success, the development team are already looking forward to the next iteration. Given that Joomla! 3.5 was quite a hefty upgrade in terms of under-the-hood improvements, we might expect that when Joomla! 3.7 releases it’ll be a more minor, subdued upgrade, though with some of the potential additions being discussed it may well be a release that significantly improves Joomla’s versatility.

What new features in Joomla 3.7

Now, you might be wondering why we’re talking about Joomla! 3.7 rather than Joomla! 3.6; after all, this isn’t Windows! This is because of the community’s desire to get access to the improved Joomla! Update Component as soon as possible. This update will add a option for reinstalling Joomla’s core files at the click of a button, returning any hacked files to default, as well as returning the option to update Joomla by uploading the update file. Feedback that the Joomla! Production Leadership Team (PLT) received from the Joomla! community at large convinced them that this component update needed to release as soon as possible, and due to the current versioning policy, feature updates need to be included in a minor release rather than a patch. So, instead of the Joomla! 3.5.2 patch including the feature, they’ll instead jump straight up to Joomla! 3.6 when the next patch including the feature update releases.

So, though we’re talking about Joomla! 3.7, this isn’t a two-step jump up the ladder; just a bit of convenient naming to keep the versioning of Joomla! in an understandable format. Since this is a fairly recent development you might notice a lot of the discussions and features linked in this article still refer to Joomla! 3.6, so please do remember that they won’t be included until Joomla! 3.7’s release. The PLT have chosen Chris Davenport to take responsibility for managing Joomla! version 3.7, and though an official, set-in-stone list of features expected in 3.7 is yet to be finalized there are discussions on the official Joomla! CMS Development groups and code available on Joomla! GitHub repositories that allows us to get a good idea of what might be included once release rolls around.

Please do bear in mind though that this early on there is no guarantee that the features listed here will be in Joomla! 3.7 on release; development is a haphazard, often unpredictable thing at the best of times, and volunteer development even more so. There may be a number of issues, delays or other elements that come into play and affect the final product, so to be safe don’t hinge your future upgrade plans on a particular feature until the official feature list is ready! With that disclaimer out of the way, let’s take a look at the potential new features coming our way:

Custom fields and Joomla! 3.7

Alright, I know I just said that you shouldn’t be counting your chickens before they’ve hatched, but in this case it’s looking 99.9% sure that custom fields will be included in Joomla! 3.7 since the code is already pretty much done and waiting for final testing and approval for integration into the core release package. In fact, anyone can jump in and test out this feature simply by downloading the forked version of Joomla! available in this GitHub repository .

What and where are custom fields?

Custom fields are a totally new data type which may be used in Joomla! articles. The core com_content component in Joomla! is exceedingly flexible, allowing it to be used for more than just plain old articles; for example, in our Technews Joomla template we were able to include a rating option for reviewing products in a variety of areas. However, this functionality had to be included with an additional plugin. With custom fields, the process will be that much easier for developers and even more intuitive for users; rather than manually inserting and editing shortcode content, things such as review scores could be created as custom fields so that authors would only need to add a value for each scoring area. As many custom fields can be added as needed, which will by default be displayed in the well known article info area along with the author, category, published date etc…

Custom fields

Custom field labels need to be specified before they can be added to an article (which may cause a few hiccups for multilingual sites). In the Content → Articles section of the left menu column you’ll find a new item added called Fields. Here you can specify the title, label, type of field and whether it is required or not, and optionally a default value can also be entered. Once the article is published the custom field will automatically be visible in the article creation and editing screens. A new tab called Fields shows the created custom field and includes an input field for the value.

New Media Manager

The list of expected features for Joomla! 3.7 as found on the Google discussion groups includes this updated media manager, which I initially expected to be included in Joomla! 3.5 as it has been ready to go for quite some time. Full details of the additions to be found in this revised media manager can be found in our earlier Joomla! 3.5 prediction article, – What will we see in Joomla! 3.5 (guess that particular prediction didn’t turn out as well as I thought!). In short, this new media manager will significantly improve the usability of the manager for those users who want to have more fine control over their images directly in the backend. It will allow for images to be cropped, resized, rotated and for some basic filters to be added to the uploaded image directly on the server, so no tedious downloading, modifying and reuploading processes to work through. There will even be an option to create thumbnails of a particular size and add tags and labels for your media files. This new media manager also supports drag & drop images, but of course this feature was already included in the Joomla! 3.5 release, so we’ll consider that a simple taster of the bigger changes to the media manager that are still to come.

Joomla! Router improvements aka New Router

Router is the part of Joomla! which translates ugly, uninviting URLs in Joomla! to nice SEF ones that actually make sense to the average reader. It’s functional, but not ideal; there’s problems with duplicated aliases across multiple menu types, there are permalinks such as those well-known ones in WordPress etc… In fact, it’s so fiddly that there was even a project on IndieGoGo seeking to improve the Joomla! URL Router, which you can find in this Indiegogo project page . The new and improved Joomla! Router should resolve lots of the issues we’ve had with the current version, such as removing unnecessary IDs in URLs and displaying modules in the right place (sometimes false URLs display totally different layouts since they don’t have an assigned menu item). This is one improvement we’re really hoping will finally make an appearance in Joomla! 3.7 so we can change the way that SEF URLs are built.

Service Layer

This really isn’t something for regular Joomla! end users, but developers will certainly appreciate it. Things are going to take a turn for the technical now, so put on your "Technical Jargon" hats and let’s get started. Chris Davenport describe this feature thus:

One of the issues we’re often faced with as developers is that our components, including the core components, do not have a clearly defined API. For example, if I want to retrieve some article data from the comcontent component I could try instantiating one of comcontent’s controller or model classes, but this is often inconvenient as they frequently exhibit unwanted side-effects that can be difficult to overcome. Sometimes developers will even resort to reading or writing data directly to the database tables of another component.

You can visualize this service layer by looking at the following image courtesy of Martin Fowler http://martinfowler.com/eaaCatalog/serviceLayer.html:

Image from http://martinfowler.com/eaaCatalog/serviceLayer.html

For the less heavily-technical users among us, this is an extra abstract layer which simplifies how developers access and use data, standardizing things no matter whether you are using just the Joomla! API or Joomla! Framework, or even running your code using CLI. Taking our technical hats off for a second, think of it as an attempt to bring order to the chaos; currently each developer will figure out their own methods for accessing and manipulating data, which gets the job done but can be messy, like a free-for-all at an all-you-can-eat buffet. What the service layer does is, figuratively speaking, adds a set of rules to the buffet; everyone still gets their food/data, but in a standardized way that’s easier for developers to get what they need, which will in turn give end users a better Joomla! experience (you can put your technical hat back on now). It may also help with integrating Joomla! with other web services and, most importantly in my view, allow for easy creation of web services inside Joomla!. One of the core ideas is to provide a fast and easy connection to REST (and SOAP) services from Joomla! components/modules.

This feature is also related to another one which is still missed in modern Joomla! – Web services. There is no easy way in the Joomla! API to create CRUD (no sniggering at the back) operations; that is, Create, Read, Update and Delete operations. Of course we’ve got the JResponseJSON class but this is more for fetching the data from the Joomla! database rather than update and delete operations. This is huge drawback when you want to use modern front-end frameworks like Angular, Backbone or React.js, as they are created to work with REST which, in a Joomla! build that’s lacking third-party external libraries, is virtually impossible to create. For now it doesn’t look like Web Services will be ready for 3.7, but there is a light at the end of the tunnel that means we may see them in future releases as they are currently included in the shortlist of proposed new features.

What’s more

The entire list of potential upcoming features are extensively discussed in this Google Group discussion . You may notice that the list includes a Mobile app and admin template, but as can be seen later in the discussion these additions to the Joomla! project have been abandoned for the 3.7 release, but may make an appearance in future. For now, if only the first four from list are added to Joomla! 3.7:

  • Custom fields,
  • New media manager,
  • New router,
  • and Service Layer

Then we’ll be looking at quite the improvement; certainly more than would be expected in a minor release. We’ll keep our fingers crossed that the Joomla! Development Team are able to pull this off, and of course if you want to do more than cross your fingers then you can help out with testing, bug fixing etc… by downloading the code from the various GitHub repositories, so that all the necessary steps required before the code will be accepted and added to the Joomla! core can be completed.

Joomla! 3.7: what user and developer improvements are coming? 4.675 (93.40%) 97 votes
Share
This article was first published June 1st, 2016