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. 2. 3.
Application Package :JApplication and related libraries Cache Package :Cache libraries 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