You are on page 1of 22

Joomla 1.

5 Framework Overview
General
Joomla! 1.5 is a three tiered system.

1. The bottom tier is the framework level and consists of the libraries and plugins
(formerly known as mambots).
2. The second tier is the application level and consists of the JApplication class.
Currently there are three applications that ship with Joomla:

1. JInstallation,
2. JAdministrator and
3. JSite.

The application acts as the main controller for the page.

3. The third tier is the extension level. This level is where all component, module, and
template logic is executed and rendered.

Joomla Tiered Architecture
The Joomla! Framework consists of several different packages.

Framework Packages:
1. Application Package :JApplication and related libraries
2. Cache Package :Cache libraries
3. Common Package :The common package houses the base classes as well as
compatability and legacy libraries
4. Connector Package:Connector libraries such as FTP and LDAP clients
5. Database Package :JDatabase and related libraries
6. Document Package : Libraries for building and rendering pages
7. Filesystem Package :Libraries for interacting with the filesystem
8. i18n Package :Internationalization libraries
9. Installer Package :Libraries for installing extensions
10. Mail Package :E-Mail related libraries
11. Model Package:Data Access Object libraries
12. Parameter Package :Parameter manipulation and rendering libraries
13. Registry Package :Configuration store libraries
14. Template Package :Templating libraries
15. Utilities Package :Miscellaneous libraries

Classes
JFactory

• This class is a factory class to create and return various framework objects.

JVersion

• Class to hold the Joomla! version information.
Application Package

Overview
The Application package includes libraries that are closely tied with the main application object.
The main classes of the application package are listed below.

Joomla Framework Application
Package

JApplication
Cache Package
Overview This package contains JCache the abstract class which all caching handlers extend.

Joomla Framework Cache Package

Adapters
JCacheFunction

• This adapter is used to cache the output and return value of a function. It can cache a
function or a method of a static class or object.

JCacheHash :

• This adapter is used for caching hashes and is provided for forward compatability with
the phpGACL implementation.

JCacheLanguage :This adapter is used to cache language files.
JCacheOutput:This adapter is used to cache output to the php output buffer.

JCachePage :This adapter is used to cache a page's output.

Common Package
Overview

Joomla Framework Common Package

Base Folder
JObject

• The JObject class is an abstract class that nearly all framework classes inherit from.
• It emulates PHP5 functionality in PHP4 and provides basic get/set methods on object
fields.

JObserver

• JObserver is one of two abstract classes that implement the Observer design pattern.
• A class that extends JObserver is able to attach itself to a JObservable object and observe
the state of the observable object.
• This is an equivalent of the JObserver object listening for an event fired by the
JObservable class it is attached to.

JObservable

• JObservable is the abstract class that interacts with JObserver.
• It has a method to notify all JObserver objects observing it of an event or "state change".

Compatability Folder
• This folder holds compatability files which are loaded as necessary depending upon the
version of PHP executing the Joomla! script.

Legacy Folder
• This folder holds files which contain legacy code.
• Everything within this folder is deprecated and scheduled to be removed.
• It is provided only for backward compatability.

Connector Package

Overview

Joomla Framework Connector Package
JLDAP

A LDAP client class

JFTP

A FTP client class

Database Package
Overview

Joomla Framework Database Package

JDatabase

• This is an abstract class representing a database connector.
• The current implemented extensions of JDatabase are JDatabaseMySQL and
JDatabaseMySQLi.
• JDatabase follows an adapter pattern, therefore all the extended classes sit in an adapters
sub-folder.
JQuery

• This class is a query builder.

JSimpleRecordSet

• This is a class to emulate the adodb record set class for easy integration with third party
libraries.
Document Package
Overview

Joomla Framework Document Package
JDocument

• Abstract document class, provides an easy interface to parse and display a document.
• This class is extended by JDocumentHTML for HTML documents.
• This package also includes some extensions of patTemplate for applying document
specific template functions, place-holders and renderings.

Filesystem Package
Overview

Joomla Framework Filesystem Package

JArchive

• This is a static class for handling operations on an archive.

JFile

• This is a static class for handling operations on a file.

JFolder

