Joomla!

Framework 101
A Virtual Tour

Methods to Remember jimport(‘dot.separated.path.to.library’);
JText::_(‘String_To_Translate’); JRoute::_(‘index.php?option=com_foo&... ’); Everything in the JFactory class JFactory::getDBO()

JFactory::getDocument() JFactory::getUser() , etc.

The Most Important Packages

Application Database

• • •

Document Environment Html

The Application Package

Model-View-Controller libraries Application library

Menu library Module and Component helper libraries.

Model-View-Controller

Controller manages the request Two principle request types
• •

View based -- GET Task based -- POST

Controllers choose and instantiate Models and Views for the request

Model-View-Controller

Models manage data Models strive to be request agnostic

• •

Views manage presentation Views get data from Models through get() eg. $this->get(‘List’); calls MyModel::getList();

Views include layouts to render output

Application Library

Application object is at the center of Joomla Loads configuration
• •

Initializes session Routes request Executes component

Renders document

Database Package

Database library Simple and lightweight

Sanitize data before insert or update Always check for errors

Database Package

Table library Encapsulates a database table/row

Add your own with: JTable::addIncludePath(‘/path/to/files/’) ; Provides some basic features common to Joomla related tables Always implement the check() method

Document Package

Document library encapsulates all output to the browser Several document types
• •

HTML is default RAW is magic

view.html.php - view.feed.php view.csv.php

Environment Package

Browser library detects browser Request library is your friend

Filters data based on what you need

Integers, words, floats, paths, etc.

Response library handles headers and body

URI library allows manipulation and detection

HTML Package

HTML goes in layouts HTML goes in layouts

• •

HTML goes in layouts HTML goes in layouts HTML goes in layouts

HTML goes in layouts

HTML Package

JHtml::_(‘{CLASS}.{METHOD}’, $arg1, ...); Add your own with: JHtml::addIncludePath(‘/path/to/files’);

• • •

Editor library Pagination library Pane library

The Rest of the Packages
• • • • •

Base Cache Client Error Event

The Rest of the Packages
• • • • •

Filesystem Filter Installer Language Mail

The Rest of the Packages
• • • • • •

Plugin Registry Session Template User Utilities

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.