In this video we'll take a look at what the free version of Advanced Module Manager is and how you can use it in your Joomla website.
Advanced Module Manager is an extension that enhances the way the module manager works.
With Joomla, we can normally only assign modules to certain menu items.
With Advanced Module Manager we can assign modules to just about anything we want.
We can assign modules styles by Joomla Content, Users, Components, Templates, Devices and much more.
All this gives us full control over our Joomla modules.
The free version of Advanced Module Manager covers most of the important assignments we might need. The Pro version offers even more in-depth control and assignments.
For now, we'll take a look at the Free version of Advanced Module Manager. We will get into the Pro version in another video.
To use Advanced Module Manager we will - of course - need to install it first.
You can view the installation video to see how to install it.
We now have the latest version of Advanced Module Manager installed, which at the moment is version 7.10.0.
And what you see here is a Joomla 3.9.3 setup.
If you are using newer versions, things might look a bit different.
Once Advanced Module Manager is installed, the core Joomla module manager will be replaced with the Advanced Module Manager. The 'Modules' menu link under 'Extensions' will now open the Advanced Module Manager.
In the module listing you will notice a few extra features added.
But we'll first take a look at the module edit view.
In this first 'Module' tab we also see a couple of extra features Advanced Module Manager offers. We will discuss these in a separate video.
In this video we will be looking at the multitude of Assignment conditions that Advanced Module Manager offers. All the assignments are under this Assignments tab.
We will play around with this custom module, which is assigned to the right module position in the template.
And on the frontend we see that module show up here.
As mentioned before, the Joomla core module manager only offers you the ability to assign modules by menu items.
Whereas Advanced Module Manager offers you a whole range of other stuff you can use to conditionally show or hide the module.
Each assignment type has three possible states: Ignore, Include, or Exclude. By default all assignments are ignored, meaning the module is not limited by any assignment and it will be displayed everywhere.
To use an assignment, you set the option to 'Include' ... or 'Exclude' depending on the desired effect. And as you can see, the green and red colouring helps us quickly recognise which is selected.
Just like we can in core, we can Include or Exclude modules from any Menu Item we want.
Say we want to show this on all the Fruit menu items. So we select 'Fruit' here.
We also want to show it on these 'Citrus' and 'Tree-growing' menus, so we select them too.
But hold on, maybe we'll add more of these subgroups under the 'Fruit' later. And we don't want to have to remember to change this selection every time we add a new menu item.
So we can solve that with Advanced Module Manager, thanks to this 'Also on child items' setting here. Now we only have to select this parent 'Fruit' menu item and the module will be shown on all current and future menu items placed under it.
Let's check if that works.
Well, this is the homepage, and it isn't showing here.
But it is showing on this page.
And yes, it's also showing on these child menu items.
Let's try something else.
Let's say we want to assign this module only to the Home Page.
So now the home page shows the module. And it's no longer shown in the Fruits menu item.
What about on this Cats article?
It *IS* showing here. Why is that?
Well, Joomla will use the home page menu item for any page that hasn't got a dedicated menu item.
So, since the Animal pages are not linked to a menu item, we also see the module here.
But not on the fruit pages because, as you can see, the 'Fruit' menu item is now active.
But we wish the module to only display on the homepage. So how do we solve that?
Advanced Module Manager offers a specific "Home Page" assignment. This will only match the real homepage of the website, instead of pages using the Home menu item. So we'll enable this instead. And we switch off the 'Menu Item' assignment by switching it back to 'Ignore'.
So now the module is showing on the home page.
But it isn't showing any more on the Animal pages. Or any other page.
So that's what we wanted, now the module only shows in the home page of the site.
Let's take a look at more Assignment Types.
Date & Time
Obviously, we can assign a module to certain Date Ranges. And we can also select the date range to be recurring every year. When that is enabled, it will show the module during the selected date range every year.
The Languages assignment here differs from the core module manager in that we can assign the module to a selection of more than one language.
A big assignment type that Advanced Module Manager adds, is the "Joomla! Content". This allows us to assign a module based on what Joomla content page is displayed.
We can assign a module to certain Page Types, meaning for example
that the module will only show when viewing Single Articles. Or when viewing Category Blog pages. Or, let's say we want to show a special module that gives instructions to your authors when posting articles.
We can do that by selecting the "Create Article" page type.
Now, here is our module. And it only shows when creating a new article or editing an article on the website.
Or we can specify exactly in which Categories we want the module to appear...
or not appear,
with also the option of including child categories as well.
For example, let's assign the module to the "Fruit" Category.
And we'll leave the 'Page types' set to 'Category' and 'Articles'.
Now, the module will show when viewing the "Fruit" category page and also on all 'Fruit' articles.
And we can even assign a module to specific Articles, either by individually selecting the articles,
or by assigning it to articles that contain certain keywords, or that have been created by a certain author.
So let's assign it to any article that contains the word 'citrus'.
Now on Limes we see the module, as we have the word 'citrus' in this article, here
Also on Oranges.
But it doesn't show on this one.
Similarly to what we've seen with categories, we can also assign a module to items tagged with certain Tags.
User Group Levels
And we can even control which User Groups are able to see the module.
For example, we could show a Module specific to Guests inviting them to login.
So if we want to show a module only to a certain group of people, we can.
We can also assign a module only to certain Components. For example, let's assign it to the "Search" component.
Now the module is displayed whenever we are on a Search page.
But it doesn't show when we click through to the article.
If your website is using more than one template or template style, you can set modules up to only show on those of your choice.
Now this URL assignment is a powerful one.
You can pretty much use this to assign to any specific page or group of pages you want.
You can just put a part of the url in here that it should show on. For instance, let's make the module show on all urls that have the word 'berries' in it.
So it isn't showing here.
But it is on Blueberries and Strawberries.
And if we search for 'berries', then yes, it is also showing on this page, as this results page has 'berries' in the url.
This URL assignment gets even more powerful and interesting when using Regular Expressions. Now Regular Expressions are a whole new topic, so we won't get into that now.
Advanced Module Managers also allows us to assign a Module to certain Devices. So if we want to display a module only on Desktop, or only on Mobile, we can.
Let's do that, assign it just to 'Mobile' devices.
So we don't have the module here on desktop.
But when viewing this page on a mobile device, Advanced Module Manager will automatically recognize the device. So now we do get the module.
Advanced Module Manager can also recognize what Operating System the visitor is using.
So we can - for example - show an advert in a module of our Windows product to visitors on Windows, and another module for the Mac version to Mac users. And yes, another for Linux.
The last assignment for the Free version is Browsers.
So we can show a module depending on whether the visitor is using a certain version of Chrome, Firefox, or even Internet Explorer!
If someone is using Internet Explorer, we should probably show a special module suggesting them to switch to another browser!
So we don't see the module here on Chrome.
But if we visit the website from Internet Explorer, we can see the module.
As you've seen, the possibilities are literally endless.
Maybe the best part is that you can use and combine any of these assignments. You don't have to just use one.
To control how multiple assignments are applied, Advanced Module Manager offers a Matching method. If it's set to "ALL", the module will be published only if ALL the selected assignments are matched at the same time.
If it's set to "ANY", the module will be published even if just one of the selected assignments is matched.
So we'll set the category assignment to 'Fruit' and the tags assignment to 'Tree-growing'.
And the Matching method is set to ALL.
As you can see, the module shows on Apples. And on Bananas.
But not on Strawberries. Because, as we all know, strawberries are fruit, but they don't grow on trees.
Now if we switch this Matching Method to ANY, it means the module should show if the category is 'Fruit' OR if the article has the tag 'Tree-growing'. Only one of these assignments needs to pass.
So the module is still here on Apples. But now it also shows on Strawberries, because it's a fruit.
It doesn't show on Dogs, as that is neither in the category Fruit. And it also doesn't have the 'Tree-growing' tag.
But it does show on Cats. Because, as we all know, cats are not fruit, but they do grow on trees! ;)
If we now look at this assignments page, it is not very easy to see on what pages it will show, as we need to scroll a lot to see the active assignments.
Well, that's where this 'Show Assignments' option comes in handy.
Now all the inactive assignments are hidden from view. That makes it a lot cleaner.
And the last option we haven't talked about yet on this page is the very first one, the "Same as other module" option.
This useful feature allows us to mirror the assignment settings of another module, so we don't have to select all the assignments again if we want two or more modules to behave the same.
So let's create a second module.
We'll just rename it and publish it.
Now in the assignments we will make this module follow our other module.
As you can see, all other assignment options now disappear, as we don't need them here.
And we see both modules here. But not on the Dogs page. And yes, both are on the Cats page as we expected.
So our second module is linked to the first one. Wherever the first one shows, the other module will show too. Changing the assignments in our first module will also affect where our second module shows.
Alternatively, we can set the option to 'Opposite'.
Now, we have our first module is on Apples. But the second isn't here.
And on Dogs it is the opposite. We have the secondo module but not the first.
So now, our second module will show on all pages where our first module is not shown.
The Pro Version of Advanced Module Manager offers even more assignments, such as Seasons, Months, Days and Tim e, Users, IP Addresses, Geolocating, and more.
And in addition to the Assignment options, Advanced Module Manager provides a few extra features to make module management easier and faster.
We will get into all of this in the next videos.
So, to recap, we have seen all the Assignment Types offered by the free version of Advanced Module Manager, and how to use each of them.
And we're excited to see what the Pro version can do!
Let's head over to the next videos that will cover the assignments the Pro version offers and the Extra Features.
Or, if you need, first watch the installation video to see how easy it is to get Advanced Module Manager installed.