Any kind of non-linear web site (as opposed to a straight blog, and even then) relies heavily on second-tier pages for organizing information by type. Yet one of the less explicit features in the Mambo/Joomla package is how you do this by use of the menus function. In fact, one reference I have on Mambo doesn’t even list “menus” in the index.
As usually described in the documentation and literature, they are presented primarily as navigational devices, to which you can add category or section lists, or other content. It’s nice that you can copy menus, move items around and so forth; but there is far more to a menu control than simply what a reader can click on.
In fact, for a menu to be useful it doesn’t have to be displayed anywhere. Setting up a menu can be a handy way of organizing certain sets of index pages for reference, for example. (The documentation uses the word “menu” for both the listing as well as the page that you get to when you click on the listing. I find this to be confusing and unhelpful, so I’ll refer to the latter as a “hub.”)
The big thing that menus do is create and control the “hub” pages that organize your categories, sections and content. This is where you control the display parameters of a hub, as you control the display parameters of a content item.
Joomla has two tiers of content organization available, Sections and their sub-tier Categories. The creation and configuration of menu items simultaneously creates and configures hub pages for Sections or Categories.
There are three types of hubs for your web site content: content blogs, archive blogs, and tables. Each is available for Categories or Sections. (There are other kinds of menu items you can create, not covered here, such as link pages, newsfeeds, static content, external URLs.)
In these examples, I’m defaulting to displaying specific titles, pagination results, descriptions, category names, and item titles.
The default section blog shows the intro text you entered, followed by a listing of stories. In this example, the first two stores are part of Category One, and the second two are from Category Two. Within each pair they are displayed in reverse chronological order. The titles above and to the right of the sumaries are clickable (you can’t tell that from here); and above each summary is a clickable link to the contents of its containing category.
The section table is pretty simple, just the titles of the categories, with their summaries and an indication of how many published items are in each.
Similar to the section blog, displays the summary, and linked titles and summaries of the items within that category.
The significant things in the table link format are the raw title listings, the filters and the pagination. (In the basic installation these appear above the content; I’ve modified the template so that they are at the bottom.) It will list as many items above as you select on the configure screen, and as many below. It can then include links to its sibling categories.
Key Things to Configure
There are several display options that are set up globally. Be aware of these, set your preferences appropriately depending on the needs of your site, and be prepared to override them as necessary. These include:
- Linked titles. Generally useful.
- “Read More” links. Usually useful, though for some kinds of short content you may want to just include the whole thing in the summary section of the content screen, eliminating the need to “read more.”
- Item Rating.
- Author Names.
- Created Date and Time, Modified Date and Time.
- PDF, print and mail icons. You can have icons and links appear on each page linking to shortcuts to these functions.
Then there are several more specific, and I suppose more frequently customized, options:
- Menu Image: If you like icons in your menu listings.
- Page Class Suffix: This is really useful. The CSS classes in the hub pages will have this string appended to them. So a class that might have been “categoryheading” will instead be “categoryheading_xxxxx”, where “_xxxx” is what you enter here. Using an underscore character to start is a good practice for legibility. These can be unique or just use the same one for multiple areas.
- Back Button: Personally I like using the built-in browser features whenever possible, because having two things doing almost the same thing is confusing.
- Page Title: If you want a nicer page title than just the title of the section, put it here, and select the “show” radio button underneath.
- #Leading/#Intro/#Columns/#Links: These control how many subsidiary items are displayed. The Leading item can be styled differently from the rest. If you don’t want that, enter “0″. The Intro items have titles and summaries (if that’s how you configured them), and the Links items are simply clickable titles. If you don’t want anything appearing without summaries, enter “0″ here as well. I don’t know about Columns, because they aren’t relevant to the Accessible Joomla package.
- Order: Multiple self-explanatory options are here. “Primary Order” is the default setting, whatever you’ve made it; “Ordering” is the order you set within that category or section, from the category and section manager pages.
- Pagination: Default is probably most useful here; it shows where necessary, and hides where not. If you only want the first n items, you’ll set hide, and set the number of display items to n.
- MOS Images: a Joomla feature that lets you assign images to categories and sections.
- Category Name and Category Name Linkable: In a Section page, you can have the subsidiary category displayed as a helpful reference.
- Item Title: I can imaging circumstances under which you wouldn’t need to display the title, for example a group of advertisers for which you have logos. It wouldn’t be necessary to say “Exxon,” and immediately below it show an Exxon logo.
Database Entry IDs
When a menu item is created, there are three critical data items to be aware of. One is the “option.” This is the word appearing in the URL that indicates what kind of page it is. This can be “blogsection,” “blogcategory,” or several others. The second is the “id” or “CID”. This represents the assigned Section ID or Category ID. The third is the Item ID, which represents the specific Menu Item that you have created. The Item ID and CID for any hub can be found on the Menu Manager page for any specific menu containing that hub.
Translating index.php URLs to SEO URLs
These are important because you have to build your own URLs if you are using the SEO feature. The details screen for a menu item shows something like /index.php?option=com_content&task=blogsection&id=11&Itemid=66
but if you’re using SEO you’ll need something like:
A blog category will look like /content/blogcategory/5/14/69, where 5 is the section, 14 the category and 69 the item ID of that particular menu.
You either have to pick this information off of a live page that displays the menu, or do the transposition yourself. Of course, if you’re just using the menu your URL is generated automatically; but if you’re using the menu organizationally, or as a private link, you’ll need this. The “Blog Archive” type is a little different; the given URL will have something like “archivesection&id=xx&Itemid=yy”. This translates
I have some problems with this particular implementation on my installation; it may because of my combination of SEF plus the “accessible Joomla” package. The actual menus display /content/archivesection/xx/yy, but clicking on it returns a permissions error. I may have this part wrong altogether, and your mileage may vary.
The Main Point
The main point being, if you want a hub page to look and behave a specific way, you need to create a menu item and do the configuration from the menu item. One might think that it would make more sense to do it from the category or section page; but on the other hand this does give you the flexibility to display the same content in different ways, depending on context or audience.
In conclusion, some of this may not be right on, and I apologize in advance. But I hope this is helpful in some way to prevent you from going up any dead ends as you first build sites in this package. A little advance planning, and some testing of some dummy copy, is a good idea. Once you get a feel for how it handles your preferences, the full production cycle will go a lot more smoothly.