Joomla! is a Content Management System (CMS) first and foremost, and a very sophisticated one at that. Joomla! offers so much flexibility and so many extensions, it can be easy to overlook basic core features that exist to help us manage and display our content.
We all have our own style of working and each project is unique, but it's not uncommon to see Joomla users at any skill level installing unnecessary extensions or using workarounds that are more complicated than standardized core features. Having an understanding of what Joomla can do on it's own can go a very long way, it's here to make life easier for us. Using these features to our advantage, instead of working against them, helps us to work faster and avoid making things more difficult than they need to be. With a bit of understanding, we can take full control of the power and tools that Joomla offers.
Dig into the Core
The Joomla CMS has a reputation for being a bit complicated, which is not necessarily a bad thing. There is a learning curve, but this complexity is what allows Joomla to offer the powerful backend interface controls that we love so much. It helps to understand that all the different pieces of Joomla are part of a hierarchy within the structure of the CMS. There is definitely a method to the madness, and often we have to think ahead while working to achieve our goals and make the most out Joomla websites.
A very simple example of this is creating a content page in Joomla. To make a page, we can create a Menu Item - but we can't create a Menu Item unless we already have content to assign to it. We need to create an Article first, then we can create a Menu Item to show the content. Much of Joomla works like this. It may seem backwards at first, but it's the key to unlocking the power in the Joomla core.
Other than Menu Items and Articles we also have Categories, which help us to organize and display our Articles in various ways. Much like the Article needs to be created before we can use a Menu Item to show it, we need to create a Category before we can assign an Article to it. In fact, all Articles need to be in a Category and at least one Category must exist before an Article can be saved. This is why all default installations of Joomla have one existing Category called "Uncategorized". Don't let the name fool you, it's still a Category, and the name and all the settings can be changed any way you like.
Knowing these basics can help our work flow. Since we know we need a Category before an Article can be created, and we need an Article before we can create a Menu Item - then a good place to start might be the Category Manager. If you need to add a lot of content, one possible work flow is to create all your Categories first, then create all your Articles and make the Category assignments as you go, then create the Menu Items to show them on the front end. A bit of planning can save a lot of time in some cases.
Other work flows are possible if we consider that Categories are a bit more flexible than Menu Items. Since we only need one Category to create Articles, we could create all the Articles first, then create the additional Categories and make assignments to the Articles later on. The Batch Option in the Article Manager is very useful for making Category assignments across multiple Articles at any point in time.
These are just a few examples of some basic work flows in Joomla, how you choose to do it is up to you. Generally speaking, I find the work that I need to do will often dictate the how I choose to work - and Joomla provides much flexibility in this regard. The main point is that having a good understanding of the core CMS structure can help us make effective and efficient choices while working.
So many buttons, so many windows...
One of the many reasons we love Joomla is the amount of control it provides in the administrator interface. There are dozens upon dozens of options, buttons, and switches in each of our Articles, Categories and Menu Items. They allow us to hide or show various pieces of our content (titles, dates, authors, links etc) and control other aspects of the display and layout. This level of control is useful and powerful, but also more complex than it may appear. We can all press buttons - that's easy enough - but things can go from easy to messy very quickly if we're not making our settings correctly. Understanding what the settings do is helpful, but understanding why they are set up in this way can help us use them settings to our advantage in different situations.
There is a hierarchy within the structure of Joomla that exists to provide flexibility, functionality and control. This is why similar settings exist in all editing screens for Menu Items, Categories and Articles. This allows us to choose how the settings are applied in various situations with an enormous amount of flexibility. It's also the reason why changed settings may seem to have no effect if we're not making them in the right spot. Each level of the structure takes priority over the other, and settings need to be made in the right places to achieve optimal results - so it's good to know how this works.
Who's in Charge?
If we start at the top and work down, Menu Items are the boss when it comes to settings - they override everything and usually have the final say in what is seen on the front end. From there, Category settings take priority over Article settings - all of which take priority over the Global Settings.
That's a good place to start, but it may also be helpful to think of this chain the other way around. Since Menu Items run the show, it might make sense to go into every Menu Item and start making changes. However, if most of your Menu Items will have the same settings, then starting at the bottom with the Global Settings can be a much better approach.
Use Global Settings
Understanding how to properly use the global settings in Joomla can save time and effort over the lifetime of any project. On a larger scale, the concept of "default settings" is fundamental in every piece of software and programming language out there, so it's good knowledge to have. This concept can be difficult to understand at first since it's a process of making settings for what something does if it has no settings. We're telling Joomla what settings will do naturally, or automatically, or "by default". Understanding this concept is helpful in many ways. For one, we won't need to fiddle around with as many settings while we're working - that saves time. If we think ahead, this approach can make life easier down the road when changes are necessary - resulting in more saved time and more consistency overall.
A day in the life of a Joomla Developer
I'll use a somewhat fictional scenario to demonstrate the importance of this concept. Let's say I have a new client who has a Joomla website, things didn't work out with the previous developer, for whatever reason, and they hired me to take over. This particular website has tons of content spread out across hundreds of pages and Menu Items. The client requests a few small changes be applied across the entire site, all of which can be handled by the switches in the back-end settings. Basically, go in and push some buttons and everyone is happy. Sounds easy enough.....or is it?
Before making any changes it's helpful to get familiar with how things are set up, a good place to start in this case is the Menu Manager. Menus and Menu Items create the navigation structure of a Joomla website and they are where we choose what content shows on the pages - and the settings also take priority over all the others. By taking a peek at the Menu Items we can easily see which components, Articles, Categories and modules are being used and the settings that are applied to them. This helps us track down the various pieces of content or extensions we may need to work with.
Eventually, I find one of the many Menu Items that will need an adjustment. The settings that need to adjusted here are under the options tab and let's say that we need to have "Linked Titles" set to on. It's the second switch down and it's currently set to "Off". I click the switch to "On", save and close, and move to the next Menu Item. One change done, hundreds more to go. After while of this, I see that most of the Menu Items have the exact same settings. Now imagine there are 3 or 4 of these settings in each Menu Item that I need to hunt for and adjust. Not only will this be tedious and time consuming, there is a lot of potential for user error and frustration. I could make mistakes, I might miss a few along the way, but no matter what it's going to be a long day.
To be fair, this scenario is a bit extreme but I see it all the time to one degree or another. We might consider other options if the task was really this enormous, and on smaller sites it's not quite as big of a deal. The point is that these settings can be set once as "default" in the Global Settings, instead of making manual settings to each and every Menu Item individually. In this scenario, the "manual method" took a considerable amount of time to set up in the first place, and a considerable amount of time is necessary later to make changes and sort things out. It's a lose / lose scenario that we want to avoid if possible.
Let's rewind the scenario and explore how starting with Global Settings can be helpful. This time around, we'll say I get hired to build the same website in Joomla from the ground up. I know that I'll need to make adjustments to the content settings and I also know that most pages will have the same settings. In this case, it's better to start in the Article Manager instead of the Menu Manager - not only to create content but also to set my Global default in the Article Options screen. This screen is found in Content / Article Manager / Options
This screen has virtually all the same settings as the Menu Item from the previous example. The important difference is that this is where we make default Global Settings. These settings are used throughout our entire Joomla website unless we tell Joomla to do something different by changing that setting elsewhere. The individual settings in Articles, Categories and Menu Items exist to override these settings, allowing us to make changes to individual items if we need to. A good way to use to use Global Settings to your advantage is to make the Global Settings first based on the most common scenario - then make individual changes from there as it becomes necessary.
This method helps to speed things up in many ways. For example, when we create a new Menu Item, Category or Article in Joomla, all of the settings are set to "Use Global" by default. This means if the Global Settings are already set how you like then no additional changes will be necessary. Making zero changes takes zero time, and you can't go much faster than that.
Back to Future
Let's fast forward to the future of the fictional website and see how this helps us later on. It's been awhile since I built the site and now my client wants those same changes that ruined my day in the first nightmare website scenario. This time, it's no longer a nightmare because I can simply go to the Global Settings, flip a few switches, hit the save button and the new settings will apply to all of the pages automatically because there are no manual overrides in place to block them. Now I have a happy client because the changes did not take long, and I have plenty of time to take a nap - a definite win / win scenario in my book.
The Right Time for Change
It's not over quite yet. Let's say the client calls again (after my nap of course), and now they want a handful of pages to have some slightly different settings than the rest. In this situation, we DO want to make individual adjustments to specific items without affecting anything else on the site. This is the right time to make manual adjustments in Menu Items or elsewhere by switching the "Use Global" button to the requested settings. These changes override the Global Settings, so I can safely make individual settings as necessary without having to worry about other pieces of the website being affected.
Where you actually make your manual overrides will depend on the exact situation. Menu Items settings rule Article settings, but Article settings can be necessary or helpful in many cases. Sometimes different settings in different locations will achieve better results across different areas of the website. Some Joomla Menu Items (Category Blog for example) offer a "Use Article Settings" option for some settings that will allow you to use the settings made in the Articles as you choose. There are a lot of useful features in the Joomla core that we can take advantage of - but it's only possible if we understand how they work and how to use them.
To recap, in order to use Joomla effectively, we need to understand how it works. There is a hierarchy in place for content and content related settings that is there to help us. It goes like this: Global Settings come first, Article settings will override the Globals, Category settings come next and Menu Item come last. Menu Item settings override everything and everything must exist before we can even create a Menu Item. Use that knowledge to plot to the best path for your projects - for now and for the future.
A bit of planning and thought when working can go a long way. If the Globals are set to cover the most common scenario, and overrides are only applied as necessary, then the chances of having issues with conflicting settings is decreased and our work flow speeds up. There is a lot of power and control that comes with understanding the structure and core features of Joomla - use it wisely.
Many thanks to Cliff Pfeifer for this great article