“I Wish I Had Known That About Joomla!” – Don’t overlook the Tooltips!

Joomla!I have spent many maddening hours trying to figure out why something wasn’t working.  Here’s a great example:

Scenario:  I wanted an Articles Category to display all articles within the “Learning” category.  I spent at least an hour on this Module configuration page trying to figure out why it would only display 1 Article.   Notice that Count field set to 0.  And notice how it is visually “grouped” with Featured Articles by virtue of the horizontal rule below it.  Given the way my brain thinks, I was setting that value to 1 and thinking that meant to show “1” Featured Article.

Oh, NOT SO!!!!  Thankfully, I saved the rest of my afternoon by recognizing when I had had enough and asking for a fresh perspective from my IT husband.  We hovered over the tooltip for that field and discovered that value controlled the number of articles to display!!!  With a value of 1, I was only getting 1.

Screen Shot 2014-08-19 at 2.26.47 PM












RTFM – Yes, the tooltips are the electronic version of a manual

Never under estimate the value of the manual.  In today’s world, that equates to the Tooltips.  Always hover over the field names to get a tooltip explaining what it does.    Had I don’t this earlier, I would have known the fact that my setting it to 1 was causing the problem!!!!

Screen Shot 2014-08-19 at 2.33.34 PM

“I Wish I Had Known That About Joomla!” – Understanding Role-Based Access and ACLs

Intended Audience: Beginning Joomla! Administrators

Nouns and Definitions

  • User – An entity who will interact with your site.
    • Rule:  A user can belong to one or more User Groups.
    • Configured in Users > User Manager > Users.
    • Important attributes:
      • Name – The name that will appear on the site as the author of content.  Whether or not it shows is set in each piece of content.
      • Login Name – The name the user will use when entering their credentials to log in the site.
      • Email – Rule:  Cannot be associated with any other user on the site.
      • Assigned User Groups – select one or many.
  • User Group – Controls what a user can do on the site.  A User Group has specific Permissions.
    • Rules:
      • A User Group can be assigned to one or more Access Levels.
      • A User group is assigned to one or more Actions which represent their Permissions.
      • Could there be a scenario where you have Permissions, but not the Access Level to “see” what you have permissions to act on?
    • Set Permissions in User Manager > Options from top right button bar > Permissions tab.
    • Note: When adding a new group, be sure to edit the Access Levels.
  • Permissions – rights to perform certain actions on a site; either Allowed or Not Allowed
    • Configure Permissions in User Manager > Options from top right button bar > Permissions tab.
  • Actions on which Permissions are set:
    • Site Login – can login to frontend
    • Admin Login – can login to backend
    • Offline Access – can access to site when site is offline
    • Super Admin – access to do anything, regardless of other permissions
    • Access Administration Interface –  allows users access to backend, except global configuration
    • Create – can create content in any extension
    • Delete – can delete content in any extension
    • Edit – can edit content in any extension
    • Edit State – can edit state (Published|Unpublished) of content in any extension
  • Access Level – control which users can view which objects on your site, to include: menu items, modules, categories, and component items (articles, contacts, etc.).
    • Rules:
      • Each object on the site is assigned to one access level.
      • User groups are also assigned to each access level.
    • Important Attributes:
      • Level Title – what you enter here is what you see from the “Access” drop-down in objects like menu items, modules, etc.

Registering as a New User

The ability to register as a new user and set what their default role will be is controlled as a global setting under User Manager > Options from the top right button bar.

Access Levels


Example Implementation

Congregation Or Ami in Richmond, VA has two blogs using Zoo blog; one for our Rabbi and one for our President.  There is a landing page for each as follows:

  1. http://or-ami.com/about-us/our-rabbi/blog-rabbi
    1. This is a “Zoo Front Page” Menu Item Type with Access Level set to Public so everyone can see it.
  2. http://or-ami.com/about-us/leadership/our-president
    1. This is a “Zoo Front Page” Menu Item Type with Access Level set to Public so everyone can see it.

The Rabbi is the only one who can see the “Rabbi – Create Blog Entry” menu item displayed one level below her landing page.    She creates Articles and assigns them to the Rabbi category.

“I Wish I Had Known That About Joomla!” – Articles Category vs. Menus

Intended Audience: Beginning Joomla! Administrators


An Articles Category module and a Menu achieve similar results, a list of clickable items displayed in a specific position on your Website’s page.

When standing up the Or-Ami website, we started off creating sub-menus with the perspective of using the main menu along the top as a top-level category of information so-to-speak, and sub-menus the next level of grouping. This becomes a challenge when you’re content at the 2nd level often changes.  If that is your scenario, then an Articles Category is better suited for the task.

Here are some things to consider when deciding between an Articles Category and a Menu.

  1. Do your clickable items on the menu change often?  If yes, then choose an Articles Category module item to display your menu.
  2. Will your article titles make good menu item labels?  If yes, then choose an Articles Category module; otherwise create a Menu.
  3. If you want to include *all* articles within a category on your menu, then choose an Articles Category module; otherwise if only some articles within a category are to be listed, create a Menu with Menu Items to the specific articles you want to include.