• This is a static class for handling operations on a folder.

JPath

• This is a static class for handling operations on a path.
i18n Package

Overview

• This package holds classes that provide internationalization features to Joomla!.

Joomla Framework i18n Package

JLanguage

• A singleton design pattern. Represents a localization language.

JText

• A static class - the work horse of string tranlations

JString

• A wrapper class for the utf-8 string function library. Provides the API for multi-byte
character string functions.

JHelp

• Is the multi-language help system class
Installer Package

Overview

This packages contains classes that manage the installation process of Joomla! extensions.

Joomla Framework Installer Package

JInstaller

• This is the abstract class that all installer classes extend.
• It implements nearly every method that an installer will need short of the actual install
and uninstall methods.
Adapter Folder
JInstallerComponent

• Class to install a Joomla! Component

JInstallerLanguage

• Class to install a Joomla! Language

JInstallerModule

• Class to install a Joomla! Module

JInstallerPlugin

• Class to install a Joomla! Plugin

JInstallerTemplate

• Class to install a Joomla! Template

Mail Package
Overview

Joomla Framework Mail Package
JMail

• This class extends PHPMailer and provides a common interface API for sending e-mail
from the Joomla! framework.

JMailHelper

• This static class has several methods that provide useful functionality for e-mail
operations

Model Package
Overview This package contains the classes that represent all data objects.
Joomla Framework Model Package

JModel

• This abstract class is the base class for all Joomla! data access objects.

Adapter Folder
JModelCategory

• This is a data access object for a Joomla! category and represents a tuple in the
#__categories table

JModelComponent

• This is a data access object for a Joomla! component and represents a tuple in the
#__components table

JModelContent

• This is a data access object for a Joomla! content item and represents a tuple in the
#__content table

JModelMenu

• This is a data access object for a Joomla! menu item and represents a tuple in the
#__menus table

JModelModule

• This is a data access object for a Joomla! module and represents a tuple in the
#__modules table

JModelPlugins

• This is a data access object for a Joomla! plugin and represents a tuple in the #__plugins
table

JModelSection

• This is a data access object for a Joomla! section and represents a tuple in the #__sections
table
JModelSession

• This is a data access object for a Joomla! session and represents a tuple in the #__sessions
table

JModelUser

• This is a data access object for a Joomla! user and represents a tuple in the #__users table

Parameter Package
Overview :The parameter package contains classes that provide all parameter handling.
Joomla Framework Parameter Package

JParameter

• The main class is JParameter which contains lists of relevent parameter elements.

JElement

• The elements are represented by the abstract JElement class.

Element Folder
• Extensions of the JElement class are found in the element folder and provide the
functionality to fetch parameter elements and lists for various entities.

Registry Package
Overview

Joomla Framework Registry Package

JRegistry

• This class implements a configuration value store. It allows nested levels of
configuration values in a tree data structure.

JRegistryFormat

• Abstract file for handling data file formats

Format Folder
JRegistryFormatINI

• INI file format handler for JRegistry
JRegistryFormatXML

• XML file format handler for JRegistry

JRegistryFormatPHP

• PHP class file format handler for JRegistry

Template Package
Overview

Joomla Framework Template Package

• This package contains Joomla's API to patTemplate handling classes.
• The main class in the package is JTemplate which provides an easy interface to parse and display
a template file and extends patTemplate.
• The package includes classes to apply Joomla SEF and translate methods to patTemplate function
and modifier.

• Several global templates are stored in the tmpl sub-directory.

Utilities Package
Overview

Joomla Framework Utilities Package

JError

• Static class for error handling in Joomla!

JDebugHandler

• This class is a handler for debugging information

JProfiler

• This class implements a profiler for getting benchmark and debugging data

Functions Library
• Library of common Joomla! functions

Presentation Folder
JEditor

• This is a class which extends the JObservable base class and handles WYSIWYG editor
output

JPagination

• This is a class for handling pagination output.

HTML Functions Library

• Library of HTML output functions
• This package is home for JError and JDebugHandler error handling classes, the legacy
functions script, JProfiler, JPagination which is a common interface for content
pagination, legacy HTML handling classes and JEditor to handle WSIWYG editors