This triple-featured update adds assignments by article dates, current article author, and even Custom Fields, for Advanced Module Manager, Advanced Template Manager and ReReplacer.
Advanced Module Manager, Advanced Template Manager, and ReReplacer Pro, are powerful Joomla components that - respectively - allow you to assign modules, templates and custom replacements based on any condition you want.
Available conditions include Menu Items, Languages, Periods of Time, Categories, Articles, Users, Components, Devices and much more, even Custom PHP.
As part of the "Articles" assignments, you could already assign items based on the article Category, Tags, Keywords, Authors, and more.
With today's triple update (AMM 7.12, ATM 3.8, ReReplacer 8.8), the possibilities offered by these three extensions expand even more, as brand new article-based assignments under "Joomla! Content" have been added. Let's dive into what's new!
With Advanced Module Manager (AMM), Advanced Template Manager (ATM), and ReReplacer Pro, you have already been able to assign items based on all kinds of Date & Time conditions: displaying (or hiding) them only in certain Dates, Seasons, Months, Days of the week, and even specific Time of the day.
All of those assignments dealt with the Date & Time of the "real world". But what if you wanted to assign items based on the Dates of the Articles? Well, now you can do that too! Under "Joomla! Content" > "Articles", you now find the new Date assignments.
For example, you can now assign a certain module (or a certain template, or a ReReplacer replacement), only to articles that were written before a certain date, or after a certain date, or also use a date range (from a certain date to another). You can even compare the value to the current date with the "NOW" option.
You can decide which date type you want to use the assignment for: this means you can base the assignment on either the "Created Date", the "Modified Date", the "Start Publishing" date or the "Finish Publishing" date.
As part of the "Articles" assignments under "Joomla! Content", you can now also assign certain items based on whether an article is Featured or not.
So you can decide to display (or hide) a module only on Featured articles (with AMM), or make Featured articles use a different template style (with ATM), or make them have a special modified text or style (with a custom ReReplacer replacement).
As part of the Articles assignments under "Joomla! Content", you have already been able to assign certain items to articles written by specific authors.
Now, the author assignment offers an additional dynamic option: the ability to assign items to articles written by the user that is currently logged in (and that is looking at the page).
So that means, for example, that you could show a module saying "Look! This is an article you wrote! You can edit it by clicking on the Edit button." whenever a user is viewing an article that he created.
Probably the most in-depth addition is the ability to assign items based on the values of any Custom Fields attached to an article.
Custom Fields were the last missing piece of the puzzle in the plethora of available Publishing Assignments, and we went all-in with them! This very advanced implementation means this feature is exclusive to only the Pro versions of the extensions.
Now, under "Joomla! Content" > "Articles", you can also find the new "Fields" assignment.
Here, you will be able to select any Joomla Custom Field you want from a dropdown list. Then you will be able to specifiy the comparison method and enter the desired value.
And you're not limited to just one custom field. You can set an unlimited amount of Field Name/Value pairs. Simply click the + button to add more, or the - button to remove a previously inserted field.
You can even set multiple conditions on the same custom field by simply selecting the same custom field again from the dropdown.
You can choose between the following comparison methods:
- Equals: the field value should match the exact entered text
- Is not equal to: the field value should not match the entered text
- Contains: the field value should contain the entered text
- Contains one of: the field should contain at least one of the entered values (useful for fields with multiple values such as lists)
- Does not contain: the field value should not contain the entered text
- Begins with: the field value should start with the entered text
- Ends with: the field value should end with the entered text
- Less than: the field value should be less than the entered value (useful for fields containing numbers or dates)
- Greater than: the field value should be greater than the entered value (useful for fields containing numbers or dates)
- Regular Expressions: the field value should pass the entered custom Regular Expression check
As you can see, the possibilities are pretty much endless!
For certain custom field types, the custom field value gets stored differently in the database compared to how it's displayed on the site.
When creating "select" field types that can have multiple values - like lists, checkboxes and radio buttons - for each option you specify the text and its option value.
For these, the value you have to enter in the assignment is the option value, not the option text (if you're using Articles Field, the option value is the ID of the desired article).
And if you want to specify multiple values for "list" fields, you can simply separate them by comma (for example
apples,bananas to match options
By using the "Less Than" and "Greater Than" comparison methods, you can match any article where a calendar custom field value is set to before or after a certain date.
Using Relative Dates
And if all of this wasn't enough, you can also use dynamic Relative Dates values to match articles where a custom field value is set to the current day, yesterday, tomorrow, or any other date relative to today.
For example, you could set up an assignment to match any article that has an "Event Date" (custom field) set in the future by using the "Greater Than" comparison method, and entering a value of
You can enter any of these Relative Dates and Custom Format as values:
date('now')=> return current date and time (2021-07-27 18:06:20)
date('today')=> return current date (2021-07-27)
date('tomorrow')=> return date of tomorrow (2021-07-28)
date('yesterday')=> return date of yesterday (2021-07-26)
date('-1 day')=> return date of yesterday with current time (2021-07-26 18:06:20)
date('+2 days')=> return date of 2 days from now with current time (2021-07-29 18:06:20)
date('-1 week')=> return date from 1 week ago with current time (2021-07-20 18:06:20)
date('-1 month')=> return date from 1 month ago with current time (2021-06-27 18:06:20)
date('-1 year')=> return date from 1 year ago with current time (2020-07-27 18:06:20)
See the full list of the possible Relative Date Values that can be used.
For any relative date value, you can also customize the date format it should use. Here are some examples:
date('today', 'l')=> return today's week day name (Tuesday)
date('today', 'F')=> return current month's name (July)
date('today', 'Y')=> return current year (2021)
date('tomorrow', 'Y-m-d H:i:s')=> return date of tomorrow with time 00:00:00 (2021-07-28 00:00:00)
date('yesterday', 'Y-m-d H:i:s')=> return date of yesterday with time 00:00:00 (2021-07-26 00:00:00)
date('-1 day', 'Y-m-d')=> return date of yesterday (2021-07-26)
date('+2 days', 'Y-m-d')=> return date of 2 days from now (2021-07-29)
date('-1 week', 'Y-m-d')=> return date from 1 week ago (2021-07-20)
date('-1 month', 'Y-m')=> return last month in Y-m format (2021-06)
date('-1 year', 'Y')=> return last year (2020)
The date format characters that you can use are based on the PHP date function.
Note: All Date Filters will be adjusted correctly according to the Time Zone used on your website.
The latest update for all three extensions also comes with various other improvements and fixes. Read the respective Changelogs for the full list of changes that have been made in the new releases:
There are a lot of cool features and options to explore in these extensions. For a complete overview of all their features, head over to the full Documentation for Advanced Module Manager, Advanced Template Manager and ReReplacer, and check out the Video Tutorials.