|
The following explanation describes Joomla from the point of view of a website developer (rather than a non-technical user). This might be useful to you if you are a web designer who is interested in using Joomla to make your life easier, but are having trouble seeing how it all fits together. Thanks go to Jeff Jordan for asking the questions that prompted this article!
The basic idea of Joomla (or any web content management system for that matter) is that a non-technical person often needs to be able to keep their own website up-to-date without having to call on a web developer to make changes every time. Of course there are some things that can only be done by a web developer, but for simpler tasks such as changing the wording of a paragraph, it is an unnecessary burden and expense for both parties if you have to get a developer to make the changes.
Joomla therefore attempts to separate the technical tasks from the non-technical by providing tools to help a non-technical person manage and organise the content of their website. It also provides additional tools which help to add more functionality to a site (by installing ready-made components, for example to add a guestbook, forum, events calendar, etc).
The main purpose of the Joomla Administrator application is to allow the non-technical person to organise the content of the site. The content of a site can consist of a number of elements, but mainly we are referring to articles and menu options. Sections, Categories, and Articles (or Content Items) are just the mechanism that Joomla uses to organise the content - similar to directory folders and files in a standard file system. The data that makes up the content is stored in a mySQL database - the Joomla Administrator application is bascially a GUI for that database.
For the website developer however, the main area of interest is usually the template. A Joomla template is basically just a standard HTML page, with a few special hooks (in PHP or using special tags in Joomla 1.5) which tell Joomla where to output the content elements. If you want different layouts or designs on different pages of the site, you can use multiple templates, and assign the desired template to the appropriate menu option using Joomla Administrator.
So at runtime, the Joomla core engine comes along and takes the content from the database, merges it into the template file, and outputs the resulting web page (note, Joomla does not create any files at run-time, it simply renders the appropriate HTML using PHP).
This is perhaps a slight over-simplification, because the Joomla Administrator does to some extent allow the non-technical user to dictate the layout of the page. Joomla has a number of named 'module positions' - a module can be thought of as a small window within a page. As a template designer, you specify whereabouts on the page these module positions should appear.
For example, there are named module positions called 'top', 'bottom', 'left', 'right', 'banner', 'user1', 'user2' etc. It would make sense to ensure that you put the hook for the 'top' module position at the top of your template - but you don't have to, as a template designer you can put it anywhere you like. The user can then assign some content to one of these positions, and it will appear wherever that particular hook is placed in the template. Most templates do not support all of the named module positions (there are quite a few, and it is even possible to add your own) - but top, bottom, left, and right are almost universally supported.
In addition to the module positions, there is the main window where the articles themselves are displayed. Typically, modules go around the outside of a page, and the main window is in the middle, but the template designer can of course control the positioning.
There are a large number of free and open source templates available for Joomla, so for those on a tight budget, it is not even necessary to use a web designer at all - as long as they have enough technical ability to install Joomla, they can install a free template and build their own website without needing to know anything about HTML.
For a better understanding of how templates work, see our 'no-frills' Netshine-Basic template (Joomla 1.0 only) - which is about as simple as a template gets.
Additional functionality is typically provided by means of 'Components'. These are add-on programs (normally written in PHP) whose administrative features are integrated with Joomla Administrator - so that the website owner does not need a separate administration tool. The run-time output of a component is usually placed in the main window area.
If an additional feature only needs a few or no administrative parameters, and the output of it is better suited to a module (eg. a 'quote of the day' feature, which would only require a small window on a web page), a developer can create an installation package for a module which can then easily be installed on any Joomla site.
Another type of add-on is a 'Plugin' (previously 'Mambot') - this is just a script which is run immediately before the content is rendered, allowing for last-minute changes to the output to be made. For example, if you wanted to make sure that all occurrences of your company name appeared in bold type, you would use a plugin to search and replace immediately before rendering.
A static HTML website can usually be converted to Joomla fairly easily. It rarely takes more than a day to do this for a bog-standard static HTML website. All you need to do really is take a standard HTML page, strip out the content, and just put the Joomla hooks in their place instead. Then it's just a case of migrating the content into the Joomla database. Having said that, it is of course a lot easier if you start off with Joomla in mind - keeping the content and display elements separate from the start. And things can get more complicated when the HTML site has some interactive features (like forms).
From a web developer's point of view, Joomla does not really help you to design a website at all. However, it does help you to develop a website by giving you the basic structure: principally the navigation system, but it also allows you to add features quickly and easily by installing pre-built add-on components (many of which are open source). It is usually much easier to take an existing component and tweak it for your needs than to develop your own from scratch.
Also, we find that nearly all of our customers want to be able to update their sites themselves, so if we've built it using Joomla this is easy to accommodate. Even where they don't want to do it themselves, it is a lot easier for us to update their site for them if it was built with Joomla - we don't have to get our hands dirty with HTML.
For further information about using the Joomla Administrator, see our Joomla Administrator Quick Start Guide. For a concise explanation of Joomla terminology, see the Glossary.
|