Support Libraries
Start
Does
configuration.php
exist?
Load web
installer
No
globals.php
configuration.php
Yes
sef.php
legacy.php
frontend.php
Determine 'option' and
'Itemid' from URI or first
link in Main Menu
Joomla! 1.0 – Site index.php flow diagram
Change some values of
'option' to support legacy
versions
Create $mainframe
Initialise the user session
Load language
Are we doing
'login' or 'logout
Process and
redirect
Yes
joom
la.php
version.php
database.php
gacl.class.php
gacl_api.class.php
class.phpmailer.php
joomla.xml.php
Buffer 'component' output
Store in
$_MOS_OPTION['buffer']
Buffer
Load 'template'
End
Summary of Purpose of Included Files
(note, directory prefix is omitted for clarity)
globals.php
Emulates register_globals = off
configuration.php
Global configuration settings for Mambo
compat.41x.php, compat.42x.php & compat.50x.php
Compatibility functions for different versions of PHP.
joomla.php & joomla.xml.php
Many support classes and function. Creates database, acl and
mambot global handlers
legacy.php
A collection of code that supports legacy operations. Code in
this file is likely to be removed in future versions as the need for
legacy support increases.
sef.php
Support code for Search Engine Friendly URL's
frontend.php
Support functions for frontend template processing
frontend.html.php
Presentation (html) support functions for template processing
version.php
The current version of the Mambo application
database.php
Support classes for database abstraction
gacl.class.php & gacl_api.class.php
Support classes for user access control
class.phpmailer.php
Support classes for mailing
Components
The Components Collection is located in the /components
directory. Each component has it's own folder where the name
of the folder is prefixed with 'com_'.
component.php
Processes 'task's passed via the URI. For tasks such as 'save'
there is no html output and the script redirects the URL to a
different location. This prevents, for example, 'double' saves if
you refresh the browser immediately after the event.
component.html.php
The presentation layer handler for the component.
Modules
Modules positions are loaded dynamically based on database
settings. Support functions and classes for module processing
are found in frontend.php and frontend.html.php.
Copyright © 2005 Open Source Matters, all rights reserved
frontend.html.php
component.php
'task'
component.html.php
Presentation
Load dynamic module
positions
Flush buffered content
Process and
redirect actions
(eg save)
Is site offline
Show offline
template
Yes
compat.php41x.php
compat.php42x.php
Old PHP Compatibility
compat.php50x.php