Skip to main content

Understanding Joomla URLs and Itemids

One of the most? frequently asked questions on the Joomla forums is "What is the Itemid and what does it do?". Its something that frustrates even experienced developers ... witness the post called "Damn you, infernal item IDs!!!" on WhyJoomla.com.

I thought a quick tutorial would be useful and along the way we can break down other aspects of Joomla URLs.

An Example Joomla URL and Itemid

Let's use a news item called "Joomla Weekly News Magazine Issue 10" written by Brian Teeman.

If you navigate to this news item via Joomla.org, you can see this URL in the browser bar:

http://www.joomla.org/content/view/2985/33/

You see this because inside the administrator section of Joomla.org, Search Engine Friendly URLs have been turned on (Site => Global Configuration => SEO => Search Engine Friendly URLs = Yes). Its a shorter version of the real URL produced by Joomla:

http://joomla.org/index.php?option=com_content&task=view&id=2985&Itemid=33

Breaking Down those Two URLs

Default URL
Default SEF URL
Other Examples
Component Name
option=com_contentcontentoption=com_wrapper produces a page using the wrapper component
This explains what the component is being asked to do.
task=viewview

task=emailform allows you to send the page via email

do_pdf creates a PDF copy of the page

Number to identify the content item
id=29852985Joomla starts at 1 and works up, so there have nearly been 3000 articles published on Joomla.org
Number to identify the menu link leading to the content item
Itemid=3333
Joomla starts at 1 and works up. "What is Joomla?" is menu link number 26. "Submit Your News" is number 75.

What's the point of the Joomla Itemid?

The Itemid is what Joomla uses to decide which modules and templates need to appear on the page:

For example, the Itemid for Brian's article is 33. What happens if we change that to 26 for example?

http://www.joomla.org/content/view/2985/26/

  • The purple "News" template changes to the red "Main" template.
  • The "News" modules disappear and the "Main" modules appear instead.

We can do the reverse and make "What is Joomla?" appear to be a news item:

http://www.joomla.org/content/view/12/33/

When you open up the Template Manager and assign templates to a particular page or open up a Module and assign it to a page, it is the Itemid that does the work.

There is a limit to how much of this messing around you can do this on Joomla.org because the site is really 6 separate sites. Each site has its own Itemid structure. We can use the same URL as above to take us to a different page on each site:

This is one reason why we recommend that people use Open SEF, Artio SEF or SEF Advance... lots of Joomla sites have identical URLs. A quick search on Google produces 450 pages with the same URL /content/view/12/33. If you want to stand out and help Google understand the content on your page, it helps to have a Search Engine Friendly URL Component installed.

Comments

Popular posts from this blog

How to extract vtiger DB data

Here is the code sample how extract data form vtiger DB with WHERE close. Sample:1 require_once('include/DatabaseUtil.php'); global $adb; $tabid = array('9','16'); $sql = "SELECT tabid, fieldname, fieldid, fieldlabel,columnname, tablename, uitype, typeofdata, presence FROM vtiger_field WHERE tabid in (" . generateQuestionMarks($tabid) . ")"; $result = $adb->pquery($sql, array($tabid)); // get result $noofrows = $adb->num_rows($result); // get number of rows $i=0; $data=array(); while($resultrow = $adb->fetch_array($result)) { $tabid=$resultrow['tabid']; $resultrow=['fieldlabel']; $data[$i]=array($tabid, $resultrow); } Sample:2 require_once('include/DatabaseUtil.php'); global $adb; $query = 'select idlists,from_email,to_email,cc_email,bcc_email from vtiger_emaildetails where emailid =?'; $result = $adb->pquery($query, array($focus->id)); $from_email = $adb->query_result($result,0,'from_...

Unix VS Linux

Free Software says that people have freedom to share software and related technology free without any hesitating. And also this may enable the rapid software development because all brains become to one stage and play the game. On a technical level, Free software grantees the right view and also modify source code if some one need different think as his view. In this post I am not going to deeply discuss about what Unix is and What Linux but here lats we talk about some interesting happenings around Unix and Linux What is Unix. In 1980, A computer scientist called Richard Stallman decided to create a venerable operating system called Unix. At the time Unix ran many of industrial and academic system in the world. He started developing Unix operating system and most of the world wide people join with him to success this operating system. Stallman called his version as "GNU" (Pronounced G-noo). This was start of GNU but not Unix, any way this was the new legendary of Unix so th...

GIS location selector

Using google maps is the best and easy way to integrate GIS information system to your web sites. Most of the social media application using google maps to their sites in current world. In here we are going to discuss how to integrate google maps in our web site and mark location from given set of locations. Simply here we are going to get location form mysql data base and populate those location on google map. step 01: First we need to obtain a google map API key form google. Click here to get api key. Step 02: Setup data base which included gis locations. in this database have included US locations and its GIS locations. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Database: `gis` -- -- -------------------------------------------------------- -- -- Table structure for table `gis_locationinfor` -- CREATE TABLE IF NOT EXISTS `gis_locationinfor` ( `id` int(11) NOT NULL AUTO_INCREMENT, `region` varchar(100) NOT NULL, `country` varchar(100) NOT NULL, `states` varchar(100) NOT N...