I’m a bad, bad learner … a story from the Joomla! trenches

Joomla!  I am merciless with myself when it comes to learning.  If I can’t get it quickly, I get frustrated and impatience shamelessly follows.  Once I have come out the other side of pain and frustration, I often think, “geez, had I only known that out of the gate, things would have been a lot easier.”

Joomla! has a bit of a learning curve, so it’s in this context that I offer a series of “wish I had known that” articles to help the beginning Joomla! Administrator climb the learning curve.  Hopefully, these tips will help you gently make the transition from novice to skilled Joomla! Administrator.

Distributed Big Balls of Mud

Distributed Big Balls of Mud”  Great article from Simon Brown surmising that without disciplined practices, jumping on a specific architecture bandwagon is just chasing another new fad.  He aptly asks:

“Are you taking care of your software architecture?”

“Do you really understand what the core structural abstractions are in your software? Are their interfaces and responsibilities clear too?”

As a systems analyst, I see this lack of tactical thinking all too often.  Developers are not tactical thinkers and management directs solutions based on what buzzwords their counterparts are using at social gatherings.   That’s why you need a good analyst/ScrumMaster/PM.

Summer Solstice

There is nothing more beautiful in life than a flourishing garden.

Red Malabar Spinach blossoms
Red Malabar Spinach blossoms
Nasturtium leaf after watering
Suburban Gardening
Suburban Gardening
Lemon drop squash bloom
Lemon drop squash bloom
Nasturtium bloom
Nasturtium bloom
Yeap; summer.
Yeap; summer.
Helen the hilarious
Helen the hilarious
Herbal happiness
Herbal happiness


Herbal happiness
Herbal happiness


InfoPath – Using CONCAT

The term concatenate means to put pieces together to make a whole. In the case of InfoPath, the CONCAT function allows you to put any combination of the following elements of your InfoPath form together into one element:

  1. Field
  2. Function
  3. Text


concat(fieldname, "text", function)
  • Fieldname – The name of a field from your form.
  • Text – Any text you enter must be enclosed in quotes.
  • Function – Any of InfoPath’s built-in functions.


Use the CONCAT function to give a form a name when submitting to a Sharepoint list.

concat(FullName, "-", today) would result in the form being named DebbieSilbert-11/10/06.xml.

InfoPath – Submitting to Two Data Connections

Many workflows could be enhanced if a form could be sent to more than one location, like to a main repository and to a user who  via email.

In this topic, I’ll show you how to create a form that is sent to two locations.

The first step in the process is to create two data connections. For this example, we’ll create one for a Sharepoint forms library and one for email.

Create A Data Connection to Submit to a Sharepoint Form Library

  1. Click ToolsData Connections. The Data Connections dialog opens.
  2. Click the Add button. The Data Connection wizard opens.
  3. Since we’re creating a “submit” data connection, accept the default option of Submit data.
  4. Click the Next button.
  5. Select the To a Sharepoint form library option. In the Sharepoint form library field, enter the UNC path to the Sharepoint forms library.

Note: It’s easiest to navigate to the forms library and copy the URL from the Address field of your browser, then paste it in this field. After you do that, delete this from the end of the URL: Forms/AllItems.aspx

  1. The File Name field can be a bit tricky if you want something other than just “Form” as a name for each form submitted. The See “Using the Concat Function” function (don’t let that word scare you) is the trick. Use the CONCAT function to establish a form naming convention.


concat(FullName, "-",now()) would result in: Debbie Silbert-10-03-2005.xml as a filename.
  1. If you would like the form to allow save and replace, click the Allow overwrite if file exists checkbox.
  2. Click the Next button.

Create a Data Connection to Submit via Email

  1. Click Tools…Data Connections. The Data Connections dialog opens.
  2. Click the Add button. The Data Connection wizard opens.
  3. Since we’re creating a “submit” data connection, accept the default option of Submit data.
  4. Click the Next button.
  5. Select the As an e-mail message option.

InfoPath – Display Dialog Box on Load

The first part of the code checks to see if there are any required fields that have no value. If there are, the text displayed in teal is presented to the user and control returns to InfoPath. If no errors are found, the Submit is attempted. If an error of another sort is found, the error message is displayed.

/======= // 
The following function handler is created by Microsoft Office InfoPath. 
// Do not modify the name of the function, or the name and number of arguments.
function XDocument::OnLoad(eventObj)
// Write your code here (Put in Tools…Programming…On Load) 
var clicked
clicked = XDocument.UI.Confirm("This form is for offices with six or fewer employees. Do you wish to continue?", 1);
if (clicked == 1) 
XDocument.UI.Alert("You clicked OK."); 
else if (clicked == 2) 
XDocument.UI.Alert("You clicked cancel."); 

Be sure to enable Submit in the Submittng Forms dialog.

  1. Tools … Submitting Forms.