The Joomla! Community Magazine™

Insight to Module Modernization

Written by | Friday, 01 November 2013 00:00 | Published in 2013 November
This article follows the introductory article in Joomla magazine July issue (http://magazine.joomla.org/issues/issue-july-2013/item/1366-module-modernization). In this article, I will briefly introduce some of the new modules which will be added to Joomla in near future and few of the new features such as module ACL and global configuration.

New Module: Contact Information Module

Contact information module displays a list of contact information of a selected contact from the contacts list.

Screenshots

contact fe

Basic Options

contact be

  • Contact Name. Select the name of the contact from the Contacts list
  • Name Hyperlink. Select whether Name of the contact should be hyperlinked to the contact page of the particular contact
  • Position. Position of the contact
  • Address. Address of the contact which includes suburb, state and the country as well.
  • Postcode. Postcode of the contact
  • Telephone. Telephone number of the contact
  • Email. Email address of the Contact
  • Email Address Cloaked. Select whether the email address should be visible or not

Pull Request: https://github.com/joomla/joomla-cms/pull/1921

Feature Tracker: http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_id=8549&tracker_item_id=31566

New Module: Image Slider Module

Image Slider module shows a Bootstrap Image Carousel in a selected module position. Users can insert up-to 5 slides with an image, image link, heading and a description. In addition user can set auto start, slide interval and whether to show or hide navigations and controls.

Screenshots

slider fe

Basic Options

slider be

  • Autostart. Auto-start option decides the Image Slider to start the transitions automatically or manually.
  • Interval. Time delay between two slide transitions.
  • Show Navigation. Shows/hides the slideshow navigation dots on the top.
  • Show Controls. Shows/hides slideshow navigation arrows to previous and next slides
  • Slide 1 – Parameters (Similar to other slides)
    • Slider Image. Set the slider image URL or browse image location
    • Image Link. Set slider image Link URL
    • Slide Heading. Set the slide Heading
    • Slide Description. Set the slide description

Pull Request: https://github.com/joomla/joomla-cms/pull/1918

Feature Tracker: http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_id=8549&tracker_item_id=31568

New Module: Google Maps Module

This module shows a Google Map with basic options, in a given module position. User can define the location either by Longitude & Latitude or by address. Additionally user can set the zoom level, map size, map type as well. API key is an optional field. If the user has a Google Maps API 3 key, it can be specified in the ‘API Key’ field. The Maps module uses Google Maps API V3. In the future I’m planning to incorporate OSM and other map APIs as well.

Screenshots

map fe

Basic Options

map be

  • Map Type. Select the Google Map type from ‘Hybrid, Roadmap, Satellite, Terrain’
  • Zoom Level. Set the Map Zoom level
  • Width. Width of the Map to be displayed. Default value is ‘auto’
  • Height. Height of the Map in pixels.
  • Map Center By. Set the way you specify the Map center (either by Location address or Coordinates)
  • Map Address. If you have selected ‘Address’ in the previous option, then you need to specify the Address here.
  • Map Coordinates. If you have specified the ‘Coordinates’ in the Map Center By. Option, then you need to specify the Longitude and Latitude of the location separated by a comma.(Input format: longitude, latitude)
  • API Key (optional). If you have a Google Maps V3, API Key, you can specify it here

Pull Request: https://github.com/joomla/joomla-cms/pull/1917

Feature Tracker: http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_id=8549&tracker_item_id=31570

New Module: Selected Tag Module

This module shows a list of articles which contains the selected tag, Selected Tag module is in a way somewhat similar to the Similar Tags module, which shows similar articles which contains similar tags to the article currently viewing. But instead Selected Tag module shows a list of articles which has a user specified tag. User can select the order and the direction the list of articles to be displayed. This module uses a new JLayout which can be used for both the tag modules

Screenshots

tag fe

Basic Options

tag be

  • Tag. Select a tag from the list of all tags, which articles having the same tag needs to be listed
  • Max Items. Select the maximum number of article titles to be displayed in the module
  • Order By. Order list of articles by title, created/modified/published time
  • Order Direction. Direction of the articles to be displayed. (Ascending or Descending order)

Pull Request: https://github.com/joomla/joomla-cms/pull/1919

Feature Tracker: http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_id=8549&tracker_item_id=31569

Module Global Configuration

Sets the global values for some advance module options, they include the following: Module Class Suffix, Module Tag, Bootstrap Size, Header Tag and Header Class. These global configurations can be overridden inside each module as user need.

How to access

To access this screen you can either:

  • Click the Options button in the Module Manager, or
  • Click the Global Configuration in the Control panel and then select Module Manager Component or
  • Select System → Global Configuration from the drop down menus and then click Module Manager.

Screenshot

global config

Description

The Global module options will be applied for every module unless they are overridden inside a particular module.

  • Module Class Suffix. A suffix to be applied to the CSS class of the module. This allows for individual module styling
  • Module Tag. The HTML tag for modules
  • Bootstrap Size. An option to specify how many columns the module will use.
  • Header Tag. The HTML tag for module title
  • Header Class. The CSS class for module header

 

Pull Request: https://github.com/joomla/joomla-cms/pull/1922

 

Feature Tracker: http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_id=8549&tracker_item_id=31571

Module Access Control

The module permission part was done by Sander Potjer and I did a few bug fixes and testing. Since it is an entirely new feature for Joomla modules, I would like to introduce it here as well and explain how a user can set permissions per module.

“Module Access Control provides the capability of using Joomla Access Control List functionality to Joomla Modules. Administrator can set permissions for each module, instead of setting permissions for all the modules as a whole now. If you are now to Joomla ACL, it is recommend to look at how Joomla ACL works.” http://docs.joomla.org/Access_Control_List/1.6-2.5/Tutorial

How to set Global Module Permissions

To access the Global Module Permissions, you first need to get to the Module Manager Options screen.

  • Click the Options button in the Module Manager, or
  • Click the Global Configuration in the Control panel and then select Module Manager Component or
  • Select System → Global Configuration from the drop down menus and then click Module Manager.

Click on the Permissions Tab to set Global Module Permissions.

Screenshot

Screenshots are shown below in more detail.

module acl1

Description

Administrator can set Global Module permissions for each user group from the permissions tab.

  • Configure. Configure Allows users in the group to edit the options of modules.
  • Access Administration Interface. Access Administration Interface Allows users in the group to access the administration interface for modules.
  • Create. Create Allows users in the group to create any content in modules.
  • Delete. Delete Allows users in the group to delete any content in modules.
  • Edit. Edit Allows users in the group to edit any content in modules.
  • Edit State. Edit State Allows users in the group to change the state of any content modules.

Notes:

  • Inherited means that the permissions from global configuration and parent group will be used.
  • Denied means that no matter what the global configuration or parent group settings are, the group being edited cannot take this action on this component.
  • Allowed means that the group being edited will be able to take this action for this component (but if this is in conflict with the global configuration or parent group it will have no impact; a conflict will be indicated by Not Allowed (Locked) under Calculated Settings).

How to set individual Module Permissions

To access the Individual Module Permissions, you first need to get to the Module Manager screen.

  • Click the Module Manager under Quick Links or
  • Select Extensions → Module Manager from the drop down menus.

Click on the Module you want to set permissions from the Module Manager. Click on the Module Permissions tab.

Basic Options

module acl2

This where permissions for each user group is managed for this particular module.

  • Delete. Delete Allows users in the group to delete any content in this module.
  • Edit. Edit Allows users in the group to edit any content in this module.
  • Edit State. Edit State Allows users in the group to change the state of contents in this module.

Notes:

  • Inherited means that the permissions from Module Manager Options and parent group will be used.
  • Denied means that no matter what the Module Manager Options or parent group settings are, the group being edited cannot take this action on this module.
  • Allowed means that the group being edited will be able to take this action for this module (but if this is in conflict with the Module Manager Options or parent group it will have no impact; a conflict will be indicated by Not Allowed (Locked) under Calculated Settings).

Sander’s PR: https://github.com/joomla/joomla-cms/pull/1930

Feature Tracker: http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=28638

Sander’s Article: http://www.aclmanager.net/blog/general/338-acl-permissions-per-module-in-joomla-32

Final Thoughts

It had been an enjoyable four months or so in Google Summer of Code program with the Joomla Community. I was able to get to know many people and obtain a lot of experiences. I would like to thank Elin Waring, Janich Rasmussen who guided me throughout the program and many other people who helped me out pointing out mistakes and improvements. It was a lifetime experience for me. Even though it has come to the end of the GSOC program, I would be more than happy to help the Joomla community in the future, especially to make Joomla modules better in every aspect.

Finally, it would be greatly helpful if you can test above new features (Links are provided inline) and suggest improvements, point out mistakes etc. where I can improve. Hope this article helps out both developers as well as users who wish to have new Joomla features.

Read 5748 times
Tagged under Google Summer of Code, English
Lasindu Charith

Lasindu Charith

I’m a final year student majoring in Computer Science Engineering, at Department of Computer Science and Engineering, University of Moratuwa, Sri Lanka. I'm an enthusiast of open source and web technologies.

Latest from Lasindu Charith