How to use
Context Module allows to make other Modules smart, in such way that with Context Rules Modules are allowed to be displayed when a given content is displayed. This allows to display any Joomla! Module only when content of specific Sections, Categories or other Identifiers is displayed.
Publish to a Template Position
Publish Context Module to the Template Position where you want the Modules to be controlled. To use Context Module on more than one Template Position, use a copy of it:
Context Module allows to call any of your installed Joomla! Modules on a per rule basis. For that you will need the Module ID of a module, which is shown in the ID column of the module list (see example above).
Choose the Menu Assignment
Context Module is called as all other Joomla! modules and therefore also requires a Menu Assignment. For a start, assign the module to all menu items and use the rules to control when to invoke other modules. For higher granularity in control, you may also assign Context Module (or any instance of it) to a specific menu item.
All settings explained
Context Rules
Here the relations are being set to assign Modules to Sections, Categories, Content Items or Authors. The language describing these rules used here is defined as followed:
Example: Assigning Module with ID 39 to Section with ID 1 & 2
s[1,2]=39
Example: Assigning Module with ID 45 & 46 to Content Items with ID 6 & 7
ci[6,7]=45,46
Example: Assigning Module with ID 19 to all Authors
a[*]=19
The convention for defining these context sensitive rules for Modules is flexible by using this notation:
Convention for definition Context Rules for Modules
s|c|a|ci[*|#,#,#,...]=# s|c|a|ci[*|#,#,#,...]=#,#,...
These are the abbreviations and their meaning used to described the Context relation:
s ... Section with ID (or multiple ID's separated by comma) in square brackets. c ... Category with ID (or multiple ID's separated by comma) in square brackets. a ... Author with ID (or multiple ID's separated by comma) in square brackets. ci ... Content Item with ID (or multiple ID's separated by comma) in square brackets. i ... Menu Item ID of the current selected menu item. pi ... Parent Menu Item ID of the current selected menu item, if the current menu item is linked to a parent menu item. # ... The Module ID of the module to be assigned to (shown with) this context rule.
To assign a Module to any of the Sections, Categories, and such use a asterisk (*) instead of ID's in the square brackets:
Single and multiple Modules are allowed to get used with these rules:
=# ... assigns a single Module with the given ID =#,#,#,.. ... assigns multiple Modules with the given ID's in order of left to right
- Multiple ID's are always to be separated by commas.
- The order of the assignement rules are from top to bottom and left to right
To use a File instead of a Module, use a File Reference:
In addition to using Modules, also PHP script files may get called with these rules. To use this feature, use a File Reference instead of a Module ID:
Context Rule when using a Script File instead of a Module
s[1,2]=myscript
Context Rule when using Module with ID 18 and a Script File
s[1,2]=18,myscript
Then define in the File References the path and file which is referenced to:
File Reference settings to above example
myscript=some/path/to/file/script.php
Combining Rules
Individual Rules are allowed to get AND combined by using &
as combining symbol:
Example: Combining Sections with Authors, such that a assigned Module is only used when navigation is in that particular section
s[1,2]&a[5,6,7]=19
This will include the Module with ID 19
only when the current Section is 1
or 2
and the Content Author ID is 5
,6
or 7
.
Example: Combining Sections with Authors, such that a assigned Module is only used when navigation is in that particular section for all Authors
s[1,2]&a[*]=19
Same as the previous example, instead of limiting to single Author ID's all Authors are selected by using the Asterisk *
operator.
See also the Frequently Asked Questions (FAQ) for more examples and hints…
File References
In this area define any File Reference followed by the equal sign ('=') and the real path and filename to the file. The file needs to stay within the Joomla directory structure and be any type of file: Text File, HTML File, PHP-Script. This allows you to include arbitrary files in addition to modules.
Define the File References as per the following structure:
<File Reference>=path/to/file/and/filename.ext
file1=contribution/scripts/somescript.php myflash=contribution/myflash.html
Custom ID Rules
(Commercial Unlimited License only)
Custom ID's allows any URL GET, POST or Cookie Value used by a third party extension to get assigned to an ID Marker used in the Context Rules.
id
… carries the ID of the current content itemItemid
… carries the Menu Item ID of the current content item
The Syntax for Custom ID Rules is a simple assignment of <value>=<marker>
. One Custom ID Rule per line, multiple rules are allowed.
<value>=<marker> <value> ... is the URL GET, POST or Cookie Value used by the third party extension <marker> ... is the Marker used for identifying that value in the filenames
Custom Rules for ID's as numbers
Most Components use Integer Numbers for their ID's. For those number based ID's the notation is to assign a <value>
& <marker>
pair for the ID's that shall get integrated into the file selection:
extID=ex mapID=map
With above example the following example URL of
index.php?option=com_extension&task=view&Itemid=132&extID=3
assigns the URL parameter extID
to the Marker ex
, such that it may get used in a Context Rule like this: ex[8,10]=20
.
Custom ID rules when using with IP-Location for Joomla
You may use Context Module in combination with our IP-Location for Joomla Extension, to introduce Location based rules:
To use Location data for Country and/or City with Context Module use:
modules/mod_contextmodule_ce/plugins/iplocation_city.php=city modules/mod_contextmodule_ce/plugins/iplocation_country.php=country
City Names are to be Lower Case, Country Codes are used for Countries and these are also Lower Case. Spaces in City Names are replaced by a “hyphen”.
Example Context Rules for Cities and Countries
city[linz]=18 country[at,de]=29
Custom ID rules for other 3rd Party Extensions
See here for some Custom ID rules for some specific Extensions…
Module Filter
Context Module will look for the Module ID and then call the associated module. Context Module itself does not output any code. With the Module Filter you may control if Context Module shall adhere to a modules published state, or not. The options are therefore:
- Disregard published state of modules: Will call every module once its rule is passed, disregarding its published state.
- Only show published modules: Will call only a module that is also published once its rule is passed.
Module Output Style
Allows to set the style in which the called modules output shall be generated, set the desired HTML output that will be applied to the output of the modules controlled by the Context Module.
See also embedding the Module for use in Template Files and influencing the Joomla! Wrapping behaviour.
Debug Mode
With 'Show debug information' the module will show information on the Content Context, modules called, files missing to file references and more. Use this to see if rules are passed, to find the Content Context for a particular situation or as help in support issues.
In normal operation, this option may stay at 'No debug information'